library: libRGL #include "TGLHistPainter.h" |
TGLHistPainter
class description - source file - inheritance tree (.pdf)
private:
TGLHistPainter(const TGLHistPainter&)
void AdjustScales()
void CalculateTransformation()
void ClearBuffers() const
void DisableTexture() const
void DrawAxes() const
void DrawBackPlane(Int_t plane) const
void DrawFrame() const
void DrawGrid(Int_t plane) const
void DrawLego() const
void DrawLegoProfileX(Int_t plane) const
void DrawLegoProfileY(Int_t plane) const
void DrawProfile(Int_t plane) const
void DrawSurface() const
void DrawSurfaceProfileX(Int_t plane) const
void DrawSurfaceProfileY(Int_t plane) const
void DrawTF3() const
void DrawZeroPlane() const
void EnableTexture() const
Int_t FrontPoint() const
void InitGL() const
Bool_t MakeCurrent() const
TGLHistPainter& operator=(const TGLHistPainter&)
virtual void Paint()
Bool_t Select(Int_t x, Int_t y) const
void SelectAxes(Int_t front, Int_t x, Int_t y) const
void SetAverageNormals()
Bool_t SetAxes()
void SetCamera() const
void SetMesh()
void SetNormals()
TGLHistPainter::EGLPaintOption SetPaintFunction(const TString& option)
void SetPlotColor() const
void SetTable()
void SetTexture()
void SetTF3Mesh()
void SetTransformation() const
Bool_t SetVertices()
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 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
TF3* fF3
TGLHistPainter::EGLPaintOption fLastOption
TGLHistPainter::EGLTF3Style fTF3Style
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
Int_t fFirstBinZ
Int_t fLastBinZ
Bool_t fLogX
Bool_t fLogY
Bool_t fLogZ
vector<Double_t> fX
vector<Double_t> fY
vector<Double_t> fZ
RootGL::T2DArray<TGLVertex3> fMesh
RootGL::T2DArray<pair<TGLVector3,TGLVector3> > fFaceNormals
RootGL::T2DArray<TGLVector3> fAverageNormals
vector<RootGL::TGLTriFace_t> fF3Mesh
vector<Double_t> fZLevels
Int_t fGLDevice
TGLVertex3 f2DAxes[8]
Bool_t f2DPass
UInt_t fTextureName
vector<UChar_t> fTexture
G__p2memfunc fCurrentPainter
Int_t fFrontPoint
public:
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 kTF3
static const TGLHistPainter::EGLPaintOption kUnsupported
static const TGLHistPainter::EGLTF3Style kDefault
static const TGLHistPainter::EGLTF3Style kMaple0
static const TGLHistPainter::EGLTF3Style kMaple1
static const TGLHistPainter::EGLTF3Style kMaple2
~TGLHistPainter()
Destructor
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 Paint(Option_t *o)
Final-overrider for TObject's Paint
void Paint()
This function indirectly called via gGLManager->PaintSingleObject
Bool_t SetVertices()
Set axes ranges, vertices, normals
Bool_t SetAxes()
Having TH1 pointer, setup min/max sizes and scales
void AdjustScales()
Finds the maximum dimension and adjust scale coefficients
void SetTable()
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 SetMesh()
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 SetTF3Mesh()
Build mesh for TF3 surface
void SetNormals()
Calculates normals for triangles in surface.
we have four points (cell contents of four neighbouring hist bins),
three points are in one plane, so build normals for 2 triangles
void SetAverageNormals()
One normal per vertex;
this normal is average of
neighbouring triangles normals
void InitGL()const
gl initialization (Disable/Enable)
Bool_t MakeCurrent()const
Check gl context and make it current
void DrawLego()const
Draws lego
void DrawSurface()const
Draw surf/surf1/surf2/surf4
void DrawTF3()const
Draw TF3 surface
void CalculateTransformation()
Sets viewport, bounds for arcball
Calculates arguments for glOrtho
Claculates center of scene and shift
void DrawFrame()const
Draws frame box around hist or surface,
draws grids and 'profiles'
Planes are 85% opaque to make their color "softer"
void SetCamera()const
Viewport and 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()const
Using front point, find, where to draw axes and which labels to use for them
gVirtualX->SelectWindow(gGLManager->GetVirtualXInd(fGLDevice));
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
Draw "shadows" for lego/surf
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'
void DrawSurfaceProfileY(Int_t plane)const
Draws Y surface's profile on 'plane'
void SetZLevels()
Define levels for grid
void DrawGrid(Int_t plane)const
Grid at XOZ or YOZ back plane
Under win32 glPushAttrib does not help with GL_LINE_STIPPLE enable bit
void ClearBuffers()const
Clears gl buffers
void SetTexture()
Set default texture
void SetPlotColor()const
Set color for lego/surface
void EnableTexture()const
Enable 1D texture
void DisableTexture()const
Disable 1D texture
Inline Functions
TGLHistPainter TGLHistPainter(TH1* hist)
TGLHistPainter::EGLPaintOption SetPaintFunction(const TString& option)
TGLHistPainter TGLHistPainter(const TGLHistPainter&)
TGLHistPainter& operator=(const TGLHistPainter&)
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Last update: Fri Feb 10 06:28:32 2006
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.