X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Ffpa%2FFilters%2FImage%2FInterface.h;fp=lib%2Ffpa%2FFilters%2FImage%2FInterface.h;h=d0df734501d95b9f7111c372241544caf19c0a1a;hb=bd89a1af0c14ed2ac0afeca923103de54283cbaf;hp=0000000000000000000000000000000000000000;hpb=a8ac405fe1422bc0792a810f7f0693096a22c20e;p=FrontAlgorithms.git diff --git a/lib/fpa/Filters/Image/Interface.h b/lib/fpa/Filters/Image/Interface.h new file mode 100644 index 0000000..d0df734 --- /dev/null +++ b/lib/fpa/Filters/Image/Interface.h @@ -0,0 +1,74 @@ +// ========================================================================= +// @author Leonardo Florez Valencia +// @email florez-l@javeriana.edu.co +// ========================================================================= +#ifndef __fpa__Filters__Image__Interface__h__ +#define __fpa__Filters__Image__Interface__h__ + +#include + +namespace fpa +{ + namespace Filters + { + namespace Image + { + /** + */ + template< class _TTraits > + class Interface + : public fpa::Filters::Algorithm< _TTraits > + { + public: + typedef _TTraits TTraits; + typedef typename TTraits::TInputImage TInputImage; + typedef typename TTraits::TOutputImage TOutputImage; + typedef typename TTraits::TMarksImage TMarksImage; + fpaTraitsMacro( typename TTraits ); + + typedef fpa::Filters::Algorithm< _TTraits > Superclass; + typedef Interface Self; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + public: + fpaFilterOutputMacro( Marks, TMarksImage ); + + itkGetConstMacro( NeighborhoodOrder, unsigned int ); + itkSetMacro( NeighborhoodOrder, unsigned int ); + + protected: + Interface( ); + virtual ~Interface( ); + + // Filter related methods + virtual void _AssignOutputValue( const TNode& n ) override; + virtual void _ConfigureOutputs( ) override; + virtual TInputValue _GetInputValue( const TVertex& v ) const override; + virtual TOutputValue _GetOutputValue( const TVertex& v ) const override; + virtual TNeighborhood _GetNeighbors( const TVertex& v ) const override; + + // Marks related methods + virtual unsigned long _GetMark( const TVertex& v ) const override; + virtual bool _IsMarked( const TVertex& v ) const override; + virtual void _Mark( const TNode& n ) override; + + private: + Interface( const Self& other ); + Self& operator=( const Self& other ); + + protected: + unsigned int m_NeighborhoodOrder; + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#ifndef ITK_MANUAL_INSTANTIATION +# include +#endif // ITK_MANUAL_INSTANTIATION +#endif // __fpa__Filters__Image__Interface__h__ +// eof - $RCSfile$