Added preprocessor conditionals to support ROOT > 5.11.2.
[u/mrichter/AliRoot.git] / EVE / Reve / QuadSetGL.cxx
1 // $Header$
2
3 #include "QuadSetGL.h"
4 #include <Reve/QuadSet.h>
5
6 #include <TGLDrawFlags.h>
7
8 #include <GL/gl.h>
9 #include <GL/glu.h>
10
11 using namespace Reve;
12
13 //______________________________________________________________________
14 // QuadSetGL
15 //
16
17 ClassImp(QuadSetGL)
18
19 /**************************************************************************/
20
21 QuadSetGL::QuadSetGL() : TGLObject()
22 {
23   // fCached = false; // Disable DL.
24 }
25
26 QuadSetGL::~QuadSetGL()
27 {}
28
29 /**************************************************************************/
30
31 Bool_t QuadSetGL::SetModel(TObject* obj)
32 {
33 #if ROOT_VERSION_CODE <= ROOT_VERSION(5,11,2)
34   return set_model(obj, "Reve::QuadSet");
35 #else
36   return SetModelCheckClass(obj, "Reve::QuadSet");
37 #endif
38 }
39
40 void QuadSetGL::SetBBox()
41 {
42 #if ROOT_VERSION_CODE <= ROOT_VERSION(5,11,2)
43   set_axis_aligned_bbox(((QuadSet*)fExternalObj)->AssertBBox());
44 #else
45   SetAxisAlignedBBox(((QuadSet*)fExternalObj)->AssertBBox());
46 #endif
47 }
48
49 /**************************************************************************/
50
51 void QuadSetGL::DirectDraw(const TGLDrawFlags & ) const
52 {
53   // printf("QuadSetGLRenderer::DirectDraw Style %d, LOD %d\n", flags.Style(), flags.LOD());
54
55   QuadSet& Q = * (QuadSet*) fExternalObj;
56
57   glPushAttrib(GL_ENABLE_BIT | GL_POLYGON_BIT);
58
59   glDisable(GL_LIGHTING);
60   glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
61   glEnable(GL_COLOR_MATERIAL);
62   glPolygonMode(GL_FRONT, GL_LINE);
63   glPolygonMode(GL_BACK,  GL_LINE);
64   glDisable(GL_CULL_FACE);
65
66   Float_t c[4]; glGetFloatv(GL_CURRENT_COLOR, c);
67   //  UChar_t alpha = (UChar_t)(255*c[3]);
68
69   glBegin(GL_QUADS);
70   for(std::vector<Quad>::iterator q=Q.fQuads.begin(); q!=Q.fQuads.end(); ++q) {
71     UChar_t* c = (UChar_t*) &q->color;
72     //glColor4ub(c[0], c[1], c[2], (c[3]*alpha) >> 8);
73     glColor3ub(c[0], c[1], c[2]);
74     glVertex3fv(q->vertices);
75     glVertex3fv(q->vertices + 3);
76     glVertex3fv(q->vertices + 6);
77     glVertex3fv(q->vertices + 9);
78   }
79   glEnd();
80
81   glPopAttrib();
82 }