]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/Algorithms/DiscontinuityMapImageFilter.h
43f44c3c143e9a5c82dd2a142d8c0194f952d838
[cpPlugins.git] / lib / cpExtensions / Algorithms / DiscontinuityMapImageFilter.h
1 // -------------------------------------------------------------------------
2 // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 // -------------------------------------------------------------------------
4
5 #ifndef __cpExtensions__Algorithms__DiscontinuityMapImageFilter__h__
6 #define __cpExtensions__Algorithms__DiscontinuityMapImageFilter__h__
7
8 #include <itkImage.h>
9 #include <itkBoxImageFilter.h>
10
11 namespace cpExtensions
12 {
13   namespace Algorithms
14   {
15     /**
16      */
17     template< class _TInputImage >
18     class DiscontinuityMapImageFilter
19       : public itk::BoxImageFilter< _TInputImage, itk::Image< double, _TInputImage::ImageDimension > >
20     {
21     public:
22       typedef _TInputImage                                        TInputImage;
23       typedef itk::Image< double, _TInputImage::ImageDimension > TOutputImage;
24       typedef DiscontinuityMapImageFilter                      Self;
25       typedef itk::BoxImageFilter< TInputImage, TOutputImage > Superclass;
26       typedef itk::SmartPointer< Self >                        Pointer;
27       typedef itk::SmartPointer< const Self >                  ConstPointer;
28
29       typedef typename TInputImage::PixelType  TInputPixel;
30       typedef typename TInputImage::RegionType TRegion;
31       typedef typename TOutputImage::PixelType TOutputPixel;
32
33     public:
34       itkNewMacro( Self );
35       itkTypeMacro( DiscontinuityMapImageFilter, itkBoxImageFilter );
36
37       itkBooleanMacro( UseSquareRoot );
38       itkGetConstMacro( UseSquareRoot, bool );
39       itkSetMacro( UseSquareRoot, bool );
40
41     protected:
42       DiscontinuityMapImageFilter( );
43       virtual ~DiscontinuityMapImageFilter( );
44
45       virtual void ThreadedGenerateData( const TRegion& region, itk::ThreadIdType threadId ) override;
46
47     private:
48       // Purposely not implemented.
49       DiscontinuityMapImageFilter( const Self& );
50       void operator=( const Self& );
51
52     protected:
53       bool m_UseSquareRoot;
54     };
55
56   } // ecapseman
57
58 } // ecapseman
59
60 #ifndef ITK_MANUAL_INSTANTIATION
61 #  include <cpExtensions/Algorithms/DiscontinuityMapImageFilter.hxx>
62 #endif // ITK_MANUAL_INSTANTIATION
63
64 #endif // __cpExtensions__Algorithms__DiscontinuityMapImageFilter__h__
65
66 // eof - $RCSfile$