00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TGLPerspectiveCamera
00013 #define ROOT_TGLPerspectiveCamera
00014
00015 #include "TGLCamera.h"
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 class TGLPerspectiveCamera : public TGLCamera
00031 {
00032 private:
00033
00034 Double_t fFOV;
00035
00036 static Double_t fgFOVMin, fgFOVDefault, fgFOVMax;
00037 static UInt_t fgFOVDeltaSens;
00038
00039 public:
00040 TGLPerspectiveCamera(const TGLVector3 & hAxis, const TGLVector3 & vAxis);
00041 virtual ~TGLPerspectiveCamera();
00042
00043 virtual Bool_t IsPerspective() const { return kTRUE; }
00044
00045 Double_t GetFOV() const { return fFOV; }
00046
00047 virtual void Setup(const TGLBoundingBox & box, Bool_t reset=kTRUE);
00048 virtual void Reset();
00049 virtual Bool_t Zoom (Int_t delta, Bool_t mod1, Bool_t mod2);
00050 using TGLCamera::Truck;
00051 virtual Bool_t Truck(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod2);
00052 virtual void Apply(const TGLBoundingBox & box, const TGLRect * pickRect = 0) const;
00053
00054
00055 virtual void Configure(Double_t fov, Double_t dolly, Double_t center[3],
00056 Double_t hRotate, Double_t vRotate);
00057
00058 ClassDef(TGLPerspectiveCamera,0)
00059 };
00060
00061 #endif // ROOT_TGLPerspectiveCamera
00062