#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   Markup (TGLCameraMarkupStyle* ms) 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; }
   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()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: Tue May 13 17:12:48 2008
Last generated: 2008-05-13 17:12
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.