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

Paint TH2Poly.

Definition at line 14 of file TGLH2PolyPainter.h.

Public Types

enum  ECutAxisID { kXAxis = 7 , kYAxis = 8 , kZAxis = 9 }

Public Member Functions

 TGLH2PolyPainter (TH1 *hist, TGLPlotCamera *camera, TGLPlotCoordinates *coord)
 Ctor.
void AddOption (const TString &stringOption) override
 No additional options.
Bool_t CutAxisSelected () const
Bool_t GetDrawAxes ()
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.
void InvalidateSelection ()
 Selection must be updated.
TClassIsA () const override
void Paint () override
 Draw lego/surf/whatever you can.
void Pan (Int_t px, Int_t py) override
 Mouse events handler.
Bool_t PlotSelected (Int_t px, Int_t py) override
 Read color buffer content to find selected object.
void ProcessEvent (Int_t event, Int_t px, Int_t py) override
 No events.
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 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)

Static Public Member Functions

static TClassClass ()
static const char * Class_Name ()
static constexpr Version_t Class_Version ()
static const char * DeclFileName ()

Protected Types

enum  ESelectionBase { kHighColorSelectionBase = 7 , kTrueColorSelectionBase = 10 }

Protected Member Functions

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

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

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
const TColorfPadColor
std::vector< Double_tfPolygon
Bool_t fZLog
Double_t fZMin

#include <TGLH2PolyPainter.h>

Inheritance diagram for TGLH2PolyPainter:
TGLPlotPainter TVirtualGLPainter

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.

Member Enumeration Documentation

◆ ECutAxisID

Enumerator
kXAxis 
kYAxis 
kZAxis 

Definition at line 262 of file TGLPlotPainter.h.

◆ ESelectionBase

enum TGLPlotPainter::ESelectionBase
protectedinherited
Enumerator
kHighColorSelectionBase 
kTrueColorSelectionBase 

Definition at line 213 of file TGLPlotPainter.h.

Constructor & Destructor Documentation

◆ TGLH2PolyPainter()

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

Ctor.

Definition at line 28 of file TGLH2PolyPainter.cxx.

Member Function Documentation

◆ AddOption()

void TGLH2PolyPainter::AddOption ( const TString & stringOption)
overridevirtual

No additional options.

Implements TGLPlotPainter.

Definition at line 152 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 444 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 482 of file TGLH2PolyPainter.cxx.

◆ CacheGeometry()

Bool_t TGLH2PolyPainter::CacheGeometry ( )
private

Cache all data for TH2Poly object.

Definition at line 390 of file TGLH2PolyPainter.cxx.

◆ ClampZ()

Bool_t TGLH2PolyPainter::ClampZ ( Double_t & zVal) const
private

Clamp z value.

Definition at line 645 of file TGLH2PolyPainter.cxx.

◆ Class()

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

◆ Class_Name()

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

◆ Class_Version()

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

Definition at line 70 of file TGLH2PolyPainter.h.

◆ ClearBuffers()

void TGLPlotPainter::ClearBuffers ( ) const
protectedvirtualinherited

Definition at line 564 of file TGLPlotPainter.cxx.

◆ CutAxisSelected()

Bool_t TGLPlotPainter::CutAxisSelected ( ) const
inlineinherited

Definition at line 268 of file TGLPlotPainter.h.

◆ DeclFileName()

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 181 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 342 of file TGLH2PolyPainter.cxx.

◆ DrawCaps()

void TGLH2PolyPainter::DrawCaps ( ) const
private

Caps on bins.

Definition at line 308 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 216 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 239 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 298 of file TGLH2PolyPainter.cxx.

◆ DrawPalette()

void TGLH2PolyPainter::DrawPalette ( ) const
private

Not yet.

Definition at line 599 of file TGLH2PolyPainter.cxx.

◆ DrawPaletteAxis()

void TGLH2PolyPainter::DrawPaletteAxis ( ) const
overrideprivatevirtual

Not yet.

Reimplemented from TGLPlotPainter.

Definition at line 606 of file TGLH2PolyPainter.cxx.

◆ DrawPlot()

void TGLH2PolyPainter::DrawPlot ( ) const
overrideprivatevirtual

Draw extruded polygons and plot's frame.

Implements TGLPlotPainter.

Definition at line 200 of file TGLH2PolyPainter.cxx.

◆ DrawSections()

void TGLPlotPainter::DrawSections ( ) const
protectedinherited

Draw sections (if any).

Definition at line 440 of file TGLPlotPainter.cxx.

◆ DrawSectionXOY()

void TGLH2PolyPainter::DrawSectionXOY ( ) const
overrideprivatevirtual

No sections.

Implements TGLPlotPainter.

