#ifndef __fpa__Image__Functors__SimpleNeighborhood__h__ #define __fpa__Image__Functors__SimpleNeighborhood__h__ #include #include #include namespace fpa { namespace Image { namespace Functors { /** */ template< class _TImage > class SimpleNeighborhood : public fpa::Image::Functors::Base< _TImage, itk::FunctionBase< typename _TImage::IndexType, std::vector< typename _TImage::IndexType > > > { public: typedef _TImage TImage; typedef typename TImage::IndexType TIndex; typedef typename TIndex::OffsetType TOffset; typedef std::vector< TIndex > TOutput; typedef itk::FunctionBase< TIndex, TOutput > TBaseFunctor; typedef fpa::Image::Functors::Base< TImage, TBaseFunctor > Superclass; typedef SimpleNeighborhood Self; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; public: itkNewMacro( Self ); itkTypeMacro( SimpleNeighborhood, Base ); itkGetConstMacro( Order, unsigned int ); itkSetMacro( Order, unsigned int ); public: virtual TOutput Evaluate( const TIndex& center ) const fpa_OVERRIDE; protected: SimpleNeighborhood( ); virtual ~SimpleNeighborhood( ); void _1stCombination( ) const; void _2ndCombination( ) const; private: // Purposely not implemented SimpleNeighborhood( const Self& other ); Self& operator=( const Self& other ); protected: unsigned int m_Order; mutable std::vector< TOffset > m_Offsets; }; } // ecapseman } // ecapseman } // ecapseman #ifndef ITK_MANUAL_INSTANTIATION # include #endif // ITK_MANUAL_INSTANTIATION #endif // __fpa__Image__Functors__SimpleNeighborhood__h__ // eof - $RCSfile$