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