vtkInterpolatingSubdivisionFilter.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00041 #ifndef __vtkInterpolatingSubdivisionFilter_h
00042 #define __vtkInterpolatingSubdivisionFilter_h
00043
00044 #include "vtkPolyDataToPolyDataFilter.h"
00045
00046 class vtkCellArray;
00047 class vtkCellData;
00048 class vtkIdList;
00049 class vtkIntArray;
00050 class vtkPointData;
00051 class vtkPoints;
00052 class vtkPolyData;
00053
00054 class VTK_GRAPHICS_EXPORT vtkInterpolatingSubdivisionFilter : public vtkPolyDataToPolyDataFilter
00055 {
00056 public:
00057 vtkTypeRevisionMacro(vtkInterpolatingSubdivisionFilter,vtkPolyDataToPolyDataFilter);
00058 void PrintSelf(ostream& os, vtkIndent indent);
00059
00061
00062 vtkSetMacro(NumberOfSubdivisions,int);
00063 vtkGetMacro(NumberOfSubdivisions,int);
00065
00066 protected:
00067 vtkInterpolatingSubdivisionFilter();
00068 ~vtkInterpolatingSubdivisionFilter() {};
00069
00070 void Execute();
00071 virtual void GenerateSubdivisionPoints (vtkPolyData *inputDS, vtkIntArray *edgeData, vtkPoints *outputPts, vtkPointData *outputPD) = 0;
00072 void GenerateSubdivisionCells (vtkPolyData *inputDS, vtkIntArray *edgeData, vtkCellArray *outputPolys, vtkCellData *outputCD);
00073 int FindEdge (vtkPolyData *mesh, vtkIdType cellId, vtkIdType p1,
00074 vtkIdType p2, vtkIntArray *edgeData, vtkIdList *cellIds);
00075 vtkIdType InterpolatePosition (vtkPoints *inputPts, vtkPoints *outputPts,
00076 vtkIdList *stencil, double *weights);
00077 int NumberOfSubdivisions;
00078
00079 private:
00080 vtkInterpolatingSubdivisionFilter(const vtkInterpolatingSubdivisionFilter&);
00081 void operator=(const vtkInterpolatingSubdivisionFilter&);
00082 };
00083
00084 #endif
00085
00086