VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkTetra Class Reference

a 3D cell that represents a tetrahedron More...

#include <vtkTetra.h>

Inherits vtkCell3D.

Collaboration diagram for vtkTetra:
[legend]

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 vtkTetraNew ()
 
static int IsTypeOf (const char *type)
 
static vtkTetraSafeDownCast (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

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

Detailed Description

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.

Member Typedef Documentation

typedef vtkCell3D vtkTetra::Superclass

Definition at line 49 of file vtkTetra.h.

Constructor & Destructor Documentation

vtkTetra::vtkTetra ( )
protected
vtkTetra::~vtkTetra ( )
protected

Member Function Documentation

static vtkTetra* vtkTetra::New ( )
static
virtual const char* vtkTetra::GetClassName ( )
virtual
static int vtkTetra::IsTypeOf ( const char *  type)
static
virtual int vtkTetra::IsA ( const char *  type)
virtual
static vtkTetra* vtkTetra::SafeDownCast ( vtkObject o)
static
void vtkTetra::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
virtual void vtkTetra::GetEdgePoints ( int  edgeId,
int *&  pts 
)
virtual

See vtkCell3D API for description of these methods.

virtual void vtkTetra::GetFacePoints ( int  faceId,
int *&  pts 
)
virtual

See vtkCell3D API for description of these methods.

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 
)

See the vtkCell API for descriptions of these methods.

void vtkTetra::Clip ( double  value,
vtkDataArray cellScalars,
vtkIncrementalPointLocator *  locator,
vtkCellArray connectivity,
vtkPointData inPd,
vtkPointData outPd,
vtkCellData *  inCd,
vtkIdType  cellId,
vtkCellData *  outCd,
int  insideOut 
)

See the vtkCell API for descriptions of these methods.

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.

int vtkTetra::Triangulate ( int  index,
vtkIdList ptIds,
vtkPoints pts 
)

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
Deprecated:
Replaced by vtkTetra::InterpolateFunctions as of VTK 5.2
static void vtkTetra::InterpolationDerivs ( double  pcoords[3],
double  derivs[12] 
)
static
Deprecated:
Replaced by vtkTetra::InterpolateFunctions as of VTK 5.2
virtual void vtkTetra::InterpolateFunctions ( double  pcoords[3],
double  weights[4] 
)
inlinevirtual
Deprecated:
Replaced by vtkTetra::InterpolateFunctions as of VTK 5.2

Definition at line 159 of file vtkTetra.h.

virtual void vtkTetra::InterpolateDerivs ( double  pcoords[3],
double  derivs[12] 
)
inlinevirtual
Deprecated:
Replaced by vtkTetra::InterpolateFunctions as of VTK 5.2

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.

Member Data Documentation

vtkLine* vtkTetra::Line
protected

Definition at line 180 of file vtkTetra.h.

vtkTriangle* vtkTetra::Triangle
protected

Definition at line 181 of file vtkTetra.h.


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