]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/OrthoNormalBase.h
...
[cpPlugins.git] / lib / cpPlugins / OrthoNormalBase.h
1 #ifndef __CPPLUGINS__ORTHONORMALBASE__H__
2 #define __CPPLUGINS__ORTHONORMALBASE__H__
3
4 #include <cpPlugins/DataObject.h>
5
6 #include <vtkAxesActor.h>
7 #include <vtkSmartPointer.h>
8
9 namespace cpPlugins
10 {
11   /**
12    */
13   class cpPlugins_EXPORT OrthoNormalBase
14     : public DataObject
15   {
16   public:
17     typedef OrthoNormalBase                 Self;
18     typedef DataObject                      Superclass;
19     typedef itk::SmartPointer< Self >       Pointer;
20     typedef itk::SmartPointer< const Self > ConstPointer;
21
22   public:
23     itkNewMacro( Self );
24     itkTypeMacro( OrthoNormalBase, DataObject );
25     cpPlugins_Id_Macro( OrthoNormalBase, Object );
26
27   public:
28     virtual void SetITK( itk::LightObject* o ) ITK_OVERRIDE;
29     virtual void SetVTK( vtkObjectBase* o ) ITK_OVERRIDE;
30
31     template< class _TMatrix >
32       inline void SetITK( const _TMatrix& m );
33
34     template< class _TMatrix, class _TVector >
35       inline void SetITK( const _TMatrix& m, const _TVector& v );
36
37   protected:
38     OrthoNormalBase( );
39     virtual ~OrthoNormalBase( );
40
41     virtual void _CreateVTKActor( ) const ITK_OVERRIDE;
42
43   private:
44     // Purposely not implemented
45     OrthoNormalBase( const Self& );
46     Self& operator=( const Self& );
47
48   protected:
49     mutable vtkSmartPointer< vtkAxesActor > m_BaseActor;
50   };
51
52 } // ecapseman
53
54 #include <cpPlugins/OrthoNormalBase.hxx>
55
56 #endif // __CPPLUGINS__ORTHONORMALBASE__H__
57
58 // eof - $RCSfile$