#include <vtkTetra.h>
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 45 of file vtkTetra.h.
static void | InterpolationFunctions (double pcoords[3], double weights[4]) |
static void | InterpolationDerivs (double pcoords[3], double derivs[12]) |
virtual void | InterpolateFunctions (double pcoords[3], double weights[4]) |
virtual void | InterpolateDerivs (double pcoords[3], double derivs[12]) |
Public Types | |
typedef vtkCell3D | Superclass |
Public Member Functions | |
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 () |
Static Public Member Functions | |
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) |
Protected Member Functions | |
vtkTetra () | |
~vtkTetra () | |
Protected Attributes | |
vtkLine * | Line |
vtkTriangle * | Triangle |
typedef vtkCell3D vtkTetra::Superclass |
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.
virtual const char* vtkTetra::GetClassName | ( | ) | [virtual] |
Reimplemented from vtkCell3D.
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.
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 60 of file vtkTetra.h.
int vtkTetra::GetNumberOfEdges | ( | ) | [inline, virtual] |
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 61 of file vtkTetra.h.
int vtkTetra::GetNumberOfFaces | ( | ) | [inline, virtual] |
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 62 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] |
int vtkTetra::EvaluatePosition | ( | double | x[3], | |
double * | closestPoint, | |||
int & | subId, | |||
double | pcoords[3], | |||
double & | dist2, | |||
double * | weights | |||
) | [virtual] |
void vtkTetra::EvaluateLocation | ( | int & | subId, | |
double | pcoords[3], | |||
double | x[3], | |||
double * | weights | |||
) | [virtual] |
int vtkTetra::IntersectWithLine | ( | double | p1[3], | |
double | p2[3], | |||
double | tol, | |||
double & | t, | |||
double | x[3], | |||
double | pcoords[3], | |||
int & | subId | |||
) | [virtual] |
void vtkTetra::Derivatives | ( | int | subId, | |
double | pcoords[3], | |||
double * | values, | |||
int | dim, | |||
double * | derivs | |||
) | [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 188 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] |
Definition at line 159 of file vtkTetra.h.
virtual void vtkTetra::InterpolateDerivs | ( | double | pcoords[3], | |
double | derivs[12] | |||
) | [inline, virtual] |
Definition at line 163 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 180 of file vtkTetra.h.
vtkTriangle* vtkTetra::Triangle [protected] |
Definition at line 181 of file vtkTetra.h.