38 #include "vtkCommonDataModelModule.h"
39 #include "vtkCell3D.h"
43 class vtkUnstructuredGrid;
46 class VTKCOMMONDATAMODEL_EXPORT
vtkTetra :
public vtkCell3D
51 void PrintSelf(ostream& os, vtkIndent indent);
55 virtual void GetEdgePoints(
int edgeId,
int* &pts);
56 virtual void GetFacePoints(
int faceId,
int* &pts);
64 vtkCell *GetEdge(
int edgeId);
65 vtkCell *GetFace(
int faceId);
66 void Contour(
double value, vtkDataArray *cellScalars,
69 vtkPointData *inPd, vtkPointData *outPd,
71 void Clip(
double value, vtkDataArray *cellScalars,
73 vtkPointData *inPd, vtkPointData *outPd,
76 int EvaluatePosition(
double x[3],
double* closestPoint,
77 int& subId,
double pcoords[3],
78 double& dist2,
double *weights);
79 void EvaluateLocation(
int& subId,
double pcoords[3],
double x[3],
81 int IntersectWithLine(
double p1[3],
double p2[3],
double tol,
double& t,
82 double x[3],
double pcoords[3],
int& subId);
83 int Triangulate(
int index, vtkIdList *ptIds, vtkPoints *pts);
84 void Derivatives(
int subId,
double pcoords[3],
double *values,
85 int dim,
double *derivs);
86 virtual double *GetParametricCoords();
92 int CellBoundary(
int subId,
double pcoords[3], vtkIdList *pts);
95 int GetParametricCenter(
double pcoords[3]);
99 double GetParametricDistance(
double pcoords[3]);
103 static void TetraCenter(
double p1[3],
double p2[3],
double p3[3],
double p4[3],
111 static double Circumsphere(
double p1[3],
double p2[3],
double p3[3],
112 double p4[3],
double center[3]);
119 static double Insphere(
double p1[3],
double p2[3],
double p3[3],
120 double p4[3],
double center[3]);
135 static int BarycentricCoords(
double x[3],
double x1[3],
double x2[3],
136 double x3[3],
double x4[3],
double bcoords[4]);
142 static double ComputeVolume(
double p1[3],
double p2[3],
double p3[3],
149 int JacobianInverse(
double **inverse,
double derivs[12]);
152 static void InterpolationFunctions(
double pcoords[3],
double weights[4]);
154 static void InterpolationDerivs(
double pcoords[3],
double derivs[12]);
171 static int *GetEdgeArray(
int edgeId);
172 static int *GetFaceArray(
int faceId);
189 pcoords[0] = pcoords[1] = pcoords[2] = 0.25;
static void InterpolationDerivs(double pcoords[3], double derivs[12])
static void InterpolationFunctions(double pcoords[3], double weights[4])
represent and manipulate cell attribute data
virtual void InterpolateDerivs(double pcoords[3], double derivs[12])
Abstract class in support of both point location and point insertion.
int GetParametricCenter(double pcoords[3])
a 3D cell that represents a tetrahedron
virtual void InterpolateFunctions(double pcoords[3], double weights[4])
object to represent cell connectivity
a cell that represents a triangle