ROOT » GRAF3D » GL » TGLPerspectiveCamera

class TGLPerspectiveCamera: public TGLCamera


TGLPerspectiveCamera

Perspective projection camera - with characteristic foreshortening.


Function Members (Methods)

public:
virtual~TGLPerspectiveCamera()
voidTObject::AbstractMethod(const char* method) const
Bool_tTGLCamera::AdjustAndClampVal(Double_t& val, Double_t min, Double_t max, Int_t screenShift, Int_t screenShiftRange, Bool_t mod1, Bool_t mod2) const
Double_tTGLCamera::AdjustDelta(Double_t screenShift, Double_t deltaFactor, Bool_t mod1, Bool_t mod2) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidApply(const TGLBoundingBox& box, const TGLRect* pickRect = 0) const
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidConfigure(Double_t fov, Double_t dolly, Double_t[3] center, Double_t hRotate, Double_t vRotate)
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual Bool_tTGLCamera::Dolly(Int_t delta, Bool_t mod1, Bool_t mod2)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
voidTGLCamera::DrawDebugAids() const
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
TGLVector3TGLCamera::EyeDirection() const
TGLVertex3TGLCamera::EyePoint() const
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
TGLVertex3TGLCamera::FrustumCenter() const
Rgl::EOverlapTGLCamera::FrustumOverlap(const TGLBoundingBox& box) const
const TGLPlane&TGLCamera::FrustumPlane(TGLCamera::EFrustumPlane plane) const
const TGLMatrix&TGLCamera::GetCamBase() const
const TGLMatrix&TGLCamera::GetCamTrans() const
Double_t*TGLCamera::GetCenterVec()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Bool_tTGLCamera::GetExternalCenter()
Double_tTGLCamera::GetFarClip() const
Double_t*TGLCamera::GetFixDefCenterVec()
Double_tGetFOV() const
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
Double_tTGLCamera::GetNearClip() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Double_tTGLCamera::GetTheta() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Float_tTGLCamera::GetVAxisMinAngle()
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
voidTGLCamera::IncTimeStamp()
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tTGLCamera::IsCacheDirty() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTGLCamera::IsOrthographic() const
virtual Bool_tIsPerspective() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
Bool_tTGLCamera::OfInterest(const TGLBoundingBox& box, Bool_t ignoreSize) const
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TGLPerspectiveCamera&operator=(const TGLPerspectiveCamera&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
TGLMatrix&TGLCamera::RefCamBase()
TGLMatrix&TGLCamera::RefCamTrans()
TGLMatrix&TGLCamera::RefLastNoPickProjM() const
const TGLMatrix&TGLCamera::RefModelViewMatrix() const
TGLRect&TGLCamera::RefViewport()
const TGLRect&TGLCamera::RefViewport() const
virtual voidReset()
voidTObject::ResetBit(UInt_t f)
voidTGLCamera::ResetInterest()
virtual Bool_tTGLCamera::Rotate(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod2)
virtual Bool_tTGLCamera::RotateArcBall(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod2)
virtual Bool_tTGLCamera::RotateArcBallRad(Double_t hRotate, Double_t vRotate)
virtual Bool_tTGLCamera::RotateRad(Double_t hRotate, Double_t vRotate)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidTGLCamera::SetCenterVec(Double_t x, Double_t y, Double_t z)
voidTGLCamera::SetCenterVecWarp(Double_t x, Double_t y, Double_t z)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidTGLCamera::SetExternalCenter(Bool_t x)
voidTGLCamera::SetFixDefCenter(Bool_t x)
voidTGLCamera::SetFixDefCenterVec(Double_t x, Double_t y, Double_t z)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidSetup(const TGLBoundingBox& box, Bool_t reset = kTRUE)
voidTGLCamera::SetVAxisMinAngle(Float_t x)
voidTGLCamera::SetViewport(const TGLRect& viewport)
virtual voidShowMembers(TMemberInspector& insp) const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
TGLPerspectiveCamera()
TGLPerspectiveCamera(const TGLPerspectiveCamera&)
TGLPerspectiveCamera(const TGLVector3& hAxis, const TGLVector3& vAxis)
UInt_tTGLCamera::TimeStamp() const
virtual Bool_tTruck(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod2)
Bool_tTGLCamera::UpdateInterest(Bool_t force)
virtual voidTObject::UseCurrentStyle()
TGLVector3TGLCamera::ViewportDeltaToWorld(const TGLVertex3& worldRef, Double_t viewportXDelta, Double_t viewportYDelta, TGLMatrix* modviewMat = 0) const
Rgl::EOverlapTGLCamera::ViewportOverlap(const TGLBoundingBox& box) const
pair<Bool_t,TGLVertex3>TGLCamera::ViewportPlaneIntersection(const TPoint& viewport, const TGLPlane& worldPlane) const
pair<Bool_t,TGLVertex3>TGLCamera::ViewportPlaneIntersection(Double_t viewportX, Double_t viewportY, const TGLPlane& worldPlane) const
TGLRectTGLCamera::ViewportRect(const TGLBoundingBox& box, TGLBoundingBox::EFace face) const
TGLRectTGLCamera::ViewportRect(const TGLBoundingBox& box, const TGLBoundingBox::EFace* face = 0) const
TGLLine3TGLCamera::ViewportToWorld(const TPoint& viewport) const
TGLVertex3TGLCamera::ViewportToWorld(const TGLVertex3& viewportVertex, TGLMatrix* modviewMat = 0) const
TGLLine3TGLCamera::ViewportToWorld(Double_t viewportX, Double_t viewportY) const
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
voidTGLCamera::WindowToViewport(TPoint& point) const
voidTGLCamera::WindowToViewport(TGLRect& rect) const
voidTGLCamera::WindowToViewport(TGLVertex3& vertex) const
voidTGLCamera::WindowToViewport(Int_t&, Int_t& y) const
TGLVector3TGLCamera::WorldDeltaToViewport(const TGLVertex3& worldRef, const TGLVector3& worldDelta) const
TGLVertex3TGLCamera::WorldToViewport(const TGLVertex3& worldVertex, TGLMatrix* modviewMat = 0) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
virtual Bool_tZoom(Int_t delta, Bool_t mod1, Bool_t mod2)
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
voidTGLCamera::UpdateCache() const

Data Members

public:
static TObject::(anonymous)TObject::kBitMask
static TGLCamera::EFrustumPlaneTGLCamera::kBottom
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TGLCamera::EFrustumPlaneTGLCamera::kFar
static TObject::EStatusBitsTObject::kHasUUID
static TObject::EStatusBitsTObject::kInvalidObject
static TObject::(anonymous)TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TGLCamera::EFrustumPlaneTGLCamera::kLeft
static TObject::EStatusBitsTObject::kMustCleanup
static TGLCamera::EFrustumPlaneTGLCamera::kNear
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::(anonymous)TObject::kOverwrite
static TGLCamera::EFrustumPlaneTGLCamera::kPlanesPerFrustum
static TGLCamera::EFrustumPlaneTGLCamera::kRight
static TObject::(anonymous)TObject::kSingleKey
static TGLCamera::EFrustumPlaneTGLCamera::kTop
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
protected:
Bool_tTGLCamera::fCacheDirty! cached items dirty?
TGLMatrixTGLCamera::fCamBasetranformation to center and rotation from up to x vector
TGLMatrixTGLCamera::fCamTranstransformation relative to fCamTrans
TGLVector3*TGLCamera::fCenter! current camera center
TGLMatrixTGLCamera::fClipM! object space clip matrix (cached)
TGLVector3TGLCamera::fDefCenterdefault camera center
Double_tTGLCamera::fDollyDefaultdefault distnce from viewing centre
Double_tTGLCamera::fDollyDistanceunit distance for camera movement in fwd/bck direction
TGLVector3TGLCamera::fExtCenterexternal camera center
Bool_tTGLCamera::fExternalCenteruse external center insead of scene center
TGLVector3TGLCamera::fFDCenterfixed default camera center
Double_tTGLCamera::fFarClip! last applied far-clip
Bool_tTGLCamera::fFixDefCenteruse fixed default center
TGLPlaneTGLCamera::fFrustumPlanes[6]! frustum planes (cached)
TGLBoundingBoxTGLCamera::fInterestBox! the interest box - created in UpdateInterest()
Double_tTGLCamera::fLargestSeen! largest box diagonal seen in OfInterest() - used when
TGLMatrixTGLCamera::fLastNoPickProjM! no-pick projection matrix (cached)
TGLMatrixTGLCamera::fModVM! modelView matrix (cached)
Double_tTGLCamera::fNearClip! last applied near-clip
TGLMatrixTGLCamera::fProjM! projection matrix (cached)
UInt_tTGLCamera::fTimeStamp! timestamp
Float_tTGLCamera::fVAxisMinAngleminimal allowed angle between up and fCamTrans Z vector
TGLRectTGLCamera::fViewport! viewport (GL coords - origin bottom left)
Bool_tTGLCamera::fWasArcBalledset when arc-ball rotation is used
static UInt_tTGLCamera::fgDollyDeltaSens
private:
Double_tfFOV
static Double_tfgFOVDefault
static UInt_tfgFOVDeltaSens
static Double_tfgFOVMax
static Double_tfgFOVMin

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TGLPerspectiveCamera()
 Construct default XOZ perspective camera
TGLPerspectiveCamera(const TGLVector3& hAxis, const TGLVector3& vAxis)
 Construct perspective camera
~TGLPerspectiveCamera()
 Destroy perspective camera
void Setup(const TGLBoundingBox& box, Bool_t reset = kTRUE)
 Setup camera limits suitible to view the world volume defined by 'box'
 and call Reset() to initialise camera.
void Reset()
 Reset the camera to defaults - reframe the world volume established in Setup()
 in default state. Note: limits defined in Setup() are not adjusted.
Bool_t Zoom(Int_t delta, Bool_t mod1, Bool_t mod2)
 Zoom the camera - 'adjust lens focal length, retaining camera position'.
 Arguments are:

 'delta' - mouse viewport delta (pixels) - +ive zoom in, -ive zoom out
 'mod1' / 'mod2' - sensitivity modifiers - see TGLCamera::AdjustAndClampVal()

 Returns kTRUE is redraw required (camera change), kFALSE otherwise.
Bool_t Truck(Int_t xDelta, Int_t yDelta, Bool_t mod1, Bool_t mod2)
 Truck the camera - 'move camera parallel to film plane'.
 Returns kTRUE is redraw required (camera change), kFALSE otherwise.
void Apply(const TGLBoundingBox& box, const TGLRect* pickRect = 0) const
 Apply the camera to the current GL context, setting the viewport, projection
 and modelview matricies. After this verticies etc can be directly entered
 in the world frame. This also updates the cached frustum values, enabling
 all the projection, overlap tests etc defined in TGLCamera to be used.

 Arguments are:
 'box' - view volume box - used to adjust near/far clipping
 'pickRect' - optional picking rect. If non-null, restrict drawing to this
 viewport rect.
void Configure(Double_t fov, Double_t dolly, Double_t[3] center, Double_t hRotate, Double_t vRotate)
 Configure the camera state.
   fov     - set directly field-of-view in degrees (default = 30);
   dolly   - additional move along the camera forward direction;
   center  - new camera center (can be 0 for no change);
   hRotate - additional "up/down" rotation in radians;
   vRotate - additional "left/right" rotation in radians.
TGLPerspectiveCamera()
Bool_t IsPerspective() const
{ return kTRUE; }
Double_t GetFOV() const
{ return fFOV; }