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

Implements painting of TH2 with "SURF" option.

Definition at line 25 of file TGLSurfacePainter.h.

Classes

struct  Projection_t
 

Public Member Functions

 TGLSurfacePainter (TH1 *hist, TGLPlotCamera *camera, TGLPlotCoordinates *coord)
 Constructor.
 
void AddOption (const TString &stringOption) override
 Additional options for surfaces.
 
char * GetPlotInfo (Int_t px, Int_t py) override
 Coords for point on surface under cursor.
 
Bool_t InitGeometry () override
 Set mesh, normals.
 
TClassIsA () const override
 
void Pan (Int_t px, Int_t py) override
 User's moving mouse cursor, with middle mouse button pressed (for pad).
 
void ProcessEvent (Int_t event, Int_t px, Int_t py) override
 Remove all profiles/sections.
 
void StartPan (Int_t px, Int_t py) override
 User clicks right mouse button (in a 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.
 
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 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

enum  ESurfaceType {
  kSurf , kSurf1 , kSurf2 , kSurf3 ,
  kSurf4 , kSurf5
}
 

Private Member Functions

void ClampZ (Double_t &zVal) const
 Clamp z value.
 
void DeInitGL () const override
 Initialize some OpenGL state variables.
 
void DrawContoursProjection () const
 Draw flat textured surface.
 
void DrawPalette () const
 Draw.
 
void DrawPaletteAxis () const override
 Draw. Palette. Axis.
 
void DrawPlot () const override
 Draw surf/surf1/surf2/surf4.
 
void DrawProjections () const
 Draw projections.
 
void DrawSectionXOY () const override
 Draw section Z.
 
void DrawSectionXOZ () const override
 Draw section X.
 
void DrawSectionYOZ () const override
 Draw section Y.
 
void GenTexMap () const
 Find texture coordinates.
 
Bool_t HasProjections () const
 Any projection exists.
 
Bool_t HasSections () const
 Any section exists.
 
Bool_t InitGeometryCartesian ()
 Find bin ranges for X and Y axes, axes ranges for X, Y and Z.
 
Bool_t InitGeometryCylindrical ()
 Find bin ranges for X and Y axes, axes ranges for X, Y and Z.
 
Bool_t InitGeometryPolar ()
 Find bin ranges for X and Y axes, axes ranges for X, Y and Z.
 
Bool_t InitGeometrySpherical ()
 Find bin ranges for X and Y axes, axes ranges for X, Y and Z.
 
void InitGL () const override
 Initialize some OpenGL state variables.
 
Bool_t PreparePalette () const
 Generate palette.
 
void SetNormals ()
 One normal per vertex; this normal is average of neighbouring triangles normals.
 
void SetSurfaceColor () const
 Set color for surface.
 
Bool_t Textured () const
 Checks, if surf requires texture.
 
char * WindowPointTo3DPoint (Int_t px, Int_t py) const
 Find 3d coords using mouse cursor coords.
 

Private Attributes

TGL2DArray< TGLVector3fAverageNormals
 
std::vector< Double_tfColorLevels
 
TGL2DArray< std::pair< TGLVector3, TGLVector3 > > fFaceNormals
 
TGL2DArray< TGLVertex3fMesh
 
Rgl::Range_t fMinMaxVal
 
TString fObjectInfo
 
TGLLevelPalette fPalette
 
Projection_t fProj
 
Bool_t fSectionPass
 
TGL2DArray< Double_tfTexMap
 
ESurfaceType fType
 
Bool_t fUpdateTexMap
 
std::list< Projection_tfXOYProj
 
std::list< Projection_tfXOZProj
 
std::list< Projection_tfYOZProj
 

Static Private Attributes

static TRandomfgRandom = new TRandom(0)
 

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 <TGLSurfacePainter.h>

Inheritance diagram for TGLSurfacePainter:
[legend]

Member Enumeration Documentation

◆ ESurfaceType

Enumerator
kSurf 
kSurf1 
kSurf2 
kSurf3 
kSurf4 
kSurf5 

Definition at line 27 of file TGLSurfacePainter.h.

Constructor & Destructor Documentation

◆ TGLSurfacePainter()

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

Constructor.

Definition at line 54 of file TGLSurfacePainter.cxx.

Member Function Documentation

◆ AddOption()

void TGLSurfacePainter::AddOption ( const TString stringOption)
overridevirtual

Additional options for surfaces.

Implements TGLPlotPainter.

Definition at line 156 of file TGLSurfacePainter.cxx.

◆ ClampZ()

void TGLSurfacePainter::ClampZ ( Double_t zVal) const
private

Clamp z value.

Definition at line 1059 of file TGLSurfacePainter.cxx.

◆ Class()

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

◆ Class_Name()

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

◆ Class_Version()

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

Definition at line 111 of file TGLSurfacePainter.h.

◆ DeclFileName()

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

Definition at line 111 of file TGLSurfacePainter.h.

◆ DeInitGL()

void TGLSurfacePainter::DeInitGL ( ) const
overrideprivatevirtual

Initialize some OpenGL state variables.

Implements TGLPlotPainter.

Definition at line 245 of file TGLSurfacePainter.cxx.

◆ DrawContoursProjection()

void TGLSurfacePainter::DrawContoursProjection ( ) const
private

Draw flat textured surface.

Definition at line 1177 of file TGLSurfacePainter.cxx.

◆ DrawPalette()

void TGLSurfacePainter::DrawPalette ( ) const
private

Draw.

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

Definition at line 1232 of file TGLSurfacePainter.cxx.

◆ DrawPaletteAxis()

void TGLSurfacePainter::DrawPaletteAxis ( ) const
overrideprivatevirtual

Draw. Palette. Axis.

Reimplemented from TGLPlotPainter.

Definition at line 1250 of file TGLSurfacePainter.cxx.

◆ DrawPlot()

void TGLSurfacePainter::DrawPlot ( ) const
overrideprivatevirtual

Draw surf/surf1/surf2/surf4.

Implements TGLPlotPainter.

Definition at line 326 of file TGLSurfacePainter.cxx.

◆ DrawProjections()

void TGLSurfacePainter::DrawProjections ( ) const
private

Draw projections.

Definition at line 774 of file TGLSurfacePainter.cxx.

◆ DrawSectionXOY()

void TGLSurfacePainter::DrawSectionXOY ( ) const
overrideprivatevirtual

Draw section Z.

Implements TGLPlotPainter.

Definition at line 963 of file TGLSurfacePainter.cxx.

◆ DrawSectionXOZ()

void TGLSurfacePainter::DrawSectionXOZ ( ) const
overrideprivatevirtual

Draw section X.

Implements TGLPlotPainter.

Definition at line 863 of file TGLSurfacePainter.cxx.

◆ DrawSectionYOZ()

void TGLSurfacePainter::DrawSectionYOZ ( ) const
overrideprivatevirtual

Draw section Y.

Implements TGLPlotPainter.

Definition at line 913 of file TGLSurfacePainter.cxx.

◆ GenTexMap()

void TGLSurfacePainter::GenTexMap ( ) const
private

Find texture coordinates.

Definition at line 1156 of file TGLSurfacePainter.cxx.

◆ GetPlotInfo()

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

Coords for point on surface under cursor.

Implements TVirtualGLPainter.

Definition at line 65 of file TGLSurfacePainter.cxx.

◆ HasProjections()

Bool_t TGLSurfacePainter::HasProjections ( ) const
private

Any projection exists.

Definition at line 1222 of file TGLSurfacePainter.cxx.

◆ HasSections()

Bool_t TGLSurfacePainter::HasSections ( ) const
private

Any section exists.

Definition at line 1213 of file TGLSurfacePainter.cxx.

◆ InitGeometry()

Bool_t TGLSurfacePainter::InitGeometry ( )
overridevirtual

Set mesh, normals.

Implements TGLPlotPainter.

Definition at line 79 of file TGLSurfacePainter.cxx.

◆ InitGeometryCartesian()

Bool_t TGLSurfacePainter::InitGeometryCartesian ( )
private

Find bin ranges for X and Y axes, axes ranges for X, Y and Z.

Function returns false, if logarithmic scale for some axis was requested, but we cannot find correct range.

Definition at line 491 of file TGLSurfacePainter.cxx.

◆ InitGeometryCylindrical()

Bool_t TGLSurfacePainter::InitGeometryCylindrical ( )
private

Find bin ranges for X and Y axes, axes ranges for X, Y and Z.

Function returns false, if logarithmic scale for some axis was requested, but we cannot find correct range.

Definition at line 626 of file TGLSurfacePainter.cxx.

◆ InitGeometryPolar()

Bool_t TGLSurfacePainter::InitGeometryPolar ( )
private

Find bin ranges for X and Y axes, axes ranges for X, Y and Z.

Function returns false, if logarithmic scale for some axis was requested, but we cannot find correct range.

Definition at line 559 of file TGLSurfacePainter.cxx.

◆ InitGeometrySpherical()

Bool_t TGLSurfacePainter::InitGeometrySpherical ( )
private

Find bin ranges for X and Y axes, axes ranges for X, Y and Z.

Function returns false, if logarithmic scale for some axis was requested, but we cannot find correct range.

Definition at line 699 of file TGLSurfacePainter.cxx.

◆ InitGL()

void TGLSurfacePainter::InitGL ( ) const
overrideprivatevirtual

Initialize some OpenGL state variables.

Implements TGLPlotPainter.

Definition at line 233 of file TGLSurfacePainter.cxx.

◆ IsA()

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

Reimplemented from TGLPlotPainter.

Definition at line 111 of file TGLSurfacePainter.h.

◆ Pan()

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

User's moving mouse cursor, with middle mouse button pressed (for pad).

Calculate 3d shift related to 2d mouse movement.

Implements TVirtualGLPainter.

Definition at line 113 of file TGLSurfacePainter.cxx.

◆ PreparePalette()

Bool_t TGLSurfacePainter::PreparePalette ( ) const
private

Generate palette.

Definition at line 1127 of file TGLSurfacePainter.cxx.

◆ ProcessEvent()

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

Remove all profiles/sections.

Implements TGLPlotPainter.

Definition at line 192 of file TGLSurfacePainter.cxx.

◆ SetNormals()

void TGLSurfacePainter::SetNormals ( )
private

One normal per vertex; this normal is average of neighbouring triangles normals.

Definition at line 260 of file TGLSurfacePainter.cxx.

◆ SetSurfaceColor()

void TGLSurfacePainter::SetSurfaceColor ( ) const
private

Set color for surface.

Definition at line 309 of file TGLSurfacePainter.cxx.

◆ StartPan()

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

User clicks right mouse button (in a pad).

Implements TGLPlotPainter.

Definition at line 101 of file TGLSurfacePainter.cxx.

◆ Streamer()

void TGLSurfacePainter::Streamer ( TBuffer )
overridevirtual

Reimplemented from TGLPlotPainter.

◆ StreamerNVirtual()

void TGLSurfacePainter::StreamerNVirtual ( TBuffer ClassDef_StreamerNVirtual_b)
inline

Definition at line 111 of file TGLSurfacePainter.h.

◆ Textured()

Bool_t TGLSurfacePainter::Textured ( ) const
private

Checks, if surf requires texture.

Definition at line 1196 of file TGLSurfacePainter.cxx.

◆ WindowPointTo3DPoint()

char * TGLSurfacePainter::WindowPointTo3DPoint ( Int_t  px,
Int_t  py 
) const
private

Find 3d coords using mouse cursor coords.

Definition at line 1080 of file TGLSurfacePainter.cxx.

Member Data Documentation

◆ fAverageNormals

TGL2DArray<TGLVector3> TGLSurfacePainter::fAverageNormals
private

Definition at line 41 of file TGLSurfacePainter.h.

◆ fColorLevels

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

Definition at line 58 of file TGLSurfacePainter.h.

◆ fFaceNormals

TGL2DArray<std::pair<TGLVector3, TGLVector3> > TGLSurfacePainter::fFaceNormals
private

Definition at line 40 of file TGLSurfacePainter.h.

◆ fgRandom

TRandom * TGLSurfacePainter::fgRandom = new TRandom(0)
staticprivate

Definition at line 109 of file TGLSurfacePainter.h.

◆ fMesh

TGL2DArray<TGLVertex3> TGLSurfacePainter::fMesh
private

Definition at line 38 of file TGLSurfacePainter.h.

◆ fMinMaxVal

Rgl::Range_t TGLSurfacePainter::fMinMaxVal
private

Definition at line 59 of file TGLSurfacePainter.h.

◆ fObjectInfo

TString TGLSurfacePainter::fObjectInfo
mutableprivate

Definition at line 43 of file TGLSurfacePainter.h.

◆ fPalette

TGLLevelPalette TGLSurfacePainter::fPalette
mutableprivate

Definition at line 57 of file TGLSurfacePainter.h.

◆ fProj

Projection_t TGLSurfacePainter::fProj
mutableprivate

Definition at line 51 of file TGLSurfacePainter.h.

◆ fSectionPass

Bool_t TGLSurfacePainter::fSectionPass
private

Definition at line 61 of file TGLSurfacePainter.h.

◆ fTexMap

TGL2DArray<Double_t> TGLSurfacePainter::fTexMap
mutableprivate

Definition at line 39 of file TGLSurfacePainter.h.

◆ fType

ESurfaceType TGLSurfacePainter::fType
mutableprivate

Definition at line 36 of file TGLSurfacePainter.h.

◆ fUpdateTexMap

Bool_t TGLSurfacePainter::fUpdateTexMap
mutableprivate

Definition at line 62 of file TGLSurfacePainter.h.

◆ fXOYProj

std::list<Projection_t> TGLSurfacePainter::fXOYProj
mutableprivate

Definition at line 55 of file TGLSurfacePainter.h.

◆ fXOZProj

std::list<Projection_t> TGLSurfacePainter::fXOZProj
mutableprivate

Definition at line 53 of file TGLSurfacePainter.h.

◆ fYOZProj

std::list<Projection_t> TGLSurfacePainter::fYOZProj
mutableprivate

Definition at line 54 of file TGLSurfacePainter.h.

Libraries for TGLSurfacePainter:

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