ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Friends | List of all members
TGLScene Class Reference

TGLScene provides management and rendering of ROOT's default 3D /object representation as logical and physical shapes.

A GL scene is the container for all the viewable objects (shapes) loaded into the viewer. It consists of two main stl::maps containing the TGLLogicalShape and TGLPhysicalShape collections, and interface functions enabling viewers to manage objects in these. The physical shapes defined the placement of copies of the logical shapes - see TGLLogicalShape/TGLPhysicalShape for more information on relationship

The scene can be drawn by owning viewer, passing camera, draw style & quality (LOD), clipping etc - see Draw(). The scene can also be drawn for selection in similar fashion - see Select(). The scene keeps track of a single selected physical - which can be modified by viewers.

The scene maintains a lazy calculated bounding box for the total scene extents, axis aligned round TGLPhysicalShape shapes.

Currently a scene is owned exclusively by one viewer - however it is intended that it could easily be shared by multiple viewers - for efficiency and synchronisation reasons. Hence viewer variant objects camera, clips etc being owned by viewer and passed at draw/select

Definition at line 30 of file TGLScene.h.

Classes

struct  DrawElement_t
 
class  TSceneInfo
 

Public Types

typedef std::map< TObject
*, TGLLogicalShape * > 
LogicalShapeMap_t
 
typedef
LogicalShapeMap_t::value_type 
LogicalShapeMapValueType_t
 
typedef LogicalShapeMap_t::iterator LogicalShapeMapIt_t
 
typedef
LogicalShapeMap_t::const_iterator 
LogicalShapeMapCIt_t
 
typedef std::map< UInt_t,
TGLPhysicalShape * > 
PhysicalShapeMap_t
 
typedef
PhysicalShapeMap_t::value_type 
PhysicalShapeMapValueType_t
 
typedef
PhysicalShapeMap_t::iterator 
PhysicalShapeMapIt_t
 
typedef
PhysicalShapeMap_t::const_iterator 
PhysicalShapeMapCIt_t
 
typedef std::vector
< DrawElement_t
DrawElementVec_t
 
typedef std::vector
< DrawElement_t >::iterator 
DrawElementVec_i
 
typedef std::vector
< DrawElement_t * > 
DrawElementPtrVec_t
 
typedef std::vector
< DrawElement_t * >::iterator 
DrawElementPtrVec_i
 
typedef std::vector< const
TGLPhysicalShape * > 
ShapeVec_t
 
typedef ShapeVec_t::iterator ShapeVec_i
 
- Public Types inherited from TGLLockable
enum  ELock { kUnlocked, kDrawLock, kSelectLock, kModifyLock }
 

Public Member Functions

 TGLScene ()
 
virtual ~TGLScene ()
 Destroy scene objects. More...
 
virtual void CalcBoundingBox () const
 Encapsulates all physical shapes bounding box with axes aligned box. More...
 
virtual TSceneInfoCreateSceneInfo (TGLViewerBase *view)
 Create a scene-info instance appropriate for this scene class. More...
 
virtual void RebuildSceneInfo (TGLRnrCtx &rnrCtx)
 Major change in scene, need to rebuild all-element draw-vector and sort it. More...
 
virtual void UpdateSceneInfo (TGLRnrCtx &rnrCtx)
 Fill scene-info with information needed for rendering, take into account the render-context (viewer state, camera, clipping). More...
 
virtual void LodifySceneInfo (TGLRnrCtx &rnrCtx)
 Setup LOD-dependant values in scene-info. More...
 
virtual void PreDraw (TGLRnrCtx &rnrCtx)
 Initialize rendering. More...
 
virtual void RenderOpaque (TGLRnrCtx &rnrCtx)
 Render opaque elements. More...
 
virtual void RenderTransp (TGLRnrCtx &rnrCtx)
 Render transparent elements. More...
 
virtual void RenderSelOpaque (TGLRnrCtx &rnrCtx)
 Render selected opaque elements. More...
 
virtual void RenderSelTransp (TGLRnrCtx &rnrCtx)
 Render selected transparent elements. More...
 
virtual void RenderSelOpaqueForHighlight (TGLRnrCtx &rnrCtx)
 Render selected opaque elements for highlight. More...
 
virtual void RenderSelTranspForHighlight (TGLRnrCtx &rnrCtx)
 Render selected transparent elements for highlight. More...
 
virtual void RenderHighlight (TGLRnrCtx &rnrCtx, DrawElementPtrVec_t &elVec)
 
virtual void PostDraw (TGLRnrCtx &rnrCtx)
 Called after the rendering is finished. More...
 
virtual void RenderAllPasses (TGLRnrCtx &rnrCtx, DrawElementPtrVec_t &elVec, Bool_t check_timeout)
 Do full rendering of scene. More...
 
virtual void RenderElements (TGLRnrCtx &rnrCtx, DrawElementPtrVec_t &elVec, Bool_t check_timeout, const TGLPlaneSet_t *clipPlanes=0)
 Render DrawElements in elementVec with given timeout. More...
 
virtual Bool_t ResolveSelectRecord (TGLSelectRecord &rec, Int_t curIdx)
 Process selection record rec. More...
 
virtual void AdoptLogical (TGLLogicalShape &shape)
 Adopt dynamically created logical 'shape' - add to internal map and take responsibility for deleting. More...
 
virtual Bool_t DestroyLogical (TObject *logid, Bool_t mustFind=kTRUE)
 Destroy logical shape defined by unique 'ID'. More...
 
virtual Int_t DestroyLogicals ()
 Destroy all logical shapes in scene. More...
 
virtual TGLLogicalShapeFindLogical (TObject *logid) const
 Find and return logical shape identified by unique logid. More...
 
virtual void AdoptPhysical (TGLPhysicalShape &shape)
 Adopt dynamically created physical 'shape' - add to internal map and take responsibility for deleting. More...
 
virtual Bool_t DestroyPhysical (UInt_t phid)
 Destroy physical shape defined by unique 'ID'. More...
 
virtual Int_t DestroyPhysicals ()
 Destroy physical shapes. More...
 
virtual TGLPhysicalShapeFindPhysical (UInt_t phid) const
 Find and return physical shape identified by unique 'ID'. More...
 
virtual UInt_t GetMaxPhysicalID ()
 Returns the maximum used physical id. More...
 
virtual Bool_t BeginUpdate ()
 Put scene in update mode, return true if lock acquired. More...
 
virtual void EndUpdate (Bool_t minorChange=kTRUE, Bool_t sceneChanged=kTRUE, Bool_t updateViewers=kTRUE)
 Exit scene update mode. More...
 
virtual void UpdateLogical (TObject *logid)
 Drop display-lists for the logical (assume TGLObject/direct rendering). More...
 
virtual void UpdatePhysical (UInt_t phid, Double_t *trans, UChar_t *col)
 Reposition/recolor physical shape. More...
 
virtual void UpdatePhysical (UInt_t phid, Double_t *trans, Color_t cidx=-1, UChar_t transp=0)
 Reposition/recolor physical shape. More...
 
virtual void UpdatePhysioLogical (TObject *logid, Double_t *trans, UChar_t *col)
 Reposition/recolor physical for given logical (assume TGLObject and a single physical). More...
 
virtual void UpdatePhysioLogical (TObject *logid, Double_t *trans, Color_t cidx, UChar_t transp)
 Reposition/recolor physical for given logical (assume TGLObject and a single physical). More...
 
LogicalShapeMap_tRefLogicalShapes ()
 
UInt_t BeginSmartRefresh ()
 Moves logicals that support smart-refresh to intermediate cache. More...
 
void EndSmartRefresh ()
 Wipes logicals in refresh-cache. More...
 
TGLLogicalShapeFindLogicalSmartRefresh (TObject *ID) const
 Find and return logical shape identified by unique 'ID' in refresh-cache. More...
 
