Logo ROOT  
Reference Guide
 
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 </home/sftnight/build/workspace/root-makedoc-v630/rootspi/rdoc/src/v6-30-00-patches/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