Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TGLH2PolyPainter Class Reference

Paint TH2Poly.

Definition at line 14 of file TGLH2PolyPainter.h.

Public Member Functions

 TGLH2PolyPainter (TH1 *hist, TGLPlotCamera *camera, TGLPlotCoordinates *coord)
 Ctor.
 
void AddOption (const TString &stringOption) override
 No additional options.
 
char * GetPlotInfo (Int_t px, Int_t py) override
 Show number of bin and bin contents, if bin is under the cursor.
 
Bool_t InitGeometry () override
 Tesselate polygons, if not done yet.
 
TClassIsA () const override
 
void Pan (Int_t px, Int_t py) override
 Mouse events handler.
 
void ProcessEvent (Int_t event, Int_t px, Int_t py) override
 No events.
 
void StartPan (Int_t px, Int_t py) override
 User clicks on a lego with middle mouse button (middle for pad).
 
void Streamer (TBuffer &) override
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TGLPlotPainter
 TGLPlotPainter (TGL5DDataSet *data, TGLPlotCamera *camera, TGLPlotCoordinates *coord)
 TGLPlotPainter's ctor.
 
 TGLPlotPainter (TGLPlotCamera *camera)
 TGLPlotPainter's ctor.
 
 TGLPlotPainter (TH1 *hist, TGLPlotCamera *camera, TGLPlotCoordinates *coord, Bool_t xoySelectable, Bool_t xozSelectable, Bool_t yozSelectable)
 TGLPlotPainter's ctor.
 
Bool_t CutAxisSelected () const
 
Bool_t GetDrawAxes ()
 
void InvalidateSelection ()
 Selection must be updated.
 
TClassIsA () const override
 
void Paint () override
 Draw lego/surf/whatever you can.
 
Bool_t PlotSelected (Int_t px, Int_t py) override
 Read color buffer content to find selected object.
 
const TGLPlotBoxRefBackBox () const
 
void SetDrawAxes (Bool_t s)
 
void SetDrawBackBox (Bool_t b)
 
void SetDrawFrontBox (Bool_t b)
 
virtual void SetFrameColor (const TColor *frameColor)
 Set plot's back box color.
 
void SetPadColor (const TColor *color)
 Used in a pad.
 
void SetPhysicalShapeColor (const Float_t *rgba)
 
void Streamer (TBuffer &) override
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TVirtualGLPainter
virtual ~TVirtualGLPainter ()
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 

Static Public Member Functions

static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TGLPlotPainter
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TVirtualGLPainter
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 

Private Types

typedef std::list< Rgl::Pad::Tesselation_t >::const_iterator CIter_t
 

Private Member Functions

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 CacheGeometry ()
 Cache all data for TH2Poly object.
 
Bool_t ClampZ (Double_t &zVal) const
 Clamp z value.
 
void DeInitGL () const override
 Return some gl states to original values.
 
void DrawCap (CIter_t cap, Int_t bin, bool bottomCap) const
 Draw a cap on top of a bin.
 
void DrawCaps () const
 Caps on bins.
 
void DrawExtrusion () const
 Extruded part of bins.
 
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 DrawPalette () const
 Not yet.
 
void DrawPaletteAxis () const override
 Not yet.
 
void DrawPlot () const override
 Draw extruded polygons and plot's frame.
 
void DrawSectionXOY () const override
 No sections.
 
void DrawSectionXOZ () const override
 No sections.
 
void DrawSectionYOZ () const override
 No sections.
 
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 InitGL () const override
 Initialize some gl state variables.
 
void MakePolygonCCW () const
 Code taken from the original TH2Poly.
 
void SetBinColor (Int_t bin) const
 Set bin's color.
 
Bool_t UpdateGeometry ()
 Update cap's z-coordinates for all caps.
 

Private Attributes

std::vector< Int_tfBinColors
 
TString fBinInfo
 
std::list< Rgl::Pad::Tesselation_tfCaps
 
