class TGLIsoPainter: public TGLPlotPainter


 Implements painting of TH3 with the "ISO" option.

Function Members (Methods)

public:
TGLIsoPainter(TH1* hist, TGLOrthoCamera* camera, TGLPlotCoordinates* coord, TGLPaintDevice* dev = 0)
~TGLIsoPainter()
virtual voidAddOption(const TString& option)
static TClass*Class()
Bool_tTGLPlotPainter::CutAxisSelected() const
virtual char*GetPlotInfo(Int_t px, Int_t py)
virtual Bool_tInitGeometry()
voidTGLPlotPainter::InvalidateSelection()
virtual TClass*IsA() const
virtual voidTGLPlotPainter::Paint()
virtual voidPan(Int_t px, Int_t py)
virtual Bool_tTGLPlotPainter::PlotSelected(Int_t px, Int_t py)
virtual voidProcessEvent(Int_t event, Int_t px, Int_t py)
const TGLPlotBox&TGLPlotPainter::RefBackBox() const
virtual voidTGLPlotPainter::SetFrameColor(const TColor* frameColor)
voidTGLPlotPainter::SetGLDevice(TGLPaintDevice* dev)
voidTGLPlotPainter::SetPadColor(const TColor* color)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStartPan(Int_t px, Int_t py)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
protected:
virtual voidTGLPlotPainter::ClearBuffers() const
voidTGLPlotPainter::DrawSections() const
const TColor*TGLPlotPainter::GetPadColor() const
Bool_tTGLPlotPainter::MakeGLContextCurrent() const
voidTGLPlotPainter::MoveSection(Int_t px, Int_t py)
voidTGLPlotPainter::PrintPlot() const
private:
TGLIsoPainter(const TGLIsoPainter&)
voidCheckBox(const vector<TriFace_t>& mesh, TGLIsoPainter::TriFace_t& face, const TGLIsoPainter::Range_t& box)
voidDrawMesh(const TGLIsoPainter::Mesh_t& mesh, Int_t level) const
virtual voidDrawPlot() const
virtual voidDrawSectionXOY() const
virtual voidDrawSectionXOZ() const
virtual voidDrawSectionYOZ() const
voidFindMinMax()
Bool_tHasSections() const
virtual voidInitGL() const
TGLIsoPainter&operator=(const TGLIsoPainter&)
voidSetMesh(TGLIsoPainter::Mesh_t& mesh, Double_t isoValue)
voidSetSurfaceColor(Int_t ind) const

Data Members

public:
enum TGLPlotPainter::ESelectionBase { kHighColorSelectionBase
kTrueColorSelectionBase
};
enum TGLPlotPainter::ECutAxisID { kXAxis
kYAxis
kZAxis
};
protected:
TGLPlotBoxTGLPlotPainter::fBackBox
TGLBoxCutTGLPlotPainter::fBoxCut
TGLOrthoCamera*TGLPlotPainter::fCamera
TGLPlotCoordinates*TGLPlotPainter::fCoord
Bool_tTGLPlotPainter::fHighColor
TH1*TGLPlotPainter::fHist
TPointTGLPlotPainter::fMousePosition
Int_tTGLPlotPainter::fSelectedPart
TGLSelectionBufferTGLPlotPainter::fSelection
TGLPlotPainter::ESelectionBaseTGLPlotPainter::fSelectionBase
Bool_tTGLPlotPainter::fSelectionPass
Bool_tTGLPlotPainter::fUpdateSelection
TAxis*TGLPlotPainter::fXAxis
Double_tTGLPlotPainter::fXOYSectionPos
Double_tTGLPlotPainter::fXOZSectionPos
TAxis*TGLPlotPainter::fYAxis
Double_tTGLPlotPainter::fYOZSectionPos
TAxis*TGLPlotPainter::fZAxis
vector<Double_t>TGLPlotPainter::fZLevels
private:
list<TGLIsoPainter::Mesh_t,allocator<TGLIsoPainter::Mesh_t> >fCache
vector<Double_t>fColorLevels
TGLIsoPainter::Mesh_tfDummyMesh
Bool_tfInit
list<TGLIsoPainter::Mesh_t,allocator<TGLIsoPainter::Mesh_t> >fIsos
pair<double,double>fMinMax
TGLLevelPalettefPalette
TGLTH3SlicefXOYSlice
TGLTH3SlicefXOZSlice
TGLTH3SlicefYOZSlice

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TGLIsoPainter(TH1* hist, TGLOrthoCamera* camera, TGLPlotCoordinates* coord, TGLPaintDevice* dev = 0)
Constructor.
char * GetPlotInfo(Int_t px, Int_t py)
Return info for plot part under cursor.
Bool_t InitGeometry()
Initializes meshes for 3d iso contours.
void StartPan(Int_t px, Int_t py)
User clicks right mouse button (in a pad).
void Pan(Int_t px, Int_t py)
User's moving mouse cursor, with middle mouse button pressed (for pad).
Calculate 3d shift related to 2d mouse movement.
 User's moving mouse cursor, with middle mouse button pressed (for pad).
 Calculate 3d shift related to 2d mouse movement.
void AddOption(const TString& option)
No additional options for TGLIsoPainter.
void ProcessEvent(Int_t event, Int_t px, Int_t py)
Change color sheme.
void InitGL()
Initialize OpenGL state variables.
void DrawPlot()
Draw mesh.
void DrawSectionXOZ()
 Draw XOZ parallel section.
void DrawSectionYOZ()
 Draw YOZ parallel section.
void DrawSectionXOY()
 Draw XOY parallel section.
Bool_t HasSections()
Any section exists.
void SetSurfaceColor(Int_t ind) const
Set color for surface.
void SetMesh(TGLIsoPainter::Mesh_t& mesh, Double_t isoValue)
Set mesh for iso surface at level isoValue.
Large and nightmarish "unrolled" code - I'm doing simple optimisation:
marching cubes calculates a set of triangles (possible empty)
for each of cubes in a lattice. After that, I need to calculate
per-vertex smoothed normals - calculating the summ of neighbouring
per-triangle normals and normalizing
(so, I need to find common vertices for triangles),
this can be done only after
each of 26 neighbouring cubes was processed. I remember
"mesh range" for each cube, not to check _EVERY_ triangles.
void DrawMesh(const TGLIsoPainter::Mesh_t& mesh, Int_t level) const
Draw TF3 surface
void CheckBox(const vector<TriFace_t>& mesh, TGLIsoPainter::TriFace_t& face, const TGLIsoPainter::Range_t& box)
For given box and given fase, check if any of box faces has
common vertex with face, if yes - att its flat normal.
void FindMinMax()
Find max/min bin contents for TH3.
TGLIsoPainter(TH1* hist, TGLOrthoCamera* camera, TGLPlotCoordinates* coord, TGLPaintDevice* dev = 0)
TGLPlotPainter final-overriders.

Last update: Thu Jan 17 08:51:55 2008

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.