]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/DataObjects/Image.h
Architecture updated.
[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 #include <cpPlugins_Images.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< unsigned int _VDim >
38         inline void _ITK_2_VTK_0( itk::ImageBase< _VDim >* image );
39
40       template< class _TImage >
41         inline void _ITK_2_VTK_1( _TImage* image );
42
43     private:
44       // Purposely not implemented
45       Image( const Self& );
46       Self& operator=( const Self& );
47
48     protected:
49       itk::ProcessObject::Pointer m_ITKvVTK;
50     };
51
52   } // ecapseman
53
54 } // ecapseman
55
56 #include <cpPlugins/BaseObjects/Demangle.h>
57 #include <cpPlugins/DataObjects/Image.hxx>
58
59 #endif // __cpPlugins__DataObjects__Image__h__
60
61 // eof - $RCSfile$