ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
TPainter3dAlgorithms Class Reference

The Legos and Surfaces painter class.

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 44 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 Types inherited from TObject
enum  EStatusBits {
  kCanDelete = BIT(0), kMustCleanup = BIT(3), kObjInCanvas = BIT(3), kIsReferenced = BIT(4),
  kHasUUID = BIT(5), kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13)
}
 
enum  { kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kBitMask = 0x00ffffff }
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 

Public Member Functions

 TPainter3dAlgorithms ()
 
 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 correspondance 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 correspondance 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 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 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 FindVisibleDraw (Double_t *r1, Double_t *r2)
 Find visible parts of line (draw line) More...
 
void FrontBox (Double_t ang)
 Draw forward faces 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 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 isosurfaces for a scalar function defined on a grid. 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 LegoCartesian (Double_t ang, Int_t nx, Int_t ny, const char *chopt)
 Draw stack of lego-plots in cartesian 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 LegoCylindrical (Int_t iordr, Int_t na, Int_t nb, const char *chopt)
 Draw stack of lego-plots in cylindrical 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 aproximating the isosurface F(x,y,z)=Fiso inside the cube. More...
 
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 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 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 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 MarchingCubeFindNodes (Int_t nnod, Int_t *ie, Double_t xyz[52][3], Double_t grad[52][3])
 Find nodes and normales. More...
 
void ModifyScreen (Double_t *r1, Double_t *r2)
 Modify SCREEN. More...
 
void SetDrawFace (DrawFaceFunc_t pointer)
 Store pointer to current algorithm to draw faces. More...
 
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 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 SetEdgeAtt (Color_t color=1, Style_t style=1, Width_t width=1, Int_t n=0)
 
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 SurfacePolar (Int_t iordr, Int_t na, Int_t nb, const char *chopt)
 Draw surface in polar coordinates. 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 SurfaceSpherical (Int_t ipsdr, Int_t iordr, Int_t na, Int_t nb, const char *chopt)
 Draw surface in spheric 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 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...
 
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 (const TObject &object)
 TObject copy ctor. More...
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual ~TObject ()
 TObject destructor. 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...
 
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 pad. More...
 
virtual void Dump () const
 Dump contents of object on stdout. 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 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 UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual Option_tGetOption () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual const char * GetTitle () const
 Returns title of object. 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...
 
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...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
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 IsSortable () const
 
Bool_t IsOnHeap () const
 
Bool_t IsZombie () const
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
virtual void ls (Option_t *option="") const
 The ls function lists the contents of a class on stdout. 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...
 
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...
 
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 UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. 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...
 
voidoperator new (size_t sz)
 
voidoperator new[] (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz, void *vp)
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
void SetBit (UInt_t f)
 
void ResetBit (UInt_t f)
 
Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
void InvertBit (UInt_t f)
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. 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...
 
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...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. 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
 
virtual Style_t GetLineStyle () const
 
virtual Width_t GetLineWidth () const
 
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)
 
virtual void SetLineColorAlpha (Color_t lcolor, Float_t lalpha)
 Set a transparent line color. More...
 
virtual void SetLineStyle (Style_t lstyle)
 
virtual void SetLineWidth (Width_t lwidth)
 
 ClassDef (TAttLine, 2)
 
- Public Member Functions inherited from TAttFill
 TAttFill ()
 
 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
 
virtual Style_t GetFillStyle () const
 
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)
 
virtual void SetFillColorAlpha (Color_t fcolor, Float_t falpha)
 Set a transparent fill color. More...
 
virtual void SetFillStyle (Style_t fstyle)
 

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 void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 

Private Attributes

Double_t fX0
 
Double_t fDX
 
Double_t fRmin [3]
 
Double_t fRmax [3]
 
Double_t fU [2000]
 
Double_t fD [2000]
 
Double_t fT [200]
 
Double_t fFunLevel [257]
 
