12 #ifndef ROOT_TEveBoxSet
13 #define ROOT_TEveBoxSet
21 class TEveBoxSet:
public TEveDigitSet
23 friend class TEveBoxSetGL;
25 TEveBoxSet(
const TEveBoxSet&);
26 TEveBoxSet& operator=(
const TEveBoxSet&);
39 struct BFreeBox_t :
public DigitBase_t { Float_t fVertices[8][3]; };
41 struct BOrigin_t :
public DigitBase_t { Float_t fA, fB, fC; };
43 struct BAABox_t :
public BOrigin_t { Float_t fW, fH, fD; };
45 struct BAABoxFixedDim_t :
public BOrigin_t {};
47 struct BCone_t :
public DigitBase_t { TEveVector fPos, fDir; Float_t fR; };
49 struct BEllipticCone_t :
public BCone_t { Float_t fR2, fAngle; };
51 struct BHex_t :
public DigitBase_t { TEveVector fPos; Float_t fR, fAngle, fDepth; };
64 static Int_t SizeofAtom(EBoxType_e bt);
67 TEveBoxSet(
const char* n=
"TEveBoxSet",
const char* t=
"");
68 virtual ~TEveBoxSet() {}
70 void Reset(EBoxType_e boxType, Bool_t valIsCol, Int_t chunkSize);
73 void AddBox(
const Float_t* verts);
74 void AddBox(Float_t a, Float_t b, Float_t c, Float_t w, Float_t h, Float_t d);
75 void AddBox(Float_t a, Float_t b, Float_t c);
77 void AddCone(
const TEveVector& pos,
const TEveVector& dir, Float_t r);
78 void AddEllipticCone(
const TEveVector& pos,
const TEveVector& dir, Float_t r, Float_t r2, Float_t angle=0);
80 void AddHex(
const TEveVector& pos, Float_t r, Float_t angle, Float_t depth);
82 virtual void ComputeBBox();
85 void Test(Int_t nboxes);
87 Float_t GetDefWidth()
const {
return fDefWidth; }
88 Float_t GetDefHeight()
const {
return fDefHeight; }
89 Float_t GetDefDepth()
const {
return fDefDepth; }
90 Bool_t GetDrawConeCap()
const {
return fDrawConeCap; }
92 void SetDefWidth(Float_t v) { fDefWidth = v ; }
93 void SetDefHeight(Float_t v) { fDefHeight = v ; }
94 void SetDefDepth(Float_t v) { fDefDepth = v ; }
95 void SetDrawConeCap(Bool_t x) { fDrawConeCap=x; StampObjProps(); }
97 Int_t GetBoxSkip()
const {
return fBoxSkip; }
98 void SetBoxSkip(Int_t bs) { fBoxSkip = bs; }
100 ClassDef(TEveBoxSet, 0);