Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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{
27private:
28 // Fields
30
33
34public:
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 = nullptr) 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
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
double Double_t
Definition RtypesCore.h:59
constexpr Bool_t kTRUE
Definition RtypesCore.h:100
#define ClassDef(name, id)
Definition Rtypes.h:337
Concrete class describing an orientated (free) or axis aligned box of 8 vertices.
Abstract base camera class - concrete classes for orthographic and perspective cameras derive from it...
Definition TGLCamera.h:44
virtual Bool_t Truck(Double_t xDelta, Double_t yDelta)
Truck the camera - 'move camera parallel to film plane'.
Perspective projection camera - with characteristic foreshortening.
virtual void Configure(Double_t fov, Double_t dolly, Double_t center[3], Double_t hRotate, Double_t vRotate)
Configure the camera state.
virtual void Apply(const TGLBoundingBox &box, const TGLRect *pickRect=nullptr) const
Apply the camera to the current GL context, setting the viewport, projection and modelview matrices.
TGLPerspectiveCamera()
Construct default XOZ perspective camera.
virtual ~TGLPerspectiveCamera()
Destroy perspective camera.
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 Reset()
Reset the camera to defaults - reframe the world volume established in Setup() in default state.
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...
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'.
void SetFOV(Double_t fov)
virtual Bool_t IsPerspective() const
Viewport (pixel base) 2D rectangle class.
Definition TGLUtil.h:422
3 component (x/y/z) vector class.
Definition TGLUtil.h:248
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Definition fillpatterns.C:1