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