// $Source: /usr/local/SimSoft/Sfx3D/src/gts/gtsgui.h,v $
// $Revision: 1.2 $
// $Author: baum $
// $Date: 2001/11/29 15:18:10 $
//
// Login name of the user who locked the revision
// $Locker:  $
// Tag name used to checkout the file
// $Name: Release-14 $
// State assigned to revision
// $State: Exp $
//
//
// $Log: gtsgui.h,v $
// Revision 1.2  2001/11/29 15:18:10  baum
// -Realzeitsteuerung eingebaut
// -Handsteuerung eingebaut
//

#ifndef _GTSGUI_H
#define _GTSGUI_H	1


#include "tcl.h"

#include "DynArray.h"
#include "Strings.h"

#include "Token.h"
//#include "SFXModel.h"

#include "Vec3D.h"

#include "XGraph/Wrap.h"
#include "XGraph/Color.h"
#include "XGraph/OGLCB.h"
#include "XGraph/ToglView.h"

//#include "ffsperm.h"

#ifndef _PATTERN_H
  class Pattern;
#endif

//extern Tcl_Interp *SFXInterp;

//==================================================================
//		Class-Header
//		for class SFXViewHandler
//==================================================================

class SFXViewHandler {
  public:
    SFXViewHandler  (Tcl_Interp* interp);
    ~SFXViewHandler ();

    void createView (int xPos, int yPos);
    void Ansicht (Ustring richtung);

    void poseView   ();
    void     setRasterWeite (float const weite = 2.0);
    const float& getRasterWeite ();

  protected:

  private:
    Tcl_Interp* ObjInterp;

    unsigned    ObjWinHeight;
    unsigned    ObjWinWidth;
    RGBAColor   ObjBgColor;
    float       ObjGridSize;
    WrapBox     ObjGridWrap;
    WrapBox     ObjFlaeche;
    WrapBox     ObjMinFlaeche;
    Vec3D       ObjCamPos;
    Vec3D       ObjCamFocus;
    unsigned    ObjAnsicht;
    Vec3D       ObjCamUp;

    void berechneCameraPosition ();
    void berechneLayoutFlaeche  ();

    // declared, but not defined
    SFXViewHandler ();
    SFXViewHandler (const SFXViewHandler&);
    const SFXViewHandler operator = (const SFXViewHandler&);
};
#endif // !_GTSGUI_H