std::vector< Double_tfPolygon
 
Bool_t fZLog
 
Double_t fZMin
 

Additional Inherited Members

- Public Types inherited from TGLPlotPainter
enum  ECutAxisID { kXAxis = 7 , kYAxis = 8 , kZAxis = 9 }
 
- Protected Types inherited from TGLPlotPainter
enum  ESelectionBase { kHighColorSelectionBase = 7 , kTrueColorSelectionBase = 10 }
 
- Protected Member Functions inherited from TGLPlotPainter
virtual void ClearBuffers () const
 
void DrawSections () const
 Draw sections (if any).
 
const TColorGetPadColor () const
 Get pad color.
 
void MoveSection (Int_t px, Int_t py)
 Create dynamic profile using selected plane.
 
void PrintPlot () const
 Generate PS using gl2ps.
 
void RestoreModelviewMatrix () const
 
void RestoreProjectionMatrix () const
 
void SaveModelviewMatrix () const
 
void SaveProjectionMatrix () const
 
- Protected Attributes inherited from TGLPlotPainter
TGLPlotBox fBackBox
 
TGLBoxCut fBoxCut
 
TGLPlotCamerafCamera
 
TGLPlotCoordinatesfCoord
 
Bool_t fDrawAxes
 
Bool_t fDrawPalette
 
Bool_t fHighColor
 
TH1fHist
 
TPoint fMousePosition
 
Double_t fPadPhi
 
Double_t fPadTheta
 
const Float_tfPhysicalShapeColor
 
Int_t fSelectedPart
 
TGLSelectionBuffer fSelection
 
Int_t fSelectionBase
 
Bool_t fSelectionPass
 
Bool_t fUpdateSelection
 
TAxisfXAxis
 
Double_t fXOYSectionPos
 
Double_t fXOZSectionPos
 
TAxisfYAxis
 
Double_t fYOZSectionPos
 
TAxisfZAxis
 
std::vector< Double_tfZLevels
 

#include <TGLH2PolyPainter.h>

Inheritance diagram for TGLH2PolyPainter:
[legend]

Member Typedef Documentation

◆ CIter_t

typedef std::list<Rgl::Pad::Tesselation_t>::const_iterator TGLH2PolyPainter::CIter_t
private

Definition at line 37 of file TGLH2PolyPainter.h.

Constructor & Destructor Documentation

◆ TGLH2PolyPainter()

TGLH2PolyPainter::TGLH2PolyPainter ( TH1 hist,
TGLPlotCamera camera,
TGLPlotCoordinates coord 
)

Ctor.

Definition at line 29 of file TGLH2PolyPainter.cxx.

Member Function Documentation

◆ AddOption()

void TGLH2PolyPainter::AddOption ( const TString stringOption)
overridevirtual

No additional options.

Implements TGLPlotPainter.

Definition at line 153 of file TGLH2PolyPainter.cxx.

◆ BuildTesselation() [1/2]

Bool_t TGLH2PolyPainter::BuildTesselation ( Rgl::Pad::Tesselator tess,
const TGraph g,
Double_t  z 
)
private

Tesselate a polygon described by TGraph.

Definition at line 445 of file TGLH2PolyPainter.cxx.

◆ BuildTesselation() [2/2]

Bool_t TGLH2PolyPainter::BuildTesselation ( Rgl::Pad::Tesselator tess,
const TMultiGraph mg,
Double_t  z 
)
private

Iterate over multi graph contents and tesselate nested TGraphs.

Definition at line 483 of file TGLH2PolyPainter.cxx.

◆ CacheGeometry()

Bool_t TGLH2PolyPainter::CacheGeometry ( )
private

Cache all data for TH2Poly object.

Definition at line 391 of file TGLH2PolyPainter.cxx.

◆ ClampZ()

Bool_t TGLH2PolyPainter::ClampZ ( Double_t zVal) const
private

Clamp z value.

Definition at line 646 of file TGLH2PolyPainter.cxx.

