]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/Reve/FrameBox.cxx
First big commit of the mchview program and its accompanying library,
[u/mrichter/AliRoot.git] / EVE / Reve / FrameBox.cxx
1 // $Header$
2
3 #include <Reve/FrameBox.h>
4
5 #include <TColor.h>
6
7 using namespace Reve;
8
9 //______________________________________________________________________
10 // FrameBox
11 //
12
13 ClassImp(FrameBox)
14
15 FrameBox::FrameBox() :
16   fFrameType   (FT_None),
17   fFrameSize   (0),
18   fFramePoints (0),
19
20   fFrameWidth  (1),
21   fFrameColor  (1),
22   fBackColor   (0),
23   fFrameFill   (kFALSE),
24   fDrawBack    (kFALSE)
25 {
26   fFrameRGBA[0] = fFrameRGBA[1] = fFrameRGBA[2] = 0;   fFrameRGBA[3] = 255;
27   fBackRGBA [0] = fBackRGBA [1] = fBackRGBA [2] = 255; fBackRGBA [3] = 255;
28 }
29
30 FrameBox::~FrameBox()
31 {
32   delete [] fFramePoints;
33 }
34
35 /**************************************************************************/
36
37 void FrameBox::SetAAQuadXY(Float_t x,  Float_t y, Float_t z,
38                            Float_t dx, Float_t dy)
39 {
40   fFrameType = FT_Quad;
41   fFrameSize = 12;
42   delete [] fFramePoints;
43   fFramePoints = new Float_t [fFrameSize];
44   Float_t* p = fFramePoints;
45   p[0] = x;    p[1] = y;    p[2] = z; p += 3;
46   p[0] = x+dx; p[1] = y;    p[2] = z; p += 3;
47   p[0] = x+dx; p[1] = y+dy; p[2] = z; p += 3;
48   p[0] = x ;   p[1] = y+dy; p[2] = z; p += 3;
49 }
50
51 void FrameBox::SetAAQuadXZ(Float_t x,  Float_t y, Float_t z,
52                            Float_t dx, Float_t dz)
53 {
54   fFrameType = FT_Quad;
55   fFrameSize = 12;
56   delete [] fFramePoints;
57   fFramePoints = new Float_t [fFrameSize];
58   Float_t* p = fFramePoints;
59   p[0] = x;    p[1] = y; p[2] = z;    p += 3;
60   p[0] = x+dx; p[1] = y; p[2] = z;    p += 3;
61   p[0] = x+dx; p[1] = y; p[2] = z+dz; p += 3;
62   p[0] = x ;   p[1] = y; p[2] = z+dz; p += 3;
63 }
64
65 void FrameBox::SetAABox(Float_t x,  Float_t y,  Float_t z,
66                         Float_t dx, Float_t dy, Float_t dz)
67 {
68   fFrameType = FT_Box;
69   fFrameSize = 24;
70   delete [] fFramePoints;
71   fFramePoints = new Float_t [fFrameSize];
72
73   Float_t* p = fFramePoints;
74   //bottom
75   p[0] = x;       p[1] = y + dy;  p[2] = z;       p += 3;
76   p[0] = x + dx;  p[1] = y + dy;  p[2] = z;       p += 3;
77   p[0] = x + dx;  p[1] = y;       p[2] = z;       p += 3;
78   p[0] = x;       p[1] = y;       p[2] = z;       p += 3;
79   //top
80   p[0] = x;       p[1] = y + dy;  p[2] = z + dz;  p += 3;
81   p[0] = x + dx;  p[1] = y + dy;  p[2] = z + dz;  p += 3;
82   p[0] = x + dx;  p[1] = y;       p[2] = z + dz;  p += 3;
83   p[0] = x;       p[1] = y;       p[2] = z + dz;
84 }
85
86 void FrameBox::SetAABoxCenterHalfSize(Float_t x,  Float_t y,  Float_t z,
87                                       Float_t dx, Float_t dy, Float_t dz)
88 {
89   fFrameType = FT_Box;
90   fFrameSize = 24;
91   delete [] fFramePoints;
92   fFramePoints = new Float_t [fFrameSize];
93
94   Float_t* p = fFramePoints;
95   //bottom
96   p[0] = x - dx;  p[1] = y + dy;  p[2] = z - dz;  p += 3;
97   p[0] = x + dx;  p[1] = y + dy;  p[2] = z - dz;  p += 3;
98   p[0] = x + dx;  p[1] = y - dy;  p[2] = z - dz;  p += 3;
99   p[0] = x - dx;  p[1] = y - dy;  p[2] = z - dz;  p += 3;
100   //top
101   p[0] = x - dx;  p[1] = y + dy;  p[2] = z + dz;  p += 3;
102   p[0] = x + dx;  p[1] = y + dy;  p[2] = z + dz;  p += 3;
103   p[0] = x + dx;  p[1] = y - dy;  p[2] = z + dz;  p += 3;
104   p[0] = x - dx;  p[1] = y - dy;  p[2] = z + dz;
105 }
106
107 /**************************************************************************/
108
109 void FrameBox::SetFrameColor(Color_t ci)
110 {
111   fFrameColor = ci;
112   ColorFromIdx(ci, fFrameRGBA, kTRUE);
113 }
114
115 void FrameBox::SetFrameColor(Pixel_t pix)
116 {
117   SetFrameColor(Color_t(TColor::GetColor(pix)));
118 }
119
120 void FrameBox::SetFrameColor(UChar_t r, UChar_t g, UChar_t b, UChar_t a)
121 {
122   fFrameColor = Color_t(TColor::GetColor(r, g, b));
123   fFrameRGBA[0] = r;
124   fFrameRGBA[1] = g;
125   fFrameRGBA[2] = b;
126   fFrameRGBA[3] = a;
127 }
128
129 /**************************************************************************/
130
131 void FrameBox::SetBackColor(Color_t ci)
132 {
133   fBackColor = ci;
134   ColorFromIdx(ci, fBackRGBA, kTRUE);
135 }
136
137 void FrameBox::SetBackColor(Pixel_t pix)
138 {
139   SetBackColor(Color_t(TColor::GetColor(pix)));
140 }
141
142 void FrameBox::SetBackColor(UChar_t r, UChar_t g, UChar_t b, UChar_t a)
143 {
144   fBackColor = Color_t(TColor::GetColor(r, g, b));
145   fBackRGBA[0] = r;
146   fBackRGBA[1] = g;
147   fBackRGBA[2] = b;
148   fBackRGBA[3] = a;
149 }