42class Box :
public Shape {
57 : Shape(color,
x,
y, z), fDX(
dX), fDY(
dY), fDZ(
dZ)
67 buffer.ClearSectionsValid();
69 buffer.fColor = fColor;
70 buffer.fTransparency = 0;
71 buffer.fLocalFrame =
kFALSE;
72 buffer.SetLocalMasterIdentity();
73 buffer.fReflection =
kFALSE;
87 buffer.SetRawSizes(8, 3 * 8, 12, 3 * 12, 6, 6 * 6);
94 buffer.fPnts[0] = fX - fDX;
95 buffer.fPnts[1] = fY - fDY;
96 buffer.fPnts[2] = fZ - fDZ;
97 buffer.fPnts[3] = fX + fDX;
98 buffer.fPnts[4] = fY - fDY;
99 buffer.fPnts[5] = fZ - fDZ;
100 buffer.fPnts[6] = fX + fDX;
101 buffer.fPnts[7] = fY + fDY;
102 buffer.fPnts[8] = fZ - fDZ;
103 buffer.fPnts[9] = fX - fDX;
104 buffer.fPnts[10] = fY + fDY;
105 buffer.fPnts[11] = fZ - fDZ;
106 buffer.fPnts[12] = fX - fDX;
107 buffer.fPnts[13] = fY - fDY;
108 buffer.fPnts[14] = fZ + fDZ;
109 buffer.fPnts[15] = fX + fDX;
110 buffer.fPnts[16] = fY - fDY;
111 buffer.fPnts[17] = fZ + fDZ;
112 buffer.fPnts[18] = fX + fDX;
113 buffer.fPnts[19] = fY + fDY;
114 buffer.fPnts[20] = fZ + fDZ;
115 buffer.fPnts[21] = fX - fDX;
116 buffer.fPnts[22] = fY + fDY;
117 buffer.fPnts[23] = fZ + fDZ;
122 buffer.fSegs[0] = fColor;
125 buffer.fSegs[3] = fColor;
128 buffer.fSegs[6] = fColor;
131 buffer.fSegs[9] = fColor;
132 buffer.fSegs[10] = 3;
133 buffer.fSegs[11] = 0;
134 buffer.fSegs[12] = fColor;
135 buffer.fSegs[13] = 4;
136 buffer.fSegs[14] = 5;
137 buffer.fSegs[15] = fColor;
138 buffer.fSegs[16] = 5;
139 buffer.fSegs[17] = 6;
140 buffer.fSegs[18] = fColor;
141 buffer.fSegs[19] = 6;
142 buffer.fSegs[20] = 7;
143 buffer.fSegs[21] = fColor;
144 buffer.fSegs[22] = 7;
145 buffer.fSegs[23] = 4;
146 buffer.fSegs[24] = fColor;
147 buffer.fSegs[25] = 0;
148 buffer.fSegs[26] = 4;
149 buffer.fSegs[27] = fColor;
150 buffer.fSegs[28] = 1;
151 buffer.fSegs[29] = 5;
152 buffer.fSegs[30] = fColor;
153 buffer.fSegs[31] = 2;
154 buffer.fSegs[32] = 6;
155 buffer.fSegs[33] = fColor;
156 buffer.fSegs[34] = 3;
157 buffer.fSegs[35] = 7;
164 buffer.fPols[0] = fColor;
170 buffer.fPols[6] = fColor;
174 buffer.fPols[10] = 10;
175 buffer.fPols[11] = 1;
176 buffer.fPols[12] = fColor;
177 buffer.fPols[13] = 4;
178 buffer.fPols[14] = 10;
179 buffer.fPols[15] = 6;
180 buffer.fPols[16] = 11;
181 buffer.fPols[17] = 2;
182 buffer.fPols[18] = fColor;
183 buffer.fPols[19] = 4;
184 buffer.fPols[20] = 11;
185 buffer.fPols[21] = 7;
186 buffer.fPols[22] = 8;
187 buffer.fPols[23] = 3;
188 buffer.fPols[24] = fColor;
189 buffer.fPols[25] = 4;
190 buffer.fPols[26] = 1;
191 buffer.fPols[27] = 2;
192 buffer.fPols[28] = 3;
193 buffer.fPols[29] = 0;
194 buffer.fPols[30] = fColor;
195 buffer.fPols[31] = 4;
196 buffer.fPols[32] = 7;
197 buffer.fPols[33] = 6;
198 buffer.fPols[34] = 5;
199 buffer.fPols[35] = 4;
223 : Shape(color,
x,
y, z), fDX(
dX), fDY(
dY), fDZ(
dZ)
233 buffer.ClearSectionsValid();
235 buffer.fColor = fColor;
236 buffer.fTransparency = 0;
237 buffer.fLocalFrame =
kFALSE;
238 buffer.SetLocalMasterIdentity();
239 buffer.fReflection =
kFALSE;
253 buffer.SetRawSizes(5, 3 * 5, 8, 3 * 8, 5, 6 + 4 * 5);
260 buffer.fPnts[0] = fX - fDX;
261 buffer.fPnts[1] = fY - fDY;
262 buffer.fPnts[2] = fZ;
263 buffer.fPnts[3] = fX + fDX;
264 buffer.fPnts[4] = fY - fDY;
265 buffer.fPnts[5] = fZ;
266 buffer.fPnts[6] = fX + fDX;
267 buffer.fPnts[7] = fY + fDY;
268 buffer.fPnts[8] = fZ;
269 buffer.fPnts[9] = fX - fDX;
270 buffer.fPnts[10] = fY + fDY;
271 buffer.fPnts[11] = fZ;
272 buffer.fPnts[12] = fX;
273 buffer.fPnts[13] = fY;
274 buffer.fPnts[14] = fZ + fDZ;
280 buffer.fSegs[0] = fColor;
283 buffer.fSegs[3] = fColor;
286 buffer.fSegs[6] = fColor;
289 buffer.fSegs[9] = fColor;
290 buffer.fSegs[10] = 3;
291 buffer.fSegs[11] = 0;
292 buffer.fSegs[12] = fColor;
293 buffer.fSegs[13] = 0;
294 buffer.fSegs[14] = 4;
295 buffer.fSegs[15] = fColor;
296 buffer.fSegs[16] = 1;
297 buffer.fSegs[17] = 4;
298 buffer.fSegs[18] = fColor;
299 buffer.fSegs[19] = 2;
300 buffer.fSegs[20] = 4;
301 buffer.fSegs[21] = fColor;
302 buffer.fSegs[22] = 3;
303 buffer.fSegs[23] = 4;
310 buffer.fPols[0] = fColor;
317 buffer.fPols[6] = fColor;
321 buffer.fPols[10] = 5;
322 buffer.fPols[11] = fColor;
323 buffer.fPols[12] = 3;
324 buffer.fPols[13] = 1;
325 buffer.fPols[14] = 5;
326 buffer.fPols[15] = 6;
327 buffer.fPols[16] = fColor;
328 buffer.fPols[17] = 3;
329 buffer.fPols[18] = 2;
330 buffer.fPols[19] = 6;
331 buffer.fPols[20] = 7;
332 buffer.fPols[21] = fColor;
333 buffer.fPols[22] = 3;
334 buffer.fPols[23] = 3;
335 buffer.fPols[24] = 7;
336 buffer.fPols[25] = 4;
353 std::vector<Shape *> fShapes;
364 aShape =
new Box(
kRed, 0.0, 0.0, 0.0, 20.0, 20.0, 20.0);
365 fShapes.push_back(
aShape);
366 aShape =
new Box(
kBlue, 50.0, 100.0, 200.0, 5.0, 10.0, 15.0);
367 fShapes.push_back(
aShape);
369 fShapes.push_back(
aShape);
382 gPad->GetViewer3D(option);
398 std::vector<Shape *>::const_iterator
ShapeIt = fShapes.
begin();
409 viewer->AddObject(buffer);
419 printf(
"\n\nviewer3DMaster: This frame demonstates master frame use of 3D viewer architecture.\n");
420 printf(
"Creates two boxes and a square based pyramid, described in master frame.\n\n");
423 gROOT->SetWebDisplay(
"off");
int Int_t
Signed integer 4 bytes (int)
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int)
double Double_t
Double 8 bytes.
const char Option_t
Option string (const char)
#define ClassDefOverride(name, id)
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
const_iterator begin() const
const_iterator end() const
Use this attribute class when an object should have 3D capabilities.
Generic 3D primitive description class.
Mother of all ROOT objects.
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
Abstract 3D shapes viewer.