Double_t fPlines [1200]
 
Double_t fAphi [183]
 
Double_t fYdl
 
Double_t fYls [4]
 
Double_t fVls [12]
 
Double_t fQA
 
Double_t fQD
 
Double_t fQS
 
Double_t fXrast
 
Double_t fYrast
 
Double_t fDXrast
 
Double_t fDYrast
 
Int_t fSystem
 
Int_t fNT
 
Int_t fNlevel
 
Int_t fColorLevel [258]
 
Int_tfColorMain
 
Int_tfColorDark
 
Int_t fColorTop
 
Int_t fColorBottom
 
Int_tfEdgeColor
 
Int_tfEdgeStyle
 
Int_tfEdgeWidth
 
Int_t fEdgeIdx
 
Int_t fMesh
 
Int_t fNlines
 
Int_t fLevelLine [200]
 
Int_t fLoff
 
Int_t fNqs
 
Int_t fNStack
 
Int_t fNxrast
 
Int_t fNyrast
 
Int_t fIfrast
 
Int_tfRaster
 
Int_t fJmask [30]
 
Int_t fMask [465]
 
Double_t fP8 [8][3]
 
Double_t fF8 [8]
 
Double_t fG8 [8][3]
 
Double_t fFmin
 
Double_t fFmax
 
Int_t fNcolor
 
Int_t fIc1
 
Int_t fIc2
 
Int_t fIc3
 
DrawFaceFunc_t fDrawFace
 
LegoFunc_t fLegoFunction
 
SurfaceFunc_t fSurfaceFunction
 

Static Private Attributes

static Int_t fgF3Clipping = 0
 
static Double_t fgF3XClip = 0.
 
static Double_t fgF3YClip = 0.
 
static Double_t fgF3ZClip = 0.
 
static TF3fgCurrentF3 = 0
 

Additional Inherited Members

- Protected Member Functions inherited from TObject
void MakeZombie ()
 
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 
- Protected Attributes inherited from TAttLine
Color_t fLineColor
 
Style_t fLineStyle
 
Width_t fLineWidth
 
- Protected Attributes inherited from TAttFill
Color_t fFillColor
 
Style_t fFillStyle
 

#include <TPainter3dAlgorithms.h>

Inheritance diagram for TPainter3dAlgorithms:
[legend]

Member Typedef Documentation

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

Definition at line 109 of file TPainter3dAlgorithms.h.

typedef void(TPainter3dAlgorithms::* TPainter3dAlgorithms::LegoFunc_t)(Int_t, Int_t, Int_t &, Double_t *, Double_t *, Double_t *)

Definition at line 110 of file TPainter3dAlgorithms.h.

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

Definition at line 111 of file TPainter3dAlgorithms.h.

Constructor & Destructor Documentation

TPainter3dAlgorithms::TPainter3dAlgorithms ( )
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 165 of file TPainter3dAlgorithms.cxx.

TPainter3dAlgorithms::~TPainter3dAlgorithms ( )
virtual

Lego default destructor.

Definition at line 254 of file TPainter3dAlgorithms.cxx.

Member Function Documentation

void TPainter3dAlgorithms::BackBox ( Double_t  ang)

Draw back surfaces of surrounding box.

Parameters
[in]angis the angle between X and Y axis

Definition at line 273 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::Paint2DErrors(), THistPainter::PaintH3Iso(), THistPainter::PaintLego(), THistPainter::PaintSurface(), THistPainter::PaintTF3(), and THistPainter::PaintTriangles().

void TPainter3dAlgorithms::ClearRaster ( )

Clear screen.

Definition at line 324 of file TPainter3dAlgorithms.cxx.

Referenced by InitRaster().

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

Set correspondance 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 341 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::DefineColorLevels().

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

Referenced by THistPainter::Paint2DErrors(), THistPainter::PaintH3Iso(), THistPainter::PaintLego(), THistPainter::PaintSurface(), THistPainter::PaintTF3(), and THistPainter::PaintTriangles().

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

Referenced by IsoSurface().

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]ifaceface
[in]tadditional function defined on this face (not used in this method)

Definition at line 424 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::PaintTF3().

void TPainter3dAlgorithms::DrawFaceMode2 ( Int_t icodes,
Double_t xyz,
Int_t  np,
Int_t iface,
Double_t t 
)

Draw face - 2nd option (fill in correspondance 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 498 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::PaintLego(), and THistPainter::PaintSurface().

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

Referenced by THistPainter::PaintLego().

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 (not used in this method)
[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 607 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::Paint2DErrors(), THistPainter::PaintH3Iso(), THistPainter::PaintLego(), THistPainter::PaintSurface(), THistPainter::PaintTF3(), and THistPainter::PaintTriangles().

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

Referenced by THistPainter::Paint2DErrors(), THistPainter::PaintH3Iso(), THistPainter::PaintLego(), THistPainter::PaintSurface(), THistPainter::PaintTF3(), and THistPainter::PaintTriangles().

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

Referenced by THistPainter::PaintSurface().

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 (not used in this method)
[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 856 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::PaintSurface().

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

Referenced by THistPainter::PaintLego().

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

Referenced by DrawFaceGouraudShaded(), and DrawFaceMode2().

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

Referenced by DrawFaceRaster1(), and DrawFaceRaster2().

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

Referenced by DrawFaceMove1(), DrawFaceMove3(), and DrawFaceRaster1().

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

Referenced by FillPolygon().

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

Referenced by DrawFaceMove1(), DrawFaceMove2(), and DrawFaceMove3().

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

Referenced by DrawFaceRaster1(), and DrawFaceRaster2().

void TPainter3dAlgorithms::FrontBox ( Double_t  ang)

Draw forward faces of surrounding box & axes.

angis the angle between X and Y axis

Definition at line 1877 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::Paint2DErrors(), THistPainter::PaintH3Iso(), THistPainter::PaintLego(), THistPainter::PaintSurface(), THistPainter::PaintTF3(), and THistPainter::PaintTriangles().

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

Referenced by THistPainter::PaintSurface().

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

Referenced by THistPainter::PaintTF3().

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

Initialize "MOVING SCREEN" method.

Parameters
[in]xminleft boundary
[in]xmaxright boundary

Definition at line 2055 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::Paint2DErrors(), THistPainter::PaintH3Iso(), THistPainter::PaintLego(), THistPainter::PaintSurface(), THistPainter::PaintTF3(), and THistPainter::PaintTriangles().

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

Referenced by THistPainter::PaintLego(), and THistPainter::PaintSurface().

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 isosurfaces for a scalar function defined on a grid.

Parameters
[in]nsnumber of isosurfaces
[in]sisosurface 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 5657 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::PaintH3Iso().

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

Referenced by THistPainter::PaintLego().

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

Referenced by THistPainter::PaintLego().

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

Referenced by THistPainter::PaintLego().

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

Referenced by THistPainter::PaintLego().

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

Referenced by THistPainter::PaintLego().

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

Referenced by THistPainter::PaintH3Iso(), and THistPainter::PaintSurface().

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

Referenced by GouraudFunction(), ImplicitFunction(), and IsoSurface().

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 aproximating the isosurface F(x,y,z)=Fiso inside the cube.

Parameters
[in]fisofunction value for isosurface
[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 4508 of file TPainter3dAlgorithms.cxx.

Referenced by ImplicitFunction(), and IsoSurface().

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

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

Parameters
[in]k1-k6edges intersected with isosurface

Definition at line 4698 of file TPainter3dAlgorithms.cxx.

Referenced by MarchingCube().

void TPainter3dAlgorithms::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.

Definition at line 4742 of file TPainter3dAlgorithms.cxx.

Referenced by MarchingCube().

void TPainter3dAlgorithms::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.

Definition at line 4772 of file TPainter3dAlgorithms.cxx.

Referenced by MarchingCube().

void TPainter3dAlgorithms::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.

Definition at line 4801 of file TPainter3dAlgorithms.cxx.

Referenced by MarchingCube().

void TPainter3dAlgorithms::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.

Definition at line 4844 of file TPainter3dAlgorithms.cxx.

Referenced by MarchingCube().

void TPainter3dAlgorithms::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.

Definition at line 4934 of file TPainter3dAlgorithms.cxx.

Referenced by MarchingCube().

void TPainter3dAlgorithms::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.

Definition at line 5000 of file TPainter3dAlgorithms.cxx.

Referenced by MarchingCube().

void TPainter3dAlgorithms::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.

Definition at line 5066 of file TPainter3dAlgorithms.cxx.

Referenced by MarchingCube().

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

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

Referenced by MarchingCubeCase00(), MarchingCubeCase03(), MarchingCubeCase04(), MarchingCubeCase06(), MarchingCubeCase07(), MarchingCubeCase10(), MarchingCubeCase12(), and MarchingCubeCase13().

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 
)

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

Referenced by MarchingCubeCase07(), MarchingCubeCase10(), MarchingCubeCase12(), and MarchingCubeCase13().

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

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

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

Definition at line 5218 of file TPainter3dAlgorithms.cxx.

Referenced by MarchingCubeCase00(), MarchingCubeCase03(), MarchingCubeCase04(), MarchingCubeCase06(), MarchingCubeCase07(), MarchingCubeCase10(), MarchingCubeCase12(), and MarchingCubeCase13().

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 
)

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

Referenced by MarchingCubeCase04(), MarchingCubeCase06(), MarchingCubeCase07(), MarchingCubeCase10(), MarchingCubeCase12(), and MarchingCubeCase13().

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

Referenced by DrawFaceMove1(), DrawFaceMove2(), and DrawFaceMove3().

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

Store dark color for stack number n.

Definition at line 3413 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::PaintLego().

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

Store color for stack number n.

Definition at line 3424 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::PaintLego().

void TPainter3dAlgorithms::SetDrawFace ( DrawFaceFunc_t  pointer)
void TPainter3dAlgorithms::SetEdgeAtt ( Color_t  color = 1,
Style_t  style = 1,
Width_t  width = 1,
Int_t  n = 0 
)
void TPainter3dAlgorithms::SetF3 ( TF3 f3)
static

Static function Store pointer to current implicit function.

Definition at line 3378 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::ProcessMessage().

void TPainter3dAlgorithms::SetF3ClippingBoxOff ( )
static

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

Definition at line 3388 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::ProcessMessage().

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

Referenced by THistPainter::ProcessMessage().

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

Referenced by THistPainter::PaintH3Iso().

void TPainter3dAlgorithms::SetLegoFunction ( LegoFunc_t  pointer)

Store pointer to current lego function.

Definition at line 3359 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::PaintLego().

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

Definition at line 171 of file TPainter3dAlgorithms.h.

Referenced by THistPainter::PaintLego(), and THistPainter::PaintSurface().

void TPainter3dAlgorithms::SetSurfaceFunction ( SurfaceFunc_t  pointer)

Store pointer to current surface function.

Definition at line 3368 of file TPainter3dAlgorithms.cxx.

Referenced by THistPainter::PaintSurface().

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

Referenced by LegoCylindrical(), and LegoPolar().

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

Referenced by LegoCylindrical(), and LegoPolar().

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

Referenced by DrawFaceGouraudShaded(), and THistPainter::PaintSurface().

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

Referenced by THistPainter::PaintSurface().

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

Referenced by THistPainter::PaintSurface().

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

Service function for Surfaces.

Definition at line 3669 of file TPainter3dAlgorithms.cxx.

Referenced by GouraudFunction(), and THistPainter::PaintSurface().

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

Referenced by THistPainter::PaintSurface().

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

Referenced by THistPainter::PaintH3Iso(), and THistPainter::PaintSurface().

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

Referenced by THistPainter::PaintSurface().

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 
)

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

Referenced by 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 5386 of file TPainter3dAlgorithms.cxx.

Referenced by ImplicitFunction(), and IsoSurface().

Member Data Documentation

Double_t TPainter3dAlgorithms::fAphi[183]
private
Int_t TPainter3dAlgorithms::fColorBottom
private
Int_t* TPainter3dAlgorithms::fColorDark
private
Int_t TPainter3dAlgorithms::fColorLevel[258]
private

Definition at line 70 of file TPainter3dAlgorithms.h.

Referenced by ColorFunction(), FillPolygon(), Spectrum(), and TPainter3dAlgorithms().

Int_t* TPainter3dAlgorithms::fColorMain
private
Int_t TPainter3dAlgorithms::fColorTop
private
Double_t TPainter3dAlgorithms::fD[2000]
private
DrawFaceFunc_t TPainter3dAlgorithms::fDrawFace
private
Double_t TPainter3dAlgorithms::fDX
private
Double_t TPainter3dAlgorithms::fDXrast
private
Double_t TPainter3dAlgorithms::fDYrast
private
Int_t* TPainter3dAlgorithms::fEdgeColor
private
Int_t TPainter3dAlgorithms::fEdgeIdx
private
Int_t* TPainter3dAlgorithms::fEdgeStyle
private
Int_t* TPainter3dAlgorithms::fEdgeWidth
private
Double_t TPainter3dAlgorithms::fF8[8]
private
Double_t TPainter3dAlgorithms::fFmax
private
Double_t TPainter3dAlgorithms::fFmin
private
Double_t TPainter3dAlgorithms::fFunLevel[257]
private
Double_t TPainter3dAlgorithms::fG8[8][3]
private

Definition at line 93 of file TPainter3dAlgorithms.h.

Referenced by MarchingCube(), MarchingCubeCase13(), and MarchingCubeFindNodes().

TF3 * TPainter3dAlgorithms::fgCurrentF3 = 0
staticprivate

Definition at line 105 of file TPainter3dAlgorithms.h.

Referenced by ImplicitFunction(), and SetF3().

Int_t TPainter3dAlgorithms::fgF3Clipping = 0
staticprivate
Double_t TPainter3dAlgorithms::fgF3XClip = 0.
staticprivate

Definition at line 102 of file TPainter3dAlgorithms.h.

Referenced by ImplicitFunction(), and SetF3ClippingBoxOn().

Double_t TPainter3dAlgorithms::fgF3YClip = 0.
staticprivate

Definition at line 103 of file TPainter3dAlgorithms.h.

Referenced by SetF3ClippingBoxOn().

Double_t TPainter3dAlgorithms::fgF3ZClip = 0.
staticprivate

Definition at line 104 of file TPainter3dAlgorithms.h.

Referenced by ImplicitFunction(), and SetF3ClippingBoxOn().

Int_t TPainter3dAlgorithms::fIc1
private
Int_t TPainter3dAlgorithms::fIc2
private
Int_t TPainter3dAlgorithms::fIc3
private
Int_t TPainter3dAlgorithms::fIfrast
private
Int_t TPainter3dAlgorithms::fJmask[30]
private

Definition at line 89 of file TPainter3dAlgorithms.h.

Referenced by FillPolygonBorder(), InitRaster(), and TPainter3dAlgorithms().

LegoFunc_t TPainter3dAlgorithms::fLegoFunction
private
Int_t TPainter3dAlgorithms::fLevelLine[200]
private

Definition at line 81 of file TPainter3dAlgorithms.h.

Referenced by FindLevelLines(), and TPainter3dAlgorithms().

Int_t TPainter3dAlgorithms::fLoff
private

Definition at line 82 of file TPainter3dAlgorithms.h.

Referenced by LightSource(), Luminosity(), and TPainter3dAlgorithms().

Int_t TPainter3dAlgorithms::fMask[465]
private
Int_t TPainter3dAlgorithms::fMesh
private

Definition at line 79 of file TPainter3dAlgorithms.h.

Referenced by DrawFaceMode2(), DrawFaceMode3(), SetMesh(), and TPainter3dAlgorithms().

Int_t TPainter3dAlgorithms::fNcolor
private
Int_t TPainter3dAlgorithms::fNlevel
private
Int_t TPainter3dAlgorithms::fNlines
private
Int_t TPainter3dAlgorithms::fNqs
private

Definition at line 83 of file TPainter3dAlgorithms.h.

Referenced by Luminosity(), SurfaceProperty(), and TPainter3dAlgorithms().

Int_t TPainter3dAlgorithms::fNStack
private
Int_t TPainter3dAlgorithms::fNT
private
Int_t TPainter3dAlgorithms::fNxrast
private
Int_t TPainter3dAlgorithms::fNyrast
private
Double_t TPainter3dAlgorithms::fP8[8][3]
private

Definition at line 91 of file TPainter3dAlgorithms.h.

Referenced by MarchingCube(), MarchingCubeCase13(), and MarchingCubeFindNodes().

Double_t TPainter3dAlgorithms::fPlines[1200]
private
Double_t TPainter3dAlgorithms::fQA
private

Definition at line 60 of file TPainter3dAlgorithms.h.

Referenced by Luminosity(), SurfaceProperty(), and TPainter3dAlgorithms().

Double_t TPainter3dAlgorithms::fQD
private

Definition at line 61 of file TPainter3dAlgorithms.h.

Referenced by Luminosity(), SurfaceProperty(), and TPainter3dAlgorithms().

Double_t TPainter3dAlgorithms::fQS
private

Definition at line 62 of file TPainter3dAlgorithms.h.

Referenced by Luminosity(), SurfaceProperty(), and TPainter3dAlgorithms().

Int_t* TPainter3dAlgorithms::fRaster
private
Double_t TPainter3dAlgorithms::fRmax[3]
private

Definition at line 50 of file TPainter3dAlgorithms.h.

Referenced by SurfaceFunction(), and TPainter3dAlgorithms().

Double_t TPainter3dAlgorithms::fRmin[3]
private

Definition at line 49 of file TPainter3dAlgorithms.h.

Referenced by TPainter3dAlgorithms().

SurfaceFunc_t TPainter3dAlgorithms::fSurfaceFunction
private
Int_t TPainter3dAlgorithms::fSystem
private

Definition at line 67 of file TPainter3dAlgorithms.h.

Referenced by TPainter3dAlgorithms().

Double_t TPainter3dAlgorithms::fT[200]
private
Double_t TPainter3dAlgorithms::fU[2000]
private
Double_t TPainter3dAlgorithms::fVls[12]
private

Definition at line 59 of file TPainter3dAlgorithms.h.

Referenced by LightSource(), Luminosity(), and TPainter3dAlgorithms().

Double_t TPainter3dAlgorithms::fX0
private
Double_t TPainter3dAlgorithms::fXrast
private
Double_t TPainter3dAlgorithms::fYdl
private

Definition at line 57 of file TPainter3dAlgorithms.h.

Referenced by LightSource(), Luminosity(), and TPainter3dAlgorithms().

Double_t TPainter3dAlgorithms::fYls[4]
private

Definition at line 58 of file TPainter3dAlgorithms.h.

Referenced by LightSource(), Luminosity(), and TPainter3dAlgorithms().

Double_t TPainter3dAlgorithms::fYrast
private
Collaboration diagram for TPainter3dAlgorithms:
[legend]

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