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 Types | |
| enum | ELock { kUnlocked , kDrawLock , kSelectLock , kModifyLock } |
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. | |
| ELock | CurrentLock () const |
| 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 |
| Bool_t | IsDrawOrSelectLock () const |
| Bool_t | IsLocked () const |
| 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. | |
| Bool_t | ReleaseLock (ELock lock) const |
| Release current lock, make sure it the same as the 'lock' argument. | |
| 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. | |
| Bool_t | TakeLock (ELock lock) const |
| Lock the object in mode 'lock'. | |
| virtual void | UpdateSceneInfo (TGLRnrCtx &ctx) |
| Fill scene-info with information needed for rendering, take into account the render-context (viewer state, camera, clipping). | |
Static Public Member Functions | |
| 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 |
Private Member Functions | |
| TGLSceneBase (const TGLSceneBase &)=delete | |
| TGLSceneBase & | operator= (const TGLSceneBase &)=delete |
Static Private Attributes | |
| static UInt_t | fgSceneIDSrc = 1 |
#include <TGLSceneBase.h>
|
protected |
Definition at line 63 of file TGLSceneBase.h.
|
protected |
Definition at line 62 of file TGLSceneBase.h.
|
inherited |
| Enumerator | |
|---|---|
| kUnlocked | |
| kDrawLock | |
| kSelectLock | |
| kModifyLock | |
Definition at line 20 of file TGLLockable.h.
|
privatedelete |
| TGLSceneBase::TGLSceneBase | ( | ) |
Definition at line 48 of file TGLSceneBase.cxx.
|
override |
Destructor.
Definition at line 74 of file TGLSceneBase.cxx.
| void TGLSceneBase::AddViewer | ( | TGLViewerBase * | viewer | ) |
Add viewer to the list.
Definition at line 85 of file TGLSceneBase.cxx.
|
inline |
Definition at line 138 of file TGLSceneBase.h.
|
pure virtual |
Implemented in TGLScene.
|
static |
|
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 143 of file TGLSceneBase.cxx.
|
inlineinherited |
Definition at line 61 of file TGLLockable.h.
|
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.
|
inlineinherited |
Definition at line 63 of file TGLLockable.h.
|
inlineinherited |
Definition at line 60 of file TGLLockable.h.
|
overridevirtual |
Name printed on locking info messages.
Reimplemented from TGLLockable.
Definition at line 130 of file TGLSceneBase.cxx.
|
staticinherited |
Return name-string for given lock-type.
Definition at line 68 of file TGLLockable.cxx.
Test if lock is a valid type to take/release.
kUnlocked is never valid in these cases.
Definition at line 84 of file TGLLockable.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 285 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 495 of file TGLSceneBase.cxx.
|
virtual |
Perform post-render clean-up.
Definition at line 482 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 310 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 401 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 153 of file TGLSceneBase.cxx.
Release current lock, make sure it the same as the 'lock' argument.
Returns TRUE on success, FALSE on failure.
Definition at line 50 of file TGLLockable.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 99 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 429 of file TGLSceneBase.cxx.
|
virtual |
|
virtual |
Render selected opaque elements.
Reimplemented in TGLScene.
Definition at line 454 of file TGLSceneBase.cxx.
|
virtual |
Render selected opaque elements for highlight.
Reimplemented in TGLScene.
Definition at line 468 of file TGLSceneBase.cxx.
|
virtual |
Render selected transparent elements for highlight.
Reimplemented in TGLScene.
Definition at line 461 of file TGLSceneBase.cxx.
|
virtual |
Render selected transparent elements.
Reimplemented in TGLScene.
Definition at line 475 of file TGLSceneBase.cxx.
|
virtual |
Render transparent elements.
Reimplemented in TGLScene.
Definition at line 447 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 512 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 117 of file TGLSceneBase.cxx.
Lock the object in mode 'lock'.
Return TRUE if successful, FALSE if the object is already locked.
Definition at line 31 of file TGLLockable.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 171 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.
|
mutableprotectedinherited |
Definition at line 32 of file TGLLockable.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.