Logo ROOT  
Reference Guide
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. More...
 
void AddOption (const TString &stringOption)
 Additional options for surfaces. More...
 
char * GetPlotInfo (Int_t px, Int_t py)
 Coords for point on surface under cursor. More...
 
Bool_t InitGeometry ()
 Set mesh, normals. More...
 
void Pan (Int_t px, Int_t py)
 User's moving mouse cursor, with middle mouse button pressed (for pad). More...
 
void ProcessEvent (Int_t event, Int_t px, Int_t py)
 Remove all profiles/sections. More...
 
void StartPan (Int_t px, Int_t py)
 User clicks right mouse button (in a pad). More...
 
- Public Member Functions inherited from TGLPlotPainter
 TGLPlotPainter (TGL5DDataSet *data, TGLPlotCamera *camera, TGLPlotCoordinates *coord)
 TGLPlotPainter's ctor. More...
 
 TGLPlotPainter (TGLPlotCamera *camera)
 TGLPlotPainter's ctor. More...
 
 TGLPlotPainter (TH1 *hist, TGLPlotCamera *camera, TGLPlotCoordinates *coord, Bool_t xoySelectable, Bool_t xozSelectable, Bool_t yozSelectable)
 TGLPlotPainter's ctor. More...
 
Bool_t CutAxisSelected () const
 
Bool_t GetDrawAxes ()
 
void InvalidateSelection ()
 Selection must be updated. More...
 
virtual void Paint ()
 Draw lego/surf/whatever you can. More...
 
virtual Bool_t PlotSelected (Int_t px, Int_t py)
 Read color buffer content to find selected object. More...
 
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. More...
 
void SetPadColor (const TColor *color)
 Used in a pad. More...
 
void SetPhysicalShapeColor (const Float_t *rgba)
 
- Public Member Functions inherited from TVirtualGLPainter
virtual ~TVirtualGLPainter ()
 

Private Types

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

Private Member Functions

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

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). More...
 
const TColorGetPadColor () const
 Get pad color. More...
 
void MoveSection (Int_t px, Int_t py)
 Create dynamic profile using selected plane. More...
 
void PrintPlot () const
 Generate PS using gl2ps. More...
 
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)
virtual

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 1063 of file TGLSurfacePainter.cxx.

◆ DeInitGL()

void TGLSurfacePainter::DeInitGL ( ) const
privatevirtual

Initialize some OpenGL state variables.

Implements TGLPlotPainter.

Definition at line 246 of file TGLSurfacePainter.cxx.

◆ DrawContoursProjection()

void TGLSurfacePainter::DrawContoursProjection ( ) const
private

Draw flat textured surface.

Definition at line 1181 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 1236 of file TGLSurfacePainter.cxx.

◆ DrawPaletteAxis()

void TGLSurfacePainter::DrawPaletteAxis ( ) const
privatevirtual

Draw. Palette. Axis.

Reimplemented from TGLPlotPainter.

Definition at line 1254 of file TGLSurfacePainter.cxx.

◆ DrawPlot()

void TGLSurfacePainter::DrawPlot ( ) const
privatevirtual

Draw surf/surf1/surf2/surf4.

Implements TGLPlotPainter.

Definition at line 327 of file TGLSurfacePainter.cxx.

◆ DrawProjections()

void TGLSurfacePainter::DrawProjections ( ) const
private

Draw projections.

Definition at line 775 of file TGLSurfacePainter.cxx.

◆ DrawSectionXOY()

void TGLSurfacePainter::DrawSectionXOY ( ) const
privatevirtual

Draw section Z.

Implements TGLPlotPainter.

Definition at line 966 of file TGLSurfacePainter.cxx.

◆ DrawSectionXOZ()

void TGLSurfacePainter::DrawSectionXOZ ( ) const
privatevirtual

Draw section X.

Implements TGLPlotPainter.

Definition at line 864 of file TGLSurfacePainter.cxx.

◆ DrawSectionYOZ()

void TGLSurfacePainter::DrawSectionYOZ ( ) const
privatevirtual

Draw section Y.

Implements TGLPlotPainter.

Definition at line 915 of file TGLSurfacePainter.cxx.

◆ GenTexMap()

void TGLSurfacePainter::GenTexMap ( ) const
private

Find texture coordinates.

Definition at line 1160 of file TGLSurfacePainter.cxx.

◆ GetPlotInfo()

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

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 1226 of file TGLSurfacePainter.cxx.

◆ HasSections()

Bool_t TGLSurfacePainter::HasSections ( ) const
private

Any section exists.

Definition at line 1217 of file TGLSurfacePainter.cxx.

◆ InitGeometry()

Bool_t TGLSurfacePainter::InitGeometry ( )
virtual

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 492 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 627 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 560 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 700 of file TGLSurfacePainter.cxx.

◆ InitGL()

void TGLSurfacePainter::InitGL ( ) const
privatevirtual

Initialize some OpenGL state variables.

Implements TGLPlotPainter.

Definition at line 234 of file TGLSurfacePainter.cxx.

◆ Pan()

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

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 1131 of file TGLSurfacePainter.cxx.

◆ ProcessEvent()

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

Remove all profiles/sections.

Implements TGLPlotPainter.

Definition at line 193 of file TGLSurfacePainter.cxx.

◆ SetNormals()

void TGLSurfacePainter::SetNormals ( )
private

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

Definition at line 261 of file TGLSurfacePainter.cxx.

◆ SetSurfaceColor()

void TGLSurfacePainter::SetSurfaceColor ( ) const
private

Set color for surface.

Definition at line 310 of file TGLSurfacePainter.cxx.

◆ StartPan()

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

User clicks right mouse button (in a pad).

Implements TGLPlotPainter.

Definition at line 101 of file TGLSurfacePainter.cxx.

◆ Textured()

Bool_t TGLSurfacePainter::Textured ( ) const
private

Checks, if surf requires texture.

Definition at line 1200 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 1084 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:
[legend]

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