Logo ROOT   6.18/05
Reference Guide
TEveCalo3DGL.h
Go to the documentation of this file.
1// @(#)root/eve:$Id$
2// Author: Matevz Tadel 2007
3
4/*************************************************************************
5 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TEveCalo3DGL
13#define ROOT_TEveCalo3DGL
14
15#include "TGLObject.h"
16#include "TEveCaloData.h"
17
18class TEveCalo3D;
19
20class TEveCalo3DGL : public TGLObject
21{
22private:
23 TEveCalo3DGL(const TEveCalo3DGL&); // Not implemented
24 TEveCalo3DGL& operator=(const TEveCalo3DGL&); // Not implemented
25
26 void CrossProduct(const Float_t a[3], const Float_t b[3], const Float_t c[3], Float_t out[3]) const;
27
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;
34
36
37protected:
38 TEveCalo3D *fM; // Model object.
39
40 mutable std::vector<Float_t> fOffset;
41
42public:
44 virtual ~TEveCalo3DGL() {}
45
46 virtual Bool_t SetModel(TObject* obj, const Option_t* opt=0);
47 virtual void SetBBox();
48
49 virtual void DirectDraw(TGLRnrCtx & rnrCtx) const;
50 virtual void DrawHighlight(TGLRnrCtx & rnrCtx, const TGLPhysicalShape* ps, Int_t lvl=-1) const;
51
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);
56
57 ClassDef(TEveCalo3DGL, 0); // GL renderer class for TEveCalo.
58};
59
60#endif
#define b(i)
Definition: RSha256.hxx:100
#define c(i)
Definition: RSha256.hxx:101
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
float Float_t
Definition: RtypesCore.h:53
const Bool_t kTRUE
Definition: RtypesCore.h:87
const char Option_t
Definition: RtypesCore.h:62
#define ClassDef(name, id)
Definition: Rtypes.h:326
OpenGL renderer class for TEveCalo3D.
Definition: TEveCalo3DGL.h:21
TEveCalo3DGL(const TEveCalo3DGL &)
std::vector< Float_t > fOffset
Definition: TEveCalo3DGL.h:40
void RenderBarrelCell(const TEveCaloData::CellGeom_t &cell, Float_t towerH, Float_t &offset) const
Render barrel cell.
TEveCalo3D * fM
Definition: TEveCalo3DGL.h:38
void RenderBox(const Float_t pnts[8]) const
Render box with given points.
TEveCalo3DGL()
Constructor.
void RenderGrid(TGLRnrCtx &rnrCtx) const
Draw frame reading eta, phi axis.
void RenderGridEndCap() const
Render end cap grid.
virtual Bool_t SupportsSecondarySelect() const
Definition: TEveCalo3DGL.h:53
virtual void DirectDraw(TGLRnrCtx &rnrCtx) const
GL rendering.
TEveCalo3DGL & operator=(const TEveCalo3DGL &)
void DrawSelectedCells(TEveCaloData::vCellId_t cells) const
virtual void ProcessSelection(TGLRnrCtx &rnrCtx, TGLSelectRecord &rec)
Processes tower selection.
virtual Bool_t ShouldDLCache(const TGLRnrCtx &rnrCtx) const
Override from TGLObject.
virtual Bool_t AlwaysSecondarySelect() const
Definition: TEveCalo3DGL.h:54
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.
virtual void DrawHighlight(TGLRnrCtx &rnrCtx, const TGLPhysicalShape *ps, Int_t lvl=-1) const
Draw polygons in highlight mode.
virtual ~TEveCalo3DGL()
Definition: TEveCalo3DGL.h:44
void RenderGridBarrel() const
Render barrel grid.
virtual Bool_t SetModel(TObject *obj, const Option_t *opt=0)
Set model object.
void RenderEndCapCell(const TEveCaloData::CellGeom_t &cell, Float_t towerH, Float_t &offset) const
Render an endcap cell.
virtual void SetBBox()
Set bounding box.
Visualization of a calorimeter event data in 3D.
Definition: TEveCalo.h:157
std::vector< CellId_t > vCellId_t
Definition: TEveCaloData.h:146
Base-class for direct OpenGL renderers.
Definition: TGLObject.h:22
Concrete physical shape - a GL drawable.
The TGLRnrCtx class aggregates data for a given redering context as needed by various parts of the RO...
Definition: TGLRnrCtx.h:41
Standard selection record including information about containing scene and details ob out selected ob...
Mother of all ROOT objects.
Definition: TObject.h:37
static constexpr double ps
Cell geometry inner structure.
Definition: TEveCaloData.h:73
auto * a
Definition: textangle.C:12