12 #ifndef ROOT_TEveCalo3DGL
13 #define ROOT_TEveCalo3DGL
20 class TEveCalo3DGL :
public TGLObject
23 TEveCalo3DGL(
const TEveCalo3DGL&);
24 TEveCalo3DGL& operator=(
const TEveCalo3DGL&);
26 void CrossProduct(
const Float_t a[3],
const Float_t b[3],
const Float_t c[3], Float_t out[3])
const;
28 void RenderBox(
const Float_t pnts[8])
const;
29 void RenderGridEndCap()
const;
30 void RenderGridBarrel()
const;
31 void RenderGrid(TGLRnrCtx & rnrCtx)
const;
32 void RenderBarrelCell(
const TEveCaloData::CellGeom_t &cell, Float_t towerH, Float_t& offset)
const;
33 void RenderEndCapCell(
const TEveCaloData::CellGeom_t &cell, Float_t towerH, Float_t& offset)
const;
35 void DrawSelectedCells(TEveCaloData::vCellId_t cells)
const;
40 mutable std::vector<Float_t> fOffset;
44 virtual ~TEveCalo3DGL() {}
46 virtual Bool_t SetModel(TObject* obj,
const Option_t* opt=0);
47 virtual void SetBBox();
49 virtual void DirectDraw(TGLRnrCtx & rnrCtx)
const;
50 virtual void DrawHighlight(TGLRnrCtx & rnrCtx,
const TGLPhysicalShape* ps, Int_t lvl=-1)
const;
52 virtual Bool_t ShouldDLCache(
const TGLRnrCtx& rnrCtx)
const;
53 virtual Bool_t SupportsSecondarySelect()
const {
return kTRUE; }
54 virtual Bool_t AlwaysSecondarySelect()
const {
return kTRUE; }
55 virtual void ProcessSelection(TGLRnrCtx & rnrCtx, TGLSelectRecord & rec);
57 ClassDef(TEveCalo3DGL, 0);