library: libRGL #include "TGLHistPainter.h" |
TGLHistPainter
class description - source file - inheritance tree (.pdf)
private:
TGLHistPainter(const TGLHistPainter&)
void AdjustScales()
void ClearBuffer() const
void DrawAxes(Int_t frontPoint) const
void DrawBackPlane(Int_t plane) const
static void DrawBoxFront(Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax, Double_t zmin, Double_t zmax, Int_t frontPoint)
void DrawBoxFrontTextured(Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax, Double_t zmin, Double_t zmax, Int_t frontPoint) const
static void DrawFace(const TGLVertex3& v1, const TGLVertex3& v2, const TGLVertex3& v3, const TGLVector3& norm1, const TGLVector3& norm2, const TGLVector3& norm3)
static void DrawFaceTextured(const TGLVertex3& v1, const TGLVertex3& v2, const TGLVertex3& v3, const TGLVector3& norm1, const TGLVector3& norm2, const TGLVector3& norm3, Double_t zMin, Double_t zMax)
static void DrawFlatFace(const TGLVertex3& v1, const TGLVertex3& v2, const TGLVertex3& v3, const TGLVector3& normal)
void DrawFrame(Int_t frontPoint) const
void DrawGrid(Int_t plane) const
void DrawLegoProfileX(Int_t plane) const
void DrawLegoProfileY(Int_t plane) const
void DrawProfile(Int_t plane) const
static void DrawQuadOutline(const TGLVertex3& v1, const TGLVertex3& v2, const TGLVertex3& v3, const TGLVertex3& v4)
void DrawSurfaceProfileX(Int_t plane) const
void DrawSurfaceProfileY(Int_t plane) const
void DrawZeroPlane() const
void FillVertices()
Int_t FrontPoint() const
TGLHistPainter::PD_t GetMaxColumnContent(Int_t column) const
TGLHistPainter::PD_t GetMaxRowContent(Int_t row) const
static TGLHistPainter::EGLPaintOption GetPaintOption(const TString& option)
void InitDefaultPainter()
void InitGL() const
Bool_t InitPainter()
void InitTexture()
TGLHistPainter& operator=(const TGLHistPainter&)
void PaintLego() const
void PaintLego2() const
void PaintSurface() const
void PaintSurface1() const
void PaintSurface4() const
Bool_t Select(Int_t x, Int_t y) const
void SelectAxes(Int_t front, Int_t x, Int_t y) const
void SetAverageNormals()
static Bool_t SetAxisRange(const TAxis* axis, Bool_t log, Int_t& first, Int_t& last, Double_t& min, Double_t& max)
void SetCamera() const
void SetGLParameters()
void SetNormals()
Bool_t SetSizes()
void SetTransformation() const
void SetZLevels()
public:
TGLHistPainter(TH1* hist)
~TGLHistPainter()
static TClass* Class()
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
virtual void DrawPanel()
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual void FitPanel()
virtual TList* GetContourList(Double_t contour) const
virtual char* GetObjectInfo(Int_t px, Int_t py) const
virtual TList* GetStack() const
virtual TClass* IsA() const
virtual Bool_t IsInside(Int_t x, Int_t y)
virtual Bool_t IsInside(Double_t x, Double_t y)
virtual Int_t MakeCuts(char* cutsOpt)
virtual void Paint(Option_t* option)
virtual void Paint()
virtual void PaintStat(Int_t dostat, TF1* fit)
virtual void ProcessMessage(const char* mess, const TObject* obj)
virtual void SetHistogram(TH1* hist)
virtual void SetStack(TList* stack)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
private:
TVirtualHistPainter* fDefaultPainter
TH1* fHist
TGLHistPainter::EGLPaintOption fLastOption
TAxis* fAxisX
TAxis* fAxisY
TAxis* fAxisZ
Double_t fMinX
Double_t fMaxX
Double_t fScaleX
Double_t fMinXScaled
Double_t fMaxXScaled
Double_t fMinY
Double_t fMaxY
Double_t fScaleY
Double_t fMinYScaled
Double_t fMaxYScaled
Double_t fMinZ
Double_t fMaxZ
Double_t fScaleZ
Double_t fMinZScaled
Double_t fMaxZScaled
Double_t fFactor
TArcBall fRotation
Double_t fFrustum[4]
Double_t fCenter[3]
Double_t fShift
Int_t fViewport[4]
Int_t fFirstBinX
Int_t fLastBinX
Int_t fFirstBinY
Int_t fLastBinY
Bool_t fLogX
Bool_t fLogY
Bool_t fLogZ
vector<Double_t> fX
vector<Double_t> fY
Root_GL::T2DArray<TGLVertex3> fMesh
Root_GL::T2DArray<pair<TGLVector3,TGLVector3> > fFaceNormals
Root_GL::T2DArray<TGLVector3> fAverageNormals
vector<Double_t> fZLevels
Int_t fGLDevice
TGLVertex3 f2DAxes[8]
Bool_t f2DPass
UInt_t fTextureName
UChar_t fTexture[64]
public:
static const enum TGLHistPainter:: kTexLength
static const TGLHistPainter::EGLPaintOption kLego
static const TGLHistPainter::EGLPaintOption kLego2
static const TGLHistPainter::EGLPaintOption kSurface
static const TGLHistPainter::EGLPaintOption kSurface1
static const TGLHistPainter::EGLPaintOption kSurface2
static const TGLHistPainter::EGLPaintOption kSurface4
static const TGLHistPainter::EGLPaintOption kUnsupported
~TGLHistPainter()
Int_t DistancetoPrimitive(Int_t px, Int_t py)
If fLastOption != kUnsupported, try to select hist or axis.
if not - gPad is selected (there are problems with TF2)
void DrawPanel()
FIX
void ExecuteEvent(Int_t event, Int_t px, Int_t py)
If FLastOption == kUnsupported, delegate call.
If not, try to process itself
void FitPanel()
FIX
TList* GetContourList(Double_t contour)const
FIX
char* GetObjectInfo(Int_t px, Int_t py)const
FIX
TList* GetStack()const
FIX
Bool_t IsInside(Int_t x, Int_t y)
FIX
Bool_t IsInside(Double_t x, Double_t y)
FIX
void PaintStat(Int_t dostat, TF1 *fit)
FIX
void ProcessMessage(const char *mess, const TObject *obj)
FIX
void SetHistogram(TH1 *hist)
FIX
void SetStack(TList *stack)
FIX
Int_t MakeCuts(char *cutsOpt)
FIX
void InitDefaultPainter()
FIX
void Paint(Option_t *o)
Final-overrider for TOvject's Paint, checks, if
painter can draw itself or should pass to default painter
void Paint()
Paint method, which is indirectly called by gGLManager
at this moment, MakeCurrent must be done already for fGLDevice
Bool_t InitPainter()
It's clear :)
Bool_t SetSizes()
Having TH1 pointer, setup min/max sizes and scales
Bool_t SetAxisRange(const TAxis *axis, Bool_t log, Int_t &first, Int_t &last,
Double_t &min, Double_t &max)
Sets-up parameters for X or Y axis
void AdjustScales()
Finds the maximum dimension and adjust scale coefficients
void FillVertices()
Calculates table of X and Y for lego (Z is obtained during drawing) or
calculate mesh of triangles with vertices in the centres of bins
void SetNormals()
Calculates normals for triangles in surface.
"flat" normals == 1 normal per triangle
we have : four points (cell contents of four neighbouring hist bins)
but only three points are shurely in one plane, so build 2 triangles and their normals
void SetAverageNormals()
Calculate averaged normals.
"averaged" normals == normal per vertex
This normal is average of
neighbouring triangles normals
void InitGL()const
Simple gl initialization
void PaintLego()const
Draws lego and "profiles" on the back planes
void PaintLego2()const
Draws lego2 and "profiles" on the back planes
void PaintSurface()const
Draws surface as a set of triangles, each triangle has one normal
void PaintSurface4()const
Draws surface with "averaged" normals
If you have nearly smooth surface, it will be smooth :)
void PaintSurface1()const
Paints surf1/surf2 options
void SetGLParameters()
Sets viewport, bounds for arcball
Calculates arguments for glOrtho
Claculates center of scene and shift
void DrawBoxFront(Double_t xmin, Double_t xmax, Double_t ymin,
Double_t ymax, Double_t zmin, Double_t zmax, Int_t fp)
Draws lego's bar as 3d box
void DrawBoxFrontTextured(Double_t xmin, Double_t xmax, Double_t ymin,
Double_t ymax, Double_t zmin, Double_t zmax,
Int_t fp)const
Draws lego's bar as 3d box
void DrawFlatFace(const TGLVertex3 &v1, const TGLVertex3 &v2, const TGLVertex3 &v3,
const TGLVector3 &norm)
Draws triangle flat face, one normal per face
void DrawFace(const TGLVertex3 &v1, const TGLVertex3 &v2, const TGLVertex3 &v3,
const TGLVector3 &norm1, const TGLVector3 &norm2, const TGLVector3 &norm3)
Draws triangle face, each vertex has its own averaged normal
void DrawFaceTextured(const TGLVertex3 &v1, const TGLVertex3 &v2,
const TGLVertex3 &v3, const TGLVector3 &norm1,
const TGLVector3 &norm2, const TGLVector3 &norm3,
Double_t zMin, Double_t zMax)
void DrawQuadOutline(const TGLVertex3 &v1, const TGLVertex3 &v2,
const TGLVertex3 &v3, const TGLVertex3 &v4)
void DrawFrame(Int_t frontPoint)const
Draws frame box around histogramm, surface or surface4,
draws grids and "profiles" for lego
void SetCamera()const
Clears gl buffer, sets projection
void SetTransformation()const
Applies rotations and translations before drawing
Int_t FrontPoint()const
Converts 3d points into window coordinate system
and find the nearest
void DrawBackPlane(Int_t plane)const
Draw back plane with number 'plane'
void DrawAxes(Int_t frontPoint)const
Using front point, find, where to draw axes and which labels to use for them
Bool_t Select(Int_t x, Int_t y)const
find hist "square" on screen
void SelectAxes(Int_t front, Int_t x, Int_t y)const
Checks, if axis can be selected
void DrawZeroPlane()const
Blue, semi-transparent plane at zero-level
void DrawProfile(Int_t plane)const
Draws profiles on back planes
void DrawLegoProfileX(Int_t plane)const
Draws X lego's profile on 'plane'
for each 'row' find min and max
and draw them as rectangle
void DrawLegoProfileY(Int_t plane)const
Draws Y lego's profile on 'plane'
for each 'column' find min and max
and draw them as rectangle
void DrawSurfaceProfileX(Int_t plane)const
Draws X surface's profile on 'plane'
for each 'row' find min and max
and draw them as rectangle
void DrawSurfaceProfileY(Int_t plane)const
Draws Y surface's profile on 'plane'
for each 'row' find min and max
and draw them as rectangle
void SetZLevels()
Levels for grid
void DrawGrid(Int_t plane)const
Grid at XOZ or YOZ back plane
void ClearBuffer()const
Clears gl buffers
void InitTexture()
Inline Functions
TGLHistPainter TGLHistPainter(TH1* hist)
TGLHistPainter TGLHistPainter(const TGLHistPainter&)
TGLHistPainter& operator=(const TGLHistPainter&)
TGLHistPainter::EGLPaintOption GetPaintOption(const TString& option)
TGLHistPainter::PD_t GetMaxRowContent(Int_t row) const
TGLHistPainter::PD_t GetMaxColumnContent(Int_t column) const
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Last update: Mon Dec 12 22:43:25 2005
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.