]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/Reve/BoxSetGL.h
4676876b8f7a92ee94540ab125689779445be78c
[u/mrichter/AliRoot.git] / EVE / Reve / BoxSetGL.h
1 // $Header$
2
3 #ifndef REVE_BoxSetGL_H
4 #define REVE_BoxSetGL_H
5
6 #include <TGLObject.h>
7 #include <Reve/BoxSet.h>
8
9 namespace Reve {
10
11 class BoxSetGL : public TGLObject
12 {
13   BoxSetGL(const BoxSetGL&);            // Not implemented
14   BoxSetGL& operator=(const BoxSetGL&); // Not implemented
15
16 protected:
17   BoxSet* fM;               // Model object.
18
19   mutable UInt_t  fBoxDL;   // Display-list id for a box atom.
20
21   virtual void DirectDraw(TGLRnrCtx & rnrCtx) const;
22
23   Int_t  PrimitiveType() const;
24   Bool_t SetupColor(const DigitSet::DigitBase& q) const;
25   void   MakeOriginBox(Float_t p[24], Float_t dx, Float_t dy, Float_t dz) const;
26   void   RenderBox(const Float_t p[24]) const;
27   void   MakeDisplayList() const;
28
29 public:
30   BoxSetGL();
31   virtual ~BoxSetGL();
32
33   virtual Bool_t ShouldDLCache(const TGLRnrCtx & rnrCtx) const;
34   virtual void   DLCacheDrop();
35   virtual void   DLCachePurge();
36
37   virtual Bool_t SetModel(TObject* obj, const Option_t* opt=0);
38   virtual void   SetBBox();
39
40   virtual Bool_t SupportsSecondarySelect() const { return kTRUE; }
41   virtual void   ProcessSelection(TGLRnrCtx & rnrCtx, TGLSelectRecord & rec);
42
43   virtual void Render(TGLRnrCtx & rnrCtx);
44
45   ClassDef(BoxSetGL, 0); // GL rendering class for BoxSet.
46 }; // endclass BoxSetGL
47
48 }
49
50 #endif