4 #include <Reve/QuadSet.h>
6 #include <TGLDrawFlags.h>
13 //______________________________________________________________________
19 /**************************************************************************/
21 QuadSetGL::QuadSetGL() : TGLObject()
23 // fCached = false; // Disable DL.
26 QuadSetGL::~QuadSetGL()
29 /**************************************************************************/
31 Bool_t QuadSetGL::SetModel(TObject* obj)
33 return set_model(obj, "Reve::QuadSet");
36 void QuadSetGL::SetBBox()
38 set_axis_aligned_bbox(((QuadSet*)fExternalObj)->AssertBBox());
41 /**************************************************************************/
43 void QuadSetGL::DirectDraw(const TGLDrawFlags & ) const
45 // printf("QuadSetGLRenderer::DirectDraw Style %d, LOD %d\n", flags.Style(), flags.LOD());
47 QuadSet& Q = * (QuadSet*) fExternalObj;
49 glPushAttrib(GL_ENABLE_BIT | GL_POLYGON_BIT);
51 glDisable(GL_LIGHTING);
52 glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
53 glEnable(GL_COLOR_MATERIAL);
54 glPolygonMode(GL_FRONT, GL_LINE);
55 glPolygonMode(GL_BACK, GL_LINE);
56 glDisable(GL_CULL_FACE);
58 Float_t c[4]; glGetFloatv(GL_CURRENT_COLOR, c);
59 // UChar_t alpha = (UChar_t)(255*c[3]);
62 for(std::vector<Quad>::iterator q=Q.fQuads.begin(); q!=Q.fQuads.end(); ++q) {
63 UChar_t* c = (UChar_t*) &q->color;
64 //glColor4ub(c[0], c[1], c[2], (c[3]*alpha) >> 8);
65 glColor3ub(c[0], c[1], c[2]);
66 glVertex3fv(q->vertices);
67 glVertex3fv(q->vertices + 3);
68 glVertex3fv(q->vertices + 6);
69 glVertex3fv(q->vertices + 9);