dox/Common/vtkQuadraticTetra.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00039
#ifndef __vtkQuadraticTetra_h
00040
#define __vtkQuadraticTetra_h
00041
00042
#include "vtkNonLinearCell.h"
00043
00044
class vtkPolyData;
00045
class vtkQuadraticEdge;
00046
class vtkQuadraticTriangle;
00047
class vtkTetra;
00048
00049 class VTK_COMMON_EXPORT vtkQuadraticTetra :
public vtkNonLinearCell
00050 {
00051
public:
00052
static vtkQuadraticTetra *
New();
00053 vtkTypeRevisionMacro(vtkQuadraticTetra,
vtkNonLinearCell);
00054
00056
00058 int GetCellType() {
return VTK_QUADRATIC_TETRA;}
00059 int GetCellDimension() {
return 3;}
00060 int GetNumberOfEdges() {
return 6;}
00061 int GetNumberOfFaces() {
return 4;}
00062
vtkCell *
GetEdge(
int);
00063
vtkCell *
GetFace(
int);
00065
00066
int CellBoundary(
int subId,
float pcoords[3],
vtkIdList *pts);
00067
void Contour(
float value,
vtkDataArray *cellScalars,
00068
vtkPointLocator *locator,
vtkCellArray *verts,
00069
vtkCellArray *lines,
vtkCellArray *polys,
00070
vtkPointData *inPd,
vtkPointData *outPd,
00071
vtkCellData *inCd,
vtkIdType cellId,
vtkCellData *outCd);
00072
int EvaluatePosition(
float x[3],
float* closestPoint,
00073
int& subId,
float pcoords[3],
00074
float& dist2,
float *weights);
00075
void EvaluateLocation(
int& subId,
float pcoords[3],
float x[3],
00076
float *weights);
00077
int Triangulate(
int index,
vtkIdList *ptIds,
vtkPoints *pts);
00078
void Derivatives(
int subId,
float pcoords[3],
float *values,
00079
int dim,
float *derivs);
00080
00082
00084
void Clip(
float value,
vtkDataArray *cellScalars,
00085
vtkPointLocator *locator,
vtkCellArray *tetras,
00086
vtkPointData *inPd,
vtkPointData *outPd,
00087
vtkCellData *inCd,
vtkIdType cellId,
vtkCellData *outCd,
00088
int insideOut);
00090
00092
00094
int IntersectWithLine(
float p1[3],
float p2[3],
float tol,
float& t,
00095
float x[3],
float pcoords[3],
int& subId);
00097
00098
00100
int GetParametricCenter(
float pcoords[3]);
00101
00103
00104
static void InterpolationFunctions(
float pcoords[3],
float weights[3]);
00105
static void InterpolationDerivs(
float pcoords[3],
float derivs[3]);
00107
00111
void JacobianInverse(
float pcoords[3],
double **inverse,
float derivs[30]);
00112
00113
protected:
00114 vtkQuadraticTetra();
00115 ~vtkQuadraticTetra();
00116
00117 vtkQuadraticEdge *Edge;
00118 vtkQuadraticTriangle *Face;
00119 vtkTetra *Tetra;
00120 vtkFloatArray *Scalars;
00121
00122
private:
00123 vtkQuadraticTetra(
const vtkQuadraticTetra&);
00124
void operator=(
const vtkQuadraticTetra&);
00125 };
00126
00127
#endif
00128
00129