Warning, file /include/root/TEveQuadSet.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef ROOT_TEveQuadSet
0013 #define ROOT_TEveQuadSet
0014
0015 #include "TEveDigitSet.h"
0016
0017 class TRandom;
0018
0019 class TEveQuadSet : public TEveDigitSet
0020 {
0021 friend class TEveQuadSetGL;
0022
0023 TEveQuadSet(const TEveQuadSet&);
0024 TEveQuadSet& operator=(const TEveQuadSet&);
0025
0026 public:
0027 enum EQuadType_e {
0028 kQT_Undef,
0029 kQT_FreeQuad,
0030 kQT_RectangleXY,
0031 kQT_RectangleXZ,
0032 kQT_RectangleYZ,
0033 kQT_RectangleXYFixedDim,
0034 kQT_RectangleXYFixedZ,
0035 kQT_RectangleXZFixedY,
0036 kQT_RectangleYZFixedX,
0037 kQT_RectangleXYFixedDimZ,
0038 kQT_RectangleXZFixedDimY,
0039 kQT_RectangleYZFixedDimX,
0040 kQT_Rectangle_End,
0041
0042 kQT_LineXYFixedZ,
0043 kQT_LineXZFixedY,
0044 kQT_Line_End,
0045
0046 kQT_HexagonXY,
0047 kQT_HexagonYX,
0048 kQT_Hexagon_End
0049
0050
0051
0052
0053 };
0054
0055 struct QFreeQuad_t : public DigitBase_t { Float_t fVertices[12]; };
0056
0057 struct QOrigin_t : public DigitBase_t { Float_t fA, fB; };
0058
0059 struct QRectFixDimC_t : public QOrigin_t {};
0060
0061 struct QRectFixDim_t : public QRectFixDimC_t { Float_t fC; };
0062
0063 struct QRectFixC_t : public QRectFixDimC_t { Float_t fW, fH; };
0064
0065 struct QRect_t : public QRectFixDim_t { Float_t fW, fH; };
0066
0067 struct QLineFixC_t : public QOrigin_t { Float_t fDx, fDy; };
0068
0069 struct QHex_t : public QOrigin_t { Float_t fC, fR; };
0070
0071 protected:
0072 EQuadType_e fQuadType;
0073
0074 Float_t fDefWidth;
0075 Float_t fDefHeight;
0076 Float_t fDefCoord;
0077
0078 static Int_t SizeofAtom(EQuadType_e qt);
0079
0080 public:
0081 TEveQuadSet(const char* n="TEveQuadSet", const char* t="");
0082 TEveQuadSet(EQuadType_e quadType, Bool_t valIsCol, Int_t chunkSize,
0083 const char* n="TEveQuadSet", const char* t="");
0084 ~TEveQuadSet() override {}
0085
0086 void Reset(EQuadType_e quadType, Bool_t valIsCol, Int_t chunkSize);
0087
0088 Float_t GetDefWidth() const { return fDefWidth; }
0089 Float_t GetDefHeight() const { return fDefHeight; }
0090 Float_t GetDefCoord() const { return fDefCoord; }
0091
0092 void SetDefWidth(Float_t v) { fDefWidth = v; }
0093 void SetDefHeight(Float_t v) { fDefHeight = v; }
0094 void SetDefCoord(Float_t v) { fDefCoord = v; }
0095
0096
0097
0098 void AddQuad(Float_t verts[12]);
0099
0100 void AddQuad(Float_t a, Float_t b);
0101 void AddQuad(Float_t a, Float_t b, Float_t c);
0102 void AddQuad(Float_t a, Float_t b, Float_t w, Float_t h);
0103 void AddQuad(Float_t a, Float_t b, Float_t c, Float_t w, Float_t h);
0104
0105 void AddLine(Float_t a, Float_t b, Float_t w, Float_t h);
0106
0107 void AddHexagon(Float_t a, Float_t b, Float_t z, Float_t r);
0108
0109
0110 void QuadValue(Int_t value) { DigitValue(value); }
0111 void QuadColor(Color_t ci) { DigitColor(ci); }
0112 void QuadColor(UChar_t r, UChar_t g, UChar_t b, UChar_t a=255) { DigitColor(r, g, b, a); }
0113 void QuadId(TObject* id) { DigitId(id); }
0114
0115
0116
0117
0118
0119 void ComputeBBox() override;
0120
0121
0122
0123 ClassDefOverride(TEveQuadSet, 0);
0124 };
0125
0126 #endif