#ifndef ROOT_TGLOrthoCamera
#define ROOT_TGLOrthoCamera
#include "TGLCamera.h"
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;
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);
using TGLCamera::Truck;
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 SetZoom(Double_t x) { fZoom = x; }
Double_t GetZoom() const { return fZoom; }
ClassDef(TGLOrthoCamera,1)
};
#endif // ROOT_TGLOrthoCamera