a 3D cell that represents a tetrahedron
More...
#include <vtkTetra.h>
|
virtual const char * | GetClassName () |
|
virtual int | IsA (const char *type) |
|
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 () |
|
void | PrintSelf (ostream &os, vtkIndent indent) |
|
virtual int | GetCellDimension () |
|
virtual void | SetMergeTolerance (double) |
|
virtual double | GetMergeTolerance () |
|
|
static vtkTetra * | New () |
|
static int | IsTypeOf (const char *type) |
|
static vtkTetra * | SafeDownCast (vtkObject *o) |
|
|
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) |
|
static int | IsTypeOf (const char *type) |
|
static vtkCell3D * | SafeDownCast (vtkObject *o) |
|
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.
- See Also
- vtkConvexPointSet vtkHexahedron vtkPyramid vtkVoxel vtkWedge
- Examples:
- vtkTetra (Examples)
- Tests:
- vtkTetra (Tests)
Definition at line 45 of file vtkTetra.h.
virtual const char* vtkTetra::GetClassName |
( |
) | |
|
|
virtual |
static int vtkTetra::IsTypeOf |
( |
const char * |
type) | |
|
|
static |
virtual int vtkTetra::IsA |
( |
const char * |
type) | |
|
|
virtual |
void vtkTetra::PrintSelf |
( |
ostream & |
os, |
|
|
vtkIndent |
indent |
|
) |
| |
virtual void vtkTetra::GetEdgePoints |
( |
int |
edgeId, |
|
|
int *& |
pts |
|
) |
| |
|
virtual |
virtual void vtkTetra::GetFacePoints |
( |
int |
faceId, |
|
|
int *& |
pts |
|
) |
| |
|
virtual |
int vtkTetra::GetCellType |
( |
) | |
|
|
inline |
See the vtkCell API for descriptions of these methods.
Definition at line 60 of file vtkTetra.h.
int vtkTetra::GetNumberOfEdges |
( |
) | |
|
|
inline |
See the vtkCell API for descriptions of these methods.
Definition at line 61 of file vtkTetra.h.
int vtkTetra::GetNumberOfFaces |
( |
) | |
|
|
inline |
See the vtkCell API for descriptions of these methods.
Definition at line 62 of file vtkTetra.h.
vtkCell* vtkTetra::GetEdge |
( |
int |
edgeId) | |
|
See the vtkCell API for descriptions of these methods.
vtkCell* vtkTetra::GetFace |
( |
int |
faceId) | |
|
See the vtkCell API for descriptions of these methods.
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 |
See the vtkCell API for descriptions of these methods.
Reimplemented from vtkCell3D.
See the vtkCell API for descriptions of these methods.
Reimplemented from vtkCell3D.
int vtkTetra::EvaluatePosition |
( |
double |
x[3], |
|
|
double * |
closestPoint, |
|
|
int & |
subId, |
|
|
double |
pcoords[3], |
|
|
double & |
dist2, |
|
|
double * |
weights |
|
) |
| |
See the vtkCell API for descriptions of these methods.
void vtkTetra::EvaluateLocation |
( |
int & |
subId, |
|
|
double |
pcoords[3], |
|
|
double |
x[3], |
|
|
double * |
weights |
|
) |
| |
See the vtkCell API for descriptions of these methods.
int vtkTetra::IntersectWithLine |
( |
double |
p1[3], |
|
|
double |
p2[3], |
|
|
double |
tol, |
|
|
double & |
t, |
|
|
double |
x[3], |
|
|
double |
pcoords[3], |
|
|
int & |
subId |
|
) |
| |
See the vtkCell API for descriptions of these methods.
See the vtkCell API for descriptions of these methods.
void vtkTetra::Derivatives |
( |
int |
subId, |
|
|
double |
pcoords[3], |
|
|
double * |
values, |
|
|
int |
dim, |
|
|
double * |
derivs |
|
) |
| |
See the vtkCell API for descriptions of these methods.
virtual double* vtkTetra::GetParametricCoords |
( |
) | |
|
|
virtual |
See the vtkCell API for descriptions of these methods.
int vtkTetra::CellBoundary |
( |
int |
subId, |
|
|
double |
pcoords[3], |
|
|
vtkIdList * |
pts |
|
) |
| |
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.
int vtkTetra::GetParametricCenter |
( |
double |
pcoords[3]) | |
|
|
inline |
Return the center of the tetrahedron in parametric coordinates.
Definition at line 188 of file vtkTetra.h.
double vtkTetra::GetParametricDistance |
( |
double |
pcoords[3]) | |
|
Return the distance of the parametric coordinate provided to the cell. If inside the cell, a distance of zero is returned.
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] |
|
) |
| |
|
inlinevirtual |
virtual void vtkTetra::InterpolateDerivs |
( |
double |
pcoords[3], |
|
|
double |
derivs[12] |
|
) |
| |
|
inlinevirtual |
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.
The documentation for this class was generated from the following file: