]> Creatis software - cpPlugins.git/blobdiff - plugins/ITKImageInterpolators/InterpolateImageFunction.h
yet another refactoring
[cpPlugins.git] / plugins / ITKImageInterpolators / InterpolateImageFunction.h
diff --git a/plugins/ITKImageInterpolators/InterpolateImageFunction.h b/plugins/ITKImageInterpolators/InterpolateImageFunction.h
new file mode 100644 (file)
index 0000000..d3fd440
--- /dev/null
@@ -0,0 +1,54 @@
+#ifndef __cpPluginsITKImageInterpolators__InterpolateImageFunction__h__
+#define __cpPluginsITKImageInterpolators__InterpolateImageFunction__h__
+
+#include <cpPlugins_ITKImageInterpolators_Export.h>
+#include <cpPlugins/Pipeline/ProcessObject.h>
+
+namespace cpPluginsITKImageInterpolators
+{
+  /**
+   */
+  class cpPlugins_ITKImageInterpolators_EXPORT InterpolateImageFunction
+    : public cpPlugins::Pipeline::ProcessObject
+  {
+  public:
+    typedef InterpolateImageFunction              Self;
+    typedef cpPlugins::Pipeline::ProcessObject Superclass;
+    typedef itk::SmartPointer< Self >             Pointer;
+    typedef itk::SmartPointer< const Self >       ConstPointer;
+
+  public:
+    itkTypeMacro( BaseFilter, cpPlugins::Pipeline::ProcessObject );
+    cpPlugins_Id_Macro( InterpolateImageFunction, ImageInterpolators );
+
+  public:
+    virtual void SetITK( itk::LightObject* o ) cpPlugins_OVERRIDE;
+    virtual void SetVTK( vtkObjectBase* o ) cpPlugins_OVERRIDE;
+
+  protected:
+    InterpolateImageFunction( );
+    virtual ~InterpolateImageFunction( );
+
+  public:
+    virtual void CreateInterpolator(
+      itk::LightObject* image,
+      const std::string& precision_type
+      ) = 0;
+
+  protected:
+    virtual void _GenerateData( ) cpPlugins_OVERRIDE;
+
+  private:
+    // Purposely not implemented.
+    InterpolateImageFunction( const Self& other );
+    Self& operator=( const Self& other );
+
+  protected:
+    std::string m_PrecisionType;
+  };
+
+} // ecapseman
+
+#endif // __cpPluginsITKImageInterpolators__InterpolateImageFunction__h__
+
+// eof - $RCSfile$