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.
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.
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.
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.
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.
Definition at line 83 of file TGLSceneBase.h.
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.
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.