TGLContextIdentityGetGLCtxIdentity () const
 
UInt_t SizeOfScene () const
 Return memory cost of scene. More...
 
void DumpMapSizes () const
 Print sizes of logical and physical-shape maps. More...
 
 ClassDef (TGLScene, 0)
 
- Public Member Functions inherited from TGLSceneBase
 TGLSceneBase ()
 
virtual ~TGLSceneBase ()
 Destructor. More...
 
void AddViewer (TGLViewerBase *viewer)
 Add viewer to the list. More...
 
void RemoveViewer (TGLViewerBase *viewer)
 Remove viewer from the list. More...
 
void TagViewersChanged ()
 Tag all viewers as changed. More...
 
virtual const char * LockIdStr () const
 Name printed on locking info messages. More...
 
virtual const char * GetName () const
 
virtual const char * GetTitle () const
 
virtual void SetName (const char *name)
 
virtual void SetTitle (const char *title)
 
virtual void SetNameTitle (const char *name, const char *title)
 
virtual void PreRender (TGLRnrCtx &rnrCtx)
 Perform pre-render initialization - fill rnrCtx with values stored during PreDraw(). More...
 
virtual void Render (TGLRnrCtx &rnrCtx)
 This function does rendering of all stages, the shapes are rendered in the following order: opaque, transparent, selected-opaque, selected-transparent. More...
 
virtual void PostRender (TGLRnrCtx &rnrCtx)
 Perform post-render clean-up. More...
 
UInt_t GetTimeStamp () const
 
void IncTimeStamp ()
 
UInt_t GetMinorStamp () const
 
void IncMinorStamp ()
 
Short_t LOD () const
 
void SetLOD (Short_t lod)
 
Short_t Style () const
 
void SetStyle (Short_t st)
 
TGLClipClip () const
 
void SetClip (TGLClip *p)
 
Bool_t GetSelectable () const
 
void SetSelectable (Bool_t a)
 
Bool_t GetAutoDestruct () const
 
void SetAutoDestruct (Bool_t a)
 
void InvalidateBoundingBox ()
 
const TGLBoundingBoxBoundingBox () const
 
- Public Member Functions inherited from TGLLockable
 TGLLockable ()
 
virtual ~TGLLockable ()
 
Bool_t TakeLock (ELock lock) const
 Lock the object in mode 'lock'. More...
 
Bool_t ReleaseLock (ELock lock) const
 Release current lock, make sure it the same as the 'lock' argument. More...
 
Bool_t IsLocked () const
 
ELock CurrentLock () const
 
Bool_t IsDrawOrSelectLock () const
 
 ClassDef (TGLLockable, 0)
 

Static Public Member Functions

static void RGBAFromColorIdx (Float_t rgba[4], Color_t ci, Char_t transp=0)
 Fill rgba color from ROOT color-index ci and transparency (0->100). More...
 
static Bool_t IsOutside (const TGLBoundingBox &box, const TGLPlaneSet_t &planes)
 Check if box is outside of all planes. More...
 
- Static Public Member Functions inherited from TGLLockable
static const char * LockName (ELock lock)
 Return name-string for given lock-type. More...
 
static Bool_t LockValid (ELock lock)
 Test if lock is a valid type to take/release. More...
 

Protected Member Functions

virtual void DestroyPhysicalInternal (PhysicalShapeMapIt_t pit)
 Virtual function to destroy a physical. More...
 
void ReleaseGLCtxIdentity ()
 Release all GL resources for current context identity. More...
 

Protected Attributes

LogicalShapeMap_t fLogicalShapes
 
PhysicalShapeMap_t fPhysicalShapes
 
TGLContextIdentityfGLCtxIdentity
 
Bool_t fInSmartRefresh
 
LogicalShapeMap_t fSmartRefreshCache
 
Float_t fLastPointSizeScale
 
Float_t fLastLineWidthScale
 
- Protected Attributes inherited from TGLSceneBase
UInt_t fSceneID
 
TString fName
 
TString fTitle
 
UInt_t fTimeStamp
 
UInt_t fMinorStamp
 
Short_t fLOD
 
Short_t fStyle
 
Float_t fWFLineW
 
Float_t fOLLineW
 
TGLClipfClip
 
Bool_t fSelectable
 
TGLBoundingBox fBoundingBox
 
Bool_t fBoundingBoxValid
 
Bool_t fDoFrustumCheck
 
Bool_t fDoClipCheck
 
ViewerList_t fViewers
 
Bool_t fAutoDestruct
 
- Protected Attributes inherited from TGLLockable
ELock fLock
 

Private Member Functions

 TGLScene (const TGLScene &)
 
TGLSceneoperator= (const TGLScene &)
 

Static Private Member Functions

static Bool_t ComparePhysicalVolumes (const TGLPhysicalShape *shape1, const TGLPhysicalShape *shape2)
 Compare 'shape1' and 'shape2' bounding box volumes - return kTRUE if 'shape1' bigger than 'shape2'. More...
 
static Bool_t ComparePhysicalDiagonals (const TGLPhysicalShape *shape1, const TGLPhysicalShape *shape2)
 Compare 'shape1' and 'shape2' bounding box volumes - return kTRUE if 'shape1' bigger than 'shape2'. More...
 

Friends

class TSceneInfo
 

Additional Inherited Members

- Protected Types inherited from TGLSceneBase
typedef std::list
< TGLViewerBase * > 
ViewerList_t
 
typedef std::list
< TGLViewerBase * >::iterator 
ViewerList_i
 

#include <TGLScene.h>

Inheritance diagram for TGLScene:
[legend]

Member Typedef Documentation

typedef std::vector<DrawElement_t*>::iterator TGLScene::DrawElementPtrVec_i

Definition at line 71 of file TGLScene.h.

Definition at line 70 of file TGLScene.h.

typedef std::vector<DrawElement_t>::iterator TGLScene::DrawElementVec_i

Definition at line 68 of file TGLScene.h.

Definition at line 67 of file TGLScene.h.

Definition at line 43 of file TGLScene.h.

typedef LogicalShapeMap_t::const_iterator TGLScene::LogicalShapeMapCIt_t

Definition at line 46 of file TGLScene.h.

typedef LogicalShapeMap_t::iterator TGLScene::LogicalShapeMapIt_t

Definition at line 45 of file TGLScene.h.

typedef LogicalShapeMap_t::value_type TGLScene::LogicalShapeMapValueType_t

Definition at line 44 of file TGLScene.h.

Definition at line 49 of file TGLScene.h.

typedef PhysicalShapeMap_t::const_iterator TGLScene::PhysicalShapeMapCIt_t

Definition at line 52 of file TGLScene.h.

typedef PhysicalShapeMap_t::iterator TGLScene::PhysicalShapeMapIt_t

Definition at line 51 of file TGLScene.h.

typedef PhysicalShapeMap_t::value_type TGLScene::PhysicalShapeMapValueType_t

Definition at line 50 of file TGLScene.h.

typedef ShapeVec_t::iterator TGLScene::ShapeVec_i

Definition at line 75 of file TGLScene.h.

typedef std::vector<const TGLPhysicalShape*> TGLScene::ShapeVec_t

Definition at line 74 of file TGLScene.h.

Constructor & Destructor Documentation

TGLScene::TGLScene ( const TGLScene )
private
TGLScene::TGLScene ( )

Definition at line 278 of file TGLScene.cxx.

TGLScene::~TGLScene ( )
virtual

Destroy scene objects.

Definition at line 289 of file TGLScene.cxx.

Member Function Documentation

void TGLScene::AdoptLogical ( TGLLogicalShape shape)
virtual

Adopt dynamically created logical 'shape' - add to internal map and take responsibility for deleting.

Definition at line 1015 of file TGLScene.cxx.