◆ Class()

static TClass * TGLH2PolyPainter::Class ( )
static
Returns
TClass describing this class

◆ Class_Name()

static const char * TGLH2PolyPainter::Class_Name ( )
static
Returns
Name of this class

◆ Class_Version()

static constexpr Version_t TGLH2PolyPainter::Class_Version ( )
inlinestaticconstexpr
Returns
Version of this class

Definition at line 70 of file TGLH2PolyPainter.h.

◆ DeclFileName()

static const char * TGLH2PolyPainter::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 70 of file TGLH2PolyPainter.h.

◆ DeInitGL()

void TGLH2PolyPainter::DeInitGL ( ) const
overrideprivatevirtual

Return some gl states to original values.

Implements TGLPlotPainter.

Definition at line 182 of file TGLH2PolyPainter.cxx.

◆ DrawCap()

void TGLH2PolyPainter::DrawCap ( CIter_t  cap,
Int_t  bin,
bool  bottomCap 
) const
private

Draw a cap on top of a bin.

Definition at line 343 of file TGLH2PolyPainter.cxx.

◆ DrawCaps()

void TGLH2PolyPainter::DrawCaps ( ) const
private

Caps on bins.

Definition at line 309 of file TGLH2PolyPainter.cxx.

◆ DrawExtrusion() [1/3]

void TGLH2PolyPainter::DrawExtrusion ( ) const
private

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).

Definition at line 217 of file TGLH2PolyPainter.cxx.

◆ DrawExtrusion() [2/3]

void TGLH2PolyPainter::DrawExtrusion ( const TGraph polygon,
Double_t  zMin,
Double_t  zMax,
Int_t  nBin 
) const
private

Extrude polygon, described by TGraph.

Definition at line 240 of file TGLH2PolyPainter.cxx.

◆ DrawExtrusion() [3/3]

void TGLH2PolyPainter::DrawExtrusion ( const TMultiGraph polygon,
Double_t  zMin,
Double_t  zMax,
Int_t  nBin 
) const
private

Multigraph contains a list of graphs, draw them.

Definition at line 299 of file TGLH2PolyPainter.cxx.

◆ DrawPalette()

void TGLH2PolyPainter::DrawPalette ( ) const
private

Not yet.

Definition at line 600 of file TGLH2PolyPainter.cxx.

◆ DrawPaletteAxis()

void TGLH2PolyPainter::DrawPaletteAxis ( ) const
overrideprivatevirtual

Not yet.

Reimplemented from TGLPlotPainter.

Definition at line 607 of file TGLH2PolyPainter.cxx.

◆ DrawPlot()

void TGLH2PolyPainter::DrawPlot ( ) const
overrideprivatevirtual

Draw extruded polygons and plot's frame.

Implements TGLPlotPainter.

Definition at line 201 of file TGLH2PolyPainter.cxx.

◆ DrawSectionXOY()

void TGLH2PolyPainter::DrawSectionXOY ( ) const
overrideprivatevirtual

No sections.

Implements TGLPlotPainter.

Definition at line 593 of file TGLH2PolyPainter.cxx.

◆ DrawSectionXOZ()

void TGLH2PolyPainter::DrawSectionXOZ ( ) const
overrideprivatevirtual

No sections.

Implements TGLPlotPainter.

Definition at line 579 of file TGLH2PolyPainter.cxx.

◆ DrawSectionYOZ()

void TGLH2PolyPainter::DrawSectionYOZ ( ) const
overrideprivatevirtual

No sections.

Implements TGLPlotPainter.

Definition at line 586 of file TGLH2PolyPainter.cxx.

◆ FillTemporaryPolygon()

void TGLH2PolyPainter::FillTemporaryPolygon ( const Double_t xs,
const Double_t ys,
Double_t  z,
Int_t  n 
) const
private

Since I probably have to re-orient polygon, I need a temporary polygon.

Definition at line 614 of file TGLH2PolyPainter.cxx.

