1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5 #ifndef __fpa__Filters__Image__Interface__h__
6 #define __fpa__Filters__Image__Interface__h__
8 #include <fpa/Filters/Algorithm.h>
18 template< class _TTraits >
20 : public fpa::Filters::Algorithm< _TTraits >
23 typedef _TTraits TTraits;
24 typedef typename TTraits::TInputImage TInputImage;
25 typedef typename TTraits::TOutputImage TOutputImage;
26 typedef typename TTraits::TMarksImage TMarksImage;
27 fpaTraitsMacro( typename TTraits );
29 typedef fpa::Filters::Algorithm< _TTraits > Superclass;
30 typedef Interface Self;
31 typedef itk::SmartPointer< Self > Pointer;
32 typedef itk::SmartPointer< const Self > ConstPointer;
35 fpaFilterOutputMacro( Marks, TMarksImage );
37 itkGetConstMacro( NeighborhoodOrder, unsigned int );
38 itkSetMacro( NeighborhoodOrder, unsigned int );
42 virtual ~Interface( );
44 // Filter related methods
45 virtual void _AssignOutputValue( const TNode& n ) override;
46 virtual void _ConfigureOutputs( ) override;
47 virtual TInputValue _GetInputValue( const TVertex& v ) const override;
48 virtual TOutputValue _GetOutputValue( const TVertex& v ) const override;
49 virtual TNeighborhood _GetNeighbors( const TVertex& v ) const override;
51 // Marks related methods
52 virtual unsigned long _GetMark( const TVertex& v ) const override;
53 virtual bool _IsMarked( const TVertex& v ) const override;
54 virtual void _Mark( const TNode& n ) override;
57 Interface( const Self& other );
58 Self& operator=( const Self& other );
61 unsigned int m_NeighborhoodOrder;
70 #ifndef ITK_MANUAL_INSTANTIATION
71 # include <fpa/Filters/Image/Interface.hxx>
72 #endif // ITK_MANUAL_INSTANTIATION
73 #endif // __fpa__Filters__Image__Interface__h__