OpenGL renderer class for TEveCaloLego.
Definition at line 27 of file TEveCaloLegoGL.h.
Classes | |
| struct | Cell2D_t |
Public Types | |
| enum | ELODAxes { kLODAxesNone = 0 , kLODAxesX = 1 << 0 , kLODAxesY = 1 << 1 , kLODAxesZ = 1 << 2 , kLODAxesAll = kLODAxesX | kLODAxesY | kLODAxesZ } |
Public Member Functions | |
| TEveCaloLegoGL () | |
| Constructor. | |
| ~TEveCaloLegoGL () override | |
| Destructor. | |
| void | AddRef (TGLPhysicalShape *phys) const |
| Add reference to given physical shape. | |
| Bool_t | AlwaysSecondarySelect () const override |
| const TGLBoundingBox & | BoundingBox () const |
| void | DestroyPhysicals () |
| Destroy all physicals attached to this logical. | |
| void | DirectDraw (TGLRnrCtx &rnrCtx) const override |
| Draw the object. | |
| virtual void | DLCacheClear () |
| Clear all entries for all LODs for this drawable from the display list cache but keeping the reserved ids from GL context. | |
| void | DLCacheDrop () override |
| Drop all display-list definitions. | |
| void | DLCachePurge () override |
| Unregister all display-lists. | |
| virtual UInt_t | DLOffset (Short_t) const |
| virtual void | Draw (TGLRnrCtx &rnrCtx) const |
| Draw the GL drawable, using draw flags. | |
| void | DrawHighlight (TGLRnrCtx &rnrCtx, const TGLPhysicalShape *ps, Int_t lvl=-1) const override |
| Draw highligted cells. | |
| TObject * | GetExternal () const |
| const TGLPhysicalShape * | GetFirstPhysical () const |
| TGLScene * | GetScene () const |
| TObject * | ID () const |
| virtual Bool_t | IgnoreSizeForOfInterest () const |
| Return true if size of this shape should be ignored when determining if the object should be drawn. | |
| void | InvokeContextMenu (TContextMenu &menu, UInt_t x, UInt_t y) const |
| Invoke popup menu or our bound external TObject (if any), using passed 'menu' object, at location 'x' 'y'. | |
| TClass * | IsA () const override |
| Bool_t | KeepDuringSmartRefresh () const override |
| void | ProcessSelection (TGLRnrCtx &rnrCtx, TGLSelectRecord &rec) override |
| Processes tower selection from TGLViewer. | |
| virtual Short_t | QuantizeShapeLOD (Short_t shapeLOD, Short_t combiLOD) const |
| Logical shapes usually support only discreet LOD values, especially in view of display-list caching. | |
| UInt_t | Ref () const |
| void | SetBBox () override |
| Set bounding box. | |
| Bool_t | SetDLCache (Bool_t cached) |
| Modify capture of draws into display list cache kTRUE - capture, kFALSE direct draw. | |
| Bool_t | SetModel (TObject *obj, const Option_t *opt=nullptr) override |
| Set model object. | |
| Bool_t | ShouldDLCache (const TGLRnrCtx &rnrCtx) const override |
| Decide if display-list should be used for this pass rendering, as determined by rnrCtx. | |
| void | Streamer (TBuffer &) override |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
| void | StrongRef (Bool_t strong) const |
| void | SubRef (TGLPhysicalShape *phys) const |
| Remove reference to given physical shape, potentially deleting this object when hitting zero ref-count (if fRefStrong is true). | |
| virtual ELODAxes | SupportedLODAxes () const |
| Bool_t | SupportsSecondarySelect () const override |
| UInt_t | UnrefFirstPhysical () |
| Unreferenced first physical in the list, returning its id and making it fit for destruction somewhere else. | |
| void | UpdateBoundingBox () override |
| Update bounding box from external source. | |
| void | UpdateBoundingBoxesOfPhysicals () |
| Update bounding-boxed of all dependent physicals. | |
Static Public Member Functions | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static const char * | DeclFileName () |
| static TClass * | GetGLRenderer (TClass *isa) |
| Return direct-rendering GL class for class isa. | |
| static Bool_t | GetIgnoreSizeForCameraInterest () |
| Get state of static fgIgnoreSizeForCameraInterest flag. | |
| static void | SetEnvDefaults () |
| static void | SetIgnoreSizeForCameraInterest (Bool_t isfci) |
| Set state of static fgIgnoreSizeForCameraInterest flag. | |
Protected Member Functions | |
| template<class TT> | |
| TT * | DynCast (TObject *obj) |
| void | PurgeDLRange (UInt_t base, Int_t size) const |
| Purge given display-list range. | |
| void | SetAxisAlignedBBox (const Float_t *p) |
| Set axis-aligned bounding-box. | |
| void | SetAxisAlignedBBox (Float_t xmin, Float_t xmax, Float_t ymin, Float_t ymax, Float_t zmin, Float_t zmax) |
| Set axis-aligned bounding-box. | |
| Bool_t | SetModelCheckClass (TObject *obj, TClass *cls) |
| Checks if obj is of proper class and sets the model. | |
| template<class TT> | |
| TT * | SetModelDynCast (TObject *obj) |
Protected Attributes | |
| TGLBoundingBox | fBoundingBox |
| ! Shape's bounding box. | |
| UInt_t | fDLBase |
| ! display-list id base | |
| Bool_t | fDLCache |
| ! use display list caching | |
| Int_t | fDLSize |
| ! display-list size for different LODs | |
| UShort_t | fDLValid |
| ! display-list validity bit-field | |
| TObject * | fExternalObj |
| ! Also plays the role of ID. | |
| TGLPhysicalShape * | fFirstPhysical |
| ! first replica | |
| Bool_t | fMultiColor |
| Bool_t | fOwnExtObj |
| ! External object is a fake | |
| UInt_t | fRef |
| ! physical instance ref counting | |
| Bool_t | fRefStrong |
| ! Strong ref (delete on 0 ref); not in scene | |
| TGLScene * | fScene |
| ! scene where object is stored (can be zero!) | |
Static Protected Attributes | |
| static Bool_t | fgIgnoreSizeForCameraInterest = kFALSE |
| static Bool_t | fgUseDLs = kTRUE |
| ! global flag for usage of display-lists | |
| static Bool_t | fgUseDLsForVertArrs = kTRUE |
| ! global flag for usage of display-lists in shapes that use vertex arrays | |
Private Types | |
| typedef std::map< Int_t, UInt_t >::iterator | SliceDLMap_i |
| typedef std::map< Int_t, UInt_t > | SliceDLMap_t |
| typedef std::vector< Cell2D_t >::iterator | vCell2D_i |
| typedef std::vector< Cell2D_t > | vCell2D_t |
Private Member Functions | |
| TEveCaloLegoGL (const TEveCaloLegoGL &) | |
| void | DrawAxis2D (TGLRnrCtx &rnrCtx) const |
| Draw XY axis. | |
| void | DrawAxis3D (TGLRnrCtx &rnrCtx) const |
| Draw z-axis and z-box at the appropriate grid corner-point including tick-marks and labels. | |
| void | DrawCells2D (TGLRnrCtx &rnrCtx, vCell2D_t &cells2D) const |
| Draw cells in top view. | |
| void | DrawCells3D (TGLRnrCtx &rnrCtx) const |
| Render the calo lego-plot with OpenGL. | |
| void | DrawHistBase (TGLRnrCtx &rnrCtx) const |
| Draw basic histogram components: x-y grid. | |
| void | DrawSelectedCells (TGLRnrCtx &rnrCtx, TEveCaloData::vCellId_t cells) const |
| Draw selected cells in highlight mode. | |
| Int_t | GetGridStep (TGLRnrCtx &rnrCtx) const |
| Calculate view-dependent grid density. | |
| void | GetScaleForMatrix (Float_t &sx, Float_t &sy, Float_t &sz) const |
| Get scale for matrix. | |
| void | Make3DDisplayList (TEveCaloData::vCellId_t &cellList, SliceDLMap_t &map, Bool_t select) const |
| Create display-list that draws histogram bars for non-rebinned data. | |
| void | Make3DDisplayListRebin (TEveCaloData::RebinData_t &rebinData, SliceDLMap_t &map, Bool_t select) const |
| Create display-list that draws histogram bars for rebinned data. | |
| void | MakeQuad (Float_t x, Float_t y, Float_t z, Float_t xw, Float_t yw, Float_t zh) const |
| Draw an axis-aligned box using quads. | |
| TEveCaloLegoGL & | operator= (const TEveCaloLegoGL &) |
| void | PrepareCell2DData (TEveCaloData::vCellId_t &cellList, vCell2D_t &cells2D) const |
| Prepare cells 2D data non-rebinned for drawing. | |
| void | PrepareCell2DDataRebin (TEveCaloData::RebinData_t &rebinData, vCell2D_t &cells2D) const |
| Prepare cells 2D rebinned data for drawing. | |
| void | RebinAxis (TAxis *orig, TAxis *curr) const |
| Rebin eta, phi axis. | |
| void | SetAxis3DTitlePos (TGLRnrCtx &rnrCtx, Float_t x0, Float_t x1, Float_t y0, Float_t y1) const |
| Set the axis 3D title position. | |
| void | WrapTwoPi (Float_t &min, Float_t &max) const |
Static Private Member Functions | |
| static TClass * | SearchGLRenderer (TClass *cls) |
| Recursively search cls and its base classes for a GL-renderer class. | |
Static Private Attributes | |
| static TMap | fgGLClassMap |
Friends | |
| class | TEveCaloLegoOverlay |
#include <TEveCaloLegoGL.h>
|
private |
Definition at line 63 of file TEveCaloLegoGL.h.
|
private |
Definition at line 62 of file TEveCaloLegoGL.h.
|
private |
Definition at line 60 of file TEveCaloLegoGL.h.
|
private |
Definition at line 59 of file TEveCaloLegoGL.h.
|
inherited |
| Enumerator | |
|---|---|
| kLODAxesNone | |
| kLODAxesX | |
| kLODAxesY | |
| kLODAxesZ | |
| kLODAxesAll | |
Definition at line 38 of file TGLLogicalShape.h.
|
private |
| TEveCaloLegoGL::TEveCaloLegoGL | ( | ) |
Constructor.
Definition at line 43 of file TEveCaloLegoGL.cxx.
|
override |
Destructor.
Definition at line 72 of file TEveCaloLegoGL.cxx.
|
inherited |
Add reference to given physical shape.
Definition at line 162 of file TGLLogicalShape.cxx.
|
inlineoverridevirtual |
Reimplemented from TGLLogicalShape.
Definition at line 139 of file TEveCaloLegoGL.h.
|
inlineinherited |
Definition at line 86 of file TGLLogicalShape.h.
|
static |
|
static |
|
inlinestaticconstexpr |
Definition at line 142 of file TEveCaloLegoGL.h.
|
inlinestatic |
Definition at line 142 of file TEveCaloLegoGL.h.
|
inherited |
Destroy all physicals attached to this logical.
Definition at line 205 of file TGLLogicalShape.cxx.
|
overridevirtual |
|
virtualinherited |
Clear all entries for all LODs for this drawable from the display list cache but keeping the reserved ids from GL context.
Reimplemented in TEveJetConeGL.
Definition at line 302 of file TGLLogicalShape.cxx.
|
overridevirtual |
Drop all display-list definitions.
Reimplemented from TGLLogicalShape.
Definition at line 101 of file TEveCaloLegoGL.cxx.
|
overridevirtual |
Unregister all display-lists.
Reimplemented from TGLLogicalShape.
Definition at line 113 of file TEveCaloLegoGL.cxx.
Reimplemented in TGLCylinder, and TGLSphere.
Definition at line 93 of file TGLLogicalShape.h.
|
virtualinherited |
Draw the GL drawable, using draw flags.
If DL caching is enabled (see SetDLCache) then attempt to draw from the cache, if not found attempt to capture the draw - done by DirectDraw() - into a new cache entry. If not cached just call DirectDraw() for normal non DL cached drawing.
Reimplemented in TEveBoxGL, TEveBoxProjectedGL, TEveJetConeGL, TEveJetConeProjectedGL, TEvePolygonSetProjectedGL, TEveProjectionAxesGL, TEveStraightLineSetGL, and TPointSet3DGL.
Definition at line 373 of file TGLLogicalShape.cxx.
|
private |
Draw XY axis.
Definition at line 603 of file TEveCaloLegoGL.cxx.
|
private |
Draw z-axis and z-box at the appropriate grid corner-point including tick-marks and labels.
Definition at line 422 of file TEveCaloLegoGL.cxx.
Draw cells in top view.
Definition at line 935 of file TEveCaloLegoGL.cxx.
|
private |
Render the calo lego-plot with OpenGL.
Definition at line 811 of file TEveCaloLegoGL.cxx.
|
overridevirtual |
Draw highligted cells.
Reimplemented from TGLLogicalShape.
Definition at line 1089 of file TEveCaloLegoGL.cxx.
|
private |
Draw basic histogram components: x-y grid.
Definition at line 744 of file TEveCaloLegoGL.cxx.
|
private |
Draw selected cells in highlight mode.
Definition at line 1137 of file TEveCaloLegoGL.cxx.
|
inlineprotectedinherited |
Definition at line 45 of file TGLObject.h.
|
inlineinherited |
Definition at line 83 of file TGLLogicalShape.h.
|
inlineinherited |
Definition at line 80 of file TGLLogicalShape.h.
Return direct-rendering GL class for class isa.
Zero is a valid response.
Definition at line 134 of file TGLObject.cxx.
Calculate view-dependent grid density.
Definition at line 681 of file TEveCaloLegoGL.cxx.
|
staticinherited |
Get state of static fgIgnoreSizeForCameraInterest flag.
When this is true all objects, also very small, will be drawn by GL.
Definition at line 480 of file TGLLogicalShape.cxx.
Get scale for matrix.
Definition at line 580 of file TEveCaloLegoGL.cxx.
|
inlineinherited |
Definition at line 84 of file TGLLogicalShape.h.
|
inlineinherited |
Definition at line 82 of file TGLLogicalShape.h.
|
virtualinherited |
Return true if size of this shape should be ignored when determining if the object should be drawn.
In this base-class we simply return state of static flag fgIgnoreSizeForCameraInterest.
Several sub-classes override this virtual function.
Reimplemented in TEveBoxGL, TEveBoxProjectedGL, TEvePolygonSetProjectedGL, TEveProjectionAxesGL, TEveQuadSetGL, TEveStraightLineSetGL, TGLPolyMarker, and TPointSet3DGL.
Definition at line 471 of file TGLLogicalShape.cxx.
|
inherited |
Invoke popup menu or our bound external TObject (if any), using passed 'menu' object, at location 'x' 'y'.
Definition at line 457 of file TGLLogicalShape.cxx.
|
inlineoverridevirtual |
Reimplemented from TGLLogicalShape.
Definition at line 142 of file TEveCaloLegoGL.h.
|
inlineoverridevirtualinherited |
Reimplemented from TGLLogicalShape.
Reimplemented in TGLParametricEquationGL, and TGLPlot3D.
Definition at line 62 of file TGLObject.h.
|
private |
Create display-list that draws histogram bars for non-rebinned data.
It is used for filled and outline passes.
Definition at line 204 of file TEveCaloLegoGL.cxx.
|
private |
Create display-list that draws histogram bars for rebinned data.
It is used for filled and outline passes.
Definition at line 246 of file TEveCaloLegoGL.cxx.
|
private |
Draw an axis-aligned box using quads.
Definition at line 143 of file TEveCaloLegoGL.cxx.
|
private |
|
private |
Prepare cells 2D data non-rebinned for drawing.
Definition at line 838 of file TEveCaloLegoGL.cxx.
|
private |
Prepare cells 2D rebinned data for drawing.
Definition at line 886 of file TEveCaloLegoGL.cxx.
|
overridevirtual |
Processes tower selection from TGLViewer.
Reimplemented from TGLLogicalShape.
Definition at line 1406 of file TEveCaloLegoGL.cxx.
Purge given display-list range.
Utility function.
Definition at line 342 of file TGLLogicalShape.cxx.
|
virtualinherited |
Logical shapes usually support only discreet LOD values, especially in view of display-list caching.
This function should be overriden to perform the desired quantization. See TGLSphere.
Reimplemented in TGLCylinder, and TGLSphere.
Definition at line 361 of file TGLLogicalShape.cxx.
Rebin eta, phi axis.
Definition at line 724 of file TEveCaloLegoGL.cxx.
|
inlineinherited |
Definition at line 73 of file TGLLogicalShape.h.
Recursively search cls and its base classes for a GL-renderer class.
Definition at line 107 of file TGLObject.cxx.
|
private |
Set the axis 3D title position.
Definition at line 291 of file TEveCaloLegoGL.cxx.
|
protectedinherited |
Set axis-aligned bounding-box.
Protected helper for subclasses.
Definition at line 97 of file TGLObject.cxx.
|
protectedinherited |
Set axis-aligned bounding-box.
Protected helper for subclasses.
Definition at line 85 of file TGLObject.cxx.
|
overridevirtual |
Modify capture of draws into display list cache kTRUE - capture, kFALSE direct draw.
Return kTRUE is state changed, kFALSE if not.
Definition at line 264 of file TGLLogicalShape.cxx.
|
staticinherited |
Definition at line 496 of file TGLLogicalShape.cxx.
|
staticinherited |
Set state of static fgIgnoreSizeForCameraInterest flag.
Definition at line 488 of file TGLLogicalShape.cxx.
Checks if obj is of proper class and sets the model.
Protected helper for subclasses. Most sub-classes use exception-throwing SetModelDynCast() instead.
Definition at line 70 of file TGLObject.cxx.
|
inlineprotectedinherited |
Definition at line 37 of file TGLObject.h.
Decide if display-list should be used for this pass rendering, as determined by rnrCtx.
Reimplemented from TGLLogicalShape.
Reimplemented in TPointSet3DGL.
Definition at line 40 of file TGLObject.cxx.
|
overridevirtual |
Reimplemented from TGLLogicalShape.
|
inline |
Definition at line 142 of file TEveCaloLegoGL.h.
|
inlineinherited |
Definition at line 76 of file TGLLogicalShape.h.
|
inherited |
Remove reference to given physical shape, potentially deleting this object when hitting zero ref-count (if fRefStrong is true).
Definition at line 174 of file TGLLogicalShape.cxx.
|
inlinevirtualinherited |
Reimplemented in TGLCylinder, and TGLSphere.
Definition at line 98 of file TGLLogicalShape.h.
|
inlineoverridevirtual |
Reimplemented from TGLLogicalShape.
Definition at line 138 of file TEveCaloLegoGL.h.
|
inherited |
Unreferenced first physical in the list, returning its id and making it fit for destruction somewhere else.
Returns 0 if there are no replicas attached.
Definition at line 225 of file TGLLogicalShape.cxx.
|
overridevirtualinherited |
Update bounding box from external source.
We call abstract SetBBox() and propagate the change to all attached physicals.
Reimplemented from TGLLogicalShape.
Definition at line 59 of file TGLObject.cxx.
|
inherited |
Update bounding-boxed of all dependent physicals.
Definition at line 245 of file TGLLogicalShape.cxx.
Definition at line 146 of file TEveCaloLegoGL.h.
|
friend |
Definition at line 29 of file TEveCaloLegoGL.h.
|
mutableprivate |
Definition at line 78 of file TEveCaloLegoGL.h.
|
mutableprivate |
Definition at line 75 of file TEveCaloLegoGL.h.
|
mutableprivate |
Definition at line 76 of file TEveCaloLegoGL.h.
|
mutableprivate |
Definition at line 93 of file TEveCaloLegoGL.h.
|
protectedinherited |
! Shape's bounding box.
Definition at line 50 of file TGLLogicalShape.h.
|
mutableprivate |
Definition at line 83 of file TEveCaloLegoGL.h.
|
mutableprivate |
Definition at line 91 of file TEveCaloLegoGL.h.
|
mutableprivate |
Definition at line 88 of file TEveCaloLegoGL.h.
|
mutableprotectedinherited |
! display-list id base
Definition at line 52 of file TGLLogicalShape.h.
|
mutableprotectedinherited |
! use display list caching
Definition at line 55 of file TGLLogicalShape.h.
|
mutableprivate |
Definition at line 82 of file TEveCaloLegoGL.h.
|
mutableprivate |
Definition at line 90 of file TEveCaloLegoGL.h.
|
mutableprotectedinherited |
! display-list size for different LODs
Definition at line 53 of file TGLLogicalShape.h.
|
mutableprotectedinherited |
! display-list validity bit-field
Definition at line 54 of file TGLLogicalShape.h.
|
mutableprivate |
Definition at line 69 of file TEveCaloLegoGL.h.
|
protectedinherited |
! Also plays the role of ID.
Definition at line 49 of file TGLLogicalShape.h.
|
mutableprotectedinherited |
! first replica
Definition at line 47 of file TGLLogicalShape.h.
|
mutableprivate |
Definition at line 67 of file TEveCaloLegoGL.h.
|
staticprivateinherited |
Definition at line 24 of file TGLObject.h.
Definition at line 61 of file TGLLogicalShape.h.
|
mutableprivate |
Definition at line 66 of file TEveCaloLegoGL.h.
! global flag for usage of display-lists
Definition at line 63 of file TGLLogicalShape.h.
! global flag for usage of display-lists in shapes that use vertex arrays
Definition at line 64 of file TGLLogicalShape.h.
|
private |
Definition at line 81 of file TEveCaloLegoGL.h.
|
mutableprivate |
Definition at line 86 of file TEveCaloLegoGL.h.
|
mutableprotectedinherited |
Definition at line 28 of file TGLObject.h.
|
mutableprotectedinherited |
! External object is a fake
Definition at line 57 of file TGLLogicalShape.h.
|
mutableprivate |
Definition at line 70 of file TEveCaloLegoGL.h.
|
mutableprivate |
Definition at line 85 of file TEveCaloLegoGL.h.
|
mutableprotectedinherited |
! physical instance ref counting
Definition at line 46 of file TGLLogicalShape.h.
|
mutableprotectedinherited |
! Strong ref (delete on 0 ref); not in scene
Definition at line 56 of file TGLLogicalShape.h.
|
mutableprotectedinherited |
! scene where object is stored (can be zero!)
Definition at line 51 of file TGLLogicalShape.h.
|
mutableprivate |
Definition at line 87 of file TEveCaloLegoGL.h.
|
mutableprivate |
Definition at line 72 of file TEveCaloLegoGL.h.
|
mutableprivate |
Definition at line 73 of file TEveCaloLegoGL.h.
|
mutableprivate |
Definition at line 71 of file TEveCaloLegoGL.h.
|
mutableprivate |
Definition at line 74 of file TEveCaloLegoGL.h.