Logo ROOT  
Reference Guide
TPainter3dAlgorithms Class Reference

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 29 of file TPainter3dAlgorithms.h.

Public Types

typedef void(TPainter3dAlgorithms::* DrawFaceFunc_t) (Int_t *, Double_t *, Int_t, Int_t *, Double_t *)
 Pointer to the 3D function to be paint. More...
 
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 Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = BIT(0) , kOverwrite = BIT(1) , kWriteDelete = BIT(2) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }
 
enum  EStatusBits {
  kCanDelete = BIT(0) , kMustCleanup = BIT(3) , kIsReferenced = BIT(4) , kHasUUID = BIT(5) ,
  kCannotPick = BIT(6) , kNoContextMenu = BIT(8) , kInvalidObject = BIT(13)
}
 

Public Member Functions

 TPainter3dAlgorithms ()
 pointer to surface function More...
 
 TPainter3dAlgorithms (Double_t *rmin, Double_t *rmax, Int_t system=1)
 Normal default constructor. More...
 
virtual ~TPainter3dAlgorithms ()
 Lego default destructor. More...
 
void BackBox (Double_t ang)
 Draw back surfaces of surrounding box. More...
 
void ClearRaster ()
 Clear screen. More...
 
void ColorFunction (Int_t nl, Double_t *fl, Int_t *icl, Int_t &irep)
 Set correspondence between function and color levels. More...
 
void DefineGridLevels (Int_t ndivz)
 Define the grid levels drawn in the background of surface and lego plots. More...
 
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. More...
 
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) More...
 
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) More...
 
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) More...
 
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) More...
 
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) More...
 
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) More...
 
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) More...
 
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) More...
 
void DrawLevelLines (Int_t *icodes, Double_t *xyz, Int_t np, Int_t *iface, Double_t *tt)
 Draw level lines without hidden line removal. More...
 
void FillPolygon (Int_t n, Double_t *p, Double_t *f)
 Fill polygon with function values at vertexes. More...
 
void FillPolygonBorder (Int_t nn, Double_t *xy)
 Fill a polygon including border ("RASTER SCREEN") More...
 
void FindLevelLines (Int_t np, Double_t *f, Double_t *t)
 Find level lines for face. More...
 
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 More...
 
void FindVisibleDraw (Double_t *r1, Double_t *r2)
 Find visible parts of line (draw line) More...
 
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") More...
 
void FrontBox (Double_t ang)
 Draw front surfaces of surrounding box & axes. More...
 
void GouraudFunction (Int_t ia, Int_t ib, Double_t *f, Double_t *t)
 Find part of surface with luminosity in the corners. More...
 
void ImplicitFunction (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". More...
 
void InitMoveScreen (Double_t xmin, Double_t xmax)
 Initialize "MOVING SCREEN" method. More...
 
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) More...
 
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. More...
 
void LegoCartesian (Double_t ang, Int_t nx, Int_t ny, const char *chopt)
 Draw stack of lego-plots in cartesian coordinates. More...
 
void LegoCylindrical (Int_t iordr, Int_t na, Int_t nb, const char *chopt)
 Draw stack of lego-plots in cylindrical coordinates. More...
 
void LegoFunction (Int_t ia, Int_t ib, Int_t &nv, Double_t *ab, Double_t *vv, Double_t *t)
 Service function for Legos. More...
 
void LegoPolar (Int_t iordr, Int_t na, Int_t nb, const char *chopt)
 Draw stack of lego-plots in polar coordinates. More...
 
void LegoSpherical (Int_t ipsdr, Int_t iordr, Int_t na, Int_t nb, const char *chopt)
 Draw stack of lego-plots spheric coordinates. More...
 
void LightSource (Int_t nl, Double_t yl, Double_t xscr, Double_t yscr, Double_t zscr, Int_t &irep)
 Set light source. More...
 
void Luminosity (Double_t *anorm, Double_t &flum)
 Find surface luminosity at given point. More...
 
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. More...
 
void ModifyScreen (Double_t *r1, Double_t *r2)
 Modify SCREEN. More...
 
void SetColorDark (Color_t color, Int_t n=0)
 Store dark color for stack number n. More...
 
void SetColorMain (Color_t color, Int_t n=0)
 Store color for stack number n. More...
 
void SetDrawFace (DrawFaceFunc_t pointer)
 Store pointer to current algorithm to draw faces. More...
 
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. More...
 
void SetMesh (Int_t mesh=1)
 
void SetSurfaceFunction (SurfaceFunc_t pointer)
 Store pointer to current surface function. More...
 
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. More...
 
void SideVisibilityEncode (Int_t iopt, Double_t phi1, Double_t phi2, Double_t &val)
 Encode side visibilities and order along R for sector. More...
 
void Spectrum (Int_t nl, Double_t fmin, Double_t fmax, Int_t ic, Int_t idc, Int_t &irep)
 Set Spectrum. More...
 
void SurfaceCartesian (Double_t ang, Int_t nx, Int_t ny, const char *chopt)
 Draw surface in cartesian coordinate system. More...
 
void SurfaceCylindrical (Int_t iordr, Int_t na, Int_t nb, const char *chopt)
 Draw surface in cylindrical coordinates. More...
 
void SurfaceFunction (Int_t ia, Int_t ib, Double_t *f, Double_t *t)
 Service function for Surfaces. More...
 
void SurfacePolar (Int_t iordr, Int_t na, Int_t nb, const char *chopt)
 Draw surface in polar coordinates. More...
 
void SurfaceProperty (Double_t qqa, Double_t qqd, Double_t qqs, Int_t nnqs, Int_t &irep)
 Set surface property coefficients. More...
 
void SurfaceSpherical (Int_t ipsdr, Int_t iordr, Int_t na, Int_t nb, const char *chopt)
 Draw surface in spheric coordinates. More...
 
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. More...
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor. More...
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
virtual ~TObject ()
 TObject destructor. More...
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract. More...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action. More...
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Clear (Option_t *="")
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility. More...
 
virtual Int_t Compare (const TObject *obj) const
 Compare abstract method. More...
 
virtual void Copy (TObject &object) const
 Copy this to obj. More...
 
virtual void Delete (Option_t *option="")
 Delete this object. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad). More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 Execute method on this object with the given parameter string, e.g. More...
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray. More...
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py). More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Option_tGetOption () const
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. More...
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. More...
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname". More...
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl. More...
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas. More...
 
void InvertBit (UInt_t f)
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
virtual Bool_t IsSortable () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
virtual void ls (Option_t *option="") const
 The ls function lists the contents of a class on stdout. More...
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More...
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual void Print (Option_t *option="") const
 This method must be overridden when a class wants to print itself. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list. More...
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out". More...
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object. More...
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory. More...
 
- Public Member Functions inherited from TAttLine
 TAttLine ()
 AttLine default constructor. More...
 
 TAttLine (Color_t lcolor, Style_t lstyle, Width_t lwidth)
 AttLine normal constructor. More...
 
virtual ~TAttLine ()
 AttLine destructor. More...
 
void Copy (TAttLine &attline) const
 Copy this line attributes to a new TAttLine. More...
 
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. More...
 
virtual Color_t GetLineColor () const
 Return the line color. More...
 
virtual Style_t GetLineStyle () const
 Return the line style. More...
 
virtual Width_t GetLineWidth () const
 Return the line width. More...
 
virtual void Modify ()
 Change current line attributes if necessary. More...
 
virtual void ResetAttLine (Option_t *option="")
 Reset this line attributes to default values. More...
 
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. More...
 
virtual void SetLineAttributes ()
 Invoke the DialogCanvas Line attributes. More...
 
virtual void SetLineColor (Color_t lcolor)
 Set the line color. More...
 
virtual void SetLineColorAlpha (Color_t lcolor, Float_t lalpha)
 Set a transparent line color. More...
 
virtual void SetLineStyle (Style_t lstyle)
 Set the line style. More...
 
virtual void SetLineWidth (Width_t lwidth)
 Set the line width. More...
 
- Public Member Functions inherited from TAttFill
 TAttFill ()
 AttFill default constructor. More...
 
 TAttFill (Color_t fcolor, Style_t fstyle)
 AttFill normal constructor. More...
 
virtual ~TAttFill ()
 AttFill destructor. More...
 
void Copy (TAttFill &attfill) const
 Copy this fill attributes to a new TAttFill. More...
 
virtual Color_t GetFillColor () const
 Return the fill area color. More...
 
virtual Style_t GetFillStyle () const
 Return the fill area style. More...
 
virtual Bool_t IsTransparent () const
 
virtual void Modify ()
 Change current fill area attributes if necessary. More...
 
virtual void ResetAttFill (Option_t *option="")
 Reset this fill attributes to default values. More...
 
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. More...
 
virtual void SetFillAttributes ()
 Invoke the DialogCanvas Fill attributes. More...
 
virtual void SetFillColor (Color_t fcolor)
 Set the fill area color. More...
 
virtual void SetFillColorAlpha (Color_t fcolor, Float_t falpha)
 Set a transparent fill color. More...
 
virtual void SetFillStyle (Style_t fstyle)
 Set the fill area style. More...
 

Static Public Member Functions

static void SetF3 (TF3 *f3)
 Static function Store pointer to current implicit function. More...
 
static void SetF3ClippingBoxOff ()
 Static function Set the implicit function clipping box "off". More...
 
static void SetF3ClippingBoxOn (Double_t xclip, Double_t yclip, Double_t zclip)
 Static function Set the implicit function clipping box "on" and define the clipping box. More...
 
- Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
 Return destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 

Protected Member Functions

void MarchingCubeCase00 (Int_t k1, Int_t k2, Int_t k3, Int_t k4, Int_t k5, Int_t k6, Int_t &nnod, Int_t &ntria, Double_t xyz[52][3], Double_t grad[52][3], Int_t itria[48][3])
 Consideration of trivial cases: 1,2,5,8,9,11,14. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
void MarchingCubeFindNodes (Int_t nnod, Int_t *ie, Double_t xyz[52][3], Double_t grad[52][3])
 Find nodes and normales. More...
 
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. More...
 
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) More...
 
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") More...
 
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) More...
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 
void MakeZombie ()
 

Private Attributes

Double_tfAphi
 Upper limits of lego. More...
 
Int_t fColorBottom
 
Int_tfColorDark
 
Int_t fColorLevel [NumOfColorLevels+2]
 
Int_tfColorMain
 Coordinate system. More...
 
Int_t fColorTop
 
Double_t fD [NumOfSlices *2]
 
DrawFaceFunc_t fDrawFace
 
Double_t fDX
 
Double_t fDXrast
 
Double_t fDYrast
 
Int_tfEdgeColor
 
Int_t fEdgeIdx
 
Int_tfEdgeStyle
 
Int_tfEdgeWidth
 
Double_t fF8 [8]
 
Double_t fFmax
 IsoSurface minimum function value. More...
 
Double_t fFmin
 Number of histograms in the stack to be painted. More...
 
Double_t fFunLevel [NumOfColorLevels+1]
 
Double_t fG8 [8][3]
 
Int_t fIc1
 Number of colours per Iso surface. More...
 
Int_t fIc2
 Base colour for the 1st Iso Surface. More...
 
Int_t fIc3
 Base colour for the 2nd Iso Surface. More...
 
Int_t fIfrast
 
Int_t fJmask [30]
 
LegoFunc_t fLegoFunction
 pointer to face drawing function More...
 
Int_t fLevelLine [NumOfLevelLines]
 
Int_t fLoff
 
Int_t fMask [465]
 
Int_t fMesh
 
Int_t fNaphi
 
Int_t fNcolor
 IsoSurface maximum function value. More...
 
Int_t fNlevel
 
Int_t fNlines
 
Int_t fNqs
 
Int_t fNStack
 (=1 if mesh to draw, o otherwise) More...
 
Int_t fNT
 
Int_t fNxrast
 
Int_t fNyrast
 
Double_t fP8 [8][3]
 
Double_t fPlines [NumOfLevelLines *6]
 
Double_t fQA
 
Double_t fQD
 
Double_t fQS
 
Int_tfRaster
 
Double_t fRmax [3]
 Lower limits of lego. More...
 
Double_t fRmin [3]
 
SurfaceFunc_t fSurfaceFunction
 pointer to lego function More...
 
Int_t fSystem
 Size of fAphi. More...
 
Double_t fT [MaxNT *2]
 
Double_t fU [NumOfSlices *2]
 
Double_t fVls [NumOfLights *3]
 
Double_t fX0
 
Double_t fXrast
 
Double_t fYdl
 
Double_t fYls [NumOfLights]
 
Double_t fYrast
 

Static Private Attributes

static TF3fgCurrentF3 = 0
 Clipping plane along Y. More...
 
static Int_t fgF3Clipping = 0
 Base colour for the 3rd Iso Surface. More...
 
static Double_t fgF3XClip = 0.
 Clipping box is off (0) or on (1) More...
 
static Double_t fgF3YClip = 0.
 Clipping plane along X. More...
 
static Double_t fgF3ZClip = 0.
 Clipping plane along Y. More...
 
static const Int_t MaxNT = 100
 
static const Int_t NumOfColorLevels = 256
 
static const Int_t NumOfLevelLines = 200
 
static const Int_t NumOfLights = 4
 
static const Int_t NumOfSlices = 2000
 

Additional Inherited Members

- Protected Attributes inherited from TAttLine
Color_t fLineColor
 Line color. More...
 
Style_t fLineStyle
 Line style. More...
 
Width_t fLineWidth
 Line width. More...
 
- Protected Attributes inherited from TAttFill
Color_t fFillColor
 Fill area color. More...
 
Style_t fFillStyle
 Fill area style. More...
 

#include <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 *)

Pointer to the 3D function to be paint.

Definition at line 62 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 63 of file TPainter3dAlgorithms.h.

◆ SurfaceFunc_t

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

Definition at line 64 of file TPainter3dAlgorithms.h.

Constructor & Destructor Documentation

◆ TPainter3dAlgorithms() [1/2]

TPainter3dAlgorithms::TPainter3dAlgorithms ( )

pointer to surface function

Lego default constructor.

Definition at line 81 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 161 of file TPainter3dAlgorithms.cxx.

◆ ~TPainter3dAlgorithms()

TPainter3dAlgorithms::~TPainter3dAlgorithms ( )
virtual

Lego default destructor.

Definition at line 250 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 268 of file TPainter3dAlgorithms.cxx.

◆ ClearRaster()

void TPainter3dAlgorithms::ClearRaster ( )

Clear screen.

Definition at line 359 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 375 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 418 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 5880 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 459 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 509 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 565 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 612 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 702 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 763 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 917 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 1006 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 847 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 1059 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 1136 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 1368 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 1431 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 1579 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 1748 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 312 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 1893 of file TPainter3dAlgorithms.cxx.

◆ ImplicitFunction()

void TPainter3dAlgorithms::ImplicitFunction ( 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]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
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 4156 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 2029 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 2052 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
  • chopt‘ = 'BF’ from BACK to FRONT
  • chopt‘ = 'FB’ from FRONT to BACK

Definition at line 5573 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
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 2265 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
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 2637 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 2093 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
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 2422 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
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 2858 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]xlintensity of the light source
[in]xscryscr zscr direction of the light (in respect of the screen)
[out]irepreply (0 - O.K, -1 error)

Definition at line 3139 of file TPainter3dAlgorithms.cxx.

◆ Luminosity()

void TPainter3dAlgorithms::Luminosity ( Double_t anorm,
Double_t flum 
)

Find surface luminosity at given point.

Parameters
[in]anormsurface normal at given point
[out]flumluminosity

Definition at line 3202 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 4439 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-k6edges intersected with iso-surface

Definition at line 4628 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 4671 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 4700 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 4728 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 4770 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 4859 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 4924 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 4989 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 5270 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 5164 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 5140 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]axxvertex values for 1st face
[in]bxxvertex values for opposite face
[out]irep1,2: there is surface penetration, 0: there is not surface penetration

Definition at line 5198 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 3249 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 3362 of file TPainter3dAlgorithms.cxx.

◆ SetColorMain()

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

Store color for stack number n.

Definition at line 3372 of file TPainter3dAlgorithms.cxx.

◆ SetDrawFace()

void TPainter3dAlgorithms::SetDrawFace ( DrawFaceFunc_t  pointer)

Store pointer to current algorithm to draw faces.

Definition at line 3305 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 3381 of file TPainter3dAlgorithms.cxx.

◆ SetF3()

void TPainter3dAlgorithms::SetF3 ( TF3 f3)
static

Static function Store pointer to current implicit function.

Definition at line 3330 of file TPainter3dAlgorithms.cxx.

◆ SetF3ClippingBoxOff()

