49 TBRIK::TBRIK(
const char *name,
const char *title,
const char *material, Float_t dx, Float_t dy, Float_t dz)
50 : TShape (name, title,material)
70 Int_t TBRIK::DistancetoPrimitive(Int_t px, Int_t py)
72 const Int_t numPoints = 8;
73 return ShapeDistancetoPrimitive(numPoints,px,py);
79 void TBRIK::SetPoints(Double_t *points)
const
82 points[ 0] = -fDx ; points[ 1] = -fDy ; points[ 2] = -fDz;
83 points[ 3] = -fDx ; points[ 4] = fDy ; points[ 5] = -fDz;
84 points[ 6] = fDx ; points[ 7] = fDy ; points[ 8] = -fDz;
85 points[ 9] = fDx ; points[10] = -fDy ; points[11] = -fDz;
86 points[12] = -fDx ; points[13] = -fDy ; points[14] = fDz;
87 points[15] = -fDx ; points[16] = fDy ; points[17] = fDz;
88 points[18] = fDx ; points[19] = fDy ; points[20] = fDz;
89 points[21] = fDx ; points[22] = -fDy ; points[23] = fDz;
96 void TBRIK::Sizeof3D()
const
98 gSize3D.numPoints += 8;
99 gSize3D.numSegs += 12;
100 gSize3D.numPolys += 6;
106 const TBuffer3D & TBRIK::GetBuffer3D(Int_t reqSections)
const
108 static TBuffer3D buffer(TBuffer3DTypes::kGeneric);
110 TShape::FillBuffer3D(buffer, reqSections);
114 if (reqSections & TBuffer3D::kRawSizes) {
118 if (buffer.SetRawSizes(nbPnts, nbPnts*3, nbSegs, nbSegs*3, nbPols, nbPols*6)) {
119 buffer.SetSectionsValid(TBuffer3D::kRawSizes);
122 if ((reqSections & TBuffer3D::kRaw) && buffer.SectionsValid(TBuffer3D::kRawSizes)) {
124 SetPoints(buffer.fPnts);
125 if (!buffer.fLocalFrame) {
126 TransformPoints(buffer.fPnts, buffer.NbPnts());
129 Int_t c = GetBasicColor();
132 buffer.fSegs[ 0] = c ; buffer.fSegs[ 1] = 0 ; buffer.fSegs[ 2] = 1 ;
133 buffer.fSegs[ 3] = c+1 ; buffer.fSegs[ 4] = 1 ; buffer.fSegs[ 5] = 2 ;
134 buffer.fSegs[ 6] = c+1 ; buffer.fSegs[ 7] = 2 ; buffer.fSegs[ 8] = 3 ;
135 buffer.fSegs[ 9] = c ; buffer.fSegs[10] = 3 ; buffer.fSegs[11] = 0 ;
136 buffer.fSegs[12] = c+2 ; buffer.fSegs[13] = 4 ; buffer.fSegs[14] = 5 ;
137 buffer.fSegs[15] = c+2 ; buffer.fSegs[16] = 5 ; buffer.fSegs[17] = 6 ;
138 buffer.fSegs[18] = c+3 ; buffer.fSegs[19] = 6 ; buffer.fSegs[20] = 7 ;
139 buffer.fSegs[21] = c+3 ; buffer.fSegs[22] = 7 ; buffer.fSegs[23] = 4 ;
140 buffer.fSegs[24] = c ; buffer.fSegs[25] = 0 ; buffer.fSegs[26] = 4 ;
141 buffer.fSegs[27] = c+2 ; buffer.fSegs[28] = 1 ; buffer.fSegs[29] = 5 ;
142 buffer.fSegs[30] = c+1 ; buffer.fSegs[31] = 2 ; buffer.fSegs[32] = 6 ;
143 buffer.fSegs[33] = c+3 ; buffer.fSegs[34] = 3 ; buffer.fSegs[35] = 7 ;
146 buffer.fPols[ 0] = c ; buffer.fPols[ 1] = 4 ; buffer.fPols[ 2] = 0 ;
147 buffer.fPols[ 3] = 9 ; buffer.fPols[ 4] = 4 ; buffer.fPols[ 5] = 8 ;
148 buffer.fPols[ 6] = c+1 ; buffer.fPols[ 7] = 4 ; buffer.fPols[ 8] = 1 ;
149 buffer.fPols[ 9] = 10 ; buffer.fPols[10] = 5 ; buffer.fPols[11] = 9 ;
150 buffer.fPols[12] = c ; buffer.fPols[13] = 4 ; buffer.fPols[14] = 2 ;
151 buffer.fPols[15] = 11 ; buffer.fPols[16] = 6 ; buffer.fPols[17] = 10 ;
152 buffer.fPols[18] = c+1 ; buffer.fPols[19] = 4 ; buffer.fPols[20] = 3 ;
153 buffer.fPols[21] = 8 ; buffer.fPols[22] = 7 ; buffer.fPols[23] = 11 ;
154 buffer.fPols[24] = c+2 ; buffer.fPols[25] = 4 ; buffer.fPols[26] = 0 ;
155 buffer.fPols[27] = 3 ; buffer.fPols[28] = 2 ; buffer.fPols[29] = 1 ;
156 buffer.fPols[30] = c+3 ; buffer.fPols[31] = 4 ; buffer.fPols[32] = 4 ;
157 buffer.fPols[33] = 5 ; buffer.fPols[34] = 6 ; buffer.fPols[35] = 7 ;
159 buffer.SetSectionsValid(TBuffer3D::kRaw);