| 
    VTK
   
    
   
   | 
  
  
  
 
a 3D cell that represents a tetrahedron More...
#include <vtkTetra.h>


Public Types | |
| typedef vtkCell3D | Superclass | 
Public Member Functions | |
| virtual int | IsA (const char *type) | 
| vtkTetra * | NewInstance () const | 
| void | PrintSelf (ostream &os, vtkIndent indent) | 
| int | CellBoundary (int subId, double pcoords[3], vtkIdList *pts) | 
| int | GetParametricCenter (double pcoords[3]) | 
| double | GetParametricDistance (double pcoords[3]) | 
| int | JacobianInverse (double **inverse, double derivs[12]) | 
| virtual void | GetEdgePoints (int edgeId, int *&pts) | 
| virtual void | GetFacePoints (int faceId, int *&pts) | 
| int | GetCellType () | 
| int | GetNumberOfEdges () | 
| int | GetNumberOfFaces () | 
| vtkCell * | GetEdge (int edgeId) | 
| vtkCell * | GetFace (int faceId) | 
| void | Contour (double value, vtkDataArray *cellScalars, vtkIncrementalPointLocator *locator, vtkCellArray *verts, vtkCellArray *lines, vtkCellArray *polys, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd) | 
| void | Clip (double value, vtkDataArray *cellScalars, vtkIncrementalPointLocator *locator, vtkCellArray *connectivity, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, int insideOut) | 
| int | EvaluatePosition (double x[3], double *closestPoint, int &subId, double pcoords[3], double &dist2, double *weights) | 
| void | EvaluateLocation (int &subId, double pcoords[3], double x[3], double *weights) | 
| int | IntersectWithLine (double p1[3], double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId) | 
| int | Triangulate (int index, vtkIdList *ptIds, vtkPoints *pts) | 
| void | Derivatives (int subId, double pcoords[3], double *values, int dim, double *derivs) | 
| virtual double * | GetParametricCoords () | 
| virtual void | InterpolateFunctions (double pcoords[3], double weights[4]) | 
| virtual void | InterpolateDerivs (double pcoords[3], double derivs[12]) | 
Static Public Member Functions | |
| static vtkTetra * | New () | 
| static int | IsTypeOf (const char *type) | 
| static vtkTetra * | SafeDownCast (vtkObjectBase *o) | 
| static void | InterpolationFunctions (double pcoords[3], double weights[4]) | 
| static void | InterpolationDerivs (double pcoords[3], double derivs[12]) | 
| static void | TetraCenter (double p1[3], double p2[3], double p3[3], double p4[3], double center[3]) | 
| static double | Circumsphere (double p1[3], double p2[3], double p3[3], double p4[3], double center[3]) | 
| static double | Insphere (double p1[3], double p2[3], double p3[3], double p4[3], double center[3]) | 
| static int | BarycentricCoords (double x[3], double x1[3], double x2[3], double x3[3], double x4[3], double bcoords[4]) | 
| static double | ComputeVolume (double p1[3], double p2[3], double p3[3], double p4[3]) | 
| static int * | GetEdgeArray (int edgeId) | 
| static int * | GetFaceArray (int faceId) | 
Protected Member Functions | |
| virtual vtkObjectBase * | NewInstanceInternal () const | 
| vtkTetra () | |
| ~vtkTetra () | |
Protected Attributes | |
| vtkLine * | Line | 
| vtkTriangle * | Triangle | 
a 3D cell that represents a tetrahedron
vtkTetra is a concrete implementation of vtkCell to represent a 3D tetrahedron. vtkTetra uses the standard isoparametric shape functions for a linear tetrahedron. The tetrahedron is defined by the four points (0-3); where (0,1,2) is the base of the tetrahedron which, using the right hand rule, forms a triangle whose normal points in the direction of the fourth point.
Definition at line 46 of file vtkTetra.h.
| typedef vtkCell3D vtkTetra::Superclass | 
Reimplemented from vtkCell3D.
Definition at line 50 of file vtkTetra.h.
| vtkTetra::vtkTetra | ( | ) |  [protected] | 
        
| vtkTetra::~vtkTetra | ( | ) |  [protected] | 
        
