Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches

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 *)
 
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 ()
 Lego default constructor.
 
 TPainter3dAlgorithms (Double_t *rmin, Double_t *rmax, Int_t system=1)
 Normal default constructor.
 
 ~TPainter3dAlgorithms () override
 destructor
 
void BackBox (Double_t ang)
 Draw back surfaces of surrounding box.
 
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 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 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 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 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 SurfaceSpherical (Int_t ipsdr, Int_t iordr, Int_t na, Int_t nb, const char *chopt)
 Draw surface in spheric coordinates.
 
- 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 TClassIsA () const
 
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.
 
virtual void Streamer (TBuffer &)
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- 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 TClassIsA () const
 
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.
 
virtual void Streamer (TBuffer &)
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 

Private Member Functions

void Luminosity (TView *view, Double_t *anorm, Double_t &flum)
 Find surface luminosity at given point.
 

Private Attributes

std::vector< Double_tfAphi
 
Int_t fColorBottom
 
std::vector< Int_tfColorDark
 
Int_t fColorLevel [NumOfColorLevels+2]
 
std::vector< Int_tfColorMain
 
Int_t fColorTop
 
DrawFaceFunc_t fDrawFace
 Pointer to face drawing function.
 
std::vector< Int_tfEdgeColor
 
Int_t fEdgeIdx
 
std::vector< Int_tfEdgeStyle
 
std::vector< Int_tfEdgeWidth
 
Double_t fFmax
 IsoSurface maximum function value.
 
Double_t fFmin
 IsoSurface minimum function value.
 
Double_t fFunLevel [NumOfColorLevels+1]
 
Int_t fIc1
 Base colour for the 1st Iso Surface.
 
Int_t fIc2
 Base colour for the 2nd Iso Surface.
 
Int_t fIc3
 Base colour for the 3rd Iso Surface.
 
LegoFunc_t fLegoFunction
 Pointer to lego function.
 
Int_t fLevelLine [NumOfLevelLines]
 
Int_t fMesh
 (=1 if mesh to draw, o otherwise)
 
Int_t fNaphi
 Size of fAphi.
 
Int_t fNcolor
 Number of colours per Iso surface.
 
Int_t fNlevel
 
Int_t fNlines
 
Int_t fNStack
 Number of histograms in the stack to be painted.
 
Double_t fPlines [NumOfLevelLines *6]
 
Double_t fRmax [3]
 Upper limits of lego.
 
Double_t fRmin [3]
 Lower limits of lego.
 
SurfaceFunc_t fSurfaceFunction
 Pointer to surface function.
 
Int_t fSystem
 Coordinate system.
 

Static Private Attributes

static const Int_t NumOfColorLevels = 256
 
static const Int_t NumOfLevelLines = 200
 

Light and surface properties

Int_t fLoff
 
Double_t fYdl
 
Double_t fYls [NumOfLights]
 
Double_t fVls [NumOfLights *3]
 
Double_t fQA
 
Double_t fQD
 
Double_t fQS
 
Int_t fNqs
 
static const Int_t NumOfLights = 4
 
void LightSource (Int_t nl, Double_t yl, Double_t xscr, Double_t yscr, Double_t zscr, Int_t &irep)
 Set light source.
 
void SurfaceProperty (Double_t qqa, Double_t qqd, Double_t qqs, Int_t nnqs, Int_t &irep)
 Set surface property coefficients.
 

Moving screen

Double_t fX0
 
Double_t fDX
 
Int_t fNT
 
Double_t fT [MaxNT *2]
 
Double_t fU [NumOfSlices *2]
 
Double_t fD [NumOfSlices *2]
 
static const Int_t MaxNT = 100
 
static const Int_t NumOfSlices = 2000
 
void InitMoveScreen (Double_t xmin, Double_t xmax)
 Initialize "MOVING SCREEN" method.
 
void FindVisibleDraw (Double_t *r1, Double_t *r2)
 Find visible parts of line (draw line)
 
void ModifyScreen (Double_t *r1, Double_t *r2)
 Modify SCREEN.
 

Raster screen

Specialized hidden line removal algorithm for rendering 3D polygons ordered by depth (front-to-back)

Double_t fXrast
 Minimal x.
 
Double_t fYrast
 Minimal y.
 
Double_t fDXrast
 X size.
 
Double_t fDYrast
 Y size.
 
Int_t fNxrast
 Number of pixels in x.
 
Int_t fNyrast
 Number of pixels in y.
 
Int_t fIfrast
 Flag, if it not zero them the algorithm is off.
 
std::vector< Int_tfRaster
 Pointer to raster buffer.
 
Int_t fJmask [30]
 Indices of subsets of n-bit masks (n is from 1 to 30)
 
Int_t fMask [465]
 Set of masks (30+29+28+...+1)=465.
 
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 ClearRaster ()
 Clear screen.
 
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 FillPolygonBorder (Int_t nn, Double_t *xy)
 Fill a polygon including border ("RASTER SCREEN")
 

Marching Cubes

Construction of iso-surfaces, see publication CERN-CN-95-17

Double_t fP8 [8][3]
 Vertices.
 
Double_t fF8 [8]
 Function values.
 
