Scene base-class – provides basic interface expected by the TGLViewer or its sub-classes:
The standard ROOT OpenGL scene is implemented in direct sub-class TGLScene.
Note that while each scene can be shared among several viewers, ALL of them are obliged to share the same display-list space (this can be achieved on GL-context creation time; Matevz believes that by default all GL contexts must use shared display-lists etc).
Definition at line 32 of file TGLSceneBase.h.
Public Member Functions | |
TGLSceneBase () | |
~TGLSceneBase () override | |
Destructor. | |
void | AddViewer (TGLViewerBase *viewer) |
Add viewer to the list. | |
const TGLBoundingBox & | BoundingBox () const |
virtual void | CalcBoundingBox () const =0 |
TGLClip * | Clip () const |
virtual TGLSceneInfo * | CreateSceneInfo (TGLViewerBase *view) |
Create a scene-info instance appropriate for this scene class. | |
virtual TGLLogicalShape * | FindLogical (TObject *) const |
Bool_t | GetAutoDestruct () const |
UInt_t | GetMinorStamp () const |
virtual const char * | GetName () const |
Bool_t | GetSelectable () const |
UInt_t | GetTimeStamp () const |
virtual const char * | GetTitle () const |
void | IncMinorStamp () |
void | IncTimeStamp () |
void | InvalidateBoundingBox () |
TClass * | IsA () const override |
const char * | LockIdStr () const override |
Name printed on locking info messages. | |
Short_t | LOD () const |
virtual void | LodifySceneInfo (TGLRnrCtx &ctx) |
Setup LOD-dependant values in scene-info. | |
virtual void | PostDraw (TGLRnrCtx &rnrCtx) |
Finalize drawing. | |
virtual void | PostRender (TGLRnrCtx &rnrCtx) |
Perform post-render clean-up. | |
virtual void | PreDraw (TGLRnrCtx &rnrCtx) |
Perform basic pre-render initialization: | |
virtual void | PreRender (TGLRnrCtx &rnrCtx) |
Perform pre-render initialization - fill rnrCtx with values stored during PreDraw(). | |
virtual void | RebuildSceneInfo (TGLRnrCtx &ctx) |
Fill scene-info with very basic information that is practically view independent. | |
void | RemoveViewer (TGLViewerBase *viewer) |
Remove viewer from the list. | |
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. | |
virtual void | RenderOpaque (TGLRnrCtx &rnrCtx) |
Render opaque elements. | |
virtual void | RenderSelOpaque (TGLRnrCtx &rnrCtx) |
Render selected opaque elements. | |
virtual void | RenderSelOpaqueForHighlight (TGLRnrCtx &rnrCtx) |
Render selected opaque elements for highlight. | |
virtual void | RenderSelTransp (TGLRnrCtx &rnrCtx) |
Render selected transparent elements for highlight. | |
virtual void | RenderSelTranspForHighlight (TGLRnrCtx &rnrCtx) |
Render selected transparent elements. | |
virtual void | RenderTransp (TGLRnrCtx &rnrCtx) |
Render transparent elements. | |
virtual Bool_t | ResolveSelectRecord (TGLSelectRecord &rec, Int_t curIdx) |
Process selection record rec. | |
void | SetAutoDestruct (Bool_t a) |
void | SetClip (TGLClip *p) |
void | SetLOD (Short_t lod) |
virtual void | SetName (const char *name) |
virtual void | SetNameTitle (const char *name, const char *title) |
void | SetSelectable (Bool_t a) |
void | SetStyle (Short_t st) |
virtual void | SetTitle (const char *title) |
void | Streamer (TBuffer &) override |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Short_t | Style () const |
void | TagViewersChanged () |
Tag all viewers as changed. | |
virtual void | UpdateSceneInfo (TGLRnrCtx &ctx) |
Fill scene-info with information needed for rendering, take into account the render-context (viewer state, camera, clipping). | |
Public Member Functions inherited from TGLLockable | |
TGLLockable () | |
virtual | ~TGLLockable () |
ELock | CurrentLock () const |
Bool_t | IsDrawOrSelectLock () const |
Bool_t | IsLocked () const |
Bool_t | ReleaseLock (ELock lock) const |
Release current lock, make sure it the same as the 'lock' argument. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Bool_t | TakeLock (ELock lock) const |
Lock the object in mode 'lock'. | |
Static Public Member Functions | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TGLLockable | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
static const char * | LockName (ELock lock) |
Return name-string for given lock-type. | |
static Bool_t | LockValid (ELock lock) |
Test if lock is a valid type to take/release. | |
Protected Types | |
typedef std::list< TGLViewerBase * >::iterator | ViewerList_i |
typedef std::list< TGLViewerBase * > | ViewerList_t |
Protected Attributes | |
Bool_t | fAutoDestruct |
TGLBoundingBox | fBoundingBox |
Bool_t | fBoundingBoxValid |
TGLClip * | fClip |
Bool_t | fDoClipCheck |
Bool_t | fDoFrustumCheck |
Short_t | fLOD |
UInt_t | fMinorStamp |
TString | fName |
Float_t | fOLLineW |
UInt_t | fSceneID |
Bool_t | fSelectable |
Short_t | fStyle |
UInt_t | fTimeStamp |
TString | fTitle |
ViewerList_t | fViewers |
Float_t | fWFLineW |
Protected Attributes inherited from TGLLockable | |
ELock | fLock |
Private Member Functions | |
TGLSceneBase (const TGLSceneBase &)=delete | |
TGLSceneBase & | operator= (const TGLSceneBase &)=delete |
Static Private Attributes | |
static UInt_t | fgSceneIDSrc = 1 |
Additional Inherited Members | |
Public Types inherited from TGLLockable | |
enum | ELock { kUnlocked , kDrawLock , kSelectLock , kModifyLock } |
#include <TGLSceneBase.h>
|
protected |
Definition at line 63 of file TGLSceneBase.h.
|
protected |
Definition at line 62 of file TGLSceneBase.h.
|
privatedelete |
TGLSceneBase::TGLSceneBase | ( | ) |
Definition at line 49 of file TGLSceneBase.cxx.
|
override |
Destructor.
Definition at line 75 of file TGLSceneBase.cxx.
void TGLSceneBase::AddViewer | ( | TGLViewerBase * | viewer | ) |
Add viewer to the list.
Definition at line 86 of file TGLSceneBase.cxx.
|
inline |
Definition at line 138 of file TGLSceneBase.h.
|
pure virtual |
Implemented in TGLScene.
|
static |
|
inlinestaticconstexpr |
Definition at line 142 of file TGLSceneBase.h.
|
inline |
Definition at line 125 of file TGLSceneBase.h.
|
virtual |
Create a scene-info instance appropriate for this scene class.
Here we instantiate the scene-info base-class TGLSceneInfo.
Reimplemented in TGLScene.
Definition at line 144 of file TGLSceneBase.cxx.
|
inlinestatic |
Definition at line 142 of file TGLSceneBase.h.
|
inlinevirtual |
Reimplemented in TGLScene.
Definition at line 105 of file TGLSceneBase.h.
|
inline |
Definition at line 131 of file TGLSceneBase.h.
|
inline |
Definition at line 116 of file TGLSceneBase.h.
|
inlinevirtual |
Definition at line 81 of file TGLSceneBase.h.
|
inline |
Definition at line 128 of file TGLSceneBase.h.
|
inline |
Definition at line 113 of file TGLSceneBase.h.
|
inlinevirtual |
Definition at line 82 of file TGLSceneBase.h.
|
inline |
Definition at line 117 of file TGLSceneBase.h.
|
inline |
Definition at line 114 of file TGLSceneBase.h.
|
inline |
Definition at line 137 of file TGLSceneBase.h.
|
inlineoverridevirtual |
Reimplemented from TGLLockable.
Reimplemented in TGLScenePad.
Definition at line 142 of file TGLSceneBase.h.
|
overridevirtual |
Name printed on locking info messages.
Reimplemented from TGLLockable.
Definition at line 131 of file TGLSceneBase.cxx.
|
inline |
Definition at line 119 of file TGLSceneBase.h.
|
virtual |
Setup LOD-dependant values in scene-info.
Nothing to be done here but to store the last LOD.
Reimplemented in TGLScene.
Definition at line 286 of file TGLSceneBase.cxx.
|
privatedelete |
|
virtual |
Finalize drawing.
This is called at the end of the GL-viewer draw cycle.
Reimplemented in TGLScene.
Definition at line 496 of file TGLSceneBase.cxx.
|
virtual |
Perform post-render clean-up.
Definition at line 483 of file TGLSceneBase.cxx.
|
virtual |
Perform basic pre-render initialization:
This is called in the beginning of the GL-viewer draw cycle.
Reimplemented in TGLScene.
Definition at line 311 of file TGLSceneBase.cxx.
|
virtual |
Perform pre-render initialization - fill rnrCtx with values stored during PreDraw().
This is called each time before RenderXyzz().
Definition at line 402 of file TGLSceneBase.cxx.
|
virtual |
Fill scene-info with very basic information that is practically view independent.
This is called when scene content is changed or when camera-interest changes.
Reimplemented in TGLScene.
Definition at line 154 of file TGLSceneBase.cxx.
void TGLSceneBase::RemoveViewer | ( | TGLViewerBase * | viewer | ) |
Remove viewer from the list.
If auto-destruct is on and the last viewer is removed the scene destructs itself.
Definition at line 100 of file TGLSceneBase.cxx.
|
virtual |
This function does rendering of all stages, the shapes are rendered in the following order: opaque, transparent, selected-opaque, selected-transparent.
GL-depth buffer is cleared after transparent shapes have been rendered.
This is never called from ROOT GL directly. Use it if you know you are rendering a single scene.
Definition at line 430 of file TGLSceneBase.cxx.
|
virtual |
|
virtual |
Render selected opaque elements.
Reimplemented in TGLScene.
Definition at line 455 of file TGLSceneBase.cxx.
|
virtual |
Render selected opaque elements for highlight.
Reimplemented in TGLScene.
Definition at line 469 of file TGLSceneBase.cxx.
|
virtual |
Render selected transparent elements for highlight.
Reimplemented in TGLScene.
Definition at line 462 of file TGLSceneBase.cxx.
|
virtual |
Render selected transparent elements.
Reimplemented in TGLScene.
Definition at line 476 of file TGLSceneBase.cxx.
|
virtual |
Render transparent elements.
Reimplemented in TGLScene.
Definition at line 448 of file TGLSceneBase.cxx.
|
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.
See implementation in sub-class TGLScene, here we just return FALSE.
Reimplemented in TGLScene.
Definition at line 513 of file TGLSceneBase.cxx.
|
inline |
Definition at line 132 of file TGLSceneBase.h.
|
inline |
Definition at line 126 of file TGLSceneBase.h.
|
inline |
Definition at line 120 of file TGLSceneBase.h.
|
inlinevirtual |
Definition at line 83 of file TGLSceneBase.h.
|
inlinevirtual |
Definition at line 85 of file TGLSceneBase.h.
|
inline |
Definition at line 129 of file TGLSceneBase.h.
|
inline |
Definition at line 123 of file TGLSceneBase.h.
|
inlinevirtual |
Definition at line 84 of file TGLSceneBase.h.
|
overridevirtual |
Reimplemented from TGLLockable.
Reimplemented in TGLScenePad.
|
inline |
Definition at line 142 of file TGLSceneBase.h.
|
inline |
Definition at line 122 of file TGLSceneBase.h.
void TGLSceneBase::TagViewersChanged | ( | ) |
Tag all viewers as changed.
Definition at line 118 of file TGLSceneBase.cxx.
|
virtual |
Fill scene-info with information needed for rendering, take into account the render-context (viewer state, camera, clipping).
Usually called from TGLViewer before rendering a scene if some moderately significant part of render-context has changed.
Here we update the basic state (clear last-LOD, mark the time, set global <-> scene transformation matrices) and potentially study and refine the clipping planes based on scene bounding box.
Reimplemented in TGLScene.
Definition at line 172 of file TGLSceneBase.cxx.
|
protected |
Definition at line 66 of file TGLSceneBase.h.
|
mutableprotected |
Definition at line 55 of file TGLSceneBase.h.
|
mutableprotected |
Definition at line 56 of file TGLSceneBase.h.
|
protected |
Definition at line 51 of file TGLSceneBase.h.
|
protected |
Definition at line 59 of file TGLSceneBase.h.
|
protected |
Definition at line 58 of file TGLSceneBase.h.
|
staticprivate |
Definition at line 38 of file TGLSceneBase.h.
|
protected |
Definition at line 47 of file TGLSceneBase.h.
|
protected |
Definition at line 46 of file TGLSceneBase.h.
|
protected |
Definition at line 42 of file TGLSceneBase.h.
|
protected |
Definition at line 50 of file TGLSceneBase.h.
|
protected |
Definition at line 41 of file TGLSceneBase.h.
|
protected |
Definition at line 52 of file TGLSceneBase.h.
|
protected |
Definition at line 48 of file TGLSceneBase.h.
|
protected |
Definition at line 45 of file TGLSceneBase.h.
|
protected |
Definition at line 43 of file TGLSceneBase.h.
|
protected |
Definition at line 65 of file TGLSceneBase.h.
|
protected |
Definition at line 49 of file TGLSceneBase.h.