void TPainter3dAlgorithms::SetF3ClippingBoxOff ( )
static

Static function Set the implicit function clipping box "off".

Definition at line 3339 of file TPainter3dAlgorithms.cxx.

◆ SetF3ClippingBoxOn()

void TPainter3dAlgorithms::SetF3ClippingBoxOn ( Double_t  xclip,
Double_t  yclip,
Double_t  zclip 
)
static

Static function Set the implicit function clipping box "on" and define the clipping box.

xclip, yclip and zclip is a point within the function range. All the function value having x<=xclip and y<=yclip and z>=zclip are clipped.

Definition at line 3350 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 96 of file TPainter3dAlgorithms.h.

◆ SetLegoFunction()

void TPainter3dAlgorithms::SetLegoFunction ( LegoFunc_t  pointer)

Store pointer to current lego function.

Definition at line 3313 of file TPainter3dAlgorithms.cxx.

◆ SetMesh()

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

Definition at line 98 of file TPainter3dAlgorithms.h.

◆ SetSurfaceFunction()

void TPainter3dAlgorithms::SetSurfaceFunction ( SurfaceFunc_t  pointer)

Store pointer to current surface function.

Definition at line 3321 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-iv6visibility of the sides
[out]irincrement along R

Definition at line 3398 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 3430 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 3469 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
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 3524 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
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 3840 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 3592 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
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 3713 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]nncspower 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 4129 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
  • chopt = 'BF' from BACK to FRONT
  • chopt = 'FB' from FRONT to BACK

Definition at line 3963 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 5497 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 5304 of file TPainter3dAlgorithms.cxx.

Member Data Documentation

◆ fAphi

Double_t* TPainter3dAlgorithms::fAphi
private

Upper limits of lego.

Definition at line 34 of file TPainter3dAlgorithms.h.

◆ fColorBottom

Int_t TPainter3dAlgorithms::fColorBottom
private

Definition at line 40 of file TPainter3dAlgorithms.h.

◆ fColorDark

Int_t* TPainter3dAlgorithms::fColorDark
private

Definition at line 38 of file TPainter3dAlgorithms.h.

◆ fColorLevel

Int_t TPainter3dAlgorithms::fColorLevel[NumOfColorLevels+2]
private

Definition at line 129 of file TPainter3dAlgorithms.h.

◆ fColorMain

Int_t* TPainter3dAlgorithms::fColorMain
private

Coordinate system.

Definition at line 37 of file TPainter3dAlgorithms.h.

◆ fColorTop

Int_t TPainter3dAlgorithms::fColorTop
private

Definition at line 39 of file TPainter3dAlgorithms.h.

◆ fD

Double_t TPainter3dAlgorithms::fD[NumOfSlices *2]
private

Definition at line 171 of file TPainter3dAlgorithms.h.

◆ fDrawFace

DrawFaceFunc_t TPainter3dAlgorithms::fDrawFace
private

Definition at line 67 of file TPainter3dAlgorithms.h.

◆ fDX

Double_t TPainter3dAlgorithms::fDX
private

Definition at line 165 of file TPainter3dAlgorithms.h.

◆ fDXrast

Double_t TPainter3dAlgorithms::fDXrast
private

Definition at line 185 of file TPainter3dAlgorithms.h.

◆ fDYrast

Double_t TPainter3dAlgorithms::fDYrast
private

Definition at line 186 of file TPainter3dAlgorithms.h.

◆ fEdgeColor

Int_t* TPainter3dAlgorithms::fEdgeColor
private

Definition at line 41 of file TPainter3dAlgorithms.h.

◆ fEdgeIdx

Int_t TPainter3dAlgorithms::fEdgeIdx
private

Definition at line 44 of file TPainter3dAlgorithms.h.

◆ fEdgeStyle

Int_t* TPainter3dAlgorithms::fEdgeStyle
private

Definition at line 42 of file TPainter3dAlgorithms.h.

◆ fEdgeWidth

Int_t* TPainter3dAlgorithms::fEdgeWidth
private

Definition at line 43 of file TPainter3dAlgorithms.h.

◆ fF8

Double_t TPainter3dAlgorithms::fF8[8]
private

Definition at line 215 of file TPainter3dAlgorithms.h.

◆ fFmax

Double_t TPainter3dAlgorithms::fFmax
private

IsoSurface minimum function value.

Definition at line 48 of file TPainter3dAlgorithms.h.

◆ fFmin

Double_t TPainter3dAlgorithms::fFmin
private

Number of histograms in the stack to be painted.

Definition at line 47 of file TPainter3dAlgorithms.h.

◆ fFunLevel

Double_t TPainter3dAlgorithms::fFunLevel[NumOfColorLevels+1]
private

Definition at line 128 of file TPainter3dAlgorithms.h.

◆ fG8

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

Definition at line 216 of file TPainter3dAlgorithms.h.

◆ fgCurrentF3

TF3 * TPainter3dAlgorithms::fgCurrentF3 = 0
staticprivate

Clipping plane along Y.

Definition at line 58 of file TPainter3dAlgorithms.h.

◆ fgF3Clipping

Int_t TPainter3dAlgorithms::fgF3Clipping = 0
staticprivate

Base colour for the 3rd Iso Surface.

Definition at line 54 of file TPainter3dAlgorithms.h.

◆ fgF3XClip

Double_t TPainter3dAlgorithms::fgF3XClip = 0.
staticprivate

Clipping box is off (0) or on (1)

Definition at line 55 of file TPainter3dAlgorithms.h.

◆ fgF3YClip

Double_t TPainter3dAlgorithms::fgF3YClip = 0.
staticprivate

Clipping plane along X.

Definition at line 56 of file TPainter3dAlgorithms.h.

◆ fgF3ZClip

Double_t TPainter3dAlgorithms::fgF3ZClip = 0.
staticprivate

Clipping plane along Y.

Definition at line 57 of file TPainter3dAlgorithms.h.

◆ fIc1

Int_t TPainter3dAlgorithms::fIc1
private

Number of colours per Iso surface.

Definition at line 50 of file TPainter3dAlgorithms.h.

◆ fIc2

Int_t TPainter3dAlgorithms::fIc2
private

Base colour for the 1st Iso Surface.

Definition at line 51 of file TPainter3dAlgorithms.h.

◆ fIc3

Int_t TPainter3dAlgorithms::fIc3
private

Base colour for the 2nd Iso Surface.

Definition at line 52 of file TPainter3dAlgorithms.h.

◆ fIfrast

Int_t TPainter3dAlgorithms::fIfrast
private

Definition at line 189 of file TPainter3dAlgorithms.h.

◆ fJmask

Int_t TPainter3dAlgorithms::fJmask[30]
private

Definition at line 191 of file TPainter3dAlgorithms.h.

◆ fLegoFunction

LegoFunc_t TPainter3dAlgorithms::fLegoFunction
private

pointer to face drawing function

Definition at line 68 of file TPainter3dAlgorithms.h.

◆ fLevelLine

Int_t TPainter3dAlgorithms::fLevelLine[NumOfLevelLines]
private

Definition at line 133 of file TPainter3dAlgorithms.h.

◆ fLoff

Int_t TPainter3dAlgorithms::fLoff
private

Definition at line 145 of file TPainter3dAlgorithms.h.

◆ fMask

Int_t TPainter3dAlgorithms::fMask[465]
private

Definition at line 192 of file TPainter3dAlgorithms.h.

◆ fMesh

Int_t TPainter3dAlgorithms::fMesh
private

Definition at line 45 of file TPainter3dAlgorithms.h.

◆ fNaphi

Int_t TPainter3dAlgorithms::fNaphi
private

Definition at line 35 of file TPainter3dAlgorithms.h.

◆ fNcolor

Int_t TPainter3dAlgorithms::fNcolor
private

IsoSurface maximum function value.

Definition at line 49 of file TPainter3dAlgorithms.h.

◆ fNlevel

Int_t TPainter3dAlgorithms::fNlevel
private

Definition at line 127 of file TPainter3dAlgorithms.h.

◆ fNlines

Int_t TPainter3dAlgorithms::fNlines
private

Definition at line 132 of file TPainter3dAlgorithms.h.

◆ fNqs

Int_t TPainter3dAlgorithms::fNqs
private

Definition at line 152 of file TPainter3dAlgorithms.h.

◆ fNStack

Int_t TPainter3dAlgorithms::fNStack
private

(=1 if mesh to draw, o otherwise)

Definition at line 46 of file TPainter3dAlgorithms.h.

◆ fNT

Int_t TPainter3dAlgorithms::fNT
private

Definition at line 166 of file TPainter3dAlgorithms.h.

◆ fNxrast

Int_t TPainter3dAlgorithms::fNxrast
private

Definition at line 187 of file TPainter3dAlgorithms.h.

◆ fNyrast

Int_t TPainter3dAlgorithms::fNyrast
private

Definition at line 188 of file TPainter3dAlgorithms.h.

◆ fP8

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

Definition at line 214 of file TPainter3dAlgorithms.h.

◆ fPlines

Double_t TPainter3dAlgorithms::fPlines[NumOfLevelLines *6]
private

Definition at line 134 of file TPainter3dAlgorithms.h.

◆ fQA

Double_t TPainter3dAlgorithms::fQA
private

Definition at line 149 of file TPainter3dAlgorithms.h.

◆ fQD

Double_t TPainter3dAlgorithms::fQD
private

Definition at line 150 of file TPainter3dAlgorithms.h.

◆ fQS

Double_t TPainter3dAlgorithms::fQS
private

Definition at line 151 of file TPainter3dAlgorithms.h.

◆ fRaster

Int_t* TPainter3dAlgorithms::fRaster
private

Definition at line 190 of file TPainter3dAlgorithms.h.

◆ fRmax

Double_t TPainter3dAlgorithms::fRmax[3]
private

Lower limits of lego.

Definition at line 33 of file TPainter3dAlgorithms.h.

◆ fRmin

Double_t TPainter3dAlgorithms::fRmin[3]
private

Definition at line 32 of file TPainter3dAlgorithms.h.

◆ fSurfaceFunction

SurfaceFunc_t TPainter3dAlgorithms::fSurfaceFunction
private

pointer to lego function

Definition at line 69 of file TPainter3dAlgorithms.h.

◆ fSystem

Int_t TPainter3dAlgorithms::fSystem
private

Size of fAphi.

Definition at line 36 of file TPainter3dAlgorithms.h.

◆ fT

Double_t TPainter3dAlgorithms::fT[MaxNT *2]
private

Definition at line 167 of file TPainter3dAlgorithms.h.

◆ fU

Double_t TPainter3dAlgorithms::fU[NumOfSlices *2]
private

Definition at line 170 of file TPainter3dAlgorithms.h.

◆ fVls

Double_t TPainter3dAlgorithms::fVls[NumOfLights *3]
private

Definition at line 148 of file TPainter3dAlgorithms.h.

◆ fX0

Double_t TPainter3dAlgorithms::fX0
private

Definition at line 164 of file TPainter3dAlgorithms.h.

◆ fXrast

Double_t TPainter3dAlgorithms::fXrast
private

Definition at line 183 of file TPainter3dAlgorithms.h.

◆ fYdl

Double_t TPainter3dAlgorithms::fYdl
private

Definition at line 146 of file TPainter3dAlgorithms.h.

◆ fYls

Double_t TPainter3dAlgorithms::fYls[NumOfLights]
private

Definition at line 147 of file TPainter3dAlgorithms.h.

◆ fYrast

Double_t TPainter3dAlgorithms::fYrast
private

Definition at line 184 of file TPainter3dAlgorithms.h.

◆ MaxNT

const Int_t TPainter3dAlgorithms::MaxNT = 100
staticprivate

Definition at line 163 of file TPainter3dAlgorithms.h.

◆ NumOfColorLevels

const Int_t TPainter3dAlgorithms::NumOfColorLevels = 256
staticprivate

Definition at line 126 of file TPainter3dAlgorithms.h.

◆ NumOfLevelLines

const Int_t TPainter3dAlgorithms::NumOfLevelLines = 200
staticprivate

Definition at line 131 of file TPainter3dAlgorithms.h.

◆ NumOfLights

const Int_t TPainter3dAlgorithms::NumOfLights = 4
staticprivate

Definition at line 144 of file TPainter3dAlgorithms.h.

◆ NumOfSlices

const Int_t TPainter3dAlgorithms::NumOfSlices = 2000
staticprivate

Definition at line 169 of file TPainter3dAlgorithms.h.

Libraries for TPainter3dAlgorithms:
[legend]

The documentation for this class was generated from the following files: