]> Creatis software - cpPlugins.git/blob - lib/cpInstances/Image.h
Cast image filter added. ROI filter modified.
[cpPlugins.git] / lib / cpInstances / Image.h
1 #ifndef __cpInstances__Image__h__
2 #define __cpInstances__Image__h__
3
4 #include <cpInstances/cpPluginsDataObjects_Export.h>
5 #include <cpPlugins/BaseObjects/DataObject.h>
6 #include <cpInstances/Image_Demanglers.h>
7 #include <itkProcessObject.h>
8
9 class vtkImageData;
10
11 namespace cpInstances
12 {
13   /**
14    */
15   class cpPluginsDataObjects_EXPORT Image
16     : public cpPlugins::BaseObjects::DataObject
17   {
18   public:
19     typedef Image                              Self;
20     typedef cpPlugins::BaseObjects::DataObject Superclass;
21     typedef itk::SmartPointer< Self >          Pointer;
22     typedef itk::SmartPointer< const Self >    ConstPointer;
23
24   public:
25     cpPluginsNewMacro( Self );
26     itkTypeMacro( Image, cpPlugins::BaseObjects::DataObject );
27     cpPlugins_Id_Macro( Image, Object );
28     cpPlugins_Compatibility_Macro;
29
30   public:
31     virtual void SetITK( itk::LightObject* o ) cpPlugins_OVERRIDE;
32     virtual void SetVTK( vtkObjectBase* o ) cpPlugins_OVERRIDE;
33
34   protected:
35     Image( );
36     virtual ~Image( );
37
38     virtual void _UpdateITK( ) const cpPlugins_OVERRIDE;
39     virtual void _UpdateVTK( ) const cpPlugins_OVERRIDE;
40
41     template< class _TImage >
42     inline void _ITK_2_VTK_0( _TImage* image ) const;
43
44     template< class _TImage >
45     inline void _ITK_2_VTK_1( _TImage* image ) const;
46
47     template< class _TPixel >
48     inline bool _VTK_2_ITK_0( vtkImageData* image );
49
50     template< class _TPixel, unsigned int _VDim >
51     inline bool _VTK_2_ITK_1( vtkImageData* image );
52
53   private:
54     // Purposely not implemented
55     Image( const Self& );
56     Self& operator=( const Self& );
57
58   protected:
59     itk::ProcessObject::Pointer m_ITKvVTK;
60   };
61
62 } // ecapseman
63
64 #endif // __cpInstances__Image__h__
65
66 // eof - $RCSfile$