dox/Common/vtkHexahedron.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00037
#ifndef __vtkHexahedron_h
00038
#define __vtkHexahedron_h
00039
00040
#include "vtkCell3D.h"
00041
00042
class vtkLine;
00043
class vtkQuad;
00044
00045 class VTK_COMMON_EXPORT vtkHexahedron :
public vtkCell3D
00046 {
00047
public:
00048
static vtkHexahedron *
New();
00049 vtkTypeRevisionMacro(vtkHexahedron,
vtkCell3D);
00050
00052
00053
virtual void GetEdgePoints(
int edgeId,
int* &pts);
00054
virtual void GetFacePoints(
int faceId,
int* &pts);
00055
virtual float *
GetParametricCoords();
00057
00059
00060 int GetCellType() {
return VTK_HEXAHEDRON;}
00061 int GetNumberOfEdges() {
return 12;}
00062 int GetNumberOfFaces() {
return 6;}
00063
vtkCell *
GetEdge(
int edgeId);
00064
vtkCell *
GetFace(
int faceId);
00065
int CellBoundary(
int subId,
float pcoords[3],
vtkIdList *pts);
00066
void Contour(
float value,
vtkDataArray *cellScalars,
00067
vtkPointLocator *locator,
vtkCellArray *verts,
00068
vtkCellArray *lines,
vtkCellArray *polys,
00069
vtkPointData *inPd,
vtkPointData *outPd,
00070
vtkCellData *inCd,
vtkIdType cellId,
vtkCellData *outCd);
00072
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 IntersectWithLine(
float p1[3],
float p2[3],
float tol,
float& t,
00079
float x[3],
float pcoords[3],
int& subId);
00080
int Triangulate(
int index,
vtkIdList *ptIds,
vtkPoints *pts);
00081
void Derivatives(
int subId,
float pcoords[3],
float *values,
00082
int dim,
float *derivs);
00083
00085
00086
static void InterpolationFunctions(
float pcoords[3],
float weights[8]);
00087
static void InterpolationDerivs(
float pcoords[3],
float derivs[24]);
00088
static int *GetEdgeArray(
int edgeId);
00089
static int *GetFaceArray(
int faceId);
00091
00095
void JacobianInverse(
float pcoords[3],
double **inverse,
float derivs[24]);
00096
00097
protected:
00098 vtkHexahedron();
00099 ~vtkHexahedron();
00100
00101 vtkLine *Line;
00102 vtkQuad *Quad;
00103
00104
private:
00105 vtkHexahedron(
const vtkHexahedron&);
00106
void operator=(
const vtkHexahedron&);
00107 };
00108
00109
#endif
00110
00111