]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/Reve/NLTProjector.h
Dummy methods DefineParticle required by the interface added.
[u/mrichter/AliRoot.git] / EVE / Reve / NLTProjector.h
1 #ifndef REVE_NLTProjector
2 #define REVE_NLTProjector
3
4 #include <TAtt3D.h>
5 #include <TAttBBox.h>
6
7 #include <Reve/RenderElement.h>
8 #include <Reve/NLTProjections.h>
9 #include <Reve/PODs.h>
10
11 namespace Reve {
12
13 class NLTProjector : public RenderElementList,
14                      public TAttBBox,
15                      public TAtt3D
16 {
17 private:
18   NLTProjector(const NLTProjector&);            // Not implemented
19   NLTProjector& operator=(const NLTProjector&); // Not implemented
20
21   NLTProjection*  fProjection;  // projection
22
23   Bool_t          fDrawCenter;  // draw center of distortion
24   Bool_t          fDrawOrigin;  // draw origin
25   Vector          fCenter;      // center of distortion
26
27   Int_t           fSplitInfoMode;  // tick-mark position
28   Int_t           fSplitInfoLevel; // tick-mark density
29   Color_t         fAxisColor;      // color of axis
30
31   Float_t         fCurrentDepth;   // z depth of object being projected
32
33   virtual Bool_t  ShouldImport(RenderElement* rnr_el);
34
35 public:
36   NLTProjector();
37   virtual ~NLTProjector();
38
39   void            SetProjection(NLTProjection::PType_e type, Float_t distort=0);
40   NLTProjection*  GetProjection() { return fProjection; }
41
42   virtual void    UpdateName();
43
44   void            SetAxisColor(Color_t col)  { fAxisColor = col;       }
45   Color_t         GetAxisColor()       const { return fAxisColor;      }
46   void            SetSplitInfoMode(Int_t x)  { fSplitInfoMode = x;     }
47   Int_t           GetSplitInfoMode()   const { return fSplitInfoMode;  }
48   void            SetSplitInfoLevel(Int_t x) { fSplitInfoLevel = x;    }
49   Int_t           GetSplitInfoLevel()  const { return fSplitInfoLevel; }
50
51   void            SetDrawCenter(Bool_t x){ fDrawCenter = x; }
52   Bool_t          GetDrawCenter(){ return fDrawCenter; }
53   void            SetDrawOrigin(Bool_t x){ fDrawOrigin = x; }
54   Bool_t          GetDrawOrigin(){ return fDrawOrigin; }
55
56   void            SetCenter(Float_t x, Float_t y, Float_t z);
57   Vector&         GetCenter(){return fCenter;}
58
59   void            SetCurrentDepth(Float_t d) { fCurrentDepth = d;      }
60   Float_t         GetCurrentDepth()    const { return fCurrentDepth;   }
61
62   virtual Bool_t  HandleElementPaste(RenderElement* el);
63   virtual void    ImportElementsRecurse(RenderElement* rnr_el, RenderElement* parent);
64   virtual void    ImportElements(RenderElement* rnr_el);
65   virtual void    ProjectChildren();
66   virtual void    ProjectChildrenRecurse(RenderElement* rnr_el);
67
68   virtual void    ComputeBBox();
69   virtual void    Paint(Option_t* option = "");
70
71   ClassDef(NLTProjector, 0); // Manages and steers NLT projections.
72 };
73
74 }
75 #endif