This commit was generated by cvs2svn to compensate for changes in r13732,
[u/mrichter/AliRoot.git] / EVE / Reve / PointSet.h
1 // $Header$
2
3 #ifndef REVE_GuiPointSet_H
4 #define REVE_GuiPointSet_H
5
6 #include <Reve/PODs.h>
7 #include <Reve/RenderElement.h>
8
9 #include <TPointSet3D.h>
10
11 class TTree;
12 class TF3;
13 class TGListTreeItem;
14
15 namespace Reve {
16
17 class PointSet : public TPointSet3D, public RenderElement
18 {
19   friend class PointSetArray;
20
21 private:
22   void Init();
23
24 protected:
25   TString fTitle;
26
27 public:
28   enum TreeVarType_e { TVT_XYZ, TVT_RPhiZ };
29
30   PointSet(Int_t n_points=0);
31   PointSet(const Text_t* name, Int_t n_points=0);
32   PointSet(const Text_t* name, TTree* tree,
33                     TreeVarType_e tv_type=TVT_XYZ);
34
35   void Reset(Int_t n_points=0);
36
37   virtual const Text_t* GetTitle() const          { return fTitle; }
38   virtual void          SetTitle(const Text_t* t) { fTitle = t; }
39
40   virtual void SetMarkerColor(Color_t col)
41   { SetMainColor(col); }
42
43   virtual void Paint(Option_t* option="");
44
45   ClassDef(PointSet, 1);
46 }; // endclass GuiPointSet
47
48 /**************************************************************************/
49
50 class PointSetArray : public TNamed, public RenderElementListBase
51 {
52 protected:
53   PointSet**   fBins;
54   Int_t        fNBins;
55   Double_t     fMin, fCurMin;
56   Double_t     fMax, fCurMax;
57   Double_t     fBinWidth;
58   TString      fQuantName;
59
60   Color_t      fColor;
61
62 public:
63   enum TreeVarType_e { TVT_XYZ, TVT_RPhiZ };
64
65   PointSetArray(const Text_t* name="PointSetArray",
66                         const Text_t* title="");
67   virtual ~PointSetArray();
68
69   virtual Bool_t CanEditMainColor()           { return true; }
70   virtual void   Paint(Option_t* option = "") { PaintElements(option); }
71
72   void InitBins(TGListTreeItem* tree_item, const Text_t* quant_name,
73                 Int_t nbins, Double_t min, Double_t max);
74   void Fill(Double_t quant, Double_t x, Double_t y, Double_t z);
75   void Fill(TF3* formula, TTree* tree, TreeVarType_e tv_type=TVT_XYZ);
76   void CloseBins(Int_t mark_style, Float_t mark_size);
77
78   Double_t GetMin()    const { return fMin; }
79   Double_t GetCurMin() const { return fCurMin; }
80   Double_t GetMax()    const { return fMax; }
81   Double_t GetCurMax() const { return fCurMax; }
82
83   void SetRange(Double_t min, Double_t max);
84
85   void MakeScrollbar(); // *MENU*
86   void HandleScrollEvent();
87
88   ClassDef(PointSetArray, 1);
89 };
90
91 }
92
93 #endif