◆ GetPlotInfo()

char * TGLH2PolyPainter::GetPlotInfo ( Int_t  px,
Int_t  py 
)
overridevirtual

Show number of bin and bin contents, if bin is under the cursor.

Implements TVirtualGLPainter.

Definition at line 43 of file TGLH2PolyPainter.cxx.

◆ InitGeometry()

Bool_t TGLH2PolyPainter::InitGeometry ( )
overridevirtual

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.

Implements TGLPlotPainter.

Definition at line 70 of file TGLH2PolyPainter.cxx.

◆ InitGL()

void TGLH2PolyPainter::InitGL ( ) const
overrideprivatevirtual

Initialize some gl state variables.

Implements TGLPlotPainter.

Definition at line 167 of file TGLH2PolyPainter.cxx.

◆ IsA()

TClass * TGLH2PolyPainter::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from TVirtualGLPainter.

Definition at line 70 of file TGLH2PolyPainter.h.

◆ MakePolygonCCW()

void TGLH2PolyPainter::MakePolygonCCW ( ) const
private

Code taken from the original TH2Poly.

Definition at line 633 of file TGLH2PolyPainter.cxx.

◆ Pan()

void TGLH2PolyPainter::Pan ( Int_t  px,
Int_t  py 
)
overridevirtual

Mouse events handler.

Implements TVirtualGLPainter.

Definition at line 114 of file TGLH2PolyPainter.cxx.

◆ ProcessEvent()

void TGLH2PolyPainter::ProcessEvent ( Int_t  event,
Int_t  px,
Int_t  py 
)
overridevirtual

No events.

Implements TGLPlotPainter.

Definition at line 160 of file TGLH2PolyPainter.cxx.

◆ SetBinColor()

void TGLH2PolyPainter::SetBinColor ( Int_t  bin) const
private

Set bin's color.

Definition at line 556 of file TGLH2PolyPainter.cxx.

◆ StartPan()

void TGLH2PolyPainter::StartPan ( Int_t  px,
Int_t  py 
)
overridevirtual

User clicks on a lego with middle mouse button (middle for pad).

Implements TGLPlotPainter.

Definition at line 103 of file TGLH2PolyPainter.cxx.

◆ Streamer()

void TGLH2PolyPainter::Streamer ( TBuffer )
overridevirtual

Reimplemented from TVirtualGLPainter.

◆ StreamerNVirtual()

void TGLH2PolyPainter::StreamerNVirtual ( TBuffer ClassDef_StreamerNVirtual_b)
inline

Definition at line 70 of file TGLH2PolyPainter.h.

◆ UpdateGeometry()

Bool_t TGLH2PolyPainter::UpdateGeometry ( )
private

Update cap's z-coordinates for all caps.

Here no pointers are checked, this was already done by InitGeometry.

Definition at line 510 of file TGLH2PolyPainter.cxx.

Member Data Documentation

◆ fBinColors

std::vector<Int_t> TGLH2PolyPainter::fBinColors
private

Definition at line 62 of file TGLH2PolyPainter.h.

◆ fBinInfo

TString TGLH2PolyPainter::fBinInfo
private

Definition at line 60 of file TGLH2PolyPainter.h.

◆ fCaps

std::list<Rgl::Pad::Tesselation_t> TGLH2PolyPainter::fCaps
private

Definition at line 65 of file TGLH2PolyPainter.h.

◆ fPolygon

std::vector<Double_t> TGLH2PolyPainter::fPolygon
mutableprivate

Definition at line 64 of file TGLH2PolyPainter.h.

◆ fZLog

Bool_t TGLH2PolyPainter::fZLog
private

Definition at line 67 of file TGLH2PolyPainter.h.

◆ fZMin

Double_t TGLH2PolyPainter::fZMin
private

Definition at line 68 of file TGLH2PolyPainter.h.

Libraries for TGLH2PolyPainter:

The documentation for this class was generated from the following files: