The Legos and Surfaces painter class.
3D graphics representations package.
This package was originally written by Evgueni Tcherniaev from IHEP/Protvino.
The original Fortran implementation was adapted to HIGZ/PAW by Olivier Couet and Evgueni Tcherniaev.
This class is a subset of the original system. It has been converted to a C++ class by Rene Brun.
Definition at line 28 of file TPainter3dAlgorithms.h.
Public Types | |
typedef void(TPainter3dAlgorithms::* | DrawFaceFunc_t) (Int_t *, Double_t *, Int_t, Int_t *, Double_t *) |
Base colour for the 3rd Iso Surface. | |
typedef void(TPainter3dAlgorithms::* | LegoFunc_t) (Int_t, Int_t, Int_t &, Double_t *, Double_t *, Double_t *) |
typedef void(TPainter3dAlgorithms::* | SurfaceFunc_t) (Int_t, Int_t, Double_t *, Double_t *) |
Public Member Functions | |
TPainter3dAlgorithms () | |
pointer to surface function | |
TPainter3dAlgorithms (Double_t *rmin, Double_t *rmax, Int_t system=1) | |
Normal default constructor. | |
virtual | ~TPainter3dAlgorithms () |
Lego default destructor. | |
void | BackBox (Double_t ang) |
Draw back surfaces of surrounding box. | |
void | ClearRaster () |
Clear screen. | |
void | ColorFunction (Int_t nl, Double_t *fl, Int_t *icl, Int_t &irep) |
Set correspondence between function and color levels. | |
void | DefineGridLevels (Int_t ndivz) |
Define the grid levels drawn in the background of surface and lego plots. | |
void | DrawFaceGouraudShaded (Int_t *icodes, Double_t xyz[][3], Int_t np, Int_t *iface, Double_t *t) |
Draw the faces for the Gouraud Shaded Iso surfaces. | |
void | DrawFaceMode1 (Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *t) |
Draw face - 1st variant (2 colors: 1st for external surface, 2nd for internal) | |
void | DrawFaceMode2 (Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *t) |
Draw face - 2nd option (fill in correspondence with function levels) | |
void | DrawFaceMode3 (Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *t) |
Draw face - 3rd option (draw face for stacked lego plot) | |
void | DrawFaceMove1 (Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *tt) |
Draw face - 1st variant for "MOVING SCREEN" algorithm (draw face with level lines) | |
void | DrawFaceMove2 (Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *tt) |
Draw face - 2nd variant for "MOVING SCREEN" algorithm (draw face for stacked lego plot) | |
void | DrawFaceMove3 (Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *tt) |
Draw face - 3rd variant for "MOVING SCREEN" algorithm (draw level lines only) | |
void | DrawFaceRaster1 (Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *tt) |
Draw face - 1st variant for "RASTER SCREEN" algorithm (draw face with level lines) | |
void | DrawFaceRaster2 (Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *tt) |
Draw face - 2nd variant for "RASTER SCREEN" algorithm (draw face for stacked lego plot) | |
void | DrawLevelLines (Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *tt) |
Draw level lines without hidden line removal. | |
void | FillPolygon (Int_t n, Double_t *p, Double_t *f) |
Fill polygon with function values at vertexes. | |
void | FillPolygonBorder (Int_t nn, Double_t *xy) |
Fill a polygon including border ("RASTER SCREEN") | |
void | FindLevelLines (Int_t np, Double_t *f, Double_t *t) |
Find level lines for face. | |
void | FindPartEdge (Double_t *p1, Double_t *p2, Double_t f1, Double_t f2, Double_t fmin, Double_t fmax, Int_t &kpp, Double_t *pp) |
Find part of edge where function defined on this edge has value from fmin to fmax | |
void | FindVisibleDraw (Double_t *r1, Double_t *r2) |
Find visible parts of line (draw line) | |
void | FindVisibleLine (Double_t *p1, Double_t *p2, Int_t ntmax, Int_t &nt, Double_t *t) |
Find visible part of a line ("RASTER SCREEN") | |
void | FrontBox (Double_t ang) |
Draw front surfaces of surrounding box & axes. | |
void | GouraudFunction (Int_t ia, Int_t ib, Double_t *f, Double_t *t) |
Find part of surface with luminosity in the corners. | |
void | ImplicitFunction (TF3 *f3, Double_t *rmin, Double_t *rmax, Int_t nx, Int_t ny, Int_t nz, const char *chopt) |
Draw implicit function FUN(X,Y,Z) = 0 in cartesian coordinates using hidden surface removal algorithm "Painter". | |
void | InitMoveScreen (Double_t xmin, Double_t xmax) |
Initialize "MOVING SCREEN" method. | |
void | InitRaster (Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax, Int_t nx, Int_t ny) |
Initialize hidden lines removal algorithm (RASTER SCREEN) | |
void | IsoSurface (Int_t ns, Double_t *s, Int_t nx, Int_t ny, Int_t nz, Double_t *x, Double_t *y, Double_t *z, const char *chopt) |
Draw set of iso-surfaces for a scalar function defined on a grid. | |
void | LegoCartesian (Double_t ang, Int_t nx, Int_t ny, const char *chopt) |
Draw stack of lego-plots in cartesian coordinates. | |
void | LegoCylindrical (Int_t iordr, Int_t na, Int_t nb, const char *chopt) |
Draw stack of lego-plots in cylindrical coordinates. | |
void | LegoFunction (Int_t ia, Int_t ib, Int_t &nv, Double_t *ab, Double_t *vv, Double_t *t) |
Service function for Legos. | |
void | LegoPolar (Int_t iordr, Int_t na, Int_t nb, const char *chopt) |
Draw stack of lego-plots in polar coordinates. | |
void | LegoSpherical (Int_t ipsdr, Int_t iordr, Int_t na, Int_t nb, const char *chopt) |
Draw stack of lego-plots spheric coordinates. | |
void | LightSource (Int_t nl, Double_t yl, Double_t xscr, Double_t yscr, Double_t zscr, Int_t &irep) |
Set light source. | |
void | MarchingCube (Double_t fiso, Double_t p[8][3], Double_t f[8], Double_t g[8][3], Int_t &nnod, Int_t &ntria, Double_t xyz[][3], Double_t grad[][3], Int_t itria[][3]) |
Topological decider for "Marching Cubes" algorithm Find set of triangles approximating the iso-surface F(x,y,z)=Fiso inside the cube. | |
void | ModifyScreen (Double_t *r1, Double_t *r2) |
Modify SCREEN. | |
void | SetColorDark (Color_t color, Int_t n=0) |
Store dark color for stack number n. | |
void | SetColorMain (Color_t color, Int_t n=0) |
Store color for stack number n. | |
void | SetDrawFace (DrawFaceFunc_t pointer) |
Store pointer to current algorithm to draw faces. | |
void | SetEdgeAtt (Color_t color=1, Style_t style=1, Width_t width=1, Int_t n=0) |
void | SetIsoSurfaceParameters (Double_t fmin, Double_t fmax, Int_t ncolor, Int_t ic1, Int_t ic2, Int_t ic3) |
void | SetLegoFunction (LegoFunc_t pointer) |
Store pointer to current lego function. | |
void | SetMesh (Int_t mesh=1) |
void | SetSurfaceFunction (SurfaceFunc_t pointer) |
Store pointer to current surface function. | |
void | SideVisibilityDecode (Double_t val, Int_t &iv1, Int_t &iv2, Int_t &iv3, Int_t &iv4, Int_t &iv5, Int_t &iv6, Int_t &ir) |
Decode side visibilities and order along R for sector. | |
void | SideVisibilityEncode (Int_t iopt, Double_t phi1, Double_t phi2, Double_t &val) |
Encode side visibilities and order along R for sector. | |
void | Spectrum (Int_t nl, Double_t fmin, Double_t fmax, Int_t ic, Int_t idc, Int_t &irep) |
Set Spectrum. | |
void | SurfaceCartesian (Double_t ang, Int_t nx, Int_t ny, const char *chopt) |
Draw surface in cartesian coordinate system. | |
void | SurfaceCylindrical (Int_t iordr, Int_t na, Int_t nb, const char *chopt) |
Draw surface in cylindrical coordinates. | |
void | SurfaceFunction (Int_t ia, Int_t ib, Double_t *f, Double_t *t) |
Service function for Surfaces. | |
void | SurfacePolar (Int_t iordr, Int_t na, Int_t nb, const char *chopt) |
Draw surface in polar coordinates. | |
void | SurfaceProperty (Double_t qqa, Double_t qqd, Double_t qqs, Int_t nnqs, Int_t &irep) |
Set surface property coefficients. | |
void | SurfaceSpherical (Int_t ipsdr, Int_t iordr, Int_t na, Int_t nb, const char *chopt) |
Draw surface in spheric coordinates. | |
void | ZDepth (Double_t xyz[52][3], Int_t &nface, Int_t iface[48][3], Double_t dface[48][6], Double_t abcd[48][4], Int_t *iorder) |
Z-depth algorithm for set of triangles. | |
Public Member Functions inherited from TAttLine | |
TAttLine () | |
AttLine default constructor. | |
TAttLine (Color_t lcolor, Style_t lstyle, Width_t lwidth) | |
AttLine normal constructor. | |
virtual | ~TAttLine () |
AttLine destructor. | |
void | Copy (TAttLine &attline) const |
Copy this line attributes to a new TAttLine. | |
Int_t | DistancetoLine (Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2) |
Compute distance from point px,py to a line. | |
virtual Color_t | GetLineColor () const |
Return the line color. | |
virtual Style_t | GetLineStyle () const |
Return the line style. | |
virtual Width_t | GetLineWidth () const |
Return the line width. | |
virtual void | Modify () |
Change current line attributes if necessary. | |
virtual void | ResetAttLine (Option_t *option="") |
Reset this line attributes to default values. | |
virtual void | SaveLineAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1) |
Save line attributes as C++ statement(s) on output stream out. | |
virtual void | SetLineAttributes () |
Invoke the DialogCanvas Line attributes. | |
virtual void | SetLineColor (Color_t lcolor) |
Set the line color. | |
virtual void | SetLineColorAlpha (Color_t lcolor, Float_t lalpha) |
Set a transparent line color. | |
virtual void | SetLineStyle (Style_t lstyle) |
Set the line style. | |
virtual void | SetLineWidth (Width_t lwidth) |
Set the line width. | |
Public Member Functions inherited from TAttFill | |
TAttFill () | |
AttFill default constructor. | |
TAttFill (Color_t fcolor, Style_t fstyle) | |
AttFill normal constructor. | |
virtual | ~TAttFill () |
AttFill destructor. | |
void | Copy (TAttFill &attfill) const |
Copy this fill attributes to a new TAttFill. | |
virtual Color_t | GetFillColor () const |
Return the fill area color. | |
virtual Style_t | GetFillStyle () const |
Return the fill area style. | |
virtual Bool_t | IsTransparent () const |
virtual void | Modify () |
Change current fill area attributes if necessary. | |
virtual void | ResetAttFill (Option_t *option="") |
Reset this fill attributes to default values. | |
virtual void | SaveFillAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1001) |
Save fill attributes as C++ statement(s) on output stream out. | |
virtual void | SetFillAttributes () |
Invoke the DialogCanvas Fill attributes. | |
virtual void | SetFillColor (Color_t fcolor) |
Set the fill area color. | |
virtual void | SetFillColorAlpha (Color_t fcolor, Float_t falpha) |
Set a transparent fill color. | |
virtual void | SetFillStyle (Style_t fstyle) |
Set the fill area style. | |
Protected Member Functions | |
void | MarchingCubeCase00 (Int_t k1, Int_t k2, Int_t k3, Int_t k4, Int_t k5, Int_t k6, Int_t &nnod, Int_t &ntria, Double_t xyz[52][3], Double_t grad[52][3], Int_t itria[48][3]) |
Consideration of trivial cases: 1,2,5,8,9,11,14. | |
void | MarchingCubeCase03 (Int_t &nnod, Int_t &ntria, Double_t xyz[52][3], Double_t grad[52][3], Int_t itria[48][3]) |
Consider case No 3. | |
void | MarchingCubeCase04 (Int_t &nnod, Int_t &ntria, Double_t xyz[52][3], Double_t grad[52][3], Int_t itria[48][3]) |
Consider case No 4. | |
void | MarchingCubeCase06 (Int_t &nnod, Int_t &ntria, Double_t xyz[52][3], Double_t grad[52][3], Int_t itria[48][3]) |
Consider case No 6. | |
void | MarchingCubeCase07 (Int_t &nnod, Int_t &ntria, Double_t xyz[52][3], Double_t grad[52][3], Int_t itria[48][3]) |
Consider case No 7. | |
void | MarchingCubeCase10 (Int_t &nnod, Int_t &ntria, Double_t xyz[52][3], Double_t grad[52][3], Int_t itria[48][3]) |
Consider case No 10. | |
void | MarchingCubeCase12 (Int_t &nnod, Int_t &ntria, Double_t xyz[52][3], Double_t grad[52][3], Int_t itria[48][3]) |
Consider case No 12. | |
void | MarchingCubeCase13 (Int_t &nnod, Int_t &ntria, Double_t xyz[52][3], Double_t grad[52][3], Int_t itria[48][3]) |
Consider case No 13. | |
void | MarchingCubeFindNodes (Int_t nnod, Int_t *ie, Double_t xyz[52][3], Double_t grad[52][3]) |
Find nodes and normales. | |
void | MarchingCubeMiddlePoint (Int_t nnod, Double_t xyz[52][3], Double_t grad[52][3], Int_t it[][3], Double_t *pxyz, Double_t *pgrad) |
Find middle point of a polygon. | |
void | MarchingCubeSetTriangles (Int_t ntria, Int_t it[][3], Int_t itria[48][3]) |
Set triangles (if parameter IALL=1, all edges will be visible) | |
void | MarchingCubeSurfacePenetration (Double_t a00, Double_t a10, Double_t a11, Double_t a01, Double_t b00, Double_t b10, Double_t b11, Double_t b01, Int_t &irep) |
Check for surface penetration ("bottle neck") | |
void | TestEdge (Double_t del, Double_t xyz[52][3], Int_t i1, Int_t i2, Int_t iface[3], Double_t abcd[4], Int_t &irep) |
Test edge against face (triangle) | |
Private Member Functions | |
void | Luminosity (TView *view, Double_t *anorm, Double_t &flum) |
Find surface luminosity at given point. | |
Static Private Attributes | |
static const Int_t | MaxNT = 100 |
static const Int_t | NumOfColorLevels = 256 |
static const Int_t | NumOfLevelLines = 200 |
static const Int_t | NumOfLights = 4 |
static const Int_t | NumOfSlices = 2000 |
Additional Inherited Members | |
Protected Attributes inherited from TAttLine | |
Color_t | fLineColor |
Line color. | |
Style_t | fLineStyle |
Line style. | |
Width_t | fLineWidth |
Line width. | |
Protected Attributes inherited from TAttFill | |
Color_t | fFillColor |
Fill area color. | |
Style_t | fFillStyle |
Fill area style. | |
typedef void(TPainter3dAlgorithms::* TPainter3dAlgorithms::DrawFaceFunc_t) (Int_t *, Double_t *, Int_t, Int_t *, Double_t *) |
Base colour for the 3rd Iso Surface.
Definition at line 54 of file TPainter3dAlgorithms.h.
typedef void(TPainter3dAlgorithms::* TPainter3dAlgorithms::LegoFunc_t) (Int_t, Int_t, Int_t &, Double_t *, Double_t *, Double_t *) |
Definition at line 55 of file TPainter3dAlgorithms.h.
typedef void(TPainter3dAlgorithms::* TPainter3dAlgorithms::SurfaceFunc_t) (Int_t, Int_t, Double_t *, Double_t *) |
Definition at line 56 of file TPainter3dAlgorithms.h.
TPainter3dAlgorithms::TPainter3dAlgorithms | ( | ) |
pointer to surface function
Lego default constructor.
Definition at line 71 of file TPainter3dAlgorithms.cxx.
Normal default constructor.
rmin[3], rmax[3] are the limits of the lego object depending on the selected coordinate system
Definition at line 151 of file TPainter3dAlgorithms.cxx.
|
virtual |
Lego default destructor.
Definition at line 240 of file TPainter3dAlgorithms.cxx.
Draw back surfaces of surrounding box.
[in] | ang | angle between X and Y axis |
Definition at line 258 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::ClearRaster | ( | ) |
Clear screen.
Definition at line 349 of file TPainter3dAlgorithms.cxx.
Set correspondence between function and color levels.
[in] | nl | number of levels |
[in] | fl | function levels |
[in] | icl | colors for levels |
[out] | irep | return code (0 OK, -1 error). |
Definition at line 365 of file TPainter3dAlgorithms.cxx.
Define the grid levels drawn in the background of surface and lego plots.
The grid levels are aligned on the Z axis' main tick marks.
Definition at line 408 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::DrawFaceGouraudShaded | ( | Int_t * | icodes, |
Double_t | xyz[][3], | ||
Int_t | np, | ||
Int_t * | iface, | ||
Double_t * | t | ||
) |
Draw the faces for the Gouraud Shaded Iso surfaces.
Definition at line 5849 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::DrawFaceMode1 | ( | Int_t * | icodes, |
Double_t * | xyz, | ||
Int_t | np, | ||
Int_t * | iface, | ||
Double_t * | t | ||
) |
Draw face - 1st variant (2 colors: 1st for external surface, 2nd for internal)
[in] | icodes | set of codes for the line (not used in this method) |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes in face |
[in] | iface | face |
[in] | t | additional function defined on this face (not used in this method) |
Definition at line 449 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::DrawFaceMode2 | ( | Int_t * | icodes, |
Double_t * | xyz, | ||
Int_t | np, | ||
Int_t * | iface, | ||
Double_t * | t | ||
) |
Draw face - 2nd option (fill in correspondence with function levels)
[in] | icodes | set of codes for the line (not used in this method) |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | t | additional function defined on this face |
Definition at line 499 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::DrawFaceMode3 | ( | Int_t * | icodes, |
Double_t * | xyz, | ||
Int_t | np, | ||
Int_t * | iface, | ||
Double_t * | t | ||
) |
Draw face - 3rd option (draw face for stacked lego plot)
[in] | icodes | set of codes for the line |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | t | additional function defined on this face (not used in this method) |
Definition at line 555 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::DrawFaceMove1 | ( | Int_t * | icodes, |
Double_t * | xyz, | ||
Int_t | np, | ||
Int_t * | iface, | ||
Double_t * | tt | ||
) |
Draw face - 1st variant for "MOVING SCREEN" algorithm (draw face with level lines)
[in] | icodes | set of codes for the line |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | tt | additional function defined on this face |
Definition at line 602 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::DrawFaceMove2 | ( | Int_t * | icodes, |
Double_t * | xyz, | ||
Int_t | np, | ||
Int_t * | iface, | ||
Double_t * | tt | ||
) |
Draw face - 2nd variant for "MOVING SCREEN" algorithm (draw face for stacked lego plot)
[in] | icodes | set of codes for the line |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | tt | additional function defined on this face (not used in this method) |
Definition at line 692 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::DrawFaceMove3 | ( | Int_t * | icodes, |
Double_t * | xyz, | ||
Int_t | np, | ||
Int_t * | iface, | ||
Double_t * | tt | ||
) |
Draw face - 3rd variant for "MOVING SCREEN" algorithm (draw level lines only)
[in] | icodes | set of codes for the line |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | tt | additional function defined on this face |
Definition at line 753 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::DrawFaceRaster1 | ( | Int_t * | icodes, |
Double_t * | xyz, | ||
Int_t | np, | ||
Int_t * | iface, | ||
Double_t * | tt | ||
) |
Draw face - 1st variant for "RASTER SCREEN" algorithm (draw face with level lines)
[in] | icodes | set of codes for the line |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | tt | additional function defined on this face |
Definition at line 907 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::DrawFaceRaster2 | ( | Int_t * | icodes, |
Double_t * | xyz, | ||
Int_t | np, | ||
Int_t * | iface, | ||
Double_t * | tt | ||
) |
Draw face - 2nd variant for "RASTER SCREEN" algorithm (draw face for stacked lego plot)
[in] | icodes | set of codes for the line (not used in this method) |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | tt | additional function defined on this face (not used in this method) |
Definition at line 996 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::DrawLevelLines | ( | Int_t * | icodes, |
Double_t * | xyz, | ||
Int_t | np, | ||
Int_t * | iface, | ||
Double_t * | tt | ||
) |
Draw level lines without hidden line removal.
[in] | icodes | set of codes for the line |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | tt | additional function defined on this face |
Definition at line 837 of file TPainter3dAlgorithms.cxx.
Fill polygon with function values at vertexes.
[in] | n | number of vertexes |
[in] | p | polygon |
[in] | f | function values at nodes |
Errors:
Definition at line 1049 of file TPainter3dAlgorithms.cxx.
Fill a polygon including border ("RASTER SCREEN")
[in] | nn | number of polygon nodes |
[in] | xy | polygon nodes |
Definition at line 1126 of file TPainter3dAlgorithms.cxx.
Find level lines for face.
[in] | np | number of nodes |
[in] | f | face |
[in] | t | additional function |
Error: number of points for line not equal 2
Definition at line 1358 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::FindPartEdge | ( | Double_t * | p1, |
Double_t * | p2, | ||
Double_t | f1, | ||
Double_t | f2, | ||
Double_t | fmin, | ||
Double_t | fmax, | ||
Int_t & | kpp, | ||
Double_t * | pp | ||
) |
Find part of edge where function defined on this edge has value from fmin
to fmax
[in] | p1 | 1st point |
[in] | p2 | 2nd point |
[in] | f1 | function value at 1st point |
[in] | f2 | function value at 2nd point |
[in] | fmin | min value of layer |
[in] | fmax | max value of layer |
[out] | kpp | current number of point |
[out] | pp | coordinates of new face |
Definition at line 1421 of file TPainter3dAlgorithms.cxx.
Find visible parts of line (draw line)
[in] | r1 | 1-st point of the line |
[in] | r2 | 2-nd point of the line |
Definition at line 1569 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::FindVisibleLine | ( | Double_t * | p1, |
Double_t * | p2, | ||
Int_t | ntmax, | ||
Int_t & | nt, | ||
Double_t * | t | ||
) |
Find visible part of a line ("RASTER SCREEN")
[in] | p1 | 1st point of the line |
[in] | p2 | 2nd point of the line |
[in] | ntmax | max allowed number of visible segments |
[out] | nt | number of visible segments of the line |
[out] | t | visible segments |
Definition at line 1738 of file TPainter3dAlgorithms.cxx.
Draw front surfaces of surrounding box & axes.
[in] | ang | angle between X and Y axis |
Definition at line 302 of file TPainter3dAlgorithms.cxx.
Find part of surface with luminosity in the corners.
This method is used for Gouraud shading
Definition at line 1883 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::ImplicitFunction | ( | TF3 * | f3, |
Double_t * | rmin, | ||
Double_t * | rmax, | ||
Int_t | nx, | ||
Int_t | ny, | ||
Int_t | nz, | ||
const char * | chopt | ||
) |
Draw implicit function FUN(X,Y,Z) = 0 in cartesian coordinates using hidden surface removal algorithm "Painter".
[in] | rmin | min scope coordinates |
[in] | rmax | max scope coordinates |
[in] | nx | number of steps along X |
[in] | ny | number of steps along Y |
[in] | nz | number of steps along Z |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 4110 of file TPainter3dAlgorithms.cxx.
Initialize "MOVING SCREEN" method.
[in] | xmin | left boundary |
[in] | xmax | right boundary |
Definition at line 2021 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::InitRaster | ( | Double_t | xmin, |
Double_t | ymin, | ||
Double_t | xmax, | ||
Double_t | ymax, | ||
Int_t | nx, | ||
Int_t | ny | ||
) |
Initialize hidden lines removal algorithm (RASTER SCREEN)
[in] | xmin | Xmin in the normalized coordinate system |
[in] | ymin | Ymin in the normalized coordinate system |
[in] | xmax | Xmax in the normalized coordinate system |
[in] | ymax | Ymax in the normalized coordinate system |
[in] | nx | number of pixels along X |
[in] | ny | number of pixels along Y |
Definition at line 2044 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::IsoSurface | ( | Int_t | ns, |
Double_t * | s, | ||
Int_t | nx, | ||
Int_t | ny, | ||
Int_t | nz, | ||
Double_t * | x, | ||
Double_t * | y, | ||
Double_t * | z, | ||
const char * | chopt | ||
) |
Draw set of iso-surfaces for a scalar function defined on a grid.
[in] | ns | number of iso-surfaces |
[in] | s | iso-surface values |
[in] | nx | number of slices along X |
[in] | ny | number of slices along Y |
[in] | nz | number of slices along Z |
[in] | x | slices along X |
[in] | y | slices along Y |
[in] | z | slices along Z |
Definition at line 5542 of file TPainter3dAlgorithms.cxx.
Draw stack of lego-plots in cartesian coordinates.
[in] | ang | angle between X ang Y (not used in this method) |
[in] | nx | number of cells along X |
[in] | ny | number of cells along Y |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 2257 of file TPainter3dAlgorithms.cxx.
Draw stack of lego-plots in cylindrical coordinates.
[in] | iordr | order of variables (0 - Z,PHI; 1 - PHI,Z) |
[in] | na | number of steps along 1st variable |
[in] | nb | number of steps along 2nd variable |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 2629 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::LegoFunction | ( | Int_t | ia, |
Int_t | ib, | ||
Int_t & | nv, | ||
Double_t * | ab, | ||
Double_t * | vv, | ||
Double_t * | t | ||
) |
Service function for Legos.
Definition at line 2085 of file TPainter3dAlgorithms.cxx.
Draw stack of lego-plots in polar coordinates.
[in] | iordr | order of variables (0 - R,PHI; 1 - PHI,R) |
[in] | na | number of steps along 1st variable |
[in] | nb | number of steps along 2nd variable |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 2414 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::LegoSpherical | ( | Int_t | ipsdr, |
Int_t | iordr, | ||
Int_t | na, | ||
Int_t | nb, | ||
const char * | chopt | ||
) |
Draw stack of lego-plots spheric coordinates.
[in] | ipsdr | pseudo-rapidity flag |
[in] | iordr | order of variables (0 - THETA,PHI; 1 - PHI,THETA) |
[in] | na | number of steps along 1st variable |
[in] | nb | number of steps along 2nd variable |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 2850 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::LightSource | ( | Int_t | nl, |
Double_t | yl, | ||
Double_t | xscr, | ||
Double_t | yscr, | ||
Double_t | zscr, | ||
Int_t & | irep | ||
) |
Set light source.
[in] | nl | source number: 1 off all light sources, 0 set diffused light |
[in] | yl | intensity of the light source |
[in] | xscr,yscr,zscr | direction of the light (in respect of the screen) |
[out] | irep | reply (0 - O.K, -1 error) |
Definition at line 3131 of file TPainter3dAlgorithms.cxx.
Find surface luminosity at given point.
[in] | view | pointer on TView object |
[in] | anorm | surface normal at given point |
[out] | flum | luminosity |
Definition at line 3195 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::MarchingCube | ( | Double_t | fiso, |
Double_t | p[8][3], | ||
Double_t | f[8], | ||
Double_t | g[8][3], | ||
Int_t & | nnod, | ||
Int_t & | ntria, | ||
Double_t | xyz[][3], | ||
Double_t | grad[][3], | ||
Int_t | itria[][3] | ||
) |
Topological decider for "Marching Cubes" algorithm Find set of triangles approximating the iso-surface F(x,y,z)=Fiso inside the cube.
[in] | fiso | function value for iso-surface |
[in] | p | cube vertexes |
[in] | f | function values at the vertexes |
[in] | g | function gradients at the vertexes |
[out] | nnod | number of nodes (maximum 13) |
[out] | ntria | number of triangles (maximum 12) |
[out] | xyz | nodes |
[out] | grad | node normales (not normalized) |
[out] | itria | triangles |
Definition at line 4408 of file TPainter3dAlgorithms.cxx.
|
protected |
Consideration of trivial cases: 1,2,5,8,9,11,14.
[in] | k1-k6 | edges intersected with iso-surface |
Definition at line 4597 of file TPainter3dAlgorithms.cxx.
|
protected |
Consider case No 3.
Definition at line 4640 of file TPainter3dAlgorithms.cxx.
|
protected |
Consider case No 4.
Definition at line 4669 of file TPainter3dAlgorithms.cxx.
|
protected |
Consider case No 6.
Definition at line 4697 of file TPainter3dAlgorithms.cxx.
|
protected |
Consider case No 7.
Definition at line 4739 of file TPainter3dAlgorithms.cxx.
|
protected |
Consider case No 10.
Definition at line 4828 of file TPainter3dAlgorithms.cxx.
|
protected |
Consider case No 12.
Definition at line 4893 of file TPainter3dAlgorithms.cxx.
|
protected |
Consider case No 13.
Definition at line 4958 of file TPainter3dAlgorithms.cxx.
|
protected |
Find nodes and normales.
[in] | nnod | number of nodes |
[in] | ie | edges which have section node |
[out] | xyz | nodes |
[out] | grad | ode normales (not normalized) |
Definition at line 5239 of file TPainter3dAlgorithms.cxx.
|
protected |
Find middle point of a polygon.
[in] | nnod | number of nodes in the polygon |
[in] | xyz | node coordinates |
[in] | grad | node normales |
[in] | it | division of the polygons into triangles |
[out] | pxyz | middle point coordinates |
[out] | pgrad | middle point normale |
Definition at line 5133 of file TPainter3dAlgorithms.cxx.
|
protected |
Set triangles (if parameter IALL=1, all edges will be visible)
[in] | ntria | number of triangles |
[in] | it | triangles |
[out] | itria | triangles |
Definition at line 5109 of file TPainter3dAlgorithms.cxx.
|
protected |
Check for surface penetration ("bottle neck")
[in] | axx | vertex values for 1st face |
[in] | bxx | vertex values for opposite face |
[out] | irep | 1,2: there is surface penetration, 0: there is not surface penetration |
Definition at line 5167 of file TPainter3dAlgorithms.cxx.
Modify SCREEN.
[in] | r1 | 1-st point of the line |
[in] | r2 | 2-nd point of the line |
Definition at line 3236 of file TPainter3dAlgorithms.cxx.
Store dark color for stack number n.
Definition at line 3316 of file TPainter3dAlgorithms.cxx.
Store color for stack number n.
Definition at line 3326 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::SetDrawFace | ( | DrawFaceFunc_t | pointer | ) |
Store pointer to current algorithm to draw faces.
Definition at line 3292 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::SetEdgeAtt | ( | Color_t | color = 1 , |
Style_t | style = 1 , |
||
Width_t | width = 1 , |
||
Int_t | n = 0 |
||
) |
Definition at line 3335 of file TPainter3dAlgorithms.cxx.
|
inline |
Definition at line 88 of file TPainter3dAlgorithms.h.
void TPainter3dAlgorithms::SetLegoFunction | ( | LegoFunc_t | pointer | ) |
Store pointer to current lego function.
Definition at line 3300 of file TPainter3dAlgorithms.cxx.
Definition at line 90 of file TPainter3dAlgorithms.h.
void TPainter3dAlgorithms::SetSurfaceFunction | ( | SurfaceFunc_t | pointer | ) |
Store pointer to current surface function.
Definition at line 3308 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::SideVisibilityDecode | ( | Double_t | val, |
Int_t & | iv1, | ||
Int_t & | iv2, | ||
Int_t & | iv3, | ||
Int_t & | iv4, | ||
Int_t & | iv5, | ||
Int_t & | iv6, | ||
Int_t & | ir | ||
) |
Decode side visibilities and order along R for sector.
[in] | val | encoded value |
[out] | iv1-iv6 | visibility of the sides |
[out] | ir | increment along R |
Definition at line 3352 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::SideVisibilityEncode | ( | Int_t | iopt, |
Double_t | phi1, | ||
Double_t | phi2, | ||
Double_t & | val | ||
) |
Encode side visibilities and order along R for sector.
[in] | iopt | options: 1: from BACK to FRONT 'BF', 2: from FRONT to BACK 'FB' |
[in] | phi1 | 1st phi of sector |
[in] | phi2 | 2nd phi of sector |
[out] | val | encoded value |
Definition at line 3384 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::Spectrum | ( | Int_t | nl, |
Double_t | fmin, | ||
Double_t | fmax, | ||
Int_t | ic, | ||
Int_t | idc, | ||
Int_t & | irep | ||
) |
Set Spectrum.
[in] | nl | number of levels |
[in] | fmin | MIN function value |
[in] | fmax | MAX function value |
[in] | ic | initial color index (for 1st level) |
[in] | idc | color index increment |
[out] | irep | reply (0 O.K., -1 error) |
Definition at line 3423 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::SurfaceCartesian | ( | Double_t | ang, |
Int_t | nx, | ||
Int_t | ny, | ||
const char * | chopt | ||
) |
Draw surface in cartesian coordinate system.
[in] | ang | angle between X ang Y (not used in this method) |
[in] | nx | number of steps along X |
[in] | ny | number of steps along Y |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 3478 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::SurfaceCylindrical | ( | Int_t | iordr, |
Int_t | na, | ||
Int_t | nb, | ||
const char * | chopt | ||
) |
Draw surface in cylindrical coordinates.
[in] | iordr | order of variables (0 - Z,PHI; 1 - PHI,Z) |
[in] | na | number of steps along 1st variable |
[in] | nb | number of steps along 2nd variable |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 3794 of file TPainter3dAlgorithms.cxx.
Service function for Surfaces.
Definition at line 3546 of file TPainter3dAlgorithms.cxx.
Draw surface in polar coordinates.
[in] | iordr | order of variables (0 - R,PHI, 1 - PHI,R) |
[in] | na | number of steps along 1st variable |
[in] | nb | number of steps along 2nd variable |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 3667 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::SurfaceProperty | ( | Double_t | qqa, |
Double_t | qqd, | ||
Double_t | qqs, | ||
Int_t | nnqs, | ||
Int_t & | irep | ||
) |
Set surface property coefficients.
[in] | qqa | diffusion coefficient for diffused light [0.,1.] |
[in] | qqd | diffusion coefficient for direct light [0.,1.] |
[in] | qqs | diffusion coefficient for reflected light [0.,1.] |
[in] | nnqs | power coefficient for reflected light (.GE.1) |
Lightness model formula: Y = YD*QA + > YLi*(QD*cosNi+QS*cosRi)
[out] | irep | reply (0 - O.K, -1 error) |
Definition at line 4083 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::SurfaceSpherical | ( | Int_t | ipsdr, |
Int_t | iordr, | ||
Int_t | na, | ||
Int_t | nb, | ||
const char * | chopt | ||
) |
Draw surface in spheric coordinates.
[in] | ipsdr | pseudo-rapidity flag |
[in] | iordr | order of variables (0 - THETA,PHI; 1 - PHI,THETA) |
[in] | na | number of steps along 1st variable |
[in] | nb | number of steps along 2nd variable |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 3917 of file TPainter3dAlgorithms.cxx.
|
protected |
Test edge against face (triangle)
[in] | del | precision |
[in] | xyz | nodes |
[in] | i1 | 1-st node of edge |
[in] | i2 | 2-nd node of edge |
[in] | iface | triangular face |
[in] | abcd | face plane |
[out] | irep | 1: edge under face, 0: no decision, +1: edge before face |
Definition at line 5466 of file TPainter3dAlgorithms.cxx.
void TPainter3dAlgorithms::ZDepth | ( | Double_t | xyz[52][3], |
Int_t & | nface, | ||
Int_t | iface[48][3], | ||
Double_t | dface[48][6], | ||
Double_t | abcd[48][4], | ||
Int_t * | iorder | ||
) |
Z-depth algorithm for set of triangles.
[in] | xyz | nodes |
[in] | nface | number of triangular faces |
[in] | iface | faces (triangles) |
[in] | dface | array for min-max scopes |
[in] | abcd | array for face plane equations |
[out] | iorder | face order |
Definition at line 5273 of file TPainter3dAlgorithms.cxx.
|
private |
Upper limits of lego.
Definition at line 33 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 39 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 37 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 117 of file TPainter3dAlgorithms.h.
|
private |
Coordinate system.
Definition at line 36 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 38 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 160 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 59 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 154 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 174 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 175 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 40 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 43 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 41 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 42 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 204 of file TPainter3dAlgorithms.h.
|
private |
IsoSurface minimum function value.
Definition at line 47 of file TPainter3dAlgorithms.h.
|
private |
Number of histograms in the stack to be painted.
Definition at line 46 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 116 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 205 of file TPainter3dAlgorithms.h.
|
private |
Number of colours per Iso surface.
Definition at line 49 of file TPainter3dAlgorithms.h.
|
private |
Base colour for the 1st Iso Surface.
Definition at line 50 of file TPainter3dAlgorithms.h.
|
private |
Base colour for the 2nd Iso Surface.
Definition at line 51 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 178 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 180 of file TPainter3dAlgorithms.h.
|
private |
pointer to face drawing function
Definition at line 60 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 121 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 134 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 181 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 44 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 34 of file TPainter3dAlgorithms.h.
|
private |
IsoSurface maximum function value.
Definition at line 48 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 115 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 120 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 141 of file TPainter3dAlgorithms.h.
|
private |
(=1 if mesh to draw, o otherwise)
Definition at line 45 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 155 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 176 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 177 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 203 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 122 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 138 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 139 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 140 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 179 of file TPainter3dAlgorithms.h.
|
private |
Lower limits of lego.
Definition at line 32 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 31 of file TPainter3dAlgorithms.h.
|
private |
pointer to lego function
Definition at line 61 of file TPainter3dAlgorithms.h.
|
private |
Size of fAphi.
Definition at line 35 of file TPainter3dAlgorithms.h.
Definition at line 156 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 159 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 137 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 153 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 172 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 135 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 136 of file TPainter3dAlgorithms.h.
|
private |
Definition at line 173 of file TPainter3dAlgorithms.h.
|
staticprivate |
Definition at line 152 of file TPainter3dAlgorithms.h.
|
staticprivate |
Definition at line 114 of file TPainter3dAlgorithms.h.
|
staticprivate |
Definition at line 119 of file TPainter3dAlgorithms.h.
|
staticprivate |
Definition at line 133 of file TPainter3dAlgorithms.h.
|
staticprivate |
Definition at line 158 of file TPainter3dAlgorithms.h.