00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "TEveFrameBox.h"
00013 #include "TColor.h"
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 ClassImp(TEveFrameBox);
00025
00026
00027 TEveFrameBox::TEveFrameBox() :
00028 fFrameType (kFT_None),
00029 fFrameSize (0),
00030 fFramePoints (0),
00031
00032 fFrameWidth (1),
00033 fFrameColor (1),
00034 fBackColor (0),
00035 fFrameFill (kFALSE),
00036 fDrawBack (kFALSE)
00037 {
00038
00039
00040 fFrameRGBA[0] = fFrameRGBA[1] = fFrameRGBA[2] = 0; fFrameRGBA[3] = 255;
00041 fBackRGBA [0] = fBackRGBA [1] = fBackRGBA [2] = 255; fBackRGBA [3] = 255;
00042 }
00043
00044
00045 TEveFrameBox::~TEveFrameBox()
00046 {
00047
00048
00049 delete [] fFramePoints;
00050 }
00051
00052
00053
00054
00055 void TEveFrameBox::SetAAQuadXY(Float_t x, Float_t y, Float_t z,
00056 Float_t dx, Float_t dy)
00057 {
00058
00059
00060
00061 fFrameType = kFT_Quad;
00062 fFrameSize = 12;
00063 delete [] fFramePoints;
00064 fFramePoints = new Float_t [fFrameSize];
00065 Float_t* p = fFramePoints;
00066 p[0] = x; p[1] = y; p[2] = z; p += 3;
00067 p[0] = x+dx; p[1] = y; p[2] = z; p += 3;
00068 p[0] = x+dx; p[1] = y+dy; p[2] = z; p += 3;
00069 p[0] = x ; p[1] = y+dy; p[2] = z; p += 3;
00070 }
00071
00072
00073 void TEveFrameBox::SetAAQuadXZ(Float_t x, Float_t y, Float_t z,
00074 Float_t dx, Float_t dz)
00075 {
00076
00077
00078
00079 fFrameType = kFT_Quad;
00080 fFrameSize = 12;
00081 delete [] fFramePoints;
00082 fFramePoints = new Float_t [fFrameSize];
00083 Float_t* p = fFramePoints;
00084 p[0] = x; p[1] = y; p[2] = z; p += 3;
00085 p[0] = x+dx; p[1] = y; p[2] = z; p += 3;
00086 p[0] = x+dx; p[1] = y; p[2] = z+dz; p += 3;
00087 p[0] = x ; p[1] = y; p[2] = z+dz; p += 3;
00088 }
00089
00090
00091 void TEveFrameBox::SetQuadByPoints(const Float_t* pointArr, Int_t nPoints)
00092 {
00093
00094
00095
00096
00097
00098 fFrameType = kFT_Quad;
00099 fFrameSize = 3*nPoints;
00100 delete [] fFramePoints;
00101 fFramePoints = new Float_t [fFrameSize];
00102 memcpy(fFramePoints, pointArr, fFrameSize*sizeof(Float_t));
00103 }
00104
00105
00106 void TEveFrameBox::SetAABox(Float_t x, Float_t y, Float_t z,
00107 Float_t dx, Float_t dy, Float_t dz)
00108 {
00109
00110
00111
00112 fFrameType = kFT_Box;
00113 fFrameSize = 24;
00114 delete [] fFramePoints;
00115 fFramePoints = new Float_t [fFrameSize];
00116
00117 Float_t* p = fFramePoints;
00118
00119 p[0] = x; p[1] = y + dy; p[2] = z; p += 3;
00120 p[0] = x + dx; p[1] = y + dy; p[2] = z; p += 3;
00121 p[0] = x + dx; p[1] = y; p[2] = z; p += 3;
00122 p[0] = x; p[1] = y; p[2] = z; p += 3;
00123
00124 p[0] = x; p[1] = y + dy; p[2] = z + dz; p += 3;
00125 p[0] = x + dx; p[1] = y + dy; p[2] = z + dz; p += 3;
00126 p[0] = x + dx; p[1] = y; p[2] = z + dz; p += 3;
00127 p[0] = x; p[1] = y; p[2] = z + dz;
00128 }
00129
00130
00131 void TEveFrameBox::SetAABoxCenterHalfSize(Float_t x, Float_t y, Float_t z,
00132 Float_t dx, Float_t dy, Float_t dz)
00133 {
00134
00135
00136
00137 fFrameType = kFT_Box;
00138 fFrameSize = 24;
00139 delete [] fFramePoints;
00140 fFramePoints = new Float_t [fFrameSize];
00141
00142 Float_t* p = fFramePoints;
00143
00144 p[0] = x - dx; p[1] = y + dy; p[2] = z - dz; p += 3;
00145 p[0] = x + dx; p[1] = y + dy; p[2] = z - dz; p += 3;
00146 p[0] = x + dx; p[1] = y - dy; p[2] = z - dz; p += 3;
00147 p[0] = x - dx; p[1] = y - dy; p[2] = z - dz; p += 3;
00148
00149 p[0] = x - dx; p[1] = y + dy; p[2] = z + dz; p += 3;
00150 p[0] = x + dx; p[1] = y + dy; p[2] = z + dz; p += 3;
00151 p[0] = x + dx; p[1] = y - dy; p[2] = z + dz; p += 3;
00152 p[0] = x - dx; p[1] = y - dy; p[2] = z + dz;
00153 }
00154
00155
00156
00157
00158 void TEveFrameBox::SetFrameColor(Color_t ci)
00159 {
00160
00161
00162 fFrameColor = ci;
00163 TEveUtil::ColorFromIdx(ci, fFrameRGBA, kTRUE);
00164 }
00165
00166
00167 void TEveFrameBox::SetFrameColorPixel(Pixel_t pix)
00168 {
00169
00170
00171 SetFrameColor(Color_t(TColor::GetColor(pix)));
00172 }
00173
00174
00175 void TEveFrameBox::SetFrameColorRGBA(UChar_t r, UChar_t g, UChar_t b, UChar_t a)
00176 {
00177
00178
00179 fFrameColor = Color_t(TColor::GetColor(r, g, b));
00180 fFrameRGBA[0] = r;
00181 fFrameRGBA[1] = g;
00182 fFrameRGBA[2] = b;
00183 fFrameRGBA[3] = a;
00184 }
00185
00186
00187
00188
00189 void TEveFrameBox::SetBackColor(Color_t ci)
00190 {
00191
00192
00193 fBackColor = ci;
00194 TEveUtil::ColorFromIdx(ci, fBackRGBA, kTRUE);
00195 }
00196
00197
00198 void TEveFrameBox::SetBackColorPixel(Pixel_t pix)
00199 {
00200
00201
00202 SetBackColor(Color_t(TColor::GetColor(pix)));
00203 }
00204
00205
00206 void TEveFrameBox::SetBackColorRGBA(UChar_t r, UChar_t g, UChar_t b, UChar_t a)
00207 {
00208
00209
00210 fBackColor = Color_t(TColor::GetColor(r, g, b));
00211 fBackRGBA[0] = r;
00212 fBackRGBA[1] = g;
00213 fBackRGBA[2] = b;
00214 fBackRGBA[3] = a;
00215 }