// ========================================================================= // @author Leonardo Florez Valencia // @email florez-l@javeriana.edu.co // ========================================================================= #ifndef __fpa__Filters__Image__Mori__h__ #define __fpa__Filters__Image__Mori__h__ #include #include #include #include #include namespace fpa { namespace Filters { namespace Image { /** */ template< class _TInputImage, class _TOutputImage > class MoriTraits : public fpa::Filters::Image::DefaultTraits< _TInputImage, _TOutputImage, unsigned long > { public: typedef _TInputImage TInputImage; typedef _TOutputImage TOutputImage; typedef fpa::Filters::Image::DefaultTraits< TInputImage, TOutputImage, unsigned long > Superclass; typedef typename Superclass::TInternalTraits TInternalTraits; typedef typename Superclass::TFilter TFilter; typedef fpa::Filters::MarksInterface< TInternalTraits > TMarksInterface; typedef fpa::Filters::SingleSeedInterface< TInternalTraits > TSeedsInterface; }; /** */ template< class _TInputImage, class _TOutputImage, class _TTraits = fpa::Filters::Image::MoriTraits< _TInputImage, _TOutputImage > > class Mori : public fpa::Filters::Image::Algorithm< fpa::Filters::Mori< _TTraits > > { public: typedef _TInputImage TInputImage; typedef _TOutputImage TOutputImage; typedef _TTraits TTraits; fpaTraitsMacro( typename, TTraits ); typedef fpa::Filters::Mori< TTraits > TAlgorithm; typedef fpa::Filters::Image::Algorithm< TAlgorithm > Superclass; typedef Mori Self; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; public: itkNewMacro( Self ); itkTypeMacro( fpa::Filters::Image::Mori, fpa::Filters::Image::Algorithm ); protected: Mori( ) : Superclass( ) { } virtual ~Mori( ) { } private: // Purposely not implemented. Mori( const Self& other ); Self& operator=( const Self& other ); }; } // ecapseman } // ecapseman } // ecapseman #endif // __fpa__Filters__Image__Mori__h__ // eof - $RCSfile$