]> Creatis software - cpPlugins.git/blob - plugins/ITKImageInterpolators/InterpolateImageFunction.h
...
[cpPlugins.git] / plugins / ITKImageInterpolators / InterpolateImageFunction.h
1 #ifndef __cpPluginsITKImageInterpolators__InterpolateImageFunction__h__
2 #define __cpPluginsITKImageInterpolators__InterpolateImageFunction__h__
3
4 #include <cpPlugins_ITKImageInterpolators_Export.h>
5 #include <cpPlugins/Pipeline/ProcessObject.h>
6
7 namespace cpPluginsITKImageInterpolators
8 {
9   /**
10    */
11   class cpPlugins_ITKImageInterpolators_EXPORT InterpolateImageFunction
12     : public cpPlugins::Pipeline::ProcessObject
13   {
14   public:
15     typedef InterpolateImageFunction              Self;
16     typedef cpPlugins::Pipeline::ProcessObject Superclass;
17     typedef itk::SmartPointer< Self >             Pointer;
18     typedef itk::SmartPointer< const Self >       ConstPointer;
19
20   public:
21     itkTypeMacro( BaseFilter, cpPlugins::Pipeline::ProcessObject );
22     cpPlugins_Id_Macro( InterpolateImageFunction, ImageInterpolators );
23
24   public:
25     virtual void SetITK( itk::LightObject* o ) override;
26     virtual void SetVTK( vtkObjectBase* o ) override;
27
28   protected:
29     InterpolateImageFunction( );
30     virtual ~InterpolateImageFunction( );
31
32   public:
33     virtual void CreateInterpolator(
34       itk::LightObject* image,
35       const std::string& precision_type
36       ) = 0;
37
38   protected:
39     virtual void _GenerateData( ) override;
40
41   private:
42     // Purposely not implemented.
43     InterpolateImageFunction( const Self& other );
44     Self& operator=( const Self& other );
45
46   protected:
47     std::string m_PrecisionType;
48   };
49
50 } // ecapseman
51
52 #endif // __cpPluginsITKImageInterpolators__InterpolateImageFunction__h__
53
54 // eof - $RCSfile$