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