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

Plot-painter implementing LEGO rendering of TH2 histograms in cartesian, polar, cylindrical and spherical coordinates.

Definition at line 31 of file TGLLegoPainter.h.

Public Types

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

Public Member Functions

 TGLLegoPainter (TH1 *hist, TGLPlotCamera *camera, TGLPlotCoordinates *coord)
 Ctor.
void AddOption (const TString &stringOption) override
 Parse additional options.
Bool_t CutAxisSelected () const
Bool_t GetDrawAxes ()
char * GetPlotInfo (Int_t px, Int_t py) override
 Obtain bin's info (i, j, value).
Bool_t InitGeometry () override
 Select method.
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
 Move lego or section.
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
 Remove all sections and repaint.
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::pair< Double_t, Double_tCosSin_t
enum  ELegoType { kColorSimple , kColorLevel , kCylindricBars }

Private Member Functions

 TGLLegoPainter (const TGLLegoPainter &)
Bool_t ClampZ (Double_t &zVal) const
 Clamp z value.
void DeInitGL () const override
 Return some gl states to original values.
void DrawLegoCartesian () const
 Lego in cartesian system.
void DrawLegoCylindrical () const
 Lego in cylindrical system.
void DrawLegoPolar () const
 Lego in polar system.
void DrawLegoSpherical () const
 Lego in spherical system.
void DrawPalette () const
 Draw.
void DrawPaletteAxis () const override
 Draw. Palette. Axis.
void DrawPlot () const override
 Select method corresponding to coordinate system.
void DrawSectionXOY () const override
 Empty. No such sections for lego.
void DrawSectionXOZ () const override
 XOZ plane parallel section.
void DrawSectionYOZ () const override
 YOZ plane parallel section.
Bool_t InitGeometryCartesian ()
 Geometry for lego in cartesian coords.
Bool_t InitGeometryCylindrical ()
 Geometry for lego in cylindrical coords.
Bool_t InitGeometryPolar ()
 Geometry for lego in polar coords.
Bool_t InitGeometrySpherical ()
 Geometry for lego in spherical coords.
void InitGL () const override
 Initialize some gl state variables.
TGLLegoPainteroperator= (const TGLLegoPainter &)
Bool_t PreparePalette () const
 Initialize color palette.
void SetLegoColor () const
 Set lego's color.

Private Attributes

TString fBinInfo
std::vector< Double_tfColorLevels
std::vector< CosSin_tfCosSinTableX
std::vector< CosSin_tfCosSinTableY
Bool_t fDrawErrors
ELegoType fLegoType
Rgl::Range_t fMinMaxVal
Double_t fMinZ
const TColorfPadColor
TGLLevelPalette fPalette
TGLQuadric fQuadric
std::vector< Rgl::Range_tfXEdges
std::vector< Rgl::Range_tfYEdges

#include <TGLLegoPainter.h>

Inheritance diagram for TGLLegoPainter:
TGLPlotPainter TVirtualGLPainter

Member Typedef Documentation

◆ CosSin_t

typedef std::pair<Double_t, Double_t> TGLLegoPainter::CosSin_t
private

Definition at line 47 of file TGLLegoPainter.h.

Member Enumeration Documentation

◆ ECutAxisID

Enumerator
kXAxis 
kYAxis 
kZAxis 

Definition at line 262 of file TGLPlotPainter.h.

◆ ELegoType

Enumerator
kColorSimple 
kColorLevel 
kCylindricBars 

Definition at line 34 of file TGLLegoPainter.h.

◆ ESelectionBase

enum TGLPlotPainter::ESelectionBase
protectedinherited
Enumerator
kHighColorSelectionBase 
kTrueColorSelectionBase 

Definition at line 213 of file TGLPlotPainter.h.

Constructor & Destructor Documentation

◆ TGLLegoPainter() [1/2]

TGLLegoPainter::TGLLegoPainter ( const TGLLegoPainter & )
private

◆ TGLLegoPainter() [2/2]

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

Ctor.

Definition at line 39 of file TGLLegoPainter.cxx.

Member Function Documentation

◆ AddOption()

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

Parse additional options.

Implements TGLPlotPainter.

Definition at line 433 of file TGLLegoPainter.cxx.

◆ ClampZ()

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

Clamp z value.

Definition at line 1090 of file TGLLegoPainter.cxx.

◆ Class()

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

◆ Class_Name()

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

◆ Class_Version()

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

Definition at line 100 of file TGLLegoPainter.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 * TGLLegoPainter::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 100 of file TGLLegoPainter.h.

◆ DeInitGL()

void TGLLegoPainter::DeInitGL ( ) const
overrideprivatevirtual

Return some gl states to original values.

Implements TGLPlotPainter.

Definition at line 480 of file TGLLegoPainter.cxx.

◆ DrawLegoCartesian()

void TGLLegoPainter::DrawLegoCartesian ( ) const
private

Lego in cartesian system.

Definition at line 513 of file TGLLegoPainter.cxx.

◆ DrawLegoCylindrical()

void TGLLegoPainter::DrawLegoCylindrical ( ) const
private

Lego in cylindrical system.

Definition at line 728 of file TGLLegoPainter.cxx.

◆ DrawLegoPolar()

void TGLLegoPainter::DrawLegoPolar ( ) const
private

Lego in polar system.

Definition at line 631 of file TGLLegoPainter.cxx.

◆ DrawLegoSpherical()

void TGLLegoPainter::DrawLegoSpherical ( ) const
private

Lego in spherical system.

Definition at line 836 of file TGLLegoPainter.cxx.

◆ DrawPalette()

void TGLLegoPainter::DrawPalette ( ) const
private

Draw.

Palette. Originally, fCamera was never null. It can be a null now because of gl-viewer.

Definition at line 1134 of file TGLLegoPainter.cxx.

◆ DrawPaletteAxis()

void TGLLegoPainter::DrawPaletteAxis ( ) const
overrideprivatevirtual

Draw. Palette. Axis.

Reimplemented from TGLPlotPainter.

Definition at line 1152 of file TGLLegoPainter.cxx.

◆ DrawPlot()

void TGLLegoPainter::DrawPlot ( ) const
overrideprivatevirtual

Select method corresponding to coordinate system.

Implements TGLPlotPainter.

Definition at line 492 of file TGLLegoPainter.cxx.

◆ DrawSections()

void TGLPlotPainter::DrawSections ( ) const
protectedinherited

Draw sections (if any).

Definition at line 440 of file TGLPlotPainter.cxx.

◆ DrawSectionXOY()

void TGLLegoPainter::DrawSectionXOY ( ) const
overrideprivatevirtual

Empty. No such sections for lego.

Implements TGLPlotPainter.

Definition at line 1062 of file TGLLegoPainter.cxx.

◆ DrawSectionXOZ()

void TGLLegoPainter::DrawSectionXOZ ( ) const
overrideprivatevirtual

XOZ plane parallel section.

Implements TGLPlotPainter.

Definition at line 990 of file TGLLegoPainter.cxx.

◆ DrawSectionYOZ()

void TGLLegoPainter::DrawSectionYOZ ( ) const
overrideprivatevirtual

YOZ plane parallel section.

Implements TGLPlotPainter.

Definition at line 1026 of file TGLLegoPainter.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 * TGLLegoPainter::GetPlotInfo ( Int_t px,
Int_t py )
overridevirtual

Obtain bin's info (i, j, value).

Implements TVirtualGLPainter.

Definition at line 50 of file TGLLegoPainter.cxx.

◆ InitGeometry()

Bool_t TGLLegoPainter::InitGeometry ( )
overridevirtual

Select method.

Implements TGLPlotPainter.

Definition at line 75 of file TGLLegoPainter.cxx.

◆ InitGeometryCartesian()

Bool_t TGLLegoPainter::InitGeometryCartesian ( )
private

Geometry for lego in cartesian coords.

Definition at line 97 of file TGLLegoPainter.cxx.

◆ InitGeometryCylindrical()

Bool_t TGLLegoPainter::InitGeometryCylindrical ( )
private

Geometry for lego in cylindrical coords.

Definition at line 260 of file TGLLegoPainter.cxx.

◆ InitGeometryPolar()

Bool_t TGLLegoPainter::InitGeometryPolar ( )
private

Geometry for lego in polar coords.

Definition at line 200 of file TGLLegoPainter.cxx.

◆ InitGeometrySpherical()

Bool_t TGLLegoPainter::InitGeometrySpherical ( )
private

Geometry for lego in spherical coords.

Definition at line 323 of file TGLLegoPainter.cxx.

◆ InitGL()

void TGLLegoPainter::InitGL ( ) const
overrideprivatevirtual

Initialize some gl state variables.

Implements TGLPlotPainter.

Definition at line 465 of file TGLLegoPainter.cxx.

◆ InvalidateSelection()

void TGLPlotPainter::InvalidateSelection ( )
inherited

Selection must be updated.

Definition at line 352 of file TGLPlotPainter.cxx.

◆ IsA()

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

Reimplemented from TVirtualGLPainter.

Definition at line 100 of file TGLLegoPainter.h.

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

◆ operator=()

TGLLegoPainter & TGLLegoPainter::operator= ( const TGLLegoPainter & )
private

◆ Paint()

void TGLPlotPainter::Paint ( )
overridevirtualinherited

Draw lego/surf/whatever you can.

Implements TVirtualGLPainter.

Definition at line 149 of file TGLPlotPainter.cxx.

◆ Pan()

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

Move lego or section.

Implements TVirtualGLPainter.

Definition at line 392 of file TGLLegoPainter.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.

◆ PreparePalette()

Bool_t TGLLegoPainter::PreparePalette ( ) const
private

Initialize color palette.

Definition at line 1113 of file TGLLegoPainter.cxx.

◆ PrintPlot()

void TGLPlotPainter::PrintPlot ( ) const
protectedinherited

Generate PS using gl2ps.

Definition at line 231 of file TGLPlotPainter.cxx.

◆ ProcessEvent()

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

Remove all sections and repaint.

Implements TGLPlotPainter.

Definition at line 1069 of file TGLLegoPainter.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.

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

◆ SetLegoColor()

void TGLLegoPainter::SetLegoColor ( ) const
private

Set lego's color.

Definition at line 973 of file TGLLegoPainter.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 TGLLegoPainter::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 381 of file TGLLegoPainter.cxx.

◆ Streamer()

void TGLLegoPainter::Streamer ( TBuffer & )
overridevirtual

Reimplemented from TVirtualGLPainter.

◆ StreamerNVirtual()

void TGLLegoPainter::StreamerNVirtual ( TBuffer & ClassDef_StreamerNVirtual_b)
inline

Definition at line 100 of file TGLLegoPainter.h.

Member Data Documentation

◆ fBackBox

TGLPlotBox TGLPlotPainter::fBackBox
protectedinherited

Definition at line 207 of file TGLPlotPainter.h.

◆ fBinInfo

TString TGLLegoPainter::fBinInfo
private

Definition at line 50 of file TGLLegoPainter.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.

◆ fColorLevels

std::vector<Double_t> TGLLegoPainter::fColorLevels
mutableprivate

Definition at line 55 of file TGLLegoPainter.h.

◆ fCoord

TGLPlotCoordinates* TGLPlotPainter::fCoord
protectedinherited

Definition at line 196 of file TGLPlotPainter.h.

◆ fCosSinTableX

std::vector<CosSin_t> TGLLegoPainter::fCosSinTableX
private

Definition at line 48 of file TGLLegoPainter.h.

◆ fCosSinTableY

std::vector<CosSin_t> TGLLegoPainter::fCosSinTableY
private

Definition at line 49 of file TGLLegoPainter.h.

◆ fDrawAxes

Bool_t TGLPlotPainter::fDrawAxes
protectedinherited

Definition at line 220 of file TGLPlotPainter.h.

◆ fDrawErrors

Bool_t TGLLegoPainter::fDrawErrors
private

Definition at line 52 of file TGLLegoPainter.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.

◆ fLegoType

ELegoType TGLLegoPainter::fLegoType
mutableprivate

Definition at line 40 of file TGLLegoPainter.h.

◆ fMinMaxVal

Rgl::Range_t TGLLegoPainter::fMinMaxVal
private

Definition at line 42 of file TGLLegoPainter.h.

◆ fMinZ

Double_t TGLLegoPainter::fMinZ
private

Definition at line 41 of file TGLLegoPainter.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.

◆ fPalette

TGLLevelPalette TGLLegoPainter::fPalette
mutableprivate

Definition at line 54 of file TGLLegoPainter.h.

◆ fPhysicalShapeColor

const Float_t* TGLPlotPainter::fPhysicalShapeColor
protectedinherited

Definition at line 187 of file TGLPlotPainter.h.

◆ fQuadric

TGLQuadric TGLLegoPainter::fQuadric
mutableprivate

Definition at line 51 of file TGLLegoPainter.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.

◆ fXEdges

std::vector<Rgl::Range_t> TGLLegoPainter::fXEdges
private

Definition at line 44 of file TGLLegoPainter.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.

◆ fYEdges

std::vector<Rgl::Range_t> TGLLegoPainter::fYEdges
private

Definition at line 45 of file TGLLegoPainter.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.


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