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