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