ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Attributes | Private Member Functions | List of all members
TEveCalo3DGL Class Reference

OpenGL renderer class for TEveCalo3D.

Definition at line 20 of file TEveCalo3DGL.h.

Public Member Functions

 TEveCalo3DGL ()
 Constructor. More...
 
virtual ~TEveCalo3DGL ()
 
virtual Bool_t SetModel (TObject *obj, const Option_t *opt=0)
 Set model object. More...
 
virtual void SetBBox ()
 Set bounding box. More...
 
virtual void DirectDraw (TGLRnrCtx &rnrCtx) const
 GL rendering. More...
 
virtual void DrawHighlight (TGLRnrCtx &rnrCtx, const TGLPhysicalShape *ps, Int_t lvl=-1) const
 Draw polygons in highlight mode. More...
 
virtual Bool_t ShouldDLCache (const TGLRnrCtx &rnrCtx) const
 Override from TGLObject. More...
 
virtual Bool_t SupportsSecondarySelect () const
 
virtual Bool_t AlwaysSecondarySelect () const
 
virtual void ProcessSelection (TGLRnrCtx &rnrCtx, TGLSelectRecord &rec)
 Processes tower selection. More...
 
 ClassDef (TEveCalo3DGL, 0)
 
- Public Member Functions inherited from TGLObject
 TGLObject ()
 
virtual ~TGLObject ()
 
virtual Bool_t KeepDuringSmartRefresh () const
 
virtual void UpdateBoundingBox ()
 Update bounding box from external source. More...
 
 ClassDef (TGLObject, 0)
 
- Public Member Functions inherited from TGLLogicalShape
 TGLLogicalShape ()
 Constructor. More...
 
 TGLLogicalShape (TObject *obj)
 Constructor with external object. More...
 
 TGLLogicalShape (const TBuffer3D &buffer)
 Constructor from TBuffer3D. More...
 
virtual ~TGLLogicalShape ()
 Destroy logical shape. More...
 
UInt_t Ref () const
 
void AddRef (TGLPhysicalShape *phys) const
 Add reference to given physical shape. More...
 
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...
 
void StrongRef (Bool_t strong) const
 
void DestroyPhysicals ()
 Destroy all physicals attached to this logical. More...
 
UInt_t UnrefFirstPhysical ()
 Unreferenced first physical in the list, returning its id and making it fit for destruction somewhere else. More...
 
const TGLPhysicalShapeGetFirstPhysical () const
 
TObjectID () const
 
TObjectGetExternal () const
 
TGLSceneGetScene () const
 
const TGLBoundingBoxBoundingBox () const
 
void UpdateBoundingBoxesOfPhysicals ()
 Update bounding-boxed of all dependent physicals. More...
 
Bool_t SetDLCache (Bool_t cached)
 Modify capture of draws into display list cache kTRUE - capture, kFALSE direct draw. More...
 
virtual UInt_t DLOffset (Short_t) const
 
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 ELODAxes SupportedLODAxes () const
 
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...
 
virtual void Draw (TGLRnrCtx &rnrCtx) const
 Draw the GL drawable, using draw flags. More...
 
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...
 

Protected Attributes

TEveCalo3DfM
 
std::vector< Float_tfOffset
 
- Protected Attributes inherited from TGLObject
Bool_t fMultiColor
 
- Protected Attributes inherited from TGLLogicalShape
UInt_t fRef
 
TGLPhysicalShapefFirstPhysical
 physical instance ref counting More...
 
TObjectfExternalObj
 first replica More...
 
TGLBoundingBox fBoundingBox
 Also plays the role of ID. More...
 
TGLScenefScene
 Shape's bounding box. More...
 
UInt_t fDLBase
 scene where object is stored (can be zero!) More...
 
Int_t fDLSize
 display-list id base More...
 
UShort_t fDLValid
 display-list size for different LODs More...
 
Bool_t fDLCache
 display-list validity bit-field More...
 
Bool_t fRefStrong
 use display list caching More...
 
Bool_t fOwnExtObj
 Strong ref (delete on 0 ref); not in scene. More...
 

Private Member Functions

 TEveCalo3DGL (const TEveCalo3DGL &)
 
TEveCalo3DGLoperator= (const TEveCalo3DGL &)
 
void CrossProduct (const Float_t a[3], const Float_t b[3], const Float_t c[3], Float_t out[3]) const
 Calculate cross-product. More...
 
void RenderBox (const Float_t pnts[8]) const
 Render box with given points. More...
 
void RenderGridEndCap () const
 Render end cap grid. More...
 
void RenderGridBarrel () const
 Render barrel grid. More...
 
void RenderGrid (TGLRnrCtx &rnrCtx) const
 Draw frame reading eta, phi axis. More...
 
void RenderBarrelCell (const TEveCaloData::CellGeom_t &cell, Float_t towerH, Float_t &offset) const
 Render barrel cell. More...
 
void RenderEndCapCell (const TEveCaloData::CellGeom_t &cell, Float_t towerH, Float_t &offset) const
 Render an endcap cell. More...
 
void DrawSelectedCells (TEveCaloData::vCellId_t cells) const
 

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 SetIgnoreSizeForCameraInterest (Bool_t isfci)
 Set state of static fgIgnoreSizeForCameraInterest flag. More...
 
- Protected Member Functions inherited from TGLObject
Bool_t SetModelCheckClass (TObject *obj, TClass *cls)
 Checks if obj is of proper class and sets the model. 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...
 
void SetAxisAlignedBBox (const Float_t *p)
 Set axis-aligned bounding-box. More...
 
