dox/Common/vtkWedge.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 __vtkWedge_h
00038
#define __vtkWedge_h
00039
00040
#include "vtkCell3D.h"
00041
00042
class vtkLine;
00043
class vtkTriangle;
00044
class vtkQuad;
00045
00046
class vtkUnstructuredGrid;
00047
00048 class VTK_COMMON_EXPORT vtkWedge :
public vtkCell3D
00049 {
00050
public:
00051
static vtkWedge *
New();
00052 vtkTypeRevisionMacro(vtkWedge,
vtkCell3D);
00053
00055
00056
virtual void GetEdgePoints(
int edgeId,
int* &pts);
00057
virtual void GetFacePoints(
int faceId,
int* &pts);
00058
virtual float *
GetParametricCoords();
00060
00062
00063 int GetCellType() {
return VTK_WEDGE;}
00064 int GetCellDimension() {
return 3;}
00065 int GetNumberOfEdges() {
return 9;}
00066 int GetNumberOfFaces() {
return 5;}
00067
vtkCell *
GetEdge(
int edgeId);
00068
vtkCell *
GetFace(
int faceId);
00069
int CellBoundary(
int subId,
float pcoords[3],
vtkIdList *pts);
00070
void Contour(
float value,
vtkDataArray *cellScalars,
00071
vtkPointLocator *locator,
vtkCellArray *verts,
00072
vtkCellArray *lines,
vtkCellArray *polys,
00073
vtkPointData *inPd,
vtkPointData *outPd,
00074
vtkCellData *inCd,
vtkIdType cellId,
vtkCellData *outCd);
00075
int EvaluatePosition(
float x[3],
float* closestPoint,
00076
int& subId,
float pcoords[3],
00077
float& dist2,
float *weights);
00078
void EvaluateLocation(
int& subId,
float pcoords[3],
float x[3],
00079
float *weights);
00080
int IntersectWithLine(
float p1[3],
float p2[3],
float tol,
float& t,
00081
float x[3],
float pcoords[3],
int& subId);
00082
int Triangulate(
int index,
vtkIdList *ptIds,
vtkPoints *pts);
00083
void Derivatives(
int subId,
float pcoords[3],
float *values,
00084
int dim,
float *derivs);
00086
00088
int GetParametricCenter(
float pcoords[3]);
00089
00091
00093
static void InterpolationFunctions(
float pcoords[3],
float weights[6]);
00094
static void InterpolationDerivs(
float pcoords[3],
float derivs[18]);
00095
int JacobianInverse(
float pcoords[3],
double **inverse,
float derivs[18]);
00096
static int *GetEdgeArray(
int edgeId);
00097
static int *GetFaceArray(
int faceId);
00099
00100
protected:
00101 vtkWedge();
00102 ~vtkWedge();
00103
00104 vtkLine *Line;
00105 vtkTriangle *Triangle;
00106 vtkQuad *Quad;
00107
00108
private:
00109 vtkWedge(
const vtkWedge&);
00110
void operator=(
const vtkWedge&);
00111 };
00112
00113 inline int vtkWedge::GetParametricCenter(
float pcoords[3])
00114 {
00115 pcoords[0] = pcoords[1] = 0.333333f;
00116 pcoords[2] = 0.5f;
00117
return 0;
00118 }
00119
00120
#endif
00121
00122
00123