00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TGLOrthoCamera
00013 #define ROOT_TGLOrthoCamera
00014
00015 #include "TGLCamera.h"
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 class TGLPaintDevice;
00034
00035 class TGLOrthoCamera : public TGLCamera
00036 {
00037 public:
00038 enum EType { kZOY, kXOZ, kXOY,
00039 kZnOY, kXnOZ, kXnOY };
00040 private:
00041
00042 EType fType;
00043 Bool_t fEnableRotate;
00044 Bool_t fDollyToZoom;
00045
00046
00047 Double_t fZoomMin;
00048 Double_t fZoomDefault;
00049 Double_t fZoomMax;
00050 TGLBoundingBox fVolume;
00051
00052
00053 Double_t fDefXSize, fDefYSize;
00054 Double_t fZoom;
00055
00056 static UInt_t fgZoomDeltaSens;
00057
00058 public:
00059 TGLOrthoCamera(EType type, const TGLVector3 & hAxis, const TGLVector3 & vAxis);
00060 virtual ~TGLOrthoCamera();
00061
00062 virtual Bool_t IsOrthographic() const { return kTRUE; }
00063
00064 virtual void Setup(const TGLBoundingBox & box, Bool_t reset=kTRUE);
00065 virtual void Reset();
00066
00067 virtual Bool_t Dolly(Int_t delta, Bool_t mod1, Bool_t mod2);
00068 virtual Bool_t Zoom (Int_t delta, Bool_t mod1, Bool_t mod2);
00069 using TGLCamera::Truck;
00070 virtual Bool_t Truck(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod2);
00071 virtual Bool_t Rotate(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod2);
00072 virtual void Apply(const TGLBoundingBox & sceneBox, const TGLRect * pickRect = 0) const;
00073
00074
00075
00076 virtual void Configure(Double_t zoom, Double_t dolly, Double_t center[3],
00077 Double_t hRotate, Double_t vRotate);
00078
00079 void SetEnableRotate(Bool_t x) { fEnableRotate = x; }
00080 Bool_t GetEnableRotate() const { return fEnableRotate; }
00081
00082 Double_t GetZoomMin() const { return fZoomMin; }
00083 Double_t GetZoomMax() const { return fZoomMax; }
00084 void SetZoomMin(Double_t z);
00085 void SetZoomMax(Double_t z);
00086 void SetZoomMinMax(Double_t min, Double_t max) { SetZoomMin(min); SetZoomMax(max); }
00087
00088 void SetDollyToZoom(Bool_t x) { fDollyToZoom = x; }
00089 Bool_t GetDollyToZoom() const { return fDollyToZoom; }
00090
00091 ClassDef(TGLOrthoCamera,0)
00092 };
00093
00094 #endif // ROOT_TGLOrthoCamera