Double_t fG8 [8][3]
 Function gradients.
 
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 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 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 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 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 MarchingCubeFindNodes (Int_t nnod, Int_t *ie, Double_t xyz[52][3], Double_t grad[52][3])
 Find nodes and normales.
 

Z-depth

Sorting algorithm for set of triangles

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.
 
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)
 

Additional Inherited Members

- Static Public Member Functions inherited from TAttLine
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TAttFill
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- 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.
 

#include </github/home/ROOT-CI/src/hist/histpainter/src/TPainter3dAlgorithms.h>

Inheritance diagram for TPainter3dAlgorithms:
[legend]

Member Typedef Documentation

◆ DrawFaceFunc_t

typedef void(TPainter3dAlgorithms::* TPainter3dAlgorithms::DrawFaceFunc_t) (Int_t *, Double_t *, Int_t, Int_t *, Double_t *)

Definition at line 54 of file TPainter3dAlgorithms.h.

◆ LegoFunc_t

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.

◆ SurfaceFunc_t

typedef void(TPainter3dAlgorithms::* TPainter3dAlgorithms::SurfaceFunc_t) (Int_t, Int_t, Double_t *, Double_t *)

Definition at line 56 of file TPainter3dAlgorithms.h.

Constructor & Destructor Documentation

◆ TPainter3dAlgorithms() [1/2]

TPainter3dAlgorithms::TPainter3dAlgorithms ( )

Lego default constructor.

Definition at line 61 of file TPainter3dAlgorithms.cxx.

◆ TPainter3dAlgorithms() [2/2]

TPainter3dAlgorithms::TPainter3dAlgorithms ( Double_t * rmin,
Double_t * rmax,
Int_t system = 1 )

Normal default constructor.

rmin[3], rmax[3] are the limits of the lego object depending on the selected coordinate system

Definition at line 130 of file TPainter3dAlgorithms.cxx.

◆ ~TPainter3dAlgorithms()

TPainter3dAlgorithms::~TPainter3dAlgorithms ( )
override

destructor

Definition at line 209 of file TPainter3dAlgorithms.cxx.

Member Function Documentation

◆ BackBox()

void TPainter3dAlgorithms::BackBox ( Double_t ang)

Draw back surfaces of surrounding box.

Parameters
[in]angangle between X and Y axis

Definition at line 218 of file TPainter3dAlgorithms.cxx.

◆ ClearRaster()

void TPainter3dAlgorithms::ClearRaster ( )

Clear screen.

Definition at line 307 of file TPainter3dAlgorithms.cxx.

◆ ColorFunction()

void TPainter3dAlgorithms::ColorFunction ( Int_t nl,
Double_t * fl,
Int_t * icl,
Int_t & irep )

Set correspondence between function and color levels.

Parameters
[in]nlnumber of levels
[in]flfunction levels
[in]iclcolors for levels
[out]irepreturn code (0 OK, -1 error).

Definition at line 323 of file TPainter3dAlgorithms.cxx.

◆ DefineGridLevels()

void TPainter3dAlgorithms::DefineGridLevels ( Int_t ndivz)

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 366 of file TPainter3dAlgorithms.cxx.

◆ DrawFaceGouraudShaded()

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 5747 of file TPainter3dAlgorithms.cxx.

◆ DrawFaceMode1()

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)

Parameters
[in]icodesset of codes for the line (not used in this method)
[in]xyzcoordinates of nodes
[in]npnumber of nodes in face
[in]ifaceface
[in]tadditional function defined on this face (not used in this method)

Definition at line 406 of file TPainter3dAlgorithms.cxx.

◆ DrawFaceMode2()

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)

Parameters
[in]icodesset of codes for the line (not used in this method)
[in]xyzcoordinates of nodes
[in]npnumber of nodes
[in]ifaceface
[in]tadditional function defined on this face

Definition at line 455 of file TPainter3dAlgorithms.cxx.

◆ DrawFaceMode3()

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)

Parameters
[in]icodesset of codes for the line
[in]xyzcoordinates of nodes
[in]npnumber of nodes
[in]ifaceface
[in]tadditional function defined on this face (not used in this method)

Definition at line 510 of file TPainter3dAlgorithms.cxx.

◆ DrawFaceMove1()

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)

Parameters
[in]icodesset of codes for the line
[in]xyzcoordinates of nodes
[in]npnumber of nodes
[in]ifaceface
[in]ttadditional function defined on this face

Definition at line 556 of file TPainter3dAlgorithms.cxx.

◆ DrawFaceMove2()

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)

Parameters
[in]icodesset of codes for the line
[in]xyzcoordinates of nodes
[in]npnumber of nodes
[in]ifaceface
[in]ttadditional function defined on this face (not used in this method)

Definition at line 645 of file TPainter3dAlgorithms.cxx.

◆ DrawFaceMove3()

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)

Parameters
[in]icodesset of codes for the line
[in]xyzcoordinates of nodes
[in]npnumber of nodes
[in]ifaceface
[in]ttadditional function defined on this face

Definition at line 705 of file TPainter3dAlgorithms.cxx.

◆ DrawFaceRaster1()

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)

Parameters
[in]icodesset of codes for the line
[in]xyzcoordinates of nodes
[in]npnumber of nodes
[in]ifaceface
[in]ttadditional function defined on this face

