ROOT
6.07/01
Reference Guide
|
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... | |
TObject & | operator= (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 TObject * | Clone (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 TObject * | DrawClone (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 TObject * | FindObject (const char *name) const |
Must be redefined in derived classes. More... | |
virtual TObject * | FindObject (const TObject *obj) const |
Must be redefined in derived classes. More... | |
virtual Option_t * | GetDrawOption () 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_t * | GetOption () 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... | |
void * | operator new (size_t sz) |
void * | operator new[] (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator 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_t * | fColorMain |
Int_t * | fColorDark |
Int_t | fColorTop |
Int_t | fColorBottom |
Int_t * | fEdgeColor |
Int_t * | fEdgeStyle |
Int_t * | fEdgeWidth |
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_t * | fRaster |
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 TF3 * | fgCurrentF3 = 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>
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.
TPainter3dAlgorithms::TPainter3dAlgorithms | ( | ) |
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.
|
virtual |
Lego default destructor.
Definition at line 254 of file TPainter3dAlgorithms.cxx.
Draw back surfaces of surrounding box.
[in] | ang | is 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 | ( | ) |
Set correspondance between function and color levels.
[in] | nl | number of levels |
[in] | fl | function levels |
[in] | icl | colors for levels |
[out] | irep | return code.(0 OK, -1 error). |
Definition at line 341 of file TPainter3dAlgorithms.cxx.
Referenced by THistPainter::DefineColorLevels().
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)
[in] | icodes | set of codes for the line (not used in this method) |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | t | additional function defined on this face (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)
[in] | icodes | set of codes for the line (not used in this method) |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | t | additional function defined on this face |
Definition at line 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)
[in] | icodes | set of codes for the line |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | t | additional function defined on this face (not used in this method) |
Definition at line 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)
[in] | icodes | set of codes for the line (not used in this method) |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | t | additional function defined on this face (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)
[in] | icodes | set of codes for the line (not used in this method) |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | tt | additional function defined on this face (not used in this method) |
Definition at line 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)
[in] | icodes | set of codes for the line (not used in this method) |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | tt | additional function defined on this face (not used in this method) |
Definition at line 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)
[in] | icodes | set of codes for the line (not used in this method) |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | t | additional function defined on this face (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)
[in] | icodes | set of codes for the line (not used in this method) |
[in] | xyz | coordinates of nodes |
[in] | np | number of nodes |
[in] | iface | face |
[in] | tt | additional function defined on this face (not used in this method) |
Definition at line 954 of file TPainter3dAlgorithms.cxx.
Referenced by THistPainter::PaintLego().
Fill polygon with function values at vertexes.
[in] | n | number of vertexes |
[in] | p | polygon |
[in] | f | function values at nodes |
Errors:
Definition at line 1018 of file TPainter3dAlgorithms.cxx.
Referenced by DrawFaceGouraudShaded(), and DrawFaceMode2().
Fill a polygon including border ("RASTER SCREEN")
[in] | nn | number of polygon nodes |
[in] | xy | polygon nodes |
Definition at line 1096 of file TPainter3dAlgorithms.cxx.
Referenced by DrawFaceRaster1(), and DrawFaceRaster2().
Find level lines for face.
[in] | np | number of nodes |
[in] | f | face |
[in] | t | additional function |
Error: number of points for line not equal 2
Definition at line 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
[in] | p1 | 1st point |
[in] | p2 | 2nd point |
[in] | f1 | function value at 1st point |
[in] | f2 | function value at 2nd point |
[in] | fmin | min value of layer |
[in] | fmax | max value of layer |
[out] | kpp | current number of point |
[out] | pp | coordinates of new face |
Definition at line 1411 of file TPainter3dAlgorithms.cxx.
Referenced by FillPolygon().
Find visible parts of line (draw line)
[in] | r1 | 1-st point of the line |
[in] | r2 | 2-nd point of the line |
Definition at line 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")
[in] | p1 | 1st point of the line |
[in] | p2 | 2nd point of the line |
[in] | ntmax | max allowed number of visible segments |
[out] | nt | number of visible segments of the line |
[out] | t | visible segments |
Definition at line 1730 of file TPainter3dAlgorithms.cxx.
Referenced by DrawFaceRaster1(), and DrawFaceRaster2().
Draw forward faces of surrounding box & axes.
ang
is 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().
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".
[in] | rmin | min scope coordinates |
[in] | rmax | max scope coordinates |
[in] | nx | number of steps along X |
[in] | ny | number of steps along Y |
[in] | nz | number of steps along Z |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 4224 of file TPainter3dAlgorithms.cxx.
Referenced by THistPainter::PaintTF3().
Initialize "MOVING SCREEN" method.
[in] | xmin | left boundary |
[in] | xmax | right 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)
[in] | xmin | Xmin in the normalized coordinate system |
[in] | ymin | Ymin in the normalized coordinate system |
[in] | xmax | Xmax in the normalized coordinate system |
[in] | ymax | Ymax in the normalized coordinate system |
[in] | nx | number of pixels along X |
[in] | ny | number of pixels along Y |
Definition at line 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.
[in] | ns | number of isosurfaces |
[in] | s | isosurface values |
[in] | nx | number of slices along X |
[in] | ny | number of slices along Y |
[in] | nz | number of slices along Z |
[in] | x | slices along X |
[in] | y | slices along Y |
[in] | z | slices along Z |
Definition at line 5657 of file TPainter3dAlgorithms.cxx.
Referenced by THistPainter::PaintH3Iso().
Draw stack of lego-plots in cartesian coordinates.
[in] | ang | angle between X ang Y |
[in] | nx | number of cells along X |
[in] | ny | number of cells along Y |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 2293 of file TPainter3dAlgorithms.cxx.
Referenced by THistPainter::PaintLego().
Draw stack of lego-plots in cylindrical coordinates.
[in] | iordr | order of variables (0 - Z,PHI; 1 - PHI,Z) |
[in] | na | number of steps along 1st variable |
[in] | nb | number of steps along 2nd variable |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 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().
Draw stack of lego-plots in polar coordinates.
[in] | iordr | order of variables (0 - R,PHI; 1 - PHI,R) |
[in] | na | number of steps along 1st variable |
[in] | nb | number of steps along 2nd variable |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 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.
[in] | ipsdr | pseudo-rapidity flag |
[in] | iordr | order of variables (0 - THETA,PHI; 1 - PHI,THETA) |
[in] | na | number of steps along 1st variable |
[in] | nb | number of steps along 2nd variable |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 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.
[in] | nl | source number: 1 off all light sources, 0 set diffused light |
[in] | xl | intensity of the light source |
[in] | xscr | yscr zscr direction of the light (in respect of the screen) |
[out] | irep | reply (0 - O.K, -1 error) |
Definition at line 3181 of file TPainter3dAlgorithms.cxx.
Referenced by THistPainter::PaintH3Iso(), and THistPainter::PaintSurface().
Find surface luminosity at given point.
[in] | anorm | surface normal at given point |
[out] | flum | luminosity |
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.
[in] | fiso | function value for isosurface |
[in] | p | cube vertexes |
[in] | f | function values at the vertexes |
[in] | g | function gradients at the vertexes |
[out] | nnod | number of nodes (maximum 13) |
[out] | ntria | number of triangles (maximum 12) |
[out] | xyz | nodes |
[out] | grad | node normales (not normalized) |
[out] | itria | triangles |
Definition at line 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.
[in] | k1-k6 | edges 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.
[in] | nnod | number of nodes |
[in] | ie | edges which have section node |
[out] | xyz | nodes |
[out] | grad | ode 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.
[in] | nnod | number of nodes in the polygon |
[in] | xyz | node coordinates |
[in] | grad | node normales |
[in] | it | division of the polygons into triangles |
[out] | pxyz | middle point coordinates |
[out] | pgrad | middle point normale |
Definition at line 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)
[in] | ntria | number of triangles |
[in] | it | triangles |
[out] | itria | triangles |
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")
[in] | axx | vertex values for 1st face |
[in] | bxx | vertex values for opposite face |
[out] | irep | 1,2: there is surface penetration, 0: there is not surface penetration |
Definition at line 5278 of file TPainter3dAlgorithms.cxx.
Referenced by MarchingCubeCase04(), MarchingCubeCase06(), MarchingCubeCase07(), MarchingCubeCase10(), MarchingCubeCase12(), and MarchingCubeCase13().
Modify SCREEN.
[in] | r1 | 1-st point of the line |
[in] | r2 | 2-nd point of the line |
Definition at line 3293 of file TPainter3dAlgorithms.cxx.
Referenced by DrawFaceMove1(), DrawFaceMove2(), and DrawFaceMove3().
Store dark color for stack number n.
Definition at line 3413 of file TPainter3dAlgorithms.cxx.
Referenced by THistPainter::PaintLego().
Store color for stack number n.
Definition at line 3424 of file TPainter3dAlgorithms.cxx.
Referenced by THistPainter::PaintLego().
void TPainter3dAlgorithms::SetDrawFace | ( | DrawFaceFunc_t | pointer | ) |
Store pointer to current algorithm to draw faces.
Definition at line 3350 of file TPainter3dAlgorithms.cxx.
Referenced by THistPainter::Paint2DErrors(), THistPainter::PaintH3Iso(), THistPainter::PaintLego(), THistPainter::PaintSurface(), THistPainter::PaintTF3(), and THistPainter::PaintTriangles().
void TPainter3dAlgorithms::SetEdgeAtt | ( | Color_t | color = 1 , |
Style_t | style = 1 , |
||
Width_t | width = 1 , |
||
Int_t | n = 0 |
||
) |
Definition at line 3434 of file TPainter3dAlgorithms.cxx.
Referenced by THistPainter::PaintLego(), and THistPainter::PaintSurface().
Static function Store pointer to current implicit function.
Definition at line 3378 of file TPainter3dAlgorithms.cxx.
Referenced by THistPainter::ProcessMessage().
|
static |
Static function Set the implicit function clipping box "off".
Definition at line 3388 of file TPainter3dAlgorithms.cxx.
Referenced by THistPainter::ProcessMessage().
|
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().
|
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().
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.
[in] | val | encoded value |
[out] | iv1-iv6 | visibility of the sides |
[out] | ir | increment 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.
[in] | iopt | options: 1: from BACK to FRONT 'BF', 2: from FRONT to BACK 'FB' |
[in] | phi1 | 1st phi of sector |
[in] | phi2 | 2nd phi of sector |
[out] | val | encoded value |
Definition at line 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.
[in] | nl | number of levels |
[in] | fmin | MIN function value |
[in] | fmax | MAX function value |
[in] | ic | initial color index (for 1st level) |
[in] | idc | color index increment |
[out] | irep | reply (0 O.K., -1 error) |
Definition at line 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.
[in] | ang | angle between X ang Y |
[in] | nx | number of steps along X |
[in] | ny | number of steps along Y |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 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.
[in] | iordr | order of variables (0 - Z,PHI; 1 - PHI,Z) |
[in] | na | number of steps along 1st variable |
[in] | nb | number of steps along 2nd variable |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 3913 of file TPainter3dAlgorithms.cxx.
Referenced by THistPainter::PaintSurface().
Service function for Surfaces.
Definition at line 3669 of file TPainter3dAlgorithms.cxx.
Referenced by GouraudFunction(), and THistPainter::PaintSurface().
Draw surface in polar coordinates.
[in] | iordr | order of variables (0 - R,PHI, 1 - PHI,R) |
[in] | na | number of steps along 1st variable |
[in] | nb | number of steps along 2nd variable |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 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.
[in] | qqa | diffusion coefficient for diffused light [0.,1.] |
[in] | qqd | diffusion coefficient for direct light [0.,1.] |
[in] | qqs | diffusion coefficient for reflected light [0.,1.] |
[in] | nncs | power coefficient for reflected light (.GE.1) |
Lightness model formula: Y = YD*QA + > YLi*(QD*cosNi+QS*cosRi)
[out] | irep | reply (0 - O.K, -1 error) |
Definition at line 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.
[in] | ipsdr | pseudo-rapidity flag |
[in] | iordr | order of variables (0 - THETA,PHI; 1 - PHI,THETA) |
[in] | na | number of steps along 1st variable |
[in] | nb | number of steps along 2nd variable |
chopt
= 'BF' from BACK to FRONTchopt
= 'FB' from FRONT to BACK Definition at line 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)
[in] | del | precision |
[in] | xyz | nodes |
[in] | i1 | 1-st node of edge |
[in] | i2 | 2-nd node of edge |
[in] | iface | triangular face |
[in] | abcd | face plane |
[out] | irep | 1: edge under face, 0: no decision, +1: edge before face |
Definition at line 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.
[in] | xyz | nodes |
[in] | nface | number of triangular faces |
[in] | iface | faces (triangles) |
[in] | dface | array for min-max scopes |
[in] | abcd | array for face plane equations |
[out] | iorder | face order |
Definition at line 5386 of file TPainter3dAlgorithms.cxx.
Referenced by ImplicitFunction(), and IsoSurface().
|
private |
Definition at line 56 of file TPainter3dAlgorithms.h.
Referenced by LegoCylindrical(), LegoPolar(), LegoSpherical(), SurfaceCylindrical(), SurfacePolar(), SurfaceSpherical(), and TPainter3dAlgorithms().
|
private |
Definition at line 74 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceMode3(), LegoCartesian(), LegoCylindrical(), LegoPolar(), LegoSpherical(), SetColorDark(), SetColorMain(), and TPainter3dAlgorithms().
|
private |
Definition at line 72 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceMode3(), SetColorDark(), TPainter3dAlgorithms(), and ~TPainter3dAlgorithms().
|
private |
Definition at line 70 of file TPainter3dAlgorithms.h.
Referenced by ColorFunction(), FillPolygon(), Spectrum(), and TPainter3dAlgorithms().
|
private |
Definition at line 71 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceMode3(), LegoCartesian(), LegoCylindrical(), LegoPolar(), LegoSpherical(), SetColorMain(), TPainter3dAlgorithms(), and ~TPainter3dAlgorithms().
|
private |
Definition at line 73 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceMode3(), LegoCartesian(), LegoCylindrical(), LegoPolar(), LegoSpherical(), SetColorDark(), SetColorMain(), and TPainter3dAlgorithms().
|
private |
Definition at line 52 of file TPainter3dAlgorithms.h.
Referenced by FindVisibleDraw(), InitMoveScreen(), ModifyScreen(), and TPainter3dAlgorithms().
|
private |
Definition at line 114 of file TPainter3dAlgorithms.h.
Referenced by BackBox(), FrontBox(), ImplicitFunction(), LegoCartesian(), LegoCylindrical(), LegoPolar(), LegoSpherical(), SetDrawFace(), SurfaceCartesian(), SurfaceCylindrical(), SurfacePolar(), SurfaceSpherical(), and TPainter3dAlgorithms().
|
private |
Definition at line 48 of file TPainter3dAlgorithms.h.
Referenced by FindVisibleDraw(), InitMoveScreen(), ModifyScreen(), and TPainter3dAlgorithms().
|
private |
Definition at line 65 of file TPainter3dAlgorithms.h.
Referenced by FillPolygonBorder(), FindVisibleLine(), InitRaster(), and TPainter3dAlgorithms().
|
private |
Definition at line 66 of file TPainter3dAlgorithms.h.
Referenced by FillPolygonBorder(), FindVisibleLine(), InitRaster(), and TPainter3dAlgorithms().
|
private |
Definition at line 75 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceMode2(), DrawFaceMode3(), DrawFaceMove1(), DrawFaceMove2(), DrawFaceMove3(), DrawFaceRaster1(), DrawFaceRaster2(), SetEdgeAtt(), TPainter3dAlgorithms(), and ~TPainter3dAlgorithms().
|
private |
Definition at line 78 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceMode2(), DrawFaceMode3(), DrawFaceMove1(), DrawFaceMove2(), DrawFaceMove3(), DrawFaceRaster1(), DrawFaceRaster2(), LegoCartesian(), LegoCylindrical(), LegoPolar(), LegoSpherical(), SurfaceCartesian(), SurfaceCylindrical(), SurfacePolar(), SurfaceSpherical(), and TPainter3dAlgorithms().
|
private |
Definition at line 76 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceMode2(), DrawFaceMode3(), DrawFaceMove1(), DrawFaceMove2(), DrawFaceMove3(), DrawFaceRaster1(), DrawFaceRaster2(), SetEdgeAtt(), TPainter3dAlgorithms(), and ~TPainter3dAlgorithms().
|
private |
Definition at line 77 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceMode2(), DrawFaceMode3(), DrawFaceMove1(), DrawFaceMove2(), DrawFaceMove3(), DrawFaceRaster1(), DrawFaceRaster2(), SetEdgeAtt(), TPainter3dAlgorithms(), and ~TPainter3dAlgorithms().
|
private |
Definition at line 92 of file TPainter3dAlgorithms.h.
Referenced by MarchingCube(), MarchingCubeCase03(), MarchingCubeCase04(), MarchingCubeCase06(), MarchingCubeCase07(), MarchingCubeCase10(), MarchingCubeCase12(), MarchingCubeCase13(), MarchingCubeFindNodes(), and TPainter3dAlgorithms().
|
private |
Definition at line 95 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceGouraudShaded(), SetIsoSurfaceParameters(), and TPainter3dAlgorithms().
|
private |
Definition at line 94 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceGouraudShaded(), SetIsoSurfaceParameters(), and TPainter3dAlgorithms().
|
private |
Definition at line 54 of file TPainter3dAlgorithms.h.
Referenced by ColorFunction(), DefineGridLevels(), FillPolygon(), FindLevelLines(), Spectrum(), and TPainter3dAlgorithms().
|
private |
Definition at line 93 of file TPainter3dAlgorithms.h.
Referenced by MarchingCube(), MarchingCubeCase13(), and MarchingCubeFindNodes().
|
staticprivate |
Definition at line 105 of file TPainter3dAlgorithms.h.
Referenced by ImplicitFunction(), and SetF3().
|
staticprivate |
Definition at line 101 of file TPainter3dAlgorithms.h.
Referenced by ImplicitFunction(), SetF3ClippingBoxOff(), and SetF3ClippingBoxOn().
|
staticprivate |
Definition at line 102 of file TPainter3dAlgorithms.h.
Referenced by ImplicitFunction(), and SetF3ClippingBoxOn().
|
staticprivate |
Definition at line 103 of file TPainter3dAlgorithms.h.
Referenced by SetF3ClippingBoxOn().
|
staticprivate |
Definition at line 104 of file TPainter3dAlgorithms.h.
Referenced by ImplicitFunction(), and SetF3ClippingBoxOn().
|
private |
Definition at line 97 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceGouraudShaded(), SetIsoSurfaceParameters(), and TPainter3dAlgorithms().
|
private |
Definition at line 98 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceGouraudShaded(), SetIsoSurfaceParameters(), and TPainter3dAlgorithms().
|
private |
Definition at line 99 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceGouraudShaded(), SetIsoSurfaceParameters(), and TPainter3dAlgorithms().
|
private |
Definition at line 87 of file TPainter3dAlgorithms.h.
Referenced by ClearRaster(), FillPolygonBorder(), FindVisibleLine(), and TPainter3dAlgorithms().
|
private |
Definition at line 89 of file TPainter3dAlgorithms.h.
Referenced by FillPolygonBorder(), InitRaster(), and TPainter3dAlgorithms().
|
private |
Definition at line 115 of file TPainter3dAlgorithms.h.
Referenced by LegoCartesian(), LegoCylindrical(), LegoPolar(), LegoSpherical(), SetLegoFunction(), and TPainter3dAlgorithms().
|
private |
Definition at line 81 of file TPainter3dAlgorithms.h.
Referenced by FindLevelLines(), and TPainter3dAlgorithms().
|
private |
Definition at line 82 of file TPainter3dAlgorithms.h.
Referenced by LightSource(), Luminosity(), and TPainter3dAlgorithms().
|
private |
Definition at line 90 of file TPainter3dAlgorithms.h.
Referenced by FillPolygonBorder(), FindVisibleLine(), InitRaster(), and TPainter3dAlgorithms().
|
private |
Definition at line 79 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceMode2(), DrawFaceMode3(), SetMesh(), and TPainter3dAlgorithms().
|
private |
Definition at line 96 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceGouraudShaded(), SetIsoSurfaceParameters(), and TPainter3dAlgorithms().
|
private |
Definition at line 69 of file TPainter3dAlgorithms.h.
Referenced by ColorFunction(), DefineGridLevels(), FillPolygon(), FindLevelLines(), Spectrum(), and TPainter3dAlgorithms().
|
private |
Definition at line 80 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceMove1(), DrawFaceMove3(), DrawFaceRaster1(), FindLevelLines(), and TPainter3dAlgorithms().
|
private |
Definition at line 83 of file TPainter3dAlgorithms.h.
Referenced by Luminosity(), SurfaceProperty(), and TPainter3dAlgorithms().
|
private |
Definition at line 84 of file TPainter3dAlgorithms.h.
Referenced by LegoCartesian(), LegoCylindrical(), LegoPolar(), LegoSpherical(), SetColorDark(), SetColorMain(), TPainter3dAlgorithms(), and ~TPainter3dAlgorithms().
|
private |
Definition at line 68 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceMove1(), DrawFaceMove2(), DrawFaceMove3(), DrawFaceRaster1(), DrawFaceRaster2(), FindVisibleDraw(), and TPainter3dAlgorithms().
|
private |
Definition at line 85 of file TPainter3dAlgorithms.h.
Referenced by ClearRaster(), FillPolygonBorder(), FindVisibleLine(), InitRaster(), and TPainter3dAlgorithms().
|
private |
Definition at line 86 of file TPainter3dAlgorithms.h.
Referenced by ClearRaster(), FillPolygonBorder(), FindVisibleLine(), InitRaster(), and TPainter3dAlgorithms().
|
private |
Definition at line 91 of file TPainter3dAlgorithms.h.
Referenced by MarchingCube(), MarchingCubeCase13(), and MarchingCubeFindNodes().
|
private |
Definition at line 55 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceMove1(), DrawFaceMove3(), DrawFaceRaster1(), FindLevelLines(), and TPainter3dAlgorithms().
|
private |
Definition at line 60 of file TPainter3dAlgorithms.h.
Referenced by Luminosity(), SurfaceProperty(), and TPainter3dAlgorithms().
|
private |
Definition at line 61 of file TPainter3dAlgorithms.h.
Referenced by Luminosity(), SurfaceProperty(), and TPainter3dAlgorithms().
|
private |
Definition at line 62 of file TPainter3dAlgorithms.h.
Referenced by Luminosity(), SurfaceProperty(), and TPainter3dAlgorithms().
|
private |
Definition at line 88 of file TPainter3dAlgorithms.h.
Referenced by ClearRaster(), FillPolygonBorder(), FindVisibleLine(), InitRaster(), TPainter3dAlgorithms(), and ~TPainter3dAlgorithms().
|
private |
Definition at line 50 of file TPainter3dAlgorithms.h.
Referenced by SurfaceFunction(), and TPainter3dAlgorithms().
|
private |
Definition at line 49 of file TPainter3dAlgorithms.h.
Referenced by TPainter3dAlgorithms().
|
private |
Definition at line 116 of file TPainter3dAlgorithms.h.
Referenced by SetSurfaceFunction(), SurfaceCartesian(), SurfaceCylindrical(), SurfacePolar(), SurfaceSpherical(), and TPainter3dAlgorithms().
|
private |
Definition at line 67 of file TPainter3dAlgorithms.h.
Referenced by TPainter3dAlgorithms().
|
private |
Definition at line 53 of file TPainter3dAlgorithms.h.
Referenced by DrawFaceMove1(), DrawFaceMove2(), DrawFaceMove3(), DrawFaceRaster1(), DrawFaceRaster2(), FindVisibleDraw(), and TPainter3dAlgorithms().
|
private |
Definition at line 51 of file TPainter3dAlgorithms.h.
Referenced by FindVisibleDraw(), InitMoveScreen(), ModifyScreen(), and TPainter3dAlgorithms().
|
private |
Definition at line 59 of file TPainter3dAlgorithms.h.
Referenced by LightSource(), Luminosity(), and TPainter3dAlgorithms().
|
private |
Definition at line 47 of file TPainter3dAlgorithms.h.
Referenced by FindVisibleDraw(), InitMoveScreen(), ModifyScreen(), and TPainter3dAlgorithms().
|
private |
Definition at line 63 of file TPainter3dAlgorithms.h.
Referenced by FillPolygonBorder(), FindVisibleLine(), InitRaster(), and TPainter3dAlgorithms().
|
private |
Definition at line 57 of file TPainter3dAlgorithms.h.
Referenced by LightSource(), Luminosity(), and TPainter3dAlgorithms().
|
private |
Definition at line 58 of file TPainter3dAlgorithms.h.
Referenced by LightSource(), Luminosity(), and TPainter3dAlgorithms().
|
private |
Definition at line 64 of file TPainter3dAlgorithms.h.
Referenced by FillPolygonBorder(), FindVisibleLine(), InitRaster(), and TPainter3dAlgorithms().