This commit was generated by cvs2svn to compensate for changes in r13732,
[u/mrichter/AliRoot.git] / EVE / Reve / QuadSet.h
1 #ifndef REVE_QuadSet_H
2 #define REVE_QuadSet_H
3
4 #include <Gtypes.h>
5 #include <TNamed.h>
6 #include <TAtt3D.h>
7 #include <TAttBBox.h>
8
9 #include <vector>
10
11 class TRandom;
12
13 namespace Reve {
14
15 struct Quad
16 {
17   Float_t  vertices[12];
18   Int_t    color;
19
20   void ColorFromIdx(Color_t ci);
21
22   Quad(Color_t col = 1)
23   { ColorFromIdx(col); }
24
25   Quad(Color_t col, Float_t* p)
26   { ColorFromIdx(col); memcpy(vertices, p, 12*sizeof(Float_t)); }
27
28   Quad(TRandom& rnd, Float_t origin, Float_t size);
29
30   Quad(const Quad& org) { memcpy(this, &org, sizeof(Quad)); }
31
32   ClassDef(Quad, 1);
33 };
34
35 /**************************************************************************/
36
37 class QuadSet : public TNamed, public TAtt3D, public TAttBBox
38 {
39   friend class QuadSetGL;
40
41   void Init();
42
43 protected:
44   std::vector<Quad> fQuads;
45   Double_t          fMatrix[16];
46   Bool_t            fTrans;
47
48 public:
49   QuadSet(const Text_t* n="QuadSet", const Text_t* t="") : TNamed(n, t)
50   { Init(); }
51
52   Bool_t GetTrans() const { return fTrans; }
53   void SetTrans(Bool_t t) { fTrans = t; }
54
55   void Test(Int_t nquads);
56
57   virtual void ComputeBBox();
58
59   virtual void Paint(Option_t* option = "");
60
61   ClassDef(QuadSet, 1);
62 };
63
64 } // namespace Reve
65
66 #endif