Definition at line 857 of file TPainter3dAlgorithms.cxx.

◆ DrawFaceRaster2()

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)

Parameters
[in]icodesset of codes for the line (not used in this method)
[in]xyzcoordinates of nodes
[in]npnumber of nodes
[in]ifaceface
[in]ttadditional function defined on this face (not used in this method)

Definition at line 945 of file TPainter3dAlgorithms.cxx.

◆ DrawLevelLines()

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.

Parameters
[in]icodesset of codes for the line
[in]xyzcoordinates of nodes
[in]npnumber of nodes
[in]ifaceface
[in]ttadditional function defined on this face

Definition at line 788 of file TPainter3dAlgorithms.cxx.

◆ FillPolygon()

void TPainter3dAlgorithms::FillPolygon ( Int_t n,
Double_t * p,
Double_t * f )

Fill polygon with function values at vertexes.

Parameters
[in]nnumber of vertexes
[in]ppolygon
[in]ffunction values at nodes

Errors:

  • illegal number of vertexes in polygon
  • illegal call of FillPolygon: no levels

Definition at line 997 of file TPainter3dAlgorithms.cxx.

◆ FillPolygonBorder()

void TPainter3dAlgorithms::FillPolygonBorder ( Int_t nn,
Double_t * xy )

Fill a polygon including border ("RASTER SCREEN")

Parameters
[in]nnnumber of polygon nodes
[in]xypolygon nodes

Definition at line 1074 of file TPainter3dAlgorithms.cxx.

◆ FindLevelLines()

void TPainter3dAlgorithms::FindLevelLines ( Int_t np,
Double_t * f,
Double_t * t )

Find level lines for face.

Parameters
[in]npnumber of nodes
[in]fface
[in]tadditional function

Error: number of points for line not equal 2

Definition at line 1306 of file TPainter3dAlgorithms.cxx.

◆ FindPartEdge()

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

Parameters
[in]p11st point
[in]p22nd point
[in]f1function value at 1st point
[in]f2function value at 2nd point
[in]fminmin value of layer
[in]fmaxmax value of layer
[out]kppcurrent number of point
[out]ppcoordinates of new face

Definition at line 1369 of file TPainter3dAlgorithms.cxx.

◆ FindVisibleDraw()

void TPainter3dAlgorithms::FindVisibleDraw ( Double_t * r1,
Double_t * r2 )

Find visible parts of line (draw line)

Parameters
[in]r11-st point of the line
[in]r22-nd point of the line

Definition at line 1517 of file TPainter3dAlgorithms.cxx.

◆ FindVisibleLine()

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")

Parameters
[in]p11st point of the line
[in]p22nd point of the line
[in]ntmaxmax allowed number of visible segments
[out]ntnumber of visible segments of the line
[out]tvisible segments

Definition at line 1685 of file TPainter3dAlgorithms.cxx.

◆ FrontBox()

void TPainter3dAlgorithms::FrontBox ( Double_t ang)

Draw front surfaces of surrounding box & axes.

Parameters
[in]angangle between X and Y axis

Definition at line 261 of file TPainter3dAlgorithms.cxx.

◆ GouraudFunction()

void TPainter3dAlgorithms::GouraudFunction ( Int_t ia,
Int_t ib,
Double_t * face,
Double_t * t )

Find part of surface with luminosity in the corners.

This method is used for Gouraud shading

Definition at line 1830 of file TPainter3dAlgorithms.cxx.

◆ ImplicitFunction()

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".

Parameters
[in]f3pointer to 3D function
[in]rminmin scope coordinates
[in]rmaxmax scope coordinates
[in]nxnumber of steps along X
[in]nynumber of steps along Y
[in]nznumber of steps along Z
[in]choptspecific options
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 4004 of file TPainter3dAlgorithms.cxx.

◆ InitMoveScreen()

void TPainter3dAlgorithms::InitMoveScreen ( Double_t xmin,
Double_t xmax )

Initialize "MOVING SCREEN" method.

Parameters
[in]xminleft boundary
[in]xmaxright boundary

Definition at line 1968 of file TPainter3dAlgorithms.cxx.

◆ InitRaster()

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)

Parameters
[in]xminXmin in the normalized coordinate system
[in]yminYmin in the normalized coordinate system
[in]xmaxXmax in the normalized coordinate system
[in]ymaxYmax in the normalized coordinate system
[in]nxnumber of pixels along X
[in]nynumber of pixels along Y

Definition at line 1991 of file TPainter3dAlgorithms.cxx.

◆ IsoSurface()

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.

Parameters
[in]nsnumber of iso-surfaces
[in]siso-surface values
[in]nxnumber of slices along X
[in]nynumber of slices along Y
[in]nznumber of slices along Z
[in]xslices along X
[in]yslices along Y
[in]zslices along Z
[in]choptspecific options
  • chopt‘ = 'BF’ from BACK to FRONT
  • chopt‘ = 'FB’ from FRONT to BACK

Definition at line 5442 of file TPainter3dAlgorithms.cxx.

◆ LegoCartesian()

void TPainter3dAlgorithms::LegoCartesian ( Double_t ang,
Int_t nx,
Int_t ny,
const char * chopt )

