00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00045 #ifndef __vtkReebGraphSurfaceSkeletonFilter_h
00046 #define __vtkReebGraphSurfaceSkeletonFilter_h
00047 
00048 #include  "vtkDataObjectAlgorithm.h"
00049 
00050 class vtkReebGraph;
00051 class vtkTable;
00052 
00053 class VTK_GRAPHICS_EXPORT vtkReebGraphSurfaceSkeletonFilter :
00054   public vtkDataObjectAlgorithm
00055 {
00056 public:
00057   static vtkReebGraphSurfaceSkeletonFilter* New();
00058   vtkTypeMacro(vtkReebGraphSurfaceSkeletonFilter, vtkDataObjectAlgorithm);
00059   void PrintSelf(ostream& os, vtkIndent indent);
00060 
00062 
00064   vtkSetMacro(NumberOfSamples, int);
00065   vtkGetMacro(NumberOfSamples, int);
00067 
00069 
00070   vtkSetMacro(NumberOfSmoothingIterations, int);
00071   vtkGetMacro(NumberOfSmoothingIterations, int);
00073 
00075 
00076   vtkSetMacro(FieldId, vtkIdType);
00077   vtkGetMacro(FieldId, vtkIdType);
00079 
00080   vtkTable* GetOutput();
00081 
00082 protected:
00083   vtkReebGraphSurfaceSkeletonFilter();
00084   ~vtkReebGraphSurfaceSkeletonFilter();
00085 
00086   vtkIdType FieldId;
00087   int NumberOfSamples, NumberOfSmoothingIterations;
00088 
00089   int FillInputPortInformation(int portNumber, vtkInformation *);
00090   int FillOutputPortInformation(int portNumber, vtkInformation *info);
00091 
00092   int RequestData(vtkInformation *request,
00093     vtkInformationVector **inputVector, vtkInformationVector *outputVector);
00094 
00095 private:
00096   vtkReebGraphSurfaceSkeletonFilter(const vtkReebGraphSurfaceSkeletonFilter&); 
00097   void operator=(const vtkReebGraphSurfaceSkeletonFilter&); 
00098 };
00099 
00100 #endif