Logo ROOT   6.16/01
Reference Guide
List of all members | Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
TEveCaloLegoGL Class Reference

OpenGL renderer class for TEveCaloLego.

Definition at line 26 of file TEveCaloLegoGL.h.

Classes

struct  Cell2D_t
 

Public Member Functions

 TEveCaloLegoGL ()
 Constructor. More...
 
virtual ~TEveCaloLegoGL ()
 Destructor. More...
 
virtual Bool_t AlwaysSecondarySelect () const
 
virtual void DirectDraw (TGLRnrCtx &rnrCtx) const
 Draw the object. More...
 
virtual void DLCacheDrop ()
 Drop all display-list definitions. More...
 
virtual void DLCachePurge ()
 Unregister all display-lists. More...
 
virtual void DrawHighlight (TGLRnrCtx &rnrCtx, const TGLPhysicalShape *ps, Int_t lvl=-1) const
 Draw highligted cells. More...
 
virtual void ProcessSelection (TGLRnrCtx &rnrCtx, TGLSelectRecord &rec)
 Processes tower selection from TGLViewer. More...
 
virtual void SetBBox ()
 Set bounding box. More...
 
virtual Bool_t SetModel (TObject *obj, const Option_t *opt=0)
 Set model object. More...
 
virtual Bool_t SupportsSecondarySelect () const
 
- Public Member Functions inherited from TGLObject
 TGLObject ()
 
virtual ~TGLObject ()
 
virtual Bool_t KeepDuringSmartRefresh () const
 
virtual void SetBBox ()=0
 
virtual Bool_t SetModel (TObject *obj, const Option_t *opt=0)=0
 
virtual Bool_t ShouldDLCache (const TGLRnrCtx &rnrCtx) const
 Decide if display-list should be used for this pass rendering, as determined by rnrCtx. More...
 
virtual void UpdateBoundingBox ()
 Update bounding box from external source. More...
 
- Public Member Functions inherited from TGLLogicalShape
 TGLLogicalShape ()
 global flag for usage of display-lists in shapes that use vertex arrays More...
 
 TGLLogicalShape (const TBuffer3D &buffer)
 Constructor from TBuffer3D. More...
 
 TGLLogicalShape (TObject *obj)
 Constructor with external object. More...
 
virtual ~TGLLogicalShape ()
 Destroy logical shape. More...
 
void AddRef (TGLPhysicalShape *phys) const
 Add reference to given physical shape. More...
 
virtual Bool_t AlwaysSecondarySelect () const
 
const TGLBoundingBoxBoundingBox () const
 
void DestroyPhysicals ()
 Destroy all physicals attached to this logical. More...
 
virtual void DirectDraw (TGLRnrCtx &rnrCtx) const =0
 
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. More...
 
virtual void DLCacheDrop ()
 Drop all entries for all LODs for this drawable from the display list cache, WITHOUT returning the reserved ids to GL context. More...
 
virtual void DLCachePurge ()
 Purge all entries for all LODs for this drawable from the display list cache, returning the reserved ids to GL context. More...
 
virtual UInt_t DLOffset (Short_t) const
 
virtual void Draw (TGLRnrCtx &rnrCtx) const
 Draw the GL drawable, using draw flags. More...
 
virtual void DrawHighlight (TGLRnrCtx &rnrCtx, const TGLPhysicalShape *pshp, Int_t lvl=-1) const
 Draw the logical shape in highlight mode. More...
 
TObjectGetExternal () const
 
const TGLPhysicalShapeGetFirstPhysical () const
 
TGLSceneGetScene () const
 
TObjectID () const
 
virtual Bool_t IgnoreSizeForOfInterest () const
 Return true if size of this shape should be ignored when determining if the object should be drawn. More...
 
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'. More...
 
virtual Bool_t KeepDuringSmartRefresh () const
 
virtual void ProcessSelection (TGLRnrCtx &rnrCtx, TGLSelectRecord &rec)
 Virtual method called-back after a secondary selection hit is recorded (see TGLViewer::HandleButton(), Ctrl-Button1). More...
 
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. More...
 
UInt_t Ref () const
 
Bool_t SetDLCache (Bool_t cached)
 Modify capture of draws into display list cache kTRUE - capture, kFALSE direct draw. More...
 
virtual Bool_t ShouldDLCache (const TGLRnrCtx &rnrCtx) const
 Returns kTRUE if draws should be display list cached kFALSE otherwise. More...
 
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). More...
 
virtual ELODAxes SupportedLODAxes () const
 
virtual Bool_t SupportsSecondarySelect () const
 
UInt_t UnrefFirstPhysical ()
 Unreferenced first physical in the list, returning its id and making it fit for destruction somewhere else. More...
 
virtual void UpdateBoundingBox ()
 
void UpdateBoundingBoxesOfPhysicals ()
 Update bounding-boxed of all dependent physicals. More...
 

Private Types

typedef std::map< Int_t, UInt_t >::iterator SliceDLMap_i
 
typedef std::map< Int_t, UInt_tSliceDLMap_t
 
typedef std::vector< Cell2D_t >::iterator vCell2D_i
 
typedef std::vector< Cell2D_tvCell2D_t
 

Private Member Functions

 TEveCaloLegoGL (const TEveCaloLegoGL &)
 
void DrawAxis2D (TGLRnrCtx &rnrCtx) const
 Draw XY axis. More...
 
void DrawAxis3D (TGLRnrCtx &rnrCtx) const
 Draw z-axis and z-box at the appropriate grid corner-point including tick-marks and labels. More...
 
void DrawCells2D (TGLRnrCtx &rnrCtx, vCell2D_t &cells2D) const
 Draw cells in top view. More...
 
void DrawCells3D (TGLRnrCtx &rnrCtx) const
 Render the calo lego-plot with OpenGL. More...
 
void DrawHistBase (TGLRnrCtx &rnrCtx) const
 Draw basic histogram components: x-y grid. More...
 
void DrawSelectedCells (TGLRnrCtx &rnrCtx, TEveCaloData::vCellId_t cells) const
 Draw selected cells in highlight mode. More...
 
Int_t GetGridStep (TGLRnrCtx &rnrCtx) const
 Calculate view-dependent grid density. More...
 
void GetScaleForMatrix (Float_t &sx, Float_t &sy, Float_t &sz) const
 Get scale for matrix. More...
 
void Make3DDisplayList (TEveCaloData::vCellId_t &cellList, SliceDLMap_t &map, Bool_t select) const
 Create display-list that draws histogram bars for non-rebinned data. More...
 
void Make3DDisplayListRebin (TEveCaloData::RebinData_t &rebinData, SliceDLMap_t &map, Bool_t select) const
 Create display-list that draws histogram bars for rebinned data. More...
 
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. More...
 
TEveCaloLegoGLoperator= (const TEveCaloLegoGL &)
 
void PrepareCell2DData (TEveCaloData::vCellId_t &cellList, vCell2D_t &cells2D) const
 Prepare cells 2D data non-rebinned for drawing. More...
 
void PrepareCell2DDataRebin (TEveCaloData::RebinData_t &rebinData, vCell2D_t &cells2D) const
 Prepare cells 2D rebinned data for drawing. More...
 
void RebinAxis (TAxis *orig, TAxis *curr) const
 Rebin eta, phi axis. More...
 
void SetAxis3DTitlePos (TGLRnrCtx &rnrCtx, Float_t x0, Float_t x1, Float_t y0, Float_t y1) const
 Set the axis 3D title position. More...
 
void WrapTwoPi (Float_t &min, Float_t &max) const
 

Private Attributes

TGLAxisPainter fAxisPainter
 
TEveVector fBackPlaneXConst [2]
 
TEveVector fBackPlaneYConst [2]
 
Int_t fBinStep
 
vCell2D_t fCells2D
 
Bool_t fCells3D
 
Int_t fCurrentPixelsPerBin
 
Bool_t fDLCacheOK
 
SliceDLMap_t fDLMap
 
