// ------------------------------------------------------------------------- // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co) // ------------------------------------------------------------------------- #ifndef __cpExtensions__Algorithms__DiscontinuityMapImageFilter__h__ #define __cpExtensions__Algorithms__DiscontinuityMapImageFilter__h__ #include #include namespace cpExtensions { namespace Algorithms { /** */ template< class _TInputImage > class DiscontinuityMapImageFilter : public itk::BoxImageFilter< _TInputImage, itk::Image< double, _TInputImage::ImageDimension > > { public: typedef _TInputImage TInputImage; typedef itk::Image< double, _TInputImage::ImageDimension > TOutputImage; typedef DiscontinuityMapImageFilter Self; typedef itk::BoxImageFilter< TInputImage, TOutputImage > Superclass; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; typedef typename TInputImage::PixelType TInputPixel; typedef typename TInputImage::RegionType TRegion; typedef typename TOutputImage::PixelType TOutputPixel; public: itkNewMacro( Self ); itkTypeMacro( DiscontinuityMapImageFilter, itkBoxImageFilter ); itkBooleanMacro( UseSquareRoot ); itkGetConstMacro( UseSquareRoot, bool ); itkSetMacro( UseSquareRoot, bool ); protected: DiscontinuityMapImageFilter( ); virtual ~DiscontinuityMapImageFilter( ); virtual void ThreadedGenerateData( const TRegion& region, itk::ThreadIdType threadId ) override; private: // Purposely not implemented. DiscontinuityMapImageFilter( const Self& ); void operator=( const Self& ); protected: bool m_UseSquareRoot; }; } // ecapseman } // ecapseman #ifndef ITK_MANUAL_INSTANTIATION # include #endif // ITK_MANUAL_INSTANTIATION #endif // __cpExtensions__Algorithms__DiscontinuityMapImageFilter__h__ // eof - $RCSfile$