template<class TT >
TT * SetModelDynCast (TObject *obj)
 
template<class TT >
TT * DynCast (TObject *obj)
 
- Protected Member Functions inherited from TGLLogicalShape
void PurgeDLRange (UInt_t base, Int_t size) const
 External object is a fake. More...
 
- Static Protected Attributes inherited from TGLLogicalShape
static Bool_t fgIgnoreSizeForCameraInterest = kFALSE
 

#include <TEveCalo3DGL.h>

Inheritance diagram for TEveCalo3DGL:
[legend]

Constructor & Destructor Documentation

TEveCalo3DGL::TEveCalo3DGL ( const TEveCalo3DGL )
private
TEveCalo3DGL::TEveCalo3DGL ( )

Constructor.

Definition at line 36 of file TEveCalo3DGL.cxx.

virtual TEveCalo3DGL::~TEveCalo3DGL ( )
inlinevirtual

Definition at line 44 of file TEveCalo3DGL.h.

Member Function Documentation

virtual Bool_t TEveCalo3DGL::AlwaysSecondarySelect ( ) const
inlinevirtual

Reimplemented from TGLLogicalShape.

Definition at line 54 of file TEveCalo3DGL.h.

TEveCalo3DGL::ClassDef ( TEveCalo3DGL  ,
 
)
void TEveCalo3DGL::CrossProduct ( const Float_t  a[3],
const Float_t  b[3],
const Float_t  c[3],
Float_t  out[3] 
) const
inlineprivate

Calculate cross-product.

Definition at line 74 of file TEveCalo3DGL.cxx.

Referenced by RenderBox().

void TEveCalo3DGL::DirectDraw ( TGLRnrCtx rnrCtx) const
virtual

GL rendering.

Implements TGLLogicalShape.

Definition at line 542 of file TEveCalo3DGL.cxx.

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

Draw polygons in highlight mode.

Reimplemented from TGLLogicalShape.

Definition at line 602 of file TEveCalo3DGL.cxx.

void TEveCalo3DGL::DrawSelectedCells ( TEveCaloData::vCellId_t  cells) const
private

Definition at line 638 of file TEveCalo3DGL.cxx.

Referenced by DrawHighlight().

TEveCalo3DGL& TEveCalo3DGL::operator= ( const TEveCalo3DGL )
private
void TEveCalo3DGL::ProcessSelection ( TGLRnrCtx rnrCtx,
TGLSelectRecord rec 
)
virtual

Processes tower selection.

Virtual function from TGLogicalShape. Called from TGLViewer.

Reimplemented from TGLLogicalShape.

Definition at line 673 of file TEveCalo3DGL.cxx.

void TEveCalo3DGL::RenderBarrelCell ( const TEveCaloData::CellGeom_t cell,
Float_t  towerH,
Float_t offset 
) const
private

Render barrel cell.

Definition at line 399 of file TEveCalo3DGL.cxx.

Referenced by DirectDraw(), and DrawSelectedCells().

void TEveCalo3DGL::RenderBox ( const Float_t  pnts[8]) const
private

Render box with given points.

z
|
|
|________y
/ 6-------7
/ /| /|
x 5-------4 |
| 2-----|-3
|/ |/
1-------0

Definition at line 335 of file TEveCalo3DGL.cxx.

Referenced by RenderBarrelCell(), and RenderEndCapCell().

void TEveCalo3DGL::RenderEndCapCell ( const TEveCaloData::CellGeom_t cell,
Float_t  towerH,
Float_t offset 
) const
private

Render an endcap cell.

Definition at line 469 of file TEveCalo3DGL.cxx.

Referenced by DirectDraw(), and DrawSelectedCells().

void TEveCalo3DGL::RenderGrid ( TGLRnrCtx rnrCtx) const
private

Draw frame reading eta, phi axis.

Definition at line 275 of file TEveCalo3DGL.cxx.

Referenced by DirectDraw().

void TEveCalo3DGL::RenderGridBarrel ( ) const
private

Render barrel grid.

Definition at line 200 of file TEveCalo3DGL.cxx.

Referenced by RenderGrid().

void TEveCalo3DGL::RenderGridEndCap ( ) const
private

Render end cap grid.

Definition at line 88 of file TEveCalo3DGL.cxx.

Referenced by RenderGrid().

void TEveCalo3DGL::SetBBox ( )
virtual

Set bounding box.

Implements TGLObject.

Definition at line 54 of file TEveCalo3DGL.cxx.

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

Set model object.

Implements TGLObject.

Definition at line 45 of file TEveCalo3DGL.cxx.

Bool_t TEveCalo3DGL::ShouldDLCache ( const TGLRnrCtx rnrCtx) const
virtual

Override from TGLObject.

To account for large point-sizes we modify the projection matrix during selection and thus we need a direct draw.

Reimplemented from TGLObject.

Definition at line 65 of file TEveCalo3DGL.cxx.

virtual Bool_t TEveCalo3DGL::SupportsSecondarySelect ( ) const
inlinevirtual

Reimplemented from TGLLogicalShape.

Definition at line 53 of file TEveCalo3DGL.h.

Member Data Documentation

TEveCalo3D* TEveCalo3DGL::fM
protected
std::vector<Float_t> TEveCalo3DGL::fOffset
mutableprotected

Definition at line 40 of file TEveCalo3DGL.h.

Referenced by DirectDraw(), and DrawSelectedCells().

Collaboration diagram for TEveCalo3DGL:
[legend]

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