TAxisfEtaAxis
 
Color_t fFontColor
 
Color_t fGridColor
 
TEveCaloLegofM
 
Float_t fMaxVal
 
TAxisfPhiAxis
 
TEveCaloData::RebinData_t fRebinData
 
Float_t fValToPixel
 
TEveVector fXAxisTitlePos
 
TEveVector fYAxisTitlePos
 
TAxisfZAxis
 
TEveVector fZAxisTitlePos
 

Friends

class TEveCaloLegoOverlay
 

Additional Inherited Members

- Public Types inherited from TGLLogicalShape
enum  ELODAxes {
  kLODAxesNone = 0 , kLODAxesX = 1 << 0 , kLODAxesY = 1 << 1 , kLODAxesZ = 1 << 2 ,
  kLODAxesAll = kLODAxesX | kLODAxesY | kLODAxesZ
}
 
- Static Public Member Functions inherited from TGLObject
static TClassGetGLRenderer (TClass *isa)
 Return direct-rendering GL class for class isa. More...
 
- Static Public Member Functions inherited from TGLLogicalShape
static Bool_t GetIgnoreSizeForCameraInterest ()
 Get state of static fgIgnoreSizeForCameraInterest flag. More...
 
static void SetEnvDefaults ()
 
static void SetIgnoreSizeForCameraInterest (Bool_t isfci)
 Set state of static fgIgnoreSizeForCameraInterest flag. More...
 
- Protected Member Functions inherited from TGLObject
template<class TT >
TT * DynCast (TObject *obj)
 
void SetAxisAlignedBBox (const Float_t *p)
 Set axis-aligned bounding-box. More...
 
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. More...
 
Bool_t SetModelCheckClass (TObject *obj, TClass *cls)
 Checks if obj is of proper class and sets the model. More...
 
template<class TT >
TT * SetModelDynCast (TObject *obj)
 
- Protected Member Functions inherited from TGLLogicalShape
void PurgeDLRange (UInt_t base, Int_t size) const
 External object is a fake. More...
 
- Protected Attributes inherited from TGLObject
Bool_t fMultiColor
 
- Protected Attributes inherited from TGLLogicalShape
TGLBoundingBox fBoundingBox
 Also plays the role of ID. More...
 
UInt_t fDLBase
 scene where object is stored (can be zero!) More...
 
Bool_t fDLCache
 display-list validity bit-field More...
 
Int_t fDLSize
 display-list id base More...
 
UShort_t fDLValid
 display-list size for different LODs More...
 
TObjectfExternalObj
 first replica More...
 
TGLPhysicalShapefFirstPhysical
 physical instance ref counting More...
 
Bool_t fOwnExtObj
 Strong ref (delete on 0 ref); not in scene. More...
 
UInt_t fRef
 
Bool_t fRefStrong
 use display list caching More...
 
TGLScenefScene
 Shape's bounding box. More...
 
- Static Protected Attributes inherited from TGLLogicalShape
static Bool_t fgIgnoreSizeForCameraInterest = kFALSE
 
static Bool_t fgUseDLs = kTRUE
 
static Bool_t fgUseDLsForVertArrs = kTRUE
 global flag for usage of display-lists More...
 

#include <TEveCaloLegoGL.h>

Inheritance diagram for TEveCaloLegoGL:
[legend]

Member Typedef Documentation

◆ SliceDLMap_i

typedef std::map<Int_t,UInt_t>::iterator TEveCaloLegoGL::SliceDLMap_i
private

Definition at line 62 of file TEveCaloLegoGL.h.

◆ SliceDLMap_t

typedef std::map<Int_t, UInt_t> TEveCaloLegoGL::SliceDLMap_t
private

Definition at line 61 of file TEveCaloLegoGL.h.

◆ vCell2D_i

typedef std::vector<Cell2D_t>::iterator TEveCaloLegoGL::vCell2D_i
private

Definition at line 59 of file TEveCaloLegoGL.h.

◆ vCell2D_t

typedef std::vector<Cell2D_t> TEveCaloLegoGL::vCell2D_t
private

