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