00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00025 #ifndef __vtkPolyVertex_h
00026 #define __vtkPolyVertex_h
00027
00028 #include "vtkCell.h"
00029
00030 class vtkVertex;
00031 class vtkIncrementalPointLocator;
00032
00033 class VTK_FILTERING_EXPORT vtkPolyVertex : public vtkCell
00034 {
00035 public:
00036 static vtkPolyVertex *New();
00037 vtkTypeRevisionMacro(vtkPolyVertex,vtkCell);
00038 void PrintSelf(ostream& os, vtkIndent indent);
00039
00041
00042 int GetCellType() {return VTK_POLY_VERTEX;};
00043 int GetCellDimension() {return 0;};
00044 int GetNumberOfEdges() {return 0;};
00045 int GetNumberOfFaces() {return 0;};
00046 vtkCell *GetEdge(int vtkNotUsed(edgeId)) {return 0;};
00047 vtkCell *GetFace(int vtkNotUsed(faceId)) {return 0;};
00048 int CellBoundary(int subId, double pcoords[3], vtkIdList *pts);
00049 void Contour(double value, vtkDataArray *cellScalars,
00050 vtkIncrementalPointLocator *locator, vtkCellArray *verts,
00051 vtkCellArray *lines, vtkCellArray *polys,
00052 vtkPointData *inPd, vtkPointData *outPd,
00053 vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd);
00054 void Clip(double value, vtkDataArray *cellScalars,
00055 vtkIncrementalPointLocator *locator, vtkCellArray *verts,
00056 vtkPointData *inPd, vtkPointData *outPd,
00057 vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd,
00058 int insideOut);
00059 int EvaluatePosition(double x[3], double* closestPoint,
00060 int& subId, double pcoords[3],
00061 double& dist2, double *weights);
00062 void EvaluateLocation(int& subId, double pcoords[3], double x[3],
00063 double *weights);
00064 int IntersectWithLine(double p1[3], double p2[3], double tol, double& t,
00065 double x[3], double pcoords[3], int& subId);
00066 int Triangulate(int index, vtkIdList *ptIds, vtkPoints *pts);
00067 void Derivatives(int subId, double pcoords[3], double *values,
00068 int dim, double *derivs);
00069 int IsPrimaryCell() {return 0;}
00071
00073 int GetParametricCenter(double pcoords[3]);
00074
00076
00078 virtual void InterpolateFunctions(double pcoords[3], double *weights);
00079 virtual void InterpolateDerivs(double pcoords[3], double *derivs);
00081
00082 protected:
00083 vtkPolyVertex();
00084 ~vtkPolyVertex();
00085
00086 vtkVertex *Vertex;
00087
00088 private:
00089 vtkPolyVertex(const vtkPolyVertex&);
00090 void operator=(const vtkPolyVertex&);
00091 };
00092
00093 #endif
00094
00095