Definition at line 58 of file TEveCaloLegoGL.h.

Constructor & Destructor Documentation

◆ TEveCaloLegoGL() [1/2]

TEveCaloLegoGL::TEveCaloLegoGL ( const TEveCaloLegoGL )
private

◆ TEveCaloLegoGL() [2/2]

TEveCaloLegoGL::TEveCaloLegoGL ( )

Constructor.

Definition at line 45 of file TEveCaloLegoGL.cxx.

◆ ~TEveCaloLegoGL()

TEveCaloLegoGL::~TEveCaloLegoGL ( )
virtual

Destructor.

Definition at line 74 of file TEveCaloLegoGL.cxx.

Member Function Documentation

◆ AlwaysSecondarySelect()

virtual Bool_t TEveCaloLegoGL::AlwaysSecondarySelect ( ) const
inlinevirtual

Reimplemented from TGLLogicalShape.

Definition at line 138 of file TEveCaloLegoGL.h.

◆ DirectDraw()

void TEveCaloLegoGL::DirectDraw ( TGLRnrCtx rnrCtx) const
virtual

Draw the object.

Implements TGLLogicalShape.

Definition at line 1256 of file TEveCaloLegoGL.cxx.

◆ DLCacheDrop()

void TEveCaloLegoGL::DLCacheDrop ( )
virtual

Drop all display-list definitions.

Reimplemented from TGLLogicalShape.

Definition at line 103 of file TEveCaloLegoGL.cxx.

◆ DLCachePurge()

void TEveCaloLegoGL::DLCachePurge ( )
virtual

Unregister all display-lists.

Reimplemented from TGLLogicalShape.

Definition at line 115 of file TEveCaloLegoGL.cxx.

◆ DrawAxis2D()

void TEveCaloLegoGL::DrawAxis2D ( TGLRnrCtx rnrCtx) const
private

Draw XY axis.

Definition at line 605 of file TEveCaloLegoGL.cxx.

◆ DrawAxis3D()

void TEveCaloLegoGL::DrawAxis3D ( TGLRnrCtx rnrCtx) const
private

Draw z-axis and z-box at the appropriate grid corner-point including tick-marks and labels.

Definition at line 424 of file TEveCaloLegoGL.cxx.

◆ DrawCells2D()

void TEveCaloLegoGL::DrawCells2D ( TGLRnrCtx rnrCtx,
vCell2D_t cells2D 
) const
private

Draw cells in top view.

Definition at line 937 of file TEveCaloLegoGL.cxx.

◆ DrawCells3D()

void TEveCaloLegoGL::DrawCells3D ( TGLRnrCtx rnrCtx) const
private

Render the calo lego-plot with OpenGL.

Definition at line 813 of file TEveCaloLegoGL.cxx.

◆ DrawHighlight()

void TEveCaloLegoGL::DrawHighlight ( TGLRnrCtx rnrCtx,
const TGLPhysicalShape ps,
Int_t  lvl = -1 
) const
virtual

Draw highligted cells.

Reimplemented from TGLLogicalShape.

Definition at line 1091 of file TEveCaloLegoGL.cxx.

◆ DrawHistBase()

void TEveCaloLegoGL::DrawHistBase ( TGLRnrCtx rnrCtx) const
private

Draw basic histogram components: x-y grid.

Definition at line 746 of file TEveCaloLegoGL.cxx.

◆ DrawSelectedCells()

void TEveCaloLegoGL::DrawSelectedCells ( TGLRnrCtx rnrCtx,
TEveCaloData::vCellId_t  cells 
) const
private

Draw selected cells in highlight mode.

Definition at line 1139 of file TEveCaloLegoGL.cxx.

◆ GetGridStep()

Int_t TEveCaloLegoGL::GetGridStep ( TGLRnrCtx rnrCtx) const
private

Calculate view-dependent grid density.

Definition at line 683 of file TEveCaloLegoGL.cxx.

◆ GetScaleForMatrix()

