]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Interface/Image.h
04d9507a1e1107bca513819c4fdd125cba8df400
[cpPlugins.git] / lib / cpPlugins / Interface / Image.h
1 #ifndef __CPPLUGINS__INTERFACE__IMAGE__H__
2 #define __CPPLUGINS__INTERFACE__IMAGE__H__
3
4 #include <map>
5 #include <string>
6 #include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
7 #include <cpPlugins/Interface/DataObject.h>
8
9 #define ITK_MANUAL_INSTANTIATION
10 #include <itkProcessObject.h>
11
12 class vtkImageData;
13
14 namespace cpPlugins
15 {
16   namespace Interface
17   {
18     /**
19      */
20     class cpPlugins_Interface_EXPORT Image
21       : public DataObject
22     {
23     public:
24       typedef Image                           Self;
25       typedef DataObject                      Superclass;
26       typedef itk::SmartPointer< Self >       Pointer;
27       typedef itk::SmartPointer< const Self > ConstPointer;
28
29     public:
30       itkNewMacro( Self );
31       itkTypeMacro( Image, DataObject );
32
33     public:
34       virtual void SetITKDataObject( itk::DataObject* o );
35       virtual void SetVTKDataObject( vtkDataObject* o );
36
37       virtual vtkImageData* GetVTKImageData( );
38       virtual const vtkImageData* GetVTKImageData( ) const;
39
40     protected:
41       Image( );
42       virtual ~Image( );
43
44       template< unsigned int D >
45         void _ITK_2_VTK_0( itk::DataObject* o );
46
47       template< class P, unsigned int D >
48         void _ITK_2_VTK_1( itk::DataObject* o );
49
50     private:
51       // Purposely not implemented
52       Image( const Self& );
53       Self& operator=( const Self& );
54
55     protected:
56       itk::ProcessObject::Pointer m_ITKvVTKConnection;
57     };
58
59   } // ecapseman
60
61 } // ecapseman
62
63 #endif // __CPPLUGINS__INTERFACE__IMAGE__H__
64
65 // eof - $RCSfile$