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