]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Image/MultiplyImageAndDistanceMap.h
3c42938f7846c686eb7502653b0faff3aa987cf9
[FrontAlgorithms.git] / lib / fpa / Image / MultiplyImageAndDistanceMap.h
1 #ifndef __fpa__Image__MultiplyImageAndDistanceMap__h__
2 #define __fpa__Image__MultiplyImageAndDistanceMap__h__
3
4 #include <itkImageToImageFilter.h>
5
6 namespace fpa
7 {
8   namespace Image
9   {
10     /**
11      */
12     template< class _TInput, class _TDistanceMap >
13     class MultiplyImageAndDistanceMap
14       : public itk::ImageToImageFilter< _TInput, _TInput >
15     {
16     public:
17       typedef MultiplyImageAndDistanceMap                 Self;
18       typedef itk::ImageToImageFilter< _TInput, _TInput > Superclass;
19       typedef itk::SmartPointer< Self >                   Pointer;
20       typedef itk::SmartPointer< const Self >             ConstPointer;
21
22       typedef _TInput       TInput;
23       typedef _TDistanceMap TDistanceMap;
24
25       typedef typename TInput::RegionType TRegion;
26
27     public:
28       itkNewMacro( Self );
29       itkTypeMacro( MultiplyImageAndDistanceMap, itkImageToImageFilter );
30
31     public:
32       _TDistanceMap* GetDistanceMap( );
33       const _TDistanceMap* GetDistanceMap( ) const;
34       void SetDistanceMap( _TDistanceMap* dmap );
35
36     protected:
37       MultiplyImageAndDistanceMap( );
38       virtual ~MultiplyImageAndDistanceMap( );
39
40       virtual void ThreadedGenerateData(
41         const TRegion& region,
42         itk::ThreadIdType threadId
43         ) fpa_OVERRIDE;
44
45     private:
46       // Purposely not implemented.
47       MultiplyImageAndDistanceMap( const Self& );
48       void operator=( const Self& );
49     };
50
51   } // ecapseman
52
53 } // ecapseman
54
55 #ifndef ITK_MANUAL_INSTANTIATION
56 #  include <fpa/Image/MultiplyImageAndDistanceMap.hxx>
57 #endif // ITK_MANUAL_INSTANTIATION
58
59 #endif // __fpa__Image__MultiplyImageAndDistanceMap__h__
60
61 // eof - $RCSfile$