]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Interface/Image.h
23e1c233c3d2d80748c4bc90b5ad807703a40dc0
[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 // -------------------------------------------------------------------------
9 namespace cpPlugins
10 {
11   namespace Interface
12   {
13     /**
14      */
15     class cpPlugins_Interface_EXPORT Image
16       : public DataObject
17     {
18     public:
19       typedef Image                           Self;
20       typedef DataObject                      Superclass;
21       typedef itk::SmartPointer< Self >       Pointer;
22       typedef itk::SmartPointer< const Self > ConstPointer;
23
24     public:
25       itkNewMacro( Self );
26       itkTypeMacro( Image, DataObject );
27       cpPlugins_Id_Macro( Image, DataObject );
28
29     public:
30       template< class I >
31         inline void SetITK( itk::Object* object );
32
33       virtual void SetVTK( vtkObject* image );
34
35     protected:
36       Image( );
37       virtual ~Image( );
38
39       template< class P, unsigned int D >
40         inline void _ITK_2_VTK( itk::Object* object );
41
42     private:
43       // Purposely not implemented
44       Image( const Self& );
45       Self& operator=( const Self& );
46
47     protected:
48       itk::ProcessObject::Pointer m_ITKvVTKConnection;
49     };
50
51   } // ecapseman
52
53 } // ecapseman
54
55 #include <cpPlugins/Interface/Image.hxx>
56
57 #endif // __CPPLUGINS__INTERFACE__IMAGE__H__
58
59 // eof - $RCSfile$