| static vtkTetra* vtkTetra::New | ( | ) |  [static] | 
        
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
Reimplemented from vtkObject.
| static int vtkTetra::IsTypeOf | ( | const char * | name | ) |  [static] | 
        
Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkCell3D.
| virtual int vtkTetra::IsA | ( | const char * | name | ) |  [virtual] | 
        
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkCell3D.
| static vtkTetra* vtkTetra::SafeDownCast | ( | vtkObjectBase * | o | ) |  [static] | 
        
Reimplemented from vtkCell3D.
| virtual vtkObjectBase* vtkTetra::NewInstanceInternal | ( | ) |  const [protected, virtual] | 
        
Reimplemented from vtkCell3D.
| vtkTetra* vtkTetra::NewInstance | ( | ) | const | 
Reimplemented from vtkCell3D.
| void vtkTetra::PrintSelf | ( | ostream & | os, | 
| vtkIndent | indent | ||
| ) |  [virtual] | 
        
| virtual void vtkTetra::GetEdgePoints | ( | int | edgeId, | 
| int *& | pts | ||
| ) |  [virtual] | 
        
| virtual void vtkTetra::GetFacePoints | ( | int | faceId, | 
| int *& | pts | ||
| ) |  [virtual] | 
        
| int vtkTetra::GetCellType | ( | ) |  [inline, virtual] | 
        
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 61 of file vtkTetra.h.
| int vtkTetra::GetNumberOfEdges | ( | ) |  [inline, virtual] | 
        
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 62 of file vtkTetra.h.
| int vtkTetra::GetNumberOfFaces | ( | ) |  [inline, virtual] | 
        
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 63 of file vtkTetra.h.
| vtkCell* vtkTetra::GetEdge | ( | int | edgeId | ) |  [virtual] | 
        
| vtkCell* vtkTetra::GetFace | ( | int | faceId | ) |  [virtual] | 
        
| void vtkTetra::Contour | ( | double | value, | 
| vtkDataArray * | cellScalars, | ||
| vtkIncrementalPointLocator * | locator, | ||
| vtkCellArray * | verts, | ||
| vtkCellArray * | lines, | ||
| vtkCellArray * | polys, | ||
| vtkPointData * | inPd, | ||
| vtkPointData * | outPd, | ||
| vtkCellData * | inCd, | ||
| vtkIdType | cellId, | ||
| vtkCellData * | outCd | ||
| ) |  [virtual] | 
        
| void vtkTetra::Clip | ( | double | value, | 
| vtkDataArray * | cellScalars, | ||
| vtkIncrementalPointLocator * | locator, | ||
| vtkCellArray * | connectivity, | ||
| vtkPointData * | inPd, | ||
| vtkPointData * | outPd, | ||
| vtkCellData * | inCd, | ||
| vtkIdType | cellId, | ||
| vtkCellData * | outCd, | ||
| int | insideOut | ||
| ) |  [virtual] | 
        
| void vtkTetra::EvaluateLocation | ( | int & | subId, | 
| double | pcoords[3], | ||
| double | x[3], | ||
| double * | weights | ||
| ) |  [virtual] | 
        
| int vtkTetra::Triangulate | ( | int | index, | 
| vtkIdList * | ptIds, | ||
| vtkPoints * | pts | ||
| ) |  [virtual] | 
        
| virtual double* vtkTetra::GetParametricCoords | ( | ) |  [virtual] | 
        
| int vtkTetra::CellBoundary | ( | int | subId, | 
| double | pcoords[3], | ||
| vtkIdList * | pts | ||
| ) |  [virtual] | 
        
Returns the set of points that are on the boundary of the tetrahedron that are closest parametrically to the point specified. This may include faces, edges, or vertices.
Implements vtkCell.
| int vtkTetra::GetParametricCenter | ( | double | pcoords[3] | ) |  [inline, virtual] | 
        
Return the center of the tetrahedron in parametric coordinates.
Reimplemented from vtkCell.
Definition at line 187 of file vtkTetra.h.
| double vtkTetra::GetParametricDistance | ( | double | pcoords[3] | ) |  [virtual] | 
        
Return the distance of the parametric coordinate provided to the cell. If inside the cell, a distance of zero is returned.
Reimplemented from vtkCell.
| static void vtkTetra::TetraCenter | ( | double | p1[3], | 
| double | p2[3], | ||
| double | p3[3], | ||
| double | p4[3], | ||
| double | center[3] | ||
| ) |  [static] | 
        
Compute the center of the tetrahedron,
| static double vtkTetra::Circumsphere | ( | double | p1[3], | 
| double | p2[3], | ||
| double | p3[3], | ||
| double | p4[3], | ||
| double | center[3] | ||
| ) |  [static] | 
        
Compute the circumcenter (center[3]) and radius squared (method return value) of a tetrahedron defined by the four points x1, x2, x3, and x4.
| static double vtkTetra::Insphere | ( | double | p1[3], | 
| double | p2[3], | ||
| double | p3[3], | ||
| double | p4[3], | ||
| double | center[3] | ||
| ) |  [static] | 
        
Compute the center (center[3]) and radius (method return value) of a sphere that just fits inside the faces of a tetrahedron defined by the four points x1, x2, x3, and x4.
| static int vtkTetra::BarycentricCoords | ( | double | x[3], | 
| double | x1[3], | ||
| double | x2[3], | ||
| double | x3[3], | ||
| double | x4[3], | ||
| double | bcoords[4] | ||
| ) |  [static] | 
        
Given a 3D point x[3], determine the barycentric coordinates of the point. Barycentric coordinates are a natural coordinate system for simplices that express a position as a linear combination of the vertices. For a tetrahedron, there are four barycentric coordinates (because there are four vertices), and the sum of the coordinates must equal 1. If a point x is inside a simplex, then all four coordinates will be strictly positive. If three coordinates are zero (so the fourth =1), then the point x is on a vertex. If two coordinates are zero, the point x is on an edge (and so on). In this method, you must specify the vertex coordinates x1->x4. Returns 0 if tetrahedron is degenerate.
| static double vtkTetra::ComputeVolume | ( | double | p1[3], | 
| double | p2[3], | ||
| double | p3[3], | ||
| double | p4[3] | ||
| ) |  [static] | 
        
Compute the volume of a tetrahedron defined by the four points p1, p2, p3, and p4.
| int vtkTetra::JacobianInverse | ( | double ** | inverse, | 
| double | derivs[12] | ||
| ) | 
Given parametric coordinates compute inverse Jacobian transformation matrix. Returns 9 elements of 3x3 inverse Jacobian plus interpolation function derivatives. Returns 0 if no inverse exists.
| static void vtkTetra::InterpolationFunctions | ( | double | pcoords[3], | 
| double | weights[4] | ||
| ) |  [static] | 
        
| static void vtkTetra::InterpolationDerivs | ( | double | pcoords[3], | 
| double | derivs[12] | ||
| ) |  [static] | 
        
| virtual void vtkTetra::InterpolateFunctions | ( | double | pcoords[3], | 
| double | weights[4] | ||
| ) |  [inline, virtual] | 
        
Compute the interpolation functions/derivatives (aka shape functions/derivatives)
Definition at line 158 of file vtkTetra.h.
| virtual void vtkTetra::InterpolateDerivs | ( | double | pcoords[3], | 
| double | derivs[12] | ||
| ) |  [inline, virtual] | 
        
Compute the interpolation functions/derivatives (aka shape functions/derivatives)
Definition at line 162 of file vtkTetra.h.
| static int* vtkTetra::GetEdgeArray | ( | int | edgeId | ) |  [static] | 
        
Return the ids of the vertices defining edge/face (edgeId/`faceId'). Ids are related to the cell, not to the dataset. 
| static int* vtkTetra::GetFaceArray | ( | int | faceId | ) |  [static] | 
        
Return the ids of the vertices defining edge/face (edgeId/`faceId'). Ids are related to the cell, not to the dataset. 
vtkLine* vtkTetra::Line [protected] | 
        
Definition at line 179 of file vtkTetra.h.
vtkTriangle* vtkTetra::Triangle [protected] | 
        
Definition at line 180 of file vtkTetra.h.
 1.8.0