Draw stack of lego-plots in cartesian coordinates.

Parameters
[in]angangle between X ang Y (not used in this method)
[in]nxnumber of cells along X
[in]nynumber of cells along Y
[in]choptspecific options
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 2205 of file TPainter3dAlgorithms.cxx.

◆ LegoCylindrical()

void TPainter3dAlgorithms::LegoCylindrical ( Int_t iordr,
Int_t na,
Int_t nb,
const char * chopt )

Draw stack of lego-plots in cylindrical coordinates.

Parameters
[in]iordrorder of variables (0 - Z,PHI; 1 - PHI,Z)
[in]nanumber of steps along 1st variable
[in]nbnumber of steps along 2nd variable
[in]choptspecific options
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 2551 of file TPainter3dAlgorithms.cxx.

◆ LegoFunction()

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 2032 of file TPainter3dAlgorithms.cxx.

◆ LegoPolar()

void TPainter3dAlgorithms::LegoPolar ( Int_t iordr,
Int_t na,
Int_t nb,
const char * chopt )

Draw stack of lego-plots in polar coordinates.

Parameters
[in]iordrorder of variables (0 - R,PHI; 1 - PHI,R)
[in]nanumber of steps along 1st variable
[in]nbnumber of steps along 2nd variable
[in]choptspecific options
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 2350 of file TPainter3dAlgorithms.cxx.

◆ LegoSpherical()

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.

Parameters
[in]ipsdrpseudo-rapidity flag
[in]iordrorder of variables (0 - THETA,PHI; 1 - PHI,THETA)
[in]nanumber of steps along 1st variable
[in]nbnumber of steps along 2nd variable
[in]choptspecific options
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 2758 of file TPainter3dAlgorithms.cxx.

◆ LightSource()

void TPainter3dAlgorithms::LightSource ( Int_t nl,
Double_t yl,
Double_t xscr,
Double_t yscr,
Double_t zscr,
Int_t & irep )

Set light source.

Parameters
[in]nlsource number: 1 off all light sources, 0 set diffused light
[in]ylintensity of the light source
[in]xscr,yscr,zscrdirection of the light (in respect of the screen)
[out]irepreply (0 - O.K, -1 error)

Definition at line 3024 of file TPainter3dAlgorithms.cxx.

◆ Luminosity()

void TPainter3dAlgorithms::Luminosity ( TView * view,
Double_t * anorm,
Double_t & flum )
private

Find surface luminosity at given point.

Parameters
[in]viewpointer on TView object
[in]anormsurface normal at given point
[out]flumluminosity

Definition at line 3088 of file TPainter3dAlgorithms.cxx.

◆ MarchingCube()

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.

Parameters
[in]fisofunction value for iso-surface
[in]pcube vertexes
[in]ffunction values at the vertexes
[in]gfunction gradients at the vertexes
[out]nnodnumber of nodes (maximum 13)
[out]ntrianumber of triangles (maximum 12)
[out]xyznodes
[out]gradnode normales (not normalized)
[out]itriatriangles

Definition at line 4302 of file TPainter3dAlgorithms.cxx.

◆ MarchingCubeCase00()

void TPainter3dAlgorithms::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] )
protected

Consideration of trivial cases: 1,2,5,8,9,11,14.

Parameters
[in]k1,k2,k3,k4,k5,k6edges intersected with iso-surface
[out]nnodnumber of nodes
[out]ntrianumber of triangles
[out]xyz3D points
[out]grad3D gradients
[out]itria3D triangle indices

Definition at line 4496 of file TPainter3dAlgorithms.cxx.

◆ MarchingCubeCase03()

void TPainter3dAlgorithms::MarchingCubeCase03 ( Int_t & nnod,
Int_t & ntria,
Double_t xyz[52][3],
Double_t grad[52][3],
Int_t itria[48][3] )
protected

Consider case No 3.

Definition at line 4539 of file TPainter3dAlgorithms.cxx.

◆ MarchingCubeCase04()

void TPainter3dAlgorithms::MarchingCubeCase04 ( Int_t & nnod,
Int_t & ntria,
Double_t xyz[52][3],
Double_t grad[52][3],
Int_t itria[48][3] )
protected

Consider case No 4.

Definition at line 4568 of file TPainter3dAlgorithms.cxx.

◆ MarchingCubeCase06()

void TPainter3dAlgorithms::MarchingCubeCase06 ( Int_t & nnod,
Int_t & ntria,
Double_t xyz[52][3],
Double_t grad[52][3],
Int_t itria[48][3] )
protected

Consider case No 6.

Definition at line 4596 of file TPainter3dAlgorithms.cxx.

◆ MarchingCubeCase07()

void TPainter3dAlgorithms::MarchingCubeCase07 ( Int_t & nnod,
Int_t & ntria,
Double_t xyz[52][3],
Double_t grad[52][3],
Int_t itria[48][3] )
protected

Consider case No 7.

Definition at line 4638 of file TPainter3dAlgorithms.cxx.

◆ MarchingCubeCase10()

void TPainter3dAlgorithms::MarchingCubeCase10 ( Int_t & nnod,
Int_t & ntria,
Double_t xyz[52][3],
Double_t grad[52][3],
Int_t itria[48][3] )
protected

Consider case No 10.

