4 #include <Reve/BoxSet.h>
6 #include <TGLDrawFlags.h>
8 #include "Windows4root.h"
15 //______________________________________________________________________
23 // fCached = false; // Disable display list.
29 /**************************************************************************/
31 Bool_t BoxSetGL::SetModel(TObject* obj)
33 return set_model(obj, "Reve::BoxSet");
36 void BoxSetGL::SetBBox()
38 set_axis_aligned_bbox(((BoxSet*)fExternalObj)->AssertBBox());
41 /**************************************************************************/
43 void BoxSetGL::DirectDraw(const TGLDrawFlags& /*flags*/) const
45 BoxSet& mB = * (BoxSet*) fExternalObj;
46 // printf("BoxSetGL::DirectDraw N boxes %d\n", mB.fBoxes.size());
48 glPushAttrib(GL_ENABLE_BIT | GL_POLYGON_BIT);
49 glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
50 glEnable(GL_COLOR_MATERIAL);
51 glDisable(GL_CULL_FACE);
53 Float_t c[4]; glGetFloatv(GL_CURRENT_COLOR, c);
56 for(std::vector<Box>::iterator q=mB.fBoxes.begin(); q!=mB.fBoxes.end(); ++q) {
57 UChar_t* c = (UChar_t*) &q->color;
58 glColor3ub(c[0], c[1], c[2]);
62 glVertex3fv(q->vertices + 9); glVertex3fv(q->vertices + 6);
63 glVertex3fv(q->vertices + 3); glVertex3fv(q->vertices);
66 glVertex3fv(q->vertices + 12); glVertex3fv(q->vertices + 15);
67 glVertex3fv(q->vertices + 18); glVertex3fv(q->vertices + 21);
70 glVertex3fv(q->vertices); glVertex3fv(q->vertices + 3);
71 glVertex3fv(q->vertices + 15); glVertex3fv(q->vertices + 12);
74 glVertex3fv(q->vertices + 21); glVertex3fv(q->vertices + 18);
75 glVertex3fv(q->vertices + 6); glVertex3fv(q->vertices + 9);
78 glVertex3fv(q->vertices + 12); glVertex3fv(q->vertices + 21);
79 glVertex3fv(q->vertices + 9); glVertex3fv(q->vertices);
82 glVertex3fv(q->vertices + 15); glVertex3fv(q->vertices + 3);
83 glVertex3fv(q->vertices + 6); glVertex3fv(q->vertices + 18);