]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/Reve/GLUtilNS.h
Runloader is updated when moving to next file (quick fix).
[u/mrichter/AliRoot.git] / EVE / Reve / GLUtilNS.h
1 #ifndef Reve_GLUtilNS_H
2 #define Reve_GLUtilNS_H
3 #ifndef __CINT__
4
5 #include <TGLIncludes.h>
6 #include <TObject.h>
7
8 class TAttMarker;
9
10 namespace GLUtilNS
11 {
12
13 class GL_Capability_Switch {
14   GLenum    fWhat;
15   GLboolean fState;
16   bool      fFlip;
17
18   void set_state(GLboolean s)
19   { if(s) glEnable(fWhat); else glDisable(fWhat); }
20
21 public:
22   GL_Capability_Switch(GLenum what, GLboolean state) : fWhat(what)
23   {
24     fState = glIsEnabled(fWhat);
25     fFlip  = (fState != state);
26     if(fFlip)   set_state(state);
27   }
28   ~GL_Capability_Switch()
29   { if(fFlip) set_state(fState); }
30 };
31
32 class GL_Float_Holder
33 {
34   GLenum    fWhat;
35   GLfloat   fState;
36   bool      fFlip;
37   void    (*fFoo)(GLfloat);
38
39 public:
40   GL_Float_Holder(GLenum what, GLfloat state, void (*foo)(GLfloat)) :
41     fWhat(what), fFoo(foo)
42   {
43     glGetFloatv(fWhat, &fState);
44     fFlip = (fState != state);
45     if(fFlip) fFoo(state);
46   }
47   ~GL_Float_Holder()
48   { if(fFlip) fFoo(fState); }
49 };
50
51
52 void RenderPolyMarkers(TAttMarker& marker, Float_t* p, Int_t n, 
53                        Bool_t selection, Bool_t sec_selection);
54
55 void RenderPoints(TAttMarker& marker, Float_t* p, Int_t n,
56                   Bool_t selection, Bool_t sec_selection);
57
58 void RenderCrosses(TAttMarker& marker, Float_t* p, Int_t n, Bool_t sec_selection);
59
60 }
61
62 #endif
63 #endif