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 #if ROOT_VERSION_CODE <= ROOT_VERSION(5,11,2)
34 return set_model(obj, "Reve::BoxSet");
35 #elif ROOT_VERSION_CODE <= ROOT_VERSION(5,13,0)
36 return SetModelCheckClass(obj, "Reve::BoxSet");
38 return SetModelCheckClass(obj, Reve::BoxSet::Class());
42 void BoxSetGL::SetBBox()
44 #if ROOT_VERSION_CODE <= ROOT_VERSION(5,11,2)
45 set_axis_aligned_bbox(((BoxSet*)fExternalObj)->AssertBBox());
47 SetAxisAlignedBBox(((BoxSet*)fExternalObj)->AssertBBox());
51 /**************************************************************************/
53 void BoxSetGL::DirectDraw(const TGLDrawFlags& /*flags*/) const
55 BoxSet& mB = * (BoxSet*) fExternalObj;
56 // printf("BoxSetGL::DirectDraw N boxes %d\n", mB.fBoxes.size());
57 if(mB.fBoxes.size() == 0)
60 glPushAttrib(GL_ENABLE_BIT | GL_POLYGON_BIT);
61 glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
62 glEnable(GL_COLOR_MATERIAL);
63 glDisable(GL_CULL_FACE);
65 Float_t c[4]; glGetFloatv(GL_CURRENT_COLOR, c);
68 for(std::vector<Box>::iterator q=mB.fBoxes.begin(); q!=mB.fBoxes.end(); ++q) {
69 UChar_t* c = (UChar_t*) &q->color;
70 glColor3ub(c[0], c[1], c[2]);
74 glVertex3fv(q->vertices + 9); glVertex3fv(q->vertices + 6);
75 glVertex3fv(q->vertices + 3); glVertex3fv(q->vertices);
78 glVertex3fv(q->vertices + 12); glVertex3fv(q->vertices + 15);
79 glVertex3fv(q->vertices + 18); glVertex3fv(q->vertices + 21);
82 glVertex3fv(q->vertices); glVertex3fv(q->vertices + 3);
83 glVertex3fv(q->vertices + 15); glVertex3fv(q->vertices + 12);
86 glVertex3fv(q->vertices + 21); glVertex3fv(q->vertices + 18);
87 glVertex3fv(q->vertices + 6); glVertex3fv(q->vertices + 9);
90 glVertex3fv(q->vertices + 12); glVertex3fv(q->vertices + 21);
91 glVertex3fv(q->vertices + 9); glVertex3fv(q->vertices);
94 glVertex3fv(q->vertices + 15); glVertex3fv(q->vertices + 3);
95 glVertex3fv(q->vertices + 6); glVertex3fv(q->vertices + 18);