class TGLSceneInfo

 TGLSceneInfo

 Base class for extended scene context.

 Scenes can be shared among several viewers and each scene needs to
 cache some viewer/camera/clipping specific state => this is a
 storage class for this data.

 Sub-classes of TGLSceneBase can override the virtual
 CreateSceneInfo() method and in it instantiate a sub-class of
 TGLSceneInfo containing the needed information. See TGLScene and
 inner class SceneInfo; note that some casting is needed in actual
 methods as TGLRnrCtx holds the base-class pointer.

Function Members (Methods)

public:
TGLSceneInfo(TGLViewerBase* view = 0, TGLSceneBase* scene = 0)
virtual~TGLSceneInfo()
UInt_tCameraStamp() const
static TClass*Class()
TGLClip*Clip() const
Char_tClipMode() const
voidClipMode(Char_t m)
vector<TGLPlane>&ClipPlanes()
UInt_tClipStamp() const
vector<TGLPlane>&FrustumPlanes()
Bool_tGetActive() const
TGLSceneBase*GetScene() const
const TGLBoundingBox&GetTransformedBBox()
TGLViewerBase*GetViewer() const
voidInClip(Bool_t c)
voidInFrustum(Bool_t f)
virtual TClass*IsA() const
Bool_tIsInClip() const
Bool_tIsInFrustum() const
Bool_tIsVisible() const
TGLCamera*LastCamera() const
TGLClip*LastClip() const
Short_tLastLOD() const
Short_tLastStyle() const
Short_tLOD() const
TGLSceneBase&RefScene() const
TGLViewerBase&RefViewer() const
voidResetCameraStamp()
voidResetClipStamp()
voidResetSceneStamp()
UInt_tSceneStamp() const
voidSetActive(Bool_t a)
voidSetCameraStamp(UInt_t ts)
voidSetClip(TGLClip* p)
voidSetClipStamp(UInt_t ts)
voidSetLastCamera(TGLCamera* p)
voidSetLastClip(TGLClip* p)
voidSetLastLOD(Short_t ld)
voidSetLastStyle(Short_t st)
voidSetLOD(Short_t lod)
voidSetSceneStamp(UInt_t ts)
virtual voidSetSceneTrans(TGLMatrix&)
voidSetStyle(Short_t st)
voidSetupTransformsAndBBox()
Bool_tShouldClip() const
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
Short_tStyle() const
Bool_tViewCheck() const
voidViewCheck(Bool_t c)
private:
TGLSceneInfo(const TGLSceneInfo&)
TGLSceneInfo&operator=(const TGLSceneInfo&)

Data Members

public:
enum EClipTest { kClipNone
kClipOutside
kClipInside
};
protected:
Bool_tfActiveShow fScene in fViewer
UInt_tfCameraStampCamera's time-stamp on last update.
TGLClip*fClipOptional override of clipping-plane
Char_tfClipModeClipping mode, can be disbled.
TGLPlaneSet_tfClipPlanesClipping planes from clip-object; which planes are kept depends on inside/outside mode.
UInt_tfClipStampClip's time-stamp on last update.
TGLPlaneSet_tfFrustumPlanesClipping planes defined by frustum; only those intersecting the scene volume are kept.
Bool_tfInClipIs scene contained within clipping-volume.
Bool_tfInFrustumIs scene intersecting view-frustum.
Short_tfLODOptional override of scene lod
TGLCamera*fLastCameraLast camera used.
TGLClip*fLastClipLast combined viewer/scene clip (set in scene::update)
Short_tfLastLODLast combined viewer/scene lod (set in scene::lodofy-scene-info).
Short_tfLastStyleLast combined viewer/scene style (set in scene::pre-render).
TGLSceneBase*fScene
UInt_tfSceneStampScene's time-stamp on last update.
Short_tfStyleOptional override of scene style
TGLBoundingBoxfTransformedBBox
Bool_tfViewCheckViewer side check if render is necessary.
TGLViewerBase*fViewer

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TGLSceneInfo(TGLViewerBase* view = 0, TGLSceneBase* scene = 0)
 Default constructor.
void SetActive(Bool_t a)
 Set active state of the scene, mark viewer as changed.
void SetupTransformsAndBBox()
 Combine information from scene, scene-info and camera (should be
 optional) into transformation matrices.

 Transform scene bounding box using this transformation.
TGLSceneInfo(const TGLSceneInfo& )
TGLSceneInfo& operator=(const TGLSceneInfo& )
virtual ~TGLSceneInfo()
{}
TGLViewerBase * GetViewer()
{ return fViewer; }
TGLViewerBase & RefViewer()
{ return *fViewer; }
TGLSceneBase * GetScene()
{ return fScene; }
TGLSceneBase & RefScene()
{ return *fScene; }
Bool_t GetActive()
{ return fActive; }
const TGLBoundingBox& GetTransformedBBox()
{ return fTransformedBBox; }
void SetSceneTrans(TGLMatrix& )
{ ResetSceneStamp(); }
Bool_t ViewCheck(Bool_t c)
{ return fViewCheck; }
void ViewCheck(Bool_t c)
{ fViewCheck = c; }
Bool_t IsInFrustum()
{ return fInFrustum; }
void InFrustum(Bool_t f)
{ fInFrustum = f; }
Bool_t IsInClip()
{ return fInClip; }
void InClip(Bool_t c)
{ fInClip = c; }
Char_t ClipMode(Char_t m)
{ return fClipMode; }
void ClipMode(Char_t m)
{ fClipMode = m; }
Bool_t ShouldClip()
{ return fClipMode != kClipNone; }
Bool_t IsVisible()
{ return fInFrustum && fInClip; }
std::vector<TGLPlane>& FrustumPlanes()
{ return fFrustumPlanes; }
std::vector<TGLPlane>& ClipPlanes()
{ return fClipPlanes; }
Short_t LOD()
{ return fLOD; }
void SetLOD(Short_t lod)
{ fLOD = lod; }
Short_t Style()
{ return fStyle; }
void SetStyle(Short_t st)
{ fStyle = st; }
void SetClip(TGLClip* p)
{ fClip = p; }
Short_t LastLOD()
{ return fLastLOD; }
void SetLastLOD(Short_t ld)
{ fLastLOD = ld; }
Short_t LastStyle()
{ return fLastStyle; }
void SetLastStyle(Short_t st)
{ fLastStyle = st; }
TGLClip* LastClip()
{ return fLastClip; }
void SetLastClip(TGLClip* p)
{ fLastClip = p; }
TGLCamera* LastCamera()
{ return fLastCamera; }
void SetLastCamera(TGLCamera* p)
{ fLastCamera = p; }
UInt_t SceneStamp()
{ return fSceneStamp; }
void SetSceneStamp(UInt_t ts)
{ fSceneStamp = ts; }
void ResetSceneStamp()
{ fSceneStamp = 0; }
UInt_t ClipStamp()
{ return fClipStamp; }
void SetClipStamp(UInt_t ts)
{ fClipStamp = ts; }
void ResetClipStamp()
{ fClipStamp = 0; }
UInt_t CameraStamp()
{ return fCameraStamp; }
void SetCameraStamp(UInt_t ts)
{ fCameraStamp = ts; }
void ResetCameraStamp()
{ fCameraStamp = 0; }

Author: Matevz Tadel, Feb 2007
Last change: root/gl:$Id: TGLSceneInfo.h 20882 2007-11-19 11:31:26Z rdm $
Last generated: 2008-06-25 08:41
Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *

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.