]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Image.h
c5cb760d3c3880fad940e9ca8a9ee22357b130ba
[cpPlugins.git] / lib / cpPlugins / Image.h
1 #ifndef __CPPLUGINS__IMAGE__H__
2 #define __CPPLUGINS__IMAGE__H__
3
4 #include <cpPlugins/DataObject.h>
5
6 #include <itkProcessObject.h>
7
8 namespace cpPlugins
9 {
10   /**
11    */
12   class cpPlugins_EXPORT Image
13     : public DataObject
14   {
15   public:
16     typedef Image                           Self;
17     typedef DataObject                      Superclass;
18     typedef itk::SmartPointer< Self >       Pointer;
19     typedef itk::SmartPointer< const Self > ConstPointer;
20
21   public:
22     itkNewMacro( Self );
23     itkTypeMacro( Image, DataObject );
24     cpPlugins_Id_Macro( Image, Object );
25
26   public:
27     virtual void SetITK( itk::LightObject* o ) ITK_OVERRIDE;
28     virtual void SetVTK( vtkObjectBase* o ) ITK_OVERRIDE;
29
30   protected:
31     Image( );
32     virtual ~Image( );
33
34     virtual void _CreateVTKActor( ) const ITK_OVERRIDE;
35
36     template< unsigned int D >
37       inline bool _ITK_2_VTK_0_Scalar( itk::LightObject* o );
38
39     template< unsigned int D >
40       inline bool _ITK_2_VTK_0_Color( itk::LightObject* o );
41
42     template< class P, unsigned int D >
43       inline bool _ITK_2_VTK_1( itk::LightObject* o );
44
45     template< class T >
46       inline bool _ITK_2_VTK_2( itk::LightObject* o );
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 #include <cpPlugins/Image.hxx>
60
61 #endif // __CPPLUGINS__IMAGE__H__
62
63 // eof - $RCSfile$