37 #ifndef __vtkPolyhedron_h
38 #define __vtkPolyhedron_h
50 class vtkIdToIdVectorMapType;
51 class vtkIdToIdMapType;
70 virtual void GetEdgePoints(
int vtkNotUsed(edgeId),
int* &vtkNotUsed(pts)) {}
71 virtual void GetFacePoints(
int vtkNotUsed(faceId),
int* &vtkNotUsed(pts)) {}
72 virtual double *GetParametricCoords();
81 virtual void Initialize();
87 virtual int GetNumberOfEdges();
88 virtual vtkCell *GetEdge(
int);
89 virtual int GetNumberOfFaces();
90 virtual vtkCell *GetFace(
int faceId);
128 virtual int EvaluatePosition(
double x[3],
double* closestPoint,
129 int& subId,
double pcoords[3],
130 double& dist2,
double *weights);
136 virtual void EvaluateLocation(
int& subId,
double pcoords[3],
double x[3],
145 virtual int IntersectWithLine(
double p1[3],
double p2[3],
double tol,
double& t,
146 double x[3],
double pcoords[3],
int& subId);
170 virtual void Derivatives(
int subId,
double pcoords[3],
double *values,
171 int dim,
double *derivs);
176 virtual int CellBoundary(
int subId,
double pcoords[3],
vtkIdList *pts);
180 virtual int GetParametricCenter(
double pcoords[3]);
189 virtual void InterpolateFunctions(
double x[3],
double *sf);
190 virtual void InterpolateDerivs(
double x[3],
double *derivs);
210 int IsInside(
double x[3],
double tolerance);
247 void GenerateFaces();
251 void ComputeBounds();
252 void ComputeParametricCoordinate(
double x[3],
double pc[3]);
253 void ComputePositionFromParametricCoordinate(
double pc[3],
double x[3]);
260 void ConstructPolyData();
263 void ConstructLocator();
269 int InternalContour(
double value,
277 vtkIdToIdVectorMapType & faceToPointsMap,
278 vtkIdToIdVectorMapType & pointToFacesMap,
279 vtkIdToIdMapType & pointIdMap);
285 int IntersectWithContour(
double value,
295 vtkInternal * Internal;
302 pcoords[0] = pcoords[1] = pcoords[2] = 0.5;