]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/Reve/NLTProjectorGL.h
Record changes.
[u/mrichter/AliRoot.git] / EVE / Reve / NLTProjectorGL.h
1 // $Header$
2
3 #ifndef REVE_NLTProjectorGL_H
4 #define REVE_NLTProjectorGL_H
5
6 #include <TGLObject.h>
7 #include <Reve/RenderElement.h>
8
9 class TGLViewer;
10 class TGLScene;
11 class TGLText;
12
13 namespace Reve {
14 class NLTProjector;
15 class NLTProjectorGL : public TGLObject
16 {
17 public:
18   typedef std::list<Float_t> TMList_t;
19
20 private:
21   NLTProjectorGL(const NLTProjectorGL&);            // Not implemented
22   NLTProjectorGL& operator=(const NLTProjectorGL&); // Not implemented
23
24   mutable TMList_t   fPos;
25   mutable TMList_t   fVals;
26
27   mutable Float_t    fRange;
28   Float_t            fLabelSize;
29   Float_t            fLabelOff;
30   Float_t            fTMSize;
31
32   void               DrawTickMarks(Float_t tms) const;
33   void               DrawHInfo() const;
34   void               DrawVInfo() const;
35   const char*        GetText(Float_t) const;
36
37   void               SplitInterval(Int_t axis) const;
38   void               SplitIntervalByPos(Float_t min, Float_t max, Int_t axis, Int_t level)const;
39   void               SplitIntervalByVal(Float_t min, Float_t max, Int_t axis, Int_t level)const;
40
41   void               SetRange(Float_t val, Int_t axis) const;
42
43 protected:
44   NLTProjector*      fM; // fModel dynamic-casted to NLTProjector
45   TGLText*           fText;
46
47   virtual void DirectDraw(TGLRnrCtx & rnrCtx) const;
48
49 public:
50   NLTProjectorGL();
51   virtual ~NLTProjectorGL();
52
53   virtual Bool_t SetModel(TObject* obj, const Option_t* opt=0);
54   virtual void   SetBBox();
55   Bool_t IgnoreSizeForOfInterest() const { return kTRUE;}
56
57   ClassDef(NLTProjectorGL, 0);
58 }; // endclass NLTProjectorGL
59
60 }
61
62 #endif