]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/Alieve/TPCSector3DGL.h
404c13eafa6ff68f8d639dd244689f5f3fe4ad6a
[u/mrichter/AliRoot.git] / EVE / Alieve / TPCSector3DGL.h
1 // $Header$
2
3 #ifndef ALIEVE_TPCSector3DGL_H
4 #define ALIEVE_TPCSector3DGL_H
5
6 #include <TGLObject.h>
7
8 #include <Alieve/TPCSectorData.h>
9
10 namespace Reve {
11 class BoxSetGL;
12 }
13
14 namespace Alieve {
15
16 class TPCSector3D;
17
18 class TPCSector3DGL : public TGLObject
19 {
20   TPCSector3DGL(const TPCSector3DGL&);            // Not implemented
21   TPCSector3DGL& operator=(const TPCSector3DGL&); // Not implemented
22
23 protected:
24   TPCSector3D*    fSector; // fModel dynamic-casted to TPCSector3DGL
25   Reve::BoxSetGL* fBoxRnr;
26
27   mutable UInt_t  fRTS;
28
29   virtual void DirectDraw(TGLRnrCtx & rnrCtx) const;
30
31 public:
32   TPCSector3DGL();
33   virtual ~TPCSector3DGL();
34
35   virtual Bool_t   ShouldDLCache(const TGLRnrCtx&) const { return kFALSE; }
36   virtual ELODAxes SupportedLODAxes()              const { return kLODAxesAll; }
37   virtual Short_t  QuantizeShapeLOD(Short_t shapeLOD, Short_t combiLOD) const;
38
39   virtual Bool_t SetModel(TObject* obj, const Option_t* opt=0);
40   virtual void   SetBBox();
41
42   void DrawSegmentFrame(const TPCSectorData::SegmentInfo& s,
43                         Int_t botExtraPads=0, Int_t topExtraPads=0) const;
44
45   virtual Bool_t SupportsSecondarySelect() const { return kTRUE; }
46   virtual void   ProcessSelection(TGLRnrCtx & rnrCtx, TGLSelectRecord & rec);
47
48   ClassDef(TPCSector3DGL, 0);
49 }; // endclass TPCSector3DGL
50
51 }
52
53 #endif