void TEveCaloLegoGL::GetScaleForMatrix ( Float_t sx,
Float_t sy,
Float_t sz 
) const
private

Get scale for matrix.

Definition at line 582 of file TEveCaloLegoGL.cxx.

◆ Make3DDisplayList()

void TEveCaloLegoGL::Make3DDisplayList ( TEveCaloData::vCellId_t cellList,
SliceDLMap_t dlMap,
Bool_t  selection 
) const
private

Create display-list that draws histogram bars for non-rebinned data.

It is used for filled and outline passes.

Definition at line 206 of file TEveCaloLegoGL.cxx.

◆ Make3DDisplayListRebin()

void TEveCaloLegoGL::Make3DDisplayListRebin ( TEveCaloData::RebinData_t rebinData,
SliceDLMap_t dlMap,
Bool_t  selection 
) const
private

Create display-list that draws histogram bars for rebinned data.

It is used for filled and outline passes.

Definition at line 248 of file TEveCaloLegoGL.cxx.

◆ MakeQuad()

void TEveCaloLegoGL::MakeQuad ( Float_t  x1,
Float_t  y1,
Float_t  z1,
Float_t  xw,
Float_t  yw,
Float_t  h 
) const
private

Draw an axis-aligned box using quads.

z
|
|
|________y
/ 6-------7
/ /| /|
x 5-------4 |
| 2-----|-3
|/ |/
1-------0
Double_t x[n]
Definition: legend1.C:17

Definition at line 145 of file TEveCaloLegoGL.cxx.

◆ operator=()

TEveCaloLegoGL & TEveCaloLegoGL::operator= ( const TEveCaloLegoGL )
private

◆ PrepareCell2DData()

void TEveCaloLegoGL::PrepareCell2DData ( TEveCaloData::vCellId_t cellList,
vCell2D_t cells2D 
) const
private

Prepare cells 2D data non-rebinned for drawing.

Definition at line 840 of file TEveCaloLegoGL.cxx.

◆ PrepareCell2DDataRebin()

void TEveCaloLegoGL::PrepareCell2DDataRebin ( TEveCaloData::RebinData_t rebinData,
vCell2D_t cells2D 
) const
private

Prepare cells 2D rebinned data for drawing.

Definition at line 888 of file TEveCaloLegoGL.cxx.

◆ ProcessSelection()

void TEveCaloLegoGL::ProcessSelection ( TGLRnrCtx rnrCtx,
TGLSelectRecord rec 
)
virtual

Processes tower selection from TGLViewer.

Reimplemented from TGLLogicalShape.

Definition at line 1408 of file TEveCaloLegoGL.cxx.

◆ RebinAxis()

void TEveCaloLegoGL::RebinAxis ( TAxis orig,
TAxis curr 
) const
private

Rebin eta, phi axis.

Definition at line 726 of file TEveCaloLegoGL.cxx.

◆ SetAxis3DTitlePos()

void TEveCaloLegoGL::SetAxis3DTitlePos ( TGLRnrCtx rnrCtx,
Float_t  x0,
Float_t  x1,
Float_t  y0,
Float_t  y1 
) const
private

Set the axis 3D title position.

Definition at line 293 of file TEveCaloLegoGL.cxx.

◆ SetBBox()

void TEveCaloLegoGL::SetBBox ( )
virtual

Set bounding box.

Implements TGLObject.

Definition at line 95 of file TEveCaloLegoGL.cxx.

◆ SetModel()

Bool_t TEveCaloLegoGL::SetModel ( TObject obj,
const Option_t opt = 0 
)
virtual

Set model object.

Implements TGLObject.

Definition at line 86 of file TEveCaloLegoGL.cxx.

◆ SupportsSecondarySelect()

virtual Bool_t TEveCaloLegoGL::SupportsSecondarySelect ( ) const
inlinevirtual

Reimplemented from TGLLogicalShape.

Definition at line 137 of file TEveCaloLegoGL.h.

◆ WrapTwoPi()

void TEveCaloLegoGL::WrapTwoPi ( Float_t min,
Float_t max 
) const
inlineprivate

Definition at line 145 of file TEveCaloLegoGL.h.

Friends And Related Function Documentation

◆ TEveCaloLegoOverlay

friend class TEveCaloLegoOverlay
friend

Definition at line 28 of file TEveCaloLegoGL.h.

Member Data Documentation

◆ fAxisPainter

TGLAxisPainter TEveCaloLegoGL::fAxisPainter
mutableprivate

Definition at line 77 of file TEveCaloLegoGL.h.

◆ fBackPlaneXConst

TEveVector TEveCaloLegoGL::fBackPlaneXConst[2]
mutableprivate

Definition at line 74 of file TEveCaloLegoGL.h.

◆ fBackPlaneYConst

TEveVector TEveCaloLegoGL::fBackPlaneYConst[2]
mutableprivate

Definition at line 75 of file TEveCaloLegoGL.h.

◆ fBinStep

Int_t TEveCaloLegoGL::fBinStep
mutableprivate

Definition at line 92 of file TEveCaloLegoGL.h.

◆ fCells2D

vCell2D_t TEveCaloLegoGL::fCells2D
mutableprivate

Definition at line 82 of file TEveCaloLegoGL.h.

◆ fCells3D

Bool_t TEveCaloLegoGL::fCells3D
mutableprivate

Definition at line 90 of file TEveCaloLegoGL.h.

◆ fCurrentPixelsPerBin

Int_t TEveCaloLegoGL::fCurrentPixelsPerBin
mutableprivate

Definition at line 87 of file TEveCaloLegoGL.h.

◆ fDLCacheOK

Bool_t TEveCaloLegoGL::fDLCacheOK
mutableprivate

Definition at line 81 of file TEveCaloLegoGL.h.

◆ fDLMap

SliceDLMap_t TEveCaloLegoGL::fDLMap
mutableprivate

Definition at line 89 of file TEveCaloLegoGL.h.

◆ fEtaAxis

TAxis* TEveCaloLegoGL::fEtaAxis
mutableprivate

Definition at line 68 of file TEveCaloLegoGL.h.

◆ fFontColor

Color_t TEveCaloLegoGL::fFontColor
mutableprivate

Definition at line 66 of file TEveCaloLegoGL.h.

◆ fGridColor

Color_t TEveCaloLegoGL::fGridColor
mutableprivate

Definition at line 65 of file TEveCaloLegoGL.h.

◆ fM

TEveCaloLego* TEveCaloLegoGL::fM
private

Definition at line 80 of file TEveCaloLegoGL.h.

◆ fMaxVal

Float_t TEveCaloLegoGL::fMaxVal
mutableprivate

Definition at line 85 of file TEveCaloLegoGL.h.

◆ fPhiAxis

TAxis* TEveCaloLegoGL::fPhiAxis
mutableprivate

Definition at line 69 of file TEveCaloLegoGL.h.

◆ fRebinData

TEveCaloData::RebinData_t TEveCaloLegoGL::fRebinData
mutableprivate

Definition at line 84 of file TEveCaloLegoGL.h.

◆ fValToPixel

Float_t TEveCaloLegoGL::fValToPixel
mutableprivate

Definition at line 86 of file TEveCaloLegoGL.h.

◆ fXAxisTitlePos

TEveVector TEveCaloLegoGL::fXAxisTitlePos
mutableprivate

Definition at line 71 of file TEveCaloLegoGL.h.

◆ fYAxisTitlePos

TEveVector TEveCaloLegoGL::fYAxisTitlePos
mutableprivate

Definition at line 72 of file TEveCaloLegoGL.h.

◆ fZAxis

TAxis* TEveCaloLegoGL::fZAxis
mutableprivate

Definition at line 70 of file TEveCaloLegoGL.h.

◆ fZAxisTitlePos

TEveVector TEveCaloLegoGL::fZAxisTitlePos
mutableprivate

Definition at line 73 of file TEveCaloLegoGL.h.

Libraries for TEveCaloLegoGL:
[legend]

The documentation for this class was generated from the following files: