Logo ROOT   6.08/07
Reference Guide
TGLPerspectiveCamera.h
Go to the documentation of this file.
1 // @(#)root/gl:$Id$
2 // Author: Richard Maunder 25/05/2005
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TGLPerspectiveCamera
13 #define ROOT_TGLPerspectiveCamera
14 
15 #include "TGLCamera.h"
16 
17 //////////////////////////////////////////////////////////////////////////
18 // //
19 // TGLPerspectiveCamera //
20 // //
21 // Perspective projection camera - with characteristic foreshortening. //
22 // //
23 //////////////////////////////////////////////////////////////////////////
24 
26 {
27 private:
28  // Fields
30 
33 
34 public:
36  TGLPerspectiveCamera(const TGLVector3 & hAxis, const TGLVector3 & vAxis);
37  virtual ~TGLPerspectiveCamera();
38 
39  virtual Bool_t IsPerspective() const { return kTRUE; }
40 
41  Double_t GetFOV() const { return fFOV; }
42  void SetFOV(Double_t fov) { fFOV = fov; }
43 
44  virtual void Setup(const TGLBoundingBox & box, Bool_t reset=kTRUE);
45  virtual void Reset();
46  virtual Bool_t Zoom (Int_t delta, Bool_t mod1, Bool_t mod2);
47  using TGLCamera::Truck;
48  virtual Bool_t Truck(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod2);
49  virtual void Apply(const TGLBoundingBox & box, const TGLRect * pickRect = 0) const;
50 
51  // External scripting control
52  virtual void Configure(Double_t fov, Double_t dolly, Double_t center[3],
53  Double_t hRotate, Double_t vRotate);
54 
55  ClassDef(TGLPerspectiveCamera,1) // Camera for perspective view.
56 };
57 
58 #endif // ROOT_TGLPerspectiveCamera
59 
virtual Bool_t Truck(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod2)
Truck the camera - 'move camera parallel to film plane'.
Abstract base camera class - concrete classes for orthographic and perspective cameras derive from it...
Definition: TGLCamera.h:43
virtual ~TGLPerspectiveCamera()
Destroy perspective camera.
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Definition: fillpatterns.C:1
virtual Bool_t IsPerspective() const
Perspective projection camera - with characteristic foreshortening.
#define ClassDef(name, id)
Definition: Rtypes.h:254
Viewport (pixel base) 2D rectangle class.
Definition: TGLUtil.h:426
3 component (x/y/z) vector class.
Definition: TGLUtil.h:250
static Double_t fgFOVDefault
virtual void Setup(const TGLBoundingBox &box, Bool_t reset=kTRUE)
Setup camera limits suitable to view the world volume defined by 'box' and call Reset() to initialise...
void SetFOV(Double_t fov)
unsigned int UInt_t
Definition: RtypesCore.h:42
virtual Bool_t Truck(Double_t xDelta, Double_t yDelta)
Truck the camera - 'move camera parallel to film plane'.
Definition: TGLCamera.cxx:894
virtual Bool_t Zoom(Int_t delta, Bool_t mod1, Bool_t mod2)
Zoom the camera - 'adjust lens focal length, retaining camera position'.
virtual void Configure(Double_t fov, Double_t dolly, Double_t center[3], Double_t hRotate, Double_t vRotate)
Configure the camera state.
double Double_t
Definition: RtypesCore.h:55
virtual void Reset()
Reset the camera to defaults - reframe the world volume established in Setup() in default state...
Concrete class describing an orientated (free) or axis aligned box of 8 vertices. ...
TGLPerspectiveCamera()
Construct default XOZ perspective camera.
const Bool_t kTRUE
Definition: Rtypes.h:91
virtual void Apply(const TGLBoundingBox &box, const TGLRect *pickRect=0) const
Apply the camera to the current GL context, setting the viewport, projection and modelview matrices...