Scene base-class – provides basic interface expected by the TGLViewer or its sub-classes:
- unique scene id
- scene locking
- overall bounding box
- list of viewers displaying the scene (for update propagation)
- virtual interface for draw/select/render (?)
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.
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.
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.
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.