38 #include "vtkCell3D.h"
42 class vtkUnstructuredGrid;
43 class vtkIncrementalPointLocator;
50 void PrintSelf(ostream& os,
vtkIndent indent);
54 virtual void GetEdgePoints(
int edgeId,
int* &pts);
55 virtual void GetFacePoints(
int faceId,
int* &pts);
63 vtkCell *GetEdge(
int edgeId);
64 vtkCell *GetFace(
int faceId);
66 vtkIncrementalPointLocator *locator,
vtkCellArray *verts,
69 vtkCellData *inCd,
vtkIdType cellId, vtkCellData *outCd);
71 vtkIncrementalPointLocator *locator,
vtkCellArray *connectivity,
73 vtkCellData *inCd,
vtkIdType cellId, vtkCellData *outCd,
75 int EvaluatePosition(
double x[3],
double* closestPoint,
76 int& subId,
double pcoords[3],
77 double& dist2,
double *weights);
78 void EvaluateLocation(
int& subId,
double pcoords[3],
double x[3],
80 int IntersectWithLine(
double p1[3],
double p2[3],
double tol,
double& t,
81 double x[3],
double pcoords[3],
int& subId);
83 void Derivatives(
int subId,
double pcoords[3],
double *values,
84 int dim,
double *derivs);
85 virtual double *GetParametricCoords();
91 int CellBoundary(
int subId,
double pcoords[3],
vtkIdList *pts);
94 int GetParametricCenter(
double pcoords[3]);
98 double GetParametricDistance(
double pcoords[3]);
102 static void TetraCenter(
double p1[3],
double p2[3],
double p3[3],
double p4[3],
110 static double Circumsphere(
double p1[3],
double p2[3],
double p3[3],
111 double p4[3],
double center[3]);
118 static double Insphere(
double p1[3],
double p2[3],
double p3[3],
119 double p4[3],
double center[3]);
134 static int BarycentricCoords(
double x[3],
double x1[3],
double x2[3],
135 double x3[3],
double x4[3],
double bcoords[4]);
141 static double ComputeVolume(
double p1[3],
double p2[3],
double p3[3],
148 int JacobianInverse(
double **inverse,
double derivs[12]);
152 static void InterpolationFunctions(
double pcoords[3],
double weights[4]);
155 static void InterpolationDerivs(
double pcoords[3],
double derivs[12]);
172 static int *GetEdgeArray(
int edgeId);
173 static int *GetFaceArray(
int faceId);
190 pcoords[0] = pcoords[1] = pcoords[2] = 0.25;
static void InterpolationDerivs(double pcoords[3], double derivs[12])
represent and manipulate point attribute data
static void InterpolationFunctions(double pcoords[3], double weights[4])
virtual void InterpolateDerivs(double pcoords[3], double derivs[12])
int GetParametricCenter(double pcoords[3])
a 3D cell that represents a tetrahedron
cell represents a 1D line
a simple class to control print indentation
list of point or cell ids
abstract superclass for arrays of numeric data
virtual void InterpolateFunctions(double pcoords[3], double weights[4])
object to represent cell connectivity
a cell that represents a triangle
represent and manipulate 3D points