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