Definition at line 4727 of file TPainter3dAlgorithms.cxx.

◆ MarchingCubeCase12()

void TPainter3dAlgorithms::MarchingCubeCase12 ( Int_t & nnod,
Int_t & ntria,
Double_t xyz[52][3],
Double_t grad[52][3],
Int_t itria[48][3] )
protected

Consider case No 12.

Definition at line 4792 of file TPainter3dAlgorithms.cxx.

◆ MarchingCubeCase13()

void TPainter3dAlgorithms::MarchingCubeCase13 ( Int_t & nnod,
Int_t & ntria,
Double_t xyz[52][3],
Double_t grad[52][3],
Int_t itria[48][3] )
protected

Consider case No 13.

Definition at line 4857 of file TPainter3dAlgorithms.cxx.

◆ MarchingCubeFindNodes()

void TPainter3dAlgorithms::MarchingCubeFindNodes ( Int_t nnod,
Int_t * ie,
Double_t xyz[52][3],
Double_t grad[52][3] )
protected

Find nodes and normales.

Parameters
[in]nnodnumber of nodes
[in]ieedges which have section node
[out]xyznodes
[out]gradode normales (not normalized)

Definition at line 5138 of file TPainter3dAlgorithms.cxx.

◆ MarchingCubeMiddlePoint()

void TPainter3dAlgorithms::MarchingCubeMiddlePoint ( Int_t nnod,
Double_t xyz[52][3],
Double_t grad[52][3],
Int_t it[][3],
Double_t * pxyz,
Double_t * pgrad )
protected

Find middle point of a polygon.

Parameters
[in]nnodnumber of nodes in the polygon
[in]xyznode coordinates
[in]gradnode normales
[in]itdivision of the polygons into triangles
[out]pxyzmiddle point coordinates
[out]pgradmiddle point normale

Definition at line 5032 of file TPainter3dAlgorithms.cxx.

◆ MarchingCubeSetTriangles()

void TPainter3dAlgorithms::MarchingCubeSetTriangles ( Int_t ntria,
Int_t it[][3],
Int_t itria[48][3] )
protected

Set triangles (if parameter IALL=1, all edges will be visible)

Parameters
[in]ntrianumber of triangles
[in]ittriangles
[out]itriatriangles

Definition at line 5008 of file TPainter3dAlgorithms.cxx.

◆ MarchingCubeSurfacePenetration()

void TPainter3dAlgorithms::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 )
protected

Check for surface penetration ("bottle neck")

Parameters
[in]a00,a10,a11,a01vertex values for 1st face
[in]b00,b10,b11,b01vertex values for opposite face
[out]irep1,2: there is surface penetration, 0: there is not surface penetration

Definition at line 5066 of file TPainter3dAlgorithms.cxx.

◆ ModifyScreen()

void TPainter3dAlgorithms::ModifyScreen ( Double_t * r1,
Double_t * r2 )

Modify SCREEN.

Parameters
[in]r11-st point of the line
[in]r22-nd point of the line

Definition at line 3129 of file TPainter3dAlgorithms.cxx.

◆ SetColorDark()

void TPainter3dAlgorithms::SetColorDark ( Color_t color,
Int_t n = 0 )

Store dark color for stack number n.

Definition at line 3208 of file TPainter3dAlgorithms.cxx.

◆ SetColorMain()

void TPainter3dAlgorithms::SetColorMain ( Color_t color,
Int_t n = 0 )

Store color for stack number n.

Definition at line 3218 of file TPainter3dAlgorithms.cxx.

◆ SetDrawFace()

void TPainter3dAlgorithms::SetDrawFace ( DrawFaceFunc_t pointer)

Store pointer to current algorithm to draw faces.

Definition at line 3184 of file TPainter3dAlgorithms.cxx.

◆ SetEdgeAtt()

void TPainter3dAlgorithms::SetEdgeAtt ( Color_t color = 1,
Style_t style = 1,
Width_t width = 1,
Int_t n = 0 )

Definition at line 3227 of file TPainter3dAlgorithms.cxx.

◆ SetIsoSurfaceParameters()

void TPainter3dAlgorithms::SetIsoSurfaceParameters ( Double_t fmin,
Double_t fmax,
Int_t ncolor,
Int_t ic1,
Int_t ic2,
Int_t ic3 )
inline

Definition at line 88 of file TPainter3dAlgorithms.h.

◆ SetLegoFunction()

void TPainter3dAlgorithms::SetLegoFunction ( LegoFunc_t pointer)

Store pointer to current lego function.

Definition at line 3192 of file TPainter3dAlgorithms.cxx.

◆ SetMesh()

void TPainter3dAlgorithms::SetMesh ( Int_t mesh = 1)
inline

Definition at line 90 of file TPainter3dAlgorithms.h.

◆ SetSurfaceFunction()

void TPainter3dAlgorithms::SetSurfaceFunction ( SurfaceFunc_t pointer)

Store pointer to current surface function.

Definition at line 3200 of file TPainter3dAlgorithms.cxx.

◆ SideVisibilityDecode()

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.

Parameters
[in]valencoded value
[out]iv1,iv2,iv3,iv4,iv5,iv6visibility of the sides
[out]irincrement along R

Definition at line 3244 of file TPainter3dAlgorithms.cxx.

◆ SideVisibilityEncode()

void TPainter3dAlgorithms::SideVisibilityEncode ( Int_t iopt,
Double_t phi1,
Double_t phi2,
Double_t & val )

Encode side visibilities and order along R for sector.

Parameters
[in]ioptoptions: 1: from BACK to FRONT 'BF', 2: from FRONT to BACK 'FB'
[in]phi11st phi of sector
[in]phi22nd phi of sector
[out]valencoded value

Definition at line 3276 of file TPainter3dAlgorithms.cxx.

◆ Spectrum()

void TPainter3dAlgorithms::Spectrum ( Int_t nl,
Double_t fmin,
Double_t fmax,
Int_t ic,
Int_t idc,
Int_t & irep )

Set Spectrum.

Parameters
[in]nlnumber of levels
[in]fminMIN function value
[in]fmaxMAX function value
[in]icinitial color index (for 1st level)
[in]idccolor index increment
[out]irepreply (0 O.K., -1 error)

Definition at line 3314 of file TPainter3dAlgorithms.cxx.

◆ SurfaceCartesian()

void TPainter3dAlgorithms::SurfaceCartesian ( Double_t ang,
Int_t nx,
Int_t ny,
const char * chopt )

Draw surface in cartesian coordinate system.

Parameters
[in]angangle between X ang Y (not used in this method)
[in]nxnumber of steps along X
[in]nynumber of steps along Y
[in]choptspecific options
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 3370 of file TPainter3dAlgorithms.cxx.

◆ SurfaceCylindrical()

void TPainter3dAlgorithms::SurfaceCylindrical ( Int_t iordr,
Int_t na,
Int_t nb,
const char * chopt )

Draw surface in cylindrical coordinates.

Parameters
[in]iordrorder of variables (0 - Z,PHI; 1 - PHI,Z)
[in]nanumber of steps along 1st variable
[in]nbnumber of steps along 2nd variable
[in]choptspecific options
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 3689 of file TPainter3dAlgorithms.cxx.

◆ SurfaceFunction()

void TPainter3dAlgorithms::SurfaceFunction ( Int_t ia,
Int_t ib,
Double_t * f,
Double_t * t )

Service function for Surfaces.

Definition at line 3441 of file TPainter3dAlgorithms.cxx.

◆ SurfacePolar()

void TPainter3dAlgorithms::SurfacePolar ( Int_t iordr,
Int_t na,
Int_t nb,
const char * chopt )

Draw surface in polar coordinates.

Parameters
[in]iordrorder of variables (0 - R,PHI, 1 - PHI,R)
[in]nanumber of steps along 1st variable
[in]nbnumber of steps along 2nd variable
[in]choptspecific options
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 3563 of file TPainter3dAlgorithms.cxx.

◆ SurfaceProperty()

void TPainter3dAlgorithms::SurfaceProperty ( Double_t qqa,
Double_t qqd,
Double_t qqs,
Int_t nnqs,
Int_t & irep )

Set surface property coefficients.

Parameters
[in]qqadiffusion coefficient for diffused light [0.,1.]
[in]qqddiffusion coefficient for direct light [0.,1.]
[in]qqsdiffusion coefficient for reflected light [0.,1.]
[in]nnqspower coefficient for reflected light (.GE.1)

Lightness model formula: Y = YD*QA + > YLi*(QD*cosNi+QS*cosRi)

Parameters
[out]irepreply (0 - O.K, -1 error)

Definition at line 3975 of file TPainter3dAlgorithms.cxx.

◆ SurfaceSpherical()

void TPainter3dAlgorithms::SurfaceSpherical ( Int_t ipsdr,
Int_t iordr,
Int_t na,
Int_t nb,
const char * chopt )

Draw surface in spheric coordinates.

Parameters
[in]ipsdrpseudo-rapidity flag
[in]iordrorder of variables (0 - THETA,PHI; 1 - PHI,THETA)
[in]nanumber of steps along 1st variable
[in]nbnumber of steps along 2nd variable
[in]choptspecific options
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 3811 of file TPainter3dAlgorithms.cxx.

◆ TestEdge()

void TPainter3dAlgorithms::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 )
protected

Test edge against face (triangle)

Parameters
[in]delprecision
[in]xyznodes
[in]i11-st node of edge
[in]i22-nd node of edge
[in]ifacetriangular face
[in]abcdface plane
[out]irep1: edge under face, 0: no decision, +1: edge before face

Definition at line 5365 of file TPainter3dAlgorithms.cxx.

◆ ZDepth()

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.

Parameters
[in]xyznodes
[in]nfacenumber of triangular faces
[in]ifacefaces (triangles)
[in]dfacearray for min-max scopes
[in]abcdarray for face plane equations
[out]iorderface order

Definition at line 5172 of file TPainter3dAlgorithms.cxx.

Member Data Documentation

◆ fAphi

std::vector<Double_t> TPainter3dAlgorithms::fAphi
private

Definition at line 33 of file TPainter3dAlgorithms.h.

◆ fColorBottom

Int_t TPainter3dAlgorithms::fColorBottom
private

Definition at line 39 of file TPainter3dAlgorithms.h.

◆ fColorDark

std::vector<Int_t> TPainter3dAlgorithms::fColorDark
private

Definition at line 37 of file TPainter3dAlgorithms.h.

◆ fColorLevel

Int_t TPainter3dAlgorithms::fColorLevel[NumOfColorLevels+2]
private

Definition at line 117 of file TPainter3dAlgorithms.h.

◆ fColorMain

std::vector<Int_t> TPainter3dAlgorithms::fColorMain
private

Definition at line 36 of file TPainter3dAlgorithms.h.

◆ fColorTop

Int_t TPainter3dAlgorithms::fColorTop
private

Definition at line 38 of file TPainter3dAlgorithms.h.

◆ fD

Double_t TPainter3dAlgorithms::fD[NumOfSlices *2]
private

Definition at line 161 of file TPainter3dAlgorithms.h.

◆ fDrawFace

DrawFaceFunc_t TPainter3dAlgorithms::fDrawFace
private

Pointer to face drawing function.

Definition at line 59 of file TPainter3dAlgorithms.h.

◆ fDX

Double_t TPainter3dAlgorithms::fDX
private

Definition at line 155 of file TPainter3dAlgorithms.h.

◆ fDXrast

Double_t TPainter3dAlgorithms::fDXrast
private

X size.

Definition at line 176 of file TPainter3dAlgorithms.h.

◆ fDYrast

Double_t TPainter3dAlgorithms::fDYrast
private

Y size.

Definition at line 177 of file TPainter3dAlgorithms.h.

◆ fEdgeColor

std::vector<Int_t> TPainter3dAlgorithms::fEdgeColor
private

Definition at line 40 of file TPainter3dAlgorithms.h.

◆ fEdgeIdx

Int_t TPainter3dAlgorithms::fEdgeIdx
private

Definition at line 43 of file TPainter3dAlgorithms.h.

◆ fEdgeStyle

std::vector<Int_t> TPainter3dAlgorithms::fEdgeStyle
private

Definition at line 41 of file TPainter3dAlgorithms.h.

◆ fEdgeWidth

std::vector<Int_t> TPainter3dAlgorithms::fEdgeWidth
private

Definition at line 42 of file TPainter3dAlgorithms.h.

◆ fF8

Double_t TPainter3dAlgorithms::fF8[8]
private

Function values.

Definition at line 208 of file TPainter3dAlgorithms.h.

◆ fFmax

Double_t TPainter3dAlgorithms::fFmax
private

IsoSurface maximum function value.

Definition at line 47 of file TPainter3dAlgorithms.h.

◆ fFmin

Double_t TPainter3dAlgorithms::fFmin
private

IsoSurface minimum function value.

Definition at line 46 of file TPainter3dAlgorithms.h.

◆ fFunLevel

Double_t TPainter3dAlgorithms::fFunLevel[NumOfColorLevels+1]
private

Definition at line 116 of file TPainter3dAlgorithms.h.

◆ fG8

Double_t TPainter3dAlgorithms::fG8[8][3]
private

Function gradients.

Definition at line 209 of file TPainter3dAlgorithms.h.

◆ fIc1

Int_t TPainter3dAlgorithms::fIc1
private

Base colour for the 1st Iso Surface.

Definition at line 49 of file TPainter3dAlgorithms.h.

◆ fIc2

Int_t TPainter3dAlgorithms::fIc2
private

Base colour for the 2nd Iso Surface.

Definition at line 50 of file TPainter3dAlgorithms.h.

◆ fIc3

Int_t TPainter3dAlgorithms::fIc3
private

Base colour for the 3rd Iso Surface.

Definition at line 51 of file TPainter3dAlgorithms.h.

◆ fIfrast

Int_t TPainter3dAlgorithms::fIfrast
private

Flag, if it not zero them the algorithm is off.

Definition at line 180 of file TPainter3dAlgorithms.h.

◆ fJmask

Int_t TPainter3dAlgorithms::fJmask[30]
private

Indices of subsets of n-bit masks (n is from 1 to 30)

Definition at line 182 of file TPainter3dAlgorithms.h.

◆ fLegoFunction

LegoFunc_t TPainter3dAlgorithms::fLegoFunction
private

Pointer to lego function.

Definition at line 60 of file TPainter3dAlgorithms.h.

◆ fLevelLine

Int_t TPainter3dAlgorithms::fLevelLine[NumOfLevelLines]
private

Definition at line 121 of file TPainter3dAlgorithms.h.

◆ fLoff

Int_t TPainter3dAlgorithms::fLoff
private

Definition at line 134 of file TPainter3dAlgorithms.h.

◆ fMask

Int_t TPainter3dAlgorithms::fMask[465]
private

Set of masks (30+29+28+...+1)=465.

Definition at line 183 of file TPainter3dAlgorithms.h.

◆ fMesh

Int_t TPainter3dAlgorithms::fMesh
private

(=1 if mesh to draw, o otherwise)

Definition at line 44 of file TPainter3dAlgorithms.h.

◆ fNaphi

Int_t TPainter3dAlgorithms::fNaphi
private

Size of fAphi.

Definition at line 34 of file TPainter3dAlgorithms.h.

◆ fNcolor

Int_t TPainter3dAlgorithms::fNcolor
private

Number of colours per Iso surface.

Definition at line 48 of file TPainter3dAlgorithms.h.

◆ fNlevel

Int_t TPainter3dAlgorithms::fNlevel
private

Definition at line 115 of file TPainter3dAlgorithms.h.

◆ fNlines

Int_t TPainter3dAlgorithms::fNlines
private

Definition at line 120 of file TPainter3dAlgorithms.h.

◆ fNqs

Int_t TPainter3dAlgorithms::fNqs
private

Definition at line 141 of file TPainter3dAlgorithms.h.

◆ fNStack

Int_t TPainter3dAlgorithms::fNStack
private

Number of histograms in the stack to be painted.

Definition at line 45 of file TPainter3dAlgorithms.h.

◆ fNT

Int_t TPainter3dAlgorithms::fNT
private

Definition at line 156 of file TPainter3dAlgorithms.h.

◆ fNxrast

Int_t TPainter3dAlgorithms::fNxrast
private

Number of pixels in x.

Definition at line 178 of file TPainter3dAlgorithms.h.

◆ fNyrast

Int_t TPainter3dAlgorithms::fNyrast
private

Number of pixels in y.

Definition at line 179 of file TPainter3dAlgorithms.h.

◆ fP8

Double_t TPainter3dAlgorithms::fP8[8][3]
private

Vertices.

Definition at line 207 of file TPainter3dAlgorithms.h.

◆ fPlines

Double_t TPainter3dAlgorithms::fPlines[NumOfLevelLines *6]
private

Definition at line 122 of file TPainter3dAlgorithms.h.

◆ fQA

Double_t TPainter3dAlgorithms::fQA
private

Definition at line 138 of file TPainter3dAlgorithms.h.

◆ fQD

Double_t TPainter3dAlgorithms::fQD
private

Definition at line 139 of file TPainter3dAlgorithms.h.

◆ fQS

Double_t TPainter3dAlgorithms::fQS
private

Definition at line 140 of file TPainter3dAlgorithms.h.

◆ fRaster

std::vector<Int_t> TPainter3dAlgorithms::fRaster
private

Pointer to raster buffer.

Definition at line 181 of file TPainter3dAlgorithms.h.

◆ fRmax

Double_t TPainter3dAlgorithms::fRmax[3]
private

Upper limits of lego.

Definition at line 32 of file TPainter3dAlgorithms.h.

◆ fRmin

Double_t TPainter3dAlgorithms::fRmin[3]
private

Lower limits of lego.

Definition at line 31 of file TPainter3dAlgorithms.h.

◆ fSurfaceFunction

SurfaceFunc_t TPainter3dAlgorithms::fSurfaceFunction
private

Pointer to surface function.

Definition at line 61 of file TPainter3dAlgorithms.h.

◆ fSystem

Int_t TPainter3dAlgorithms::fSystem
private

Coordinate system.

Definition at line 35 of file TPainter3dAlgorithms.h.

◆ fT

Double_t TPainter3dAlgorithms::fT[MaxNT *2]
private

Definition at line 157 of file TPainter3dAlgorithms.h.

◆ fU

Double_t TPainter3dAlgorithms::fU[NumOfSlices *2]
private

Definition at line 160 of file TPainter3dAlgorithms.h.

◆ fVls

Double_t TPainter3dAlgorithms::fVls[NumOfLights *3]
private

Definition at line 137 of file TPainter3dAlgorithms.h.

◆ fX0

Double_t TPainter3dAlgorithms::fX0
private

Definition at line 154 of file TPainter3dAlgorithms.h.

◆ fXrast

Double_t TPainter3dAlgorithms::fXrast
private

Minimal x.

Definition at line 174 of file TPainter3dAlgorithms.h.

◆ fYdl

Double_t TPainter3dAlgorithms::fYdl
private

Definition at line 135 of file TPainter3dAlgorithms.h.

◆ fYls

Double_t TPainter3dAlgorithms::fYls[NumOfLights]
private

Definition at line 136 of file TPainter3dAlgorithms.h.

◆ fYrast

Double_t TPainter3dAlgorithms::fYrast
private

Minimal y.

Definition at line 175 of file TPainter3dAlgorithms.h.

◆ MaxNT

const Int_t TPainter3dAlgorithms::MaxNT = 100
staticprivate

Definition at line 153 of file TPainter3dAlgorithms.h.

◆ NumOfColorLevels

const Int_t TPainter3dAlgorithms::NumOfColorLevels = 256
staticprivate

Definition at line 114 of file TPainter3dAlgorithms.h.

◆ NumOfLevelLines

const Int_t TPainter3dAlgorithms::NumOfLevelLines = 200
staticprivate

Definition at line 119 of file TPainter3dAlgorithms.h.

◆ NumOfLights

const Int_t TPainter3dAlgorithms::NumOfLights = 4
staticprivate

Definition at line 133 of file TPainter3dAlgorithms.h.

◆ NumOfSlices

const Int_t TPainter3dAlgorithms::NumOfSlices = 2000
staticprivate

Definition at line 159 of file TPainter3dAlgorithms.h.

  • hist/histpainter/src/TPainter3dAlgorithms.h
  • hist/histpainter/src/TPainter3dAlgorithms.cxx