Definition at line 592 of file TGLH2PolyPainter.cxx.

◆ DrawSectionXOZ()

void TGLH2PolyPainter::DrawSectionXOZ ( ) const
overrideprivatevirtual

No sections.

Implements TGLPlotPainter.

Definition at line 578 of file TGLH2PolyPainter.cxx.

◆ DrawSectionYOZ()

void TGLH2PolyPainter::DrawSectionYOZ ( ) const
overrideprivatevirtual

No sections.

Implements TGLPlotPainter.

Definition at line 585 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 613 of file TGLH2PolyPainter.cxx.

◆ GetDrawAxes()

Bool_t TGLPlotPainter::GetDrawAxes ( )
inlineinherited

Definition at line 273 of file TGLPlotPainter.h.

◆ GetPadColor()

const TColor * TGLPlotPainter::GetPadColor ( ) const
protectedinherited

Get pad color.

Definition at line 360 of file TGLPlotPainter.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 42 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 69 of file TGLH2PolyPainter.cxx.

◆ InitGL()

void TGLH2PolyPainter::InitGL ( ) const
overrideprivatevirtual

Initialize some gl state variables.

Implements TGLPlotPainter.

Definition at line 166 of file TGLH2PolyPainter.cxx.

◆ InvalidateSelection()

void TGLPlotPainter::InvalidateSelection ( )
inherited

Selection must be updated.

Definition at line 352 of file TGLPlotPainter.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 632 of file TGLH2PolyPainter.cxx.

◆ MoveSection()

void TGLPlotPainter::MoveSection ( Int_t px,
Int_t py )
protectedinherited

Create dynamic profile using selected plane.

Definition at line 368 of file TGLPlotPainter.cxx.

◆ Paint()

void TGLPlotPainter::Paint ( )
overridevirtualinherited

Draw lego/surf/whatever you can.

Implements TVirtualGLPainter.

Definition at line 149 of file TGLPlotPainter.cxx.

◆ Pan()

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

Mouse events handler.

Implements TVirtualGLPainter.

Definition at line 113 of file TGLH2PolyPainter.cxx.

◆ PlotSelected()

Bool_t TGLPlotPainter::PlotSelected ( Int_t px,
Int_t py )
overridevirtualinherited

Read color buffer content to find selected object.

Implements TVirtualGLPainter.

Definition at line 271 of file TGLPlotPainter.cxx.

◆ PrintPlot()

void TGLPlotPainter::PrintPlot ( ) const
protectedinherited

Generate PS using gl2ps.

Definition at line 231 of file TGLPlotPainter.cxx.

◆ ProcessEvent()

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

No events.

Implements TGLPlotPainter.

Definition at line 159 of file TGLH2PolyPainter.cxx.

◆ RefBackBox()

const TGLPlotBox & TGLPlotPainter::RefBackBox ( ) const
inlineinherited

Definition at line 231 of file TGLPlotPainter.h.

◆ RestoreModelviewMatrix()

void TGLPlotPainter::RestoreModelviewMatrix ( ) const
protectedinherited

Definition at line 601 of file TGLPlotPainter.cxx.

◆ RestoreProjectionMatrix()

void TGLPlotPainter::RestoreProjectionMatrix ( ) const
protectedinherited

Definition at line 609 of file TGLPlotPainter.cxx.

◆ SaveModelviewMatrix()

void TGLPlotPainter::SaveModelviewMatrix ( ) const
protectedinherited

Definition at line 585 of file TGLPlotPainter.cxx.

◆ SaveProjectionMatrix()

void TGLPlotPainter::SaveProjectionMatrix ( ) const
protectedinherited

Definition at line 593 of file TGLPlotPainter.cxx.

◆ SetBinColor()

void TGLH2PolyPainter::SetBinColor ( Int_t bin) const
private

Set bin's color.

Definition at line 555 of file TGLH2PolyPainter.cxx.

◆ SetDrawAxes()

void TGLPlotPainter::SetDrawAxes ( Bool_t s)
inlineinherited

Definition at line 272 of file TGLPlotPainter.h.

◆ SetDrawBackBox()

void TGLPlotPainter::SetDrawBackBox ( Bool_t b)
inlineinherited

Definition at line 271 of file TGLPlotPainter.h.

◆ SetDrawFrontBox()

void TGLPlotPainter::SetDrawFrontBox ( Bool_t b)
inlineinherited

Definition at line 270 of file TGLPlotPainter.h.

◆ SetFrameColor()

void TGLPlotPainter::SetFrameColor ( const TColor * frameColor)
virtualinherited

Set plot's back box color.

Definition at line 344 of file TGLPlotPainter.cxx.

◆ SetPadColor()

void TGLPlotPainter::SetPadColor ( const TColor * color)
inherited

Used in a pad.

Definition at line 336 of file TGLPlotPainter.cxx.

◆ SetPhysicalShapeColor()

void TGLPlotPainter::SetPhysicalShapeColor ( const Float_t * rgba)
inlineinherited

Definition at line 232 of file TGLPlotPainter.h.

◆ 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 102 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 509 of file TGLH2PolyPainter.cxx.

Member Data Documentation

◆ fBackBox

TGLPlotBox TGLPlotPainter::fBackBox
protectedinherited

Definition at line 207 of file TGLPlotPainter.h.

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

◆ fBoxCut

TGLBoxCut TGLPlotPainter::fBoxCut
protectedinherited

Definition at line 208 of file TGLPlotPainter.h.

◆ fCamera

TGLPlotCamera* TGLPlotPainter::fCamera
protectedinherited

Definition at line 197 of file TGLPlotPainter.h.

◆ fCaps

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

Definition at line 65 of file TGLH2PolyPainter.h.

◆ fCoord

TGLPlotCoordinates* TGLPlotPainter::fCoord
protectedinherited

Definition at line 196 of file TGLPlotPainter.h.

◆ fDrawAxes

Bool_t TGLPlotPainter::fDrawAxes
protectedinherited

Definition at line 220 of file TGLPlotPainter.h.

◆ fDrawPalette

Bool_t TGLPlotPainter::fDrawPalette
mutableprotectedinherited

Definition at line 219 of file TGLPlotPainter.h.

◆ fHighColor

Bool_t TGLPlotPainter::fHighColor
protectedinherited

Definition at line 211 of file TGLPlotPainter.h.

◆ fHist

TH1* TGLPlotPainter::fHist
protectedinherited

Definition at line 191 of file TGLPlotPainter.h.

◆ fMousePosition

TPoint TGLPlotPainter::fMousePosition
protectedinherited

Definition at line 203 of file TGLPlotPainter.h.

◆ fPadColor

const TColor* TGLPlotPainter::fPadColor
privateinherited

Definition at line 184 of file TGLPlotPainter.h.

◆ fPadPhi

Double_t TGLPlotPainter::fPadPhi
protectedinherited

Definition at line 189 of file TGLPlotPainter.h.

◆ fPadTheta

Double_t TGLPlotPainter::fPadTheta
protectedinherited

Definition at line 190 of file TGLPlotPainter.h.

◆ fPhysicalShapeColor

const Float_t* TGLPlotPainter::fPhysicalShapeColor
protectedinherited

Definition at line 187 of file TGLPlotPainter.h.

◆ fPolygon

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

Definition at line 64 of file TGLH2PolyPainter.h.

◆ fSelectedPart

Int_t TGLPlotPainter::fSelectedPart
protectedinherited

Definition at line 202 of file TGLPlotPainter.h.

◆ fSelection

TGLSelectionBuffer TGLPlotPainter::fSelection
protectedinherited

Definition at line 198 of file TGLPlotPainter.h.

◆ fSelectionBase

Int_t TGLPlotPainter::fSelectionBase
protectedinherited

Definition at line 218 of file TGLPlotPainter.h.

◆ fSelectionPass

Bool_t TGLPlotPainter::fSelectionPass
protectedinherited

Definition at line 201 of file TGLPlotPainter.h.

◆ fUpdateSelection

Bool_t TGLPlotPainter::fUpdateSelection
protectedinherited

Definition at line 200 of file TGLPlotPainter.h.

◆ fXAxis

TAxis* TGLPlotPainter::fXAxis
protectedinherited

Definition at line 192 of file TGLPlotPainter.h.

◆ fXOYSectionPos

Double_t TGLPlotPainter::fXOYSectionPos
mutableprotectedinherited

Definition at line 206 of file TGLPlotPainter.h.

◆ fXOZSectionPos

Double_t TGLPlotPainter::fXOZSectionPos
mutableprotectedinherited

Definition at line 204 of file TGLPlotPainter.h.

◆ fYAxis

TAxis* TGLPlotPainter::fYAxis
protectedinherited

Definition at line 193 of file TGLPlotPainter.h.

◆ fYOZSectionPos

Double_t TGLPlotPainter::fYOZSectionPos
mutableprotectedinherited

Definition at line 205 of file TGLPlotPainter.h.

◆ fZAxis

TAxis* TGLPlotPainter::fZAxis
protectedinherited

Definition at line 194 of file TGLPlotPainter.h.

◆ fZLevels

std::vector<Double_t> TGLPlotPainter::fZLevels
protectedinherited

Definition at line 210 of file TGLPlotPainter.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.


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