library: libRGL
#include "TGLCamera.h"

TGLCamera


class description - source file - inheritance tree (.pdf)

class TGLCamera

Inheritance Chart:
TGLCamera
<-
TGLOrthoCamera
TGLPerspectiveCamera
 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.

    private:
TGLVertex3 EyePoint() const TGLBoundingBox Frustum(Bool_t asBox = kTRUE) const TGLCamera& operator=(const TGLCamera&) protected:
Bool_t AdjustAndClampVal(Double_t& val, Double_t min, Double_t max, Int_t screenShift, Int_t screenShiftRange, Bool_t mod1, Bool_t mod2) const void UpdateCache() public:
virtual ~TGLCamera() virtual void Apply(const TGLBoundingBox& box, const TGLRect* pickRect = 0) static TClass* Class() virtual Bool_t Dolly(Int_t delta, Bool_t mod1, Bool_t mod2) void DrawDebugAids() const TGLVector3 EyeDistances(const TGLBoundingBox& box) const EOverlap FrustumOverlap(const TGLBoundingBox& box) const virtual TClass* IsA() const Bool_t OfInterest(const TGLBoundingBox& box) const TGLVector3 ProjectedShift(const TGLVertex3& vertex, Int_t xDelta, Int_t yDelta) const virtual void Reset() void ResetInterest() virtual Bool_t Rotate(Int_t xDelta, Int_t yDelta) virtual void Setup(const TGLBoundingBox& box) void SetViewport(const TGLRect& viewport) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) virtual Bool_t Truck(Int_t x, Int_t y, Int_t xDelta, Int_t yDelta) Bool_t UpdateInterest(Bool_t force) EOverlap ViewportOverlap(const TGLBoundingBox& box) const TGLRect ViewportSize(const TGLBoundingBox& box) const virtual Bool_t Zoom(Int_t delta, Bool_t mod1, Bool_t mod2)

Data Members

    private:
TGLPlane fFrustumPlanes[6] ! protected:
TGLRect fViewport ! viewport (GL coords - origin bottom left) TGLMatrix fProjM ! projection matrix (cached) TGLMatrix fModVM ! modelView matrix (cached) TGLMatrix fClipM ! object space clip matrix (cached) Bool_t fCacheDirty ! cached items dirty? TGLBoundingBox fInterestBox ! the interest box - created in UpdateInterest() TGLBoundingBox fInterestFrustum ! frustum used to create interest box - debug mode only TGLBoundingBox fInterestFrustumAsBox ! squared off frustum - debug mode only Double_t fInterestBoxExpansion ! expansion c.f. aligned current frustum box Double_t fLargestInterest public:
static const enum TGLCamera:: kNEAR static const enum TGLCamera:: kLEFT static const enum TGLCamera:: kRIGHT static const enum TGLCamera:: kTOP static const enum TGLCamera:: kBOTTOM static const enum TGLCamera:: kFAR static const enum TGLCamera:: kPlanesPerFrustum

Class Description


~TGLCamera()

void SetViewport(const TGLRect & viewport)

void UpdateCache()
 Update internal cached values

TGLVertex3 EyePoint() const

TGLBoundingBox Frustum(Bool_t asBox) const
 Return the the current camera frustum. If asBox == FALSE return
 a true frustum (truncated square based pyramid). If asBox == TRUE
 return a true box, using the far clipping plane intersection projected
 back to the near plane

EOverlap FrustumOverlap(const TGLBoundingBox & box) const

EOverlap ViewportOverlap(const TGLBoundingBox & box) const
 No cached values need here

TGLRect ViewportSize(const TGLBoundingBox & box) const

TGLVector3 ProjectedShift(const TGLVertex3 & vertex, Int_t xDelta, Int_t yDelta) const

TGLVector3 EyeDistances(const TGLBoundingBox & box) const

Bool_t OfInterest(const TGLBoundingBox & box) const

Bool_t UpdateInterest(Bool_t force)

void ResetInterest()

Bool_t AdjustAndClampVal(Double_t & val, Double_t min, Double_t max, Int_t screenShift, Int_t screenShiftRange, Bool_t mod1, Bool_t mod2) const

void DrawDebugAids() const
 Draw out some debugging aids for the camera:

 i) The frustum used to create the current interest box (RED)
 ii) The same frustum as a squared off box (ORANGE)
 iii) The axis aligned version of the frustum used as interest box basis (YELLOW)
 iv) The current interest box (BLUE)



Inline Functions


         TGLCamera& operator=(const TGLCamera&)
               void Setup(const TGLBoundingBox& box)
               void Reset()
             Bool_t Dolly(Int_t delta, Bool_t mod1, Bool_t mod2)
             Bool_t Zoom(Int_t delta, Bool_t mod1, Bool_t mod2)
             Bool_t Truck(Int_t x, Int_t y, Int_t xDelta, Int_t yDelta)
             Bool_t Rotate(Int_t xDelta, Int_t yDelta)
               void Apply(const TGLBoundingBox& box, const TGLRect* pickRect = 0)
            TClass* Class()
            TClass* IsA() const
               void ShowMembers(TMemberInspector& insp, char* parent)
               void Streamer(TBuffer& b)
               void StreamerNVirtual(TBuffer& b)


Author: Richard Maunder 25/05/2005
Last update: root/gl:$Name: $:$Id: TGLCamera.cxx,v 1.13 2005/06/24 14:53:02 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *


ROOT page - Class index - Class Hierarchy - Top of the page

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.