ROOT logo
ROOT » GRAF3D » GL » TGLH2PolyPainter

class TGLH2PolyPainter: public TGLPlotPainter

Function Members (Methods)

private:
Bool_tBuildTesselation(Rgl::Pad::Tesselator& tess, const TGraph* g, Double_t z)
Bool_tBuildTesselation(Rgl::Pad::Tesselator& tess, const TMultiGraph* mg, Double_t z)
Bool_tCacheGeometry()
Bool_tClampZ(Double_t& zVal) const
virtual voidDeInitGL() const
voidDrawCap(TGLH2PolyPainter::CIter_t cap, Int_t bin) const
voidDrawCaps() const
voidDrawExtrusion() const
voidDrawExtrusion(const TGraph* polygon, Double_t zMin, Double_t zMax, Int_t nBin) const
voidDrawExtrusion(const TMultiGraph* polygon, Double_t zMin, Double_t zMax, Int_t nBin) const
voidDrawPalette() const
virtual voidDrawPaletteAxis() const
virtual voidDrawPlot() const
virtual voidDrawSectionXOY() const
virtual voidDrawSectionXOZ() const
virtual voidDrawSectionYOZ() const
voidFillTemporaryPolygon(const Double_t* xs, const Double_t* ys, Double_t z, Int_t n) const
virtual voidInitGL() const
voidMakePolygonCCW() const
voidSetBinColor(Int_t bin) const
Bool_tUpdateGeometry()

Data Members

public:
enum TGLPlotPainter::ESelectionBase { kHighColorSelectionBase
kTrueColorSelectionBase
};
enum TGLPlotPainter::ECutAxisID { kXAxis
kYAxis
kZAxis
};
private:
vector<Int_t>fBinColors
TStringfBinInfoUsed by GetPlotInfo.
list<Rgl::Pad::Tesselation_t>fCapsCaps for all bins.
vector<Double_t>fPolygonTemporary array for polygon's vertices.
Bool_tfZLogChange in logZ updates only bin heights.
Double_tfZMin

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TGLH2PolyPainter(TH1* hist, TGLPlotCamera* camera, TGLPlotCoordinates* coord)
Ctor.
char * GetPlotInfo(Int_t px, Int_t py)
Show number of bin and bin contents, if bin is under the cursor.
Bool_t InitGeometry()
Tesselate polygons, if not done yet.
All pointers are validated here (and in functions called from here).
If any pointer is invalid - zero, or has unexpected type (dynamic_cast fails) -
InitGeometry will return false and nothing will be painted later.
That's why there are no checks in other functions.
void StartPan(Int_t px, Int_t py)
User clicks on a lego with middle mouse button (middle for pad).
void Pan(Int_t px, Int_t py)
Mouse events handler.
void AddOption(const TString& stringOption)
No additional options.
void ProcessEvent(Int_t event, Int_t px, Int_t py)
No events.
void InitGL() const
Initialize some gl state variables.
void DeInitGL() const
Return some gl states to original values.
void DrawPlot() const
Draw extruded polygons and plot's frame.
void DrawExtrusion() const
Extruded part of bins.
GL_QUADS, GL_QUAD_STRIP - have the same time on my laptop, so I use
GL_QUADS and forgot about vertex arrays (can require more memory BTW).
void DrawExtrusion(const TGraph* polygon, Double_t zMin, Double_t zMax, Int_t nBin) const
Extrude polygon, described by TGraph.
void DrawExtrusion(const TMultiGraph* polygon, Double_t zMin, Double_t zMax, Int_t nBin) const
Multigraph contains a list of graphs, draw them.
void DrawCaps() const
Caps on bins.
void DrawCap(TGLH2PolyPainter::CIter_t cap, Int_t bin) const
Draw a cap on top of a bin.
Bool_t CacheGeometry()
Cache all data for TH2Poly object.
Bool_t BuildTesselation(Rgl::Pad::Tesselator& tess, const TGraph* g, Double_t z)
Tesselate a polygon described by TGraph.
Bool_t BuildTesselation(Rgl::Pad::Tesselator& tess, const TMultiGraph* mg, Double_t z)
Iterate over multi graph contents and tesselate nested TGraphs.
Bool_t UpdateGeometry()
Update cap's z-coordinates for all caps.
Here no pointers are checked, this was already done
by InitGeometry. So, if histogram was broken somehow
- hehe, good luck.
void SetBinColor(Int_t bin) const
Set bin's color.
void DrawSectionXOZ() const
No sections.
void DrawSectionYOZ() const
No sections.
void DrawSectionXOY() const
No sections.
void DrawPalette() const
Not yet.
void DrawPaletteAxis() const
Not yet.
void FillTemporaryPolygon(const Double_t* xs, const Double_t* ys, Double_t z, Int_t n) const
Since I probably have to re-orient polygon, I need a temporary polygon.
void MakePolygonCCW() const
Code taken from the original TH2Poly.
Bool_t ClampZ(Double_t& zVal) const
Clamp z value.