12 #ifndef ROOT_TGL5DPainter
13 #define ROOT_TGL5DPainter
32 class TGL5DPainter :
public TGLPlotPainter {
39 typedef Rgl::Mc::TIsoMesh<Float_t> Mesh_t;
44 : f4D(0.), fRange(0.), fShowCloud(kFALSE), fHide(kFALSE),
45 fColor(0), fHighlight(kFALSE), fAlpha(100)
55 std::vector<Double_t> fPreds;
60 typedef std::list<Surf_t> SurfList_t;
61 typedef SurfList_t::iterator SurfIter_t;
62 typedef SurfList_t::const_iterator ConstSurfIter_t;
66 Rgl::Mc::TMeshBuilder<TKDEFGT, Float_t> fMeshBuilder;
74 typedef std::vector<Double_t>::size_type size_type;
76 Rgl::Range_t fV5PredictedRange;
77 Rgl::Range_t fV5SliderRange;
84 TGL5DPainter(TGL5DDataSet *data, TGLPlotCamera *camera, TGLPlotCoordinates *coord);
87 SurfIter_t AddSurface(Double_t v4, Color_t ci, Double_t isoVal = 1., Double_t sigma = 1.,
88 Double_t range = 1e-3, Int_t lowNumOfPoints = kNLowPts);
90 void AddSurface(Double_t v4);
91 void RemoveSurface(SurfIter_t surf);
94 char *GetPlotInfo(Int_t px, Int_t py);
95 Bool_t InitGeometry();
96 void StartPan(Int_t px, Int_t py);
97 void Pan(Int_t px, Int_t py);
98 void AddOption(
const TString &option);
99 void ProcessEvent(Int_t event, Int_t px, Int_t py);
102 void ShowBoxCut(Bool_t show) {fBoxCut.SetActive(show);}
103 Bool_t IsBoxCutShown()
const{
return fBoxCut.IsActive();}
105 void SetAlpha(Double_t newAlpha);
106 Double_t GetAlpha()
const{
return fAlpha;}
108 void SetNContours(Int_t num);
109 Int_t GetNContours()
const{
return fNContours;}
111 void ResetGeometryRanges();
113 SurfIter_t SurfacesBegin();
114 SurfIter_t SurfacesEnd();
119 void DeInitGL()
const;
121 void DrawPlot()
const;
124 void DrawSectionXOZ()
const{}
125 void DrawSectionYOZ()
const{}
126 void DrawSectionXOY()
const{}
129 void SetSurfaceColor(ConstSurfIter_t surf)
const;
130 void DrawCloud()
const;
131 void DrawSubCloud(Double_t v4, Double_t range, Color_t ci)
const;
132 void DrawMesh(ConstSurfIter_t surf)
const;
134 TGL5DPainter(
const TGL5DPainter &);
135 TGL5DPainter &operator = (
const TGL5DPainter &);