1 #ifndef __CPM__ALGORITHMS__QUADEDGE__DECIMATIONFILTER__H__
2 #define __CPM__ALGORITHMS__QUADEDGE__DECIMATIONFILTER__H__
4 #include <itkMeshToMeshFilter.h>
14 template< class I, class O, class C >
15 class DecimationFilter
16 : public itk::MeshToMeshFilter< I, O >
19 typedef DecimationFilter Self;
20 typedef itk::MeshToMeshFilter< I, O > Superclass;
21 typedef itk::SmartPointer< Self > Pointer;
22 typedef itk::SmartPointer< const Self > ConstPointer;
25 typedef O TOutputMesh;
29 itkTypeMacro( DecimationFilter, itkMeshToMeshFilter );
30 itkSetObjectMacro( Criterion, C );
34 virtual ~DecimationFilter( );
36 virtual void GenerateData( );
37 virtual void Initialize( );
39 virtual void FillPriorityQueue( ) = 0;
40 virtual void Extract( ) = 0;
41 virtual bool ProcessWithoutAnyTopologicalGuarantee( ) = 0;
42 virtual bool ProcessWithTopologicalGuarantee( ) = 0;
43 virtual bool IsCriterionSatisfied( ) = 0;
46 // Purposely not implemented
47 DecimationFilter( const Self& );
48 void operator=( const Self& );
51 typename C::Pointer m_Criterion;
52 unsigned long m_Iteration;
61 #include <cpm/Algorithms/QuadEdge/DecimationFilter.hxx>
63 #endif // __CPM__ALGORITHMS__QUADEDGE__DECIMATIONFILTER__H__