#ifndef ROOT_TGLOrthoCamera
#define ROOT_TGLOrthoCamera
#ifndef ROOT_TGLCamera
#include "TGLCamera.h"
#endif
#ifndef ROOT_TArcBall
#include "TArcBall.h"
#endif
class TGLPaintDevice;
class TGLOrthoCamera : public TGLCamera {
public:
enum EType { kZOY, kXOZ, kXOY,
kZnOY, kXnOZ, kXnOY };
private:
EType fType;
Bool_t fEnableRotate;
Bool_t fDollyToZoom;
Double_t fZoomMin;
Double_t fZoomDefault;
Double_t fZoomMax;
TGLBoundingBox fVolume;
Double_t fDefXSize, fDefYSize;
Double_t fZoom;
Double_t fShift;
Double_t fOrthoBox[4];
TGLVertex3 fCenter;
TGLVector3 fTruck;
TArcBall fArcBall;
TPoint fMousePos;
Bool_t fVpChanged;
void Init();
static UInt_t fgZoomDeltaSens;
public:
TGLOrthoCamera();
TGLOrthoCamera(EType type, const TGLVector3 & hAxis, const TGLVector3 & vAxis);
virtual ~TGLOrthoCamera();
virtual Bool_t IsOrthographic() const { return kTRUE; }
virtual void Setup(const TGLBoundingBox & box, Bool_t reset=kTRUE);
virtual void Reset();
virtual Bool_t Dolly(Int_t delta, Bool_t mod1, Bool_t mod2);
virtual Bool_t Zoom (Int_t delta, Bool_t mod1, Bool_t mod2);
virtual Bool_t Truck(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod2);
virtual Bool_t Rotate(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod2);
virtual void Apply(const TGLBoundingBox & sceneBox, const TGLRect * pickRect = 0) const;
virtual void Configure(Double_t zoom, Double_t dolly, Double_t center[3],
Double_t hRotate, Double_t vRotate);
void SetEnableRotate(Bool_t x) { fEnableRotate = x; }
Bool_t GetEnableRotate() const { return fEnableRotate; }
Double_t GetZoomMin() const { return fZoomMin; }
Double_t GetZoomMax() const { return fZoomMax; }
void SetZoomMin(Double_t z);
void SetZoomMax(Double_t z);
void SetZoomMinMax(Double_t min, Double_t max) { SetZoomMin(min); SetZoomMax(max); }
void SetDollyToZoom(Bool_t x) { fDollyToZoom = x; }
Bool_t GetDollyToZoom() const { return fDollyToZoom; }
void SetViewport(TGLPaintDevice *dev);
void SetViewVolume(const TGLVertex3 *box);
void StartRotation(Int_t px, Int_t py);
void RotateCamera(Int_t px, Int_t py);
void StartPan(Int_t px, Int_t py);
void Pan(Int_t px, Int_t py);
void ZoomIn();
void ZoomOut();
void SetCamera()const;
void Apply(Double_t phi, Double_t theta)const;
Bool_t ViewportChanged()const{return fVpChanged;}
Int_t GetX()const;
Int_t GetY()const;
Int_t GetWidth()const;
Int_t GetHeight()const;
ClassDef(TGLOrthoCamera,0)
};
#endif // ROOT_TGLOrthoCamera
Last change: Wed Sep 17 12:20:25 2008
Last generated: 2008-09-17 12:20
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.