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:
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& sceneBox, const TGLRect* pickRect = 0) static TClass* Class() virtual Bool_t Dolly(Int_t delta, Bool_t mod1, Bool_t mod2) void DrawDebugAids() const TGLVector3 EyeDirection() const TGLVertex3 EyePoint() 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] ! TGLBoundingBox fPreviousInterestBox ! previous interest box (DEBUG) TGLBoundingBox fInterestFrustum ! frustum basis of current interest box - NOT a true BB! (DEBUG) TGLBoundingBox fInterestFrustumAsBox ! frustum basis (as box) of current interest box (DEBUG) static const Double_t fgInterestBoxExpansion ! expansion c.f. aligned current frustum box 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() Double_t fLargestInterest ! largest box diagonal - used when bootstrapping interest box 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

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

TGLVertex3 EyePoint() const
 Extract the camera eye point using the current frustum planes

TGLVector3 EyeDirection() const
 Extract the camera eye direction using the current frustum planes

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

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& sceneBox, 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.16 2005/08/30 10:29:52 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.