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