Logo ROOT  
Reference Guide
TEveBoxSet.h
Go to the documentation of this file.
1// @(#)root/eve:$Id$
2// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 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_TEveBoxSet
13#define ROOT_TEveBoxSet
14
15#include "TEveDigitSet.h"
16#include "TEveVector.h"
17
18class TGeoMatrix;
19class TRandom;
20
22{
23 friend class TEveBoxSetGL;
24
25 TEveBoxSet(const TEveBoxSet&); // Not implemented
26 TEveBoxSet& operator=(const TEveBoxSet&); // Not implemented
27
28public:
30 kBT_Undef, // unknown-ignored
31 kBT_FreeBox, // arbitrary box: specify 8*(x,y,z) box corners
32 kBT_AABox, // axis-aligned box: specify (x,y,z) and (w, h, d)
33 kBT_AABoxFixedDim, // axis-aligned box w/ fixed dimensions: specify (x,y,z)
37 };
38
39 struct BFreeBox_t : public DigitBase_t { Float_t fVertices[8][3]; };
40
41 struct BOrigin_t : public DigitBase_t { Float_t fA, fB, fC; };
42
43 struct BAABox_t : public BOrigin_t { Float_t fW, fH, fD; };
44
45 struct BAABoxFixedDim_t : public BOrigin_t {};
46
48
49 struct BEllipticCone_t : public BCone_t { Float_t fR2, fAngle; };
50
52
53protected:
54 EBoxType_e fBoxType; // Type of rendered box.
55
56 Float_t fDefWidth; // Breadth assigned to first coordinate (A).
57 Float_t fDefHeight; // Breadth assigned to second coordinate (B).
58 Float_t fDefDepth; // Breadth assigned to third coordinate (C).
59
60 Int_t fBoxSkip; // Number of boxes to skip for each drawn box during scene rotation.
61
63
64 static Int_t SizeofAtom(EBoxType_e bt);
65
66public:
67 TEveBoxSet(const char* n="TEveBoxSet", const char* t="");
68 virtual ~TEveBoxSet() {}
69
70 void Reset(EBoxType_e boxType, Bool_t valIsCol, Int_t chunkSize);
71 void Reset();
72
73 void AddBox(const Float_t* verts);
76
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);
79
80 void AddHex(const TEveVector& pos, Float_t r, Float_t angle, Float_t depth);
81
82 virtual void ComputeBBox();
83 // virtual void Paint(Option_t* option = "");
84
85 void Test(Int_t nboxes);
86
87 Float_t GetDefWidth() const { return fDefWidth; }
88 Float_t GetDefHeight() const { return fDefHeight; }
89 Float_t GetDefDepth() const { return fDefDepth; }
91
96
97 Int_t GetBoxSkip() const { return fBoxSkip; }
98 void SetBoxSkip(Int_t bs) { fBoxSkip = bs; }
99
100 ClassDef(TEveBoxSet, 0); // Collection of 3D primitives (fixed-size boxes, boxes of different sizes, or arbitrary sexto-epipeds); each primitive can be assigned a signal value and a TRef.
101};
102
103#endif
ROOT::R::TRInterface & r
Definition: Object.C:4
#define d(i)
Definition: RSha256.hxx:102
#define b(i)
Definition: RSha256.hxx:100
#define c(i)
Definition: RSha256.hxx:101
#define h(i)
Definition: RSha256.hxx:106
int Int_t
Definition: RtypesCore.h:45
bool Bool_t
Definition: RtypesCore.h:63
float Float_t
Definition: RtypesCore.h:57
#define ClassDef(name, id)
Definition: Rtypes.h:325
A GL rendering class for TEveBoxSet.
Definition: TEveBoxSetGL.h:19
Collection of 3D primitives (fixed-size boxes, boxes of different sizes, or arbitrary sexto-epipeds,...
Definition: TEveBoxSet.h:22
virtual void ComputeBBox()
Fill bounding-box information of the base-class TAttBBox (virtual method).
Definition: TEveBoxSet.cxx:217
Float_t fDefWidth
Definition: TEveBoxSet.h:56
Float_t GetDefDepth() const
Definition: TEveBoxSet.h:89
Bool_t GetDrawConeCap() const
Definition: TEveBoxSet.h:90
Int_t fBoxSkip
Definition: TEveBoxSet.h:60
Float_t GetDefWidth() const
Definition: TEveBoxSet.h:87
void SetDrawConeCap(Bool_t x)
Definition: TEveBoxSet.h:95
virtual ~TEveBoxSet()
Definition: TEveBoxSet.h:68
Float_t fDefDepth
Definition: TEveBoxSet.h:58
void SetDefHeight(Float_t v)
Definition: TEveBoxSet.h:93
void SetBoxSkip(Int_t bs)
Definition: TEveBoxSet.h:98
void AddBox(const Float_t *verts)
Create a new box from a set of 8 vertices.
Definition: TEveBoxSet.cxx:113
void AddHex(const TEveVector &pos, Float_t r, Float_t angle, Float_t depth)
Create a hexagonal prism with center of one hexagon at pos, radius of hexagon vertices r,...
Definition: TEveBoxSet.cxx:199
TEveBoxSet & operator=(const TEveBoxSet &)
Int_t GetBoxSkip() const
Definition: TEveBoxSet.h:97
void SetDefDepth(Float_t v)
Definition: TEveBoxSet.h:94
Float_t fDefHeight
Definition: TEveBoxSet.h:57
EBoxType_e fBoxType
Definition: TEveBoxSet.h:54
void Test(Int_t nboxes)
Fill the structure with a random set of boxes.
Definition: TEveBoxSet.cxx:333
void SetDefWidth(Float_t v)
Definition: TEveBoxSet.h:92
TEveBoxSet(const TEveBoxSet &)
Float_t GetDefHeight() const
Definition: TEveBoxSet.h:88
void AddEllipticCone(const TEveVector &pos, const TEveVector &dir, Float_t r, Float_t r2, Float_t angle=0)
Create a cone with apex at pos, axis dir and radius r.
Definition: TEveBoxSet.cxx:178
void AddCone(const TEveVector &pos, const TEveVector &dir, Float_t r)
Create a cone with apex at pos, axis dir and radius r.
Definition: TEveBoxSet.cxx:161
Bool_t fDrawConeCap
Definition: TEveBoxSet.h:62
@ kBT_EllipticCone
Definition: TEveBoxSet.h:35
@ kBT_AABoxFixedDim
Definition: TEveBoxSet.h:33
static Int_t SizeofAtom(EBoxType_e bt)
Return size of data-structure describing a box of type bt.
Definition: TEveBoxSet.cxx:67
void Reset()
Reset the data containers to zero size.
Definition: TEveBoxSet.cxx:102
Base-class for storage of digit collections; provides transformation matrix (TEveTrans),...
Definition: TEveDigitSet.h:34
void StampObjProps()
Definition: TEveElement.h:399
Geometrical transformation package.
Definition: TGeoMatrix.h:41
This is the base class for the ROOT Random number generators.
Definition: TRandom.h:27
Double_t x[n]
Definition: legend1.C:17
const Int_t n
Definition: legend1.C:16
TEveVector fPos
Definition: TEveBoxSet.h:47
TEveVector fDir
Definition: TEveBoxSet.h:47
Float_t fVertices[8][3]
Definition: TEveBoxSet.h:39
TEveVector fPos
Definition: TEveBoxSet.h:51
auto * a
Definition: textangle.C:12