Implements painting of TH3 with the "ISO" option.
TGLIsoPainter(TH1* hist, TGLOrthoCamera* camera, TGLPlotCoordinates* coord, TGLPaintDevice* dev = 0) | |
~TGLIsoPainter() | |
virtual void | AddOption(const TString& option) |
static TClass* | Class() |
Bool_t | TGLPlotPainter::CutAxisSelected() const |
virtual char* | GetPlotInfo(Int_t px, Int_t py) |
virtual Bool_t | InitGeometry() |
void | TGLPlotPainter::InvalidateSelection() |
virtual TClass* | IsA() const |
virtual void | TGLPlotPainter::Paint() |
virtual void | Pan(Int_t px, Int_t py) |
virtual Bool_t | TGLPlotPainter::PlotSelected(Int_t px, Int_t py) |
virtual void | ProcessEvent(Int_t event, Int_t px, Int_t py) |
const TGLPlotBox& | TGLPlotPainter::RefBackBox() const |
virtual void | TGLPlotPainter::SetFrameColor(const TColor* frameColor) |
void | TGLPlotPainter::SetGLDevice(TGLPaintDevice* dev) |
void | TGLPlotPainter::SetPadColor(const TColor* color) |
virtual void | ShowMembers(TMemberInspector& insp, char* parent) |
virtual void | StartPan(Int_t px, Int_t py) |
virtual void | Streamer(TBuffer& b) |
void | StreamerNVirtual(TBuffer& b) |
virtual void | TGLPlotPainter::ClearBuffers() const |
virtual void | TGLPlotPainter::DrawPaletteAxis() const |
void | TGLPlotPainter::DrawSections() const |
const TColor* | TGLPlotPainter::GetPadColor() const |
Bool_t | TGLPlotPainter::MakeGLContextCurrent() const |
void | TGLPlotPainter::MoveSection(Int_t px, Int_t py) |
void | TGLPlotPainter::PrintPlot() const |
TGLIsoPainter(const TGLIsoPainter&) | |
void | CheckBox(const vector<TriFace_t>& mesh, TGLIsoPainter::TriFace_t& face, const TGLIsoPainter::Range_t& box) |
void | DrawMesh(const TGLIsoPainter::Mesh_t& mesh, Int_t level) const |
virtual void | DrawPlot() const |
virtual void | DrawSectionXOY() const |
virtual void | DrawSectionXOZ() const |
virtual void | DrawSectionYOZ() const |
void | FindMinMax() |
Bool_t | HasSections() const |
virtual void | InitGL() const |
TGLIsoPainter& | operator=(const TGLIsoPainter&) |
void | SetMesh(TGLIsoPainter::Mesh_t& mesh, Double_t isoValue) |
void | SetSurfaceColor(Int_t ind) const |
enum TGLPlotPainter::ESelectionBase { | kHighColorSelectionBase | |
kTrueColorSelectionBase | ||
}; | ||
enum TGLPlotPainter::ECutAxisID { | kXAxis | |
kYAxis | ||
kZAxis | ||
}; |
list<TGLIsoPainter::Mesh_t,allocator<TGLIsoPainter::Mesh_t> > | fCache | |
vector<Double_t> | fColorLevels | |
TGLIsoPainter::Mesh_t | fDummyMesh | |
Bool_t | fInit | |
list<TGLIsoPainter::Mesh_t,allocator<TGLIsoPainter::Mesh_t> > | fIsos | |
pair<double,double> | fMinMax | |
TGLLevelPalette | fPalette | |
TGLTH3Slice | fXOYSlice | |
TGLTH3Slice | fXOZSlice | |
TGLTH3Slice | fYOZSlice |
Constructor.
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.
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.
For given box and given fase, check if any of box faces has common vertex with face, if yes - att its flat normal.
TGLPlotPainter final-overriders.