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