Referenced by TGLScenePad::AddObject(), TGLScenePad::AttemptDirectRenderer(), TGLScenePad::ComposePolymarker(), and TGLScenePad::ObjectPaint().

void TGLScene::AdoptPhysical ( TGLPhysicalShape shape)
virtual

Adopt dynamically created physical 'shape' - add to internal map and take responsibility for deleting.

Definition at line 1126 of file TGLScene.cxx.

Referenced by TGLScenePad::AddHistoPhysical(), and TGLScenePad::AddObject().

UInt_t TGLScene::BeginSmartRefresh ( )

Moves logicals that support smart-refresh to intermediate cache.

Destroys the others and returns the number of destroyed ones.

Definition at line 1413 of file TGLScene.cxx.

Referenced by TGLScenePad::BeginScene().

Bool_t TGLScene::BeginUpdate ( )
virtual

Put scene in update mode, return true if lock acquired.

Definition at line 1242 of file TGLScene.cxx.

Referenced by TGLScenePad::BeginScene(), TEveScene::DestroyElementRenderers(), TEveSceneList::ProcessSceneChanges(), and TEveScene::RetransHierarchically().

void TGLScene::CalcBoundingBox ( ) const
virtual

Encapsulates all physical shapes bounding box with axes aligned box.

Validity checked in the base-class.

Implements TGLSceneBase.

Definition at line 974 of file TGLScene.cxx.

TGLScene::ClassDef ( TGLScene  ,
 
)
Bool_t TGLScene::ComparePhysicalDiagonals ( const TGLPhysicalShape shape1,
const TGLPhysicalShape shape2 
)
inlinestaticprivate

Compare 'shape1' and 'shape2' bounding box volumes - return kTRUE if 'shape1' bigger than 'shape2'.

Definition at line 363 of file TGLScene.cxx.

Referenced by RebuildSceneInfo().

Bool_t TGLScene::ComparePhysicalVolumes ( const TGLPhysicalShape shape1,
const TGLPhysicalShape shape2 
)
inlinestaticprivate

Compare 'shape1' and 'shape2' bounding box volumes - return kTRUE if 'shape1' bigger than 'shape2'.

Definition at line 353 of file TGLScene.cxx.

TGLScene::TSceneInfo * TGLScene::CreateSceneInfo ( TGLViewerBase view)
virtual

Create a scene-info instance appropriate for this scene class.

Here we instantiate the inner class TSceneInfo that includes camera/clipping specific draw-list containers.

Reimplemented from TGLSceneBase.

Definition at line 344 of file TGLScene.cxx.

Bool_t TGLScene::DestroyLogical ( TObject logid,
Bool_t  mustFind = kTRUE 
)
virtual

Destroy logical shape defined by unique 'ID'.

Returns kTRUE if found/destroyed - kFALSE otherwise.

If mustFind is true, an error is reported if the logical is not found.

Definition at line 1033 of file TGLScene.cxx.

Referenced by TEveScene::DestroyElementRenderers().

Int_t TGLScene::DestroyLogicals ( )
virtual

Destroy all logical shapes in scene.

Return number of destroyed logicals.

Definition at line 1070 of file TGLScene.cxx.

Referenced by TGLScenePad::BeginScene(), and ~TGLScene().

Bool_t TGLScene::DestroyPhysical ( UInt_t  phid)
virtual

Destroy physical shape defined by unique 'ID'.

Returns kTRUE if found/destroyed - kFALSE otherwise.

Definition at line 1156 of file TGLScene.cxx.

void TGLScene::DestroyPhysicalInternal ( PhysicalShapeMapIt_t  pit)
protectedvirtual

Virtual function to destroy a physical.

Sub-classes might have special checks to perform. Caller should also invalidate the draw-list.

Definition at line 1146 of file TGLScene.cxx.

Referenced by DestroyLogical(), and DestroyPhysical().

Int_t TGLScene::DestroyPhysicals ( )
virtual

Destroy physical shapes.

Definition at line 1180 of file TGLScene.cxx.

Referenced by TGLScenePad::BeginScene(), and ~TGLScene().

void TGLScene::DumpMapSizes ( ) const

Print sizes of logical and physical-shape maps.

Definition at line 1520 of file TGLScene.cxx.

Referenced by TGLScenePad::BeginScene(), and TGLScenePad::EndScene().

void TGLScene::EndSmartRefresh ( )

Wipes logicals in refresh-cache.

Definition at line 1436 of file TGLScene.cxx.

Referenced by TGLScenePad::EndScene().

void TGLScene::EndUpdate ( Bool_t  minorChange = kTRUE,
Bool_t  sceneChanged = kTRUE,
Bool_t  updateViewers = kTRUE 
)
virtual

Exit scene update mode.

If sceneChanged is true (default), the scene timestamp is increased and basic draw-lists etc will be rebuild on next draw request. If you only changed colors or some other visual parameters that do not affect object bounding-box or transformation matrix, you can set it to false.

If updateViewers is true (default), the viewers using this scene will be tagged as changed. If sceneChanged is true the updateViewers should be true as well, unless you take care of the viewers elsewhere or in some other way.

Definition at line 1262 of file TGLScene.cxx.

Referenced by TEveScene::DestroyElementRenderers(), TGLScenePad::EndScene(), TEveSceneList::ProcessSceneChanges(), and TEveScene::RetransHierarchically().

TGLLogicalShape * TGLScene::FindLogical ( TObject logid) const
virtual

Find and return logical shape identified by unique logid.

Returns 0 if not found.

Reimplemented from TGLSceneBase.

Definition at line 1104 of file TGLScene.cxx.

Referenced by TGLScenePad::AddObject(), TEveGeoPolyShape::Construct(), TEveGeoNode::DumpShapeTree(), TGLViewerBase::FindLogicalInScenes(), UpdateLogical(), and UpdatePhysioLogical().

TGLLogicalShape * TGLScene::FindLogicalSmartRefresh ( TObject ID) const

Find and return logical shape identified by unique 'ID' in refresh-cache.

Returns 0 if not found.

Definition at line 1452 of file TGLScene.cxx.

Referenced by FindLogical().

TGLPhysicalShape * TGLScene::FindPhysical ( UInt_t  phid) const
virtual

Find and return physical shape identified by unique 'ID'.

Returns 0 if not found.

Definition at line 1218 of file TGLScene.cxx.

Referenced by TGLScenePad::AddObject(), ResolveSelectRecord(), and UpdatePhysical().

TGLContextIdentity* TGLScene::GetGLCtxIdentity ( ) const
inline

Definition at line 232 of file TGLScene.h.

Referenced by TGLLogicalShape::PurgeDLRange().

UInt_t TGLScene::GetMaxPhysicalID ( )
virtual

Returns the maximum used physical id.

Returns 0 if empty.

Definition at line 1228 of file TGLScene.cxx.

Referenced by TGLScene::TSceneInfo::DumpDrawStats().

Bool_t TGLScene::IsOutside ( const TGLBoundingBox box,
const TGLPlaneSet_t planes 
)
static

Check if box is outside of all planes.

Definition at line 1540 of file TGLScene.cxx.

Referenced by RenderElements().

void TGLScene::LodifySceneInfo ( TGLRnrCtx rnrCtx)
virtual

Setup LOD-dependant values in scene-info.

We have to perform LOD quantization for all draw-elements.

Reimplemented from TGLSceneBase.

Definition at line 541 of file TGLScene.cxx.

TGLScene& TGLScene::operator= ( const TGLScene )
private
void TGLScene::PostDraw ( TGLRnrCtx rnrCtx)
virtual

Called after the rendering is finished.

In debug mode draw statistics is dumped. Parent's PostDraw is called for GL cleanup.

Reimplemented from TGLSceneBase.

Definition at line 704 of file TGLScene.cxx.

void TGLScene::PreDraw ( TGLRnrCtx rnrCtx)
virtual

Initialize rendering.

Pass to base-class where most work is done. Check if GL-ctx is shared with the previous one; if not wipe display-lists of all logicals.

Reimplemented from TGLSceneBase.

Definition at line 565 of file TGLScene.cxx.

void TGLScene::RebuildSceneInfo ( TGLRnrCtx rnrCtx)
virtual

Major change in scene, need to rebuild all-element draw-vector and sort it.

Sort the TGLPhysical draw list by shape bounding box diagonal, from large to small. This makes dropout of shapes with time limited Draw() calls must less noticeable. As this does not use projected size it only needs to be done after a scene content change - not every time scene drawn (potential camera/projection change).

Reimplemented from TGLSceneBase.

Definition at line 379 of file TGLScene.cxx.

LogicalShapeMap_t& TGLScene::RefLogicalShapes ( )
inline

Definition at line 218 of file TGLScene.h.

Referenced by TEveSceneList::ProcessSceneChanges(), and TEveScene::Repaint().

void TGLScene::ReleaseGLCtxIdentity ( )
protected

Release all GL resources for current context identity.

Requires iteration over all logical shapes.

Definition at line 308 of file TGLScene.cxx.

Referenced by PreDraw(), and ~TGLScene().

void TGLScene::RenderAllPasses ( TGLRnrCtx rnrCtx,
DrawElementPtrVec_t elVec,
Bool_t  check_timeout 
)
virtual

Do full rendering of scene.

First draw the opaques, then the transparents. For each we do the number of passes required by draw mode and clipping setup.

Definition at line 722 of file TGLScene.cxx.

Referenced by RenderHighlight(), RenderOpaque(), RenderSelOpaque(), RenderSelTransp(), and RenderTransp().

void TGLScene::RenderElements ( TGLRnrCtx rnrCtx,
DrawElementPtrVec_t elVec,
Bool_t  check_timeout,
const TGLPlaneSet_t clipPlanes = 0 
)
virtual

Render DrawElements in elementVec with given timeout.

If clipPlanes is non-zero, test each element against its clipping planes.

Definition at line 890 of file TGLScene.cxx.

Referenced by RenderAllPasses().

void TGLScene::RenderHighlight ( TGLRnrCtx rnrCtx,
DrawElementPtrVec_t elVec 
)
virtual

Definition at line 669 of file TGLScene.cxx.

Referenced by RenderSelOpaqueForHighlight(), and RenderSelTranspForHighlight().

void TGLScene::RenderOpaque ( TGLRnrCtx rnrCtx)
virtual

Render opaque elements.

Reimplemented from TGLSceneBase.

Definition at line 610 of file TGLScene.cxx.

void TGLScene::RenderSelOpaque ( TGLRnrCtx rnrCtx)
virtual

Render selected opaque elements.

Reimplemented from TGLSceneBase.

Definition at line 630 of file TGLScene.cxx.

void TGLScene::RenderSelOpaqueForHighlight ( TGLRnrCtx rnrCtx)
virtual

Render selected opaque elements for highlight.

Reimplemented from TGLSceneBase.

Definition at line 650 of file TGLScene.cxx.

void TGLScene::RenderSelTransp ( TGLRnrCtx rnrCtx)
virtual

Render selected transparent elements.

Reimplemented from TGLSceneBase.

Definition at line 640 of file TGLScene.cxx.

void TGLScene::RenderSelTranspForHighlight ( TGLRnrCtx rnrCtx)
virtual

Render selected transparent elements for highlight.

Reimplemented from TGLSceneBase.

Definition at line 660 of file TGLScene.cxx.

void TGLScene::RenderTransp ( TGLRnrCtx rnrCtx)
virtual

Render transparent elements.

Reimplemented from TGLSceneBase.

Definition at line 620 of file TGLScene.cxx.

Bool_t TGLScene::ResolveSelectRecord ( TGLSelectRecord rec,
Int_t  curIdx 
)
virtual

Process selection record rec.

'curIdx' is the item position where the scene should start its processing. Return TRUE if an object has been identified or FALSE otherwise. The scene-info member of the record is already set by the caller.

Reimplemented from TGLSceneBase.

Definition at line 947 of file TGLScene.cxx.

void TGLScene::RGBAFromColorIdx ( Float_t  rgba[4],
Color_t  ci,
Char_t  transp = 0 
)
static

Fill rgba color from ROOT color-index ci and transparency (0->100).

Definition at line 1529 of file TGLScene.cxx.

Referenced by TGLScenePad::CreateNewPhysical(), UpdatePhysical(), and UpdatePhysioLogical().

UInt_t TGLScene::SizeOfScene ( ) const

Return memory cost of scene.

Warning: NOT CORRECT at present - doesn't correctly calculate size. of logical shapes with dynamic internal contents.

Definition at line 1488 of file TGLScene.cxx.

void TGLScene::UpdateLogical ( TObject logid)
virtual

Drop display-lists for the logical (assume TGLObject/direct rendering).

Re-calculate the bounding box (also for all physicals).

Definition at line 1280 of file TGLScene.cxx.

void TGLScene::UpdatePhysical ( UInt_t  phid,
Double_t trans,
UChar_t col 
)
virtual

Reposition/recolor physical shape.

Definition at line 1301 of file TGLScene.cxx.

void TGLScene::UpdatePhysical ( UInt_t  phid,
Double_t trans,
Color_t  cidx = -1,
UChar_t  transp = 0 
)
virtual

Reposition/recolor physical shape.

Definition at line 1322 of file TGLScene.cxx.

void TGLScene::UpdatePhysioLogical ( TObject logid,
Double_t trans,
UChar_t col 
)
virtual

Reposition/recolor physical for given logical (assume TGLObject and a single physical).

Definition at line 1349 of file TGLScene.cxx.

Referenced by TEveScene::RetransHierarchicallyRecurse().

void TGLScene::UpdatePhysioLogical ( TObject logid,
Double_t trans,
Color_t  cidx,
UChar_t  transp 
)
virtual

Reposition/recolor physical for given logical (assume TGLObject and a single physical).

Definition at line 1376 of file TGLScene.cxx.

void TGLScene::UpdateSceneInfo ( TGLRnrCtx rnrCtx)
virtual

Fill scene-info with information needed for rendering, take into account the render-context (viewer state, camera, clipping).

Here we have to iterate over all the physical shapes and select the visible ones. While at it, opaque and transparent shapes are divided into two groups.

Reimplemented from TGLSceneBase.

Definition at line 423 of file TGLScene.cxx.

Friends And Related Function Documentation

friend class TSceneInfo
friend

Definition at line 123 of file TGLScene.h.

Referenced by CreateSceneInfo().

Member Data Documentation

TGLContextIdentity* TGLScene::fGLCtxIdentity
protected

Definition at line 133 of file TGLScene.h.

Referenced by GetGLCtxIdentity(), PreDraw(), ReleaseGLCtxIdentity(), and ~TGLScene().

Bool_t TGLScene::fInSmartRefresh
protected

Definition at line 137 of file TGLScene.h.

Referenced by BeginSmartRefresh(), EndSmartRefresh(), and FindLogical().

Float_t TGLScene::fLastLineWidthScale
protected

Definition at line 142 of file TGLScene.h.

Referenced by PreDraw().

Float_t TGLScene::fLastPointSizeScale
protected

Definition at line 141 of file TGLScene.h.

Referenced by PreDraw().

LogicalShapeMap_t TGLScene::fLogicalShapes
protected
PhysicalShapeMap_t TGLScene::fPhysicalShapes
protected
LogicalShapeMap_t TGLScene::fSmartRefreshCache
mutableprotected

Definition at line 138 of file TGLScene.h.

Referenced by BeginSmartRefresh(), EndSmartRefresh(), and FindLogicalSmartRefresh().

Collaboration diagram for TGLScene:
[legend]

The documentation for this class was generated from the following files: