1 #ifndef __cpPlugins__BaseObjects__Object__h__
2 #define __cpPlugins__BaseObjects__Object__h__
4 #include <cpPlugins/Config.h>
6 #include <itkLightObject.h>
8 #include <itkObjectFactory.h>
9 #include <vtkSmartPointer.h>
10 #include <vtkObjectBase.h>
18 class cpPlugins_EXPORT Object
23 typedef itk::Object Superclass;
24 typedef itk::SmartPointer< Self > Pointer;
25 typedef itk::SmartPointer< const Self > ConstPointer;
28 itkTypeMacro( Object, itk::Object );
31 virtual const char* GetClassName( ) const = 0;
32 virtual const char* GetClassCategory( ) const = 0;
34 const float& GetViewX( ) const;
35 const float& GetViewY( ) const;
36 void SetViewCoords( float x, float y );
38 virtual void Modified( ) const cpPlugins_OVERRIDE;
39 virtual itk::ModifiedTimeType GetMTime( ) const cpPlugins_OVERRIDE;
41 virtual void SetITK( itk::LightObject* o );
42 virtual void SetVTK( vtkObjectBase* o );
44 template< class _TType = itk::LightObject >
45 inline _TType* GetITK( );
47 template< class _TType = itk::LightObject >
48 inline const _TType* GetITK( ) const;
50 template< class _TType = vtkObjectBase >
51 inline _TType* GetVTK( );
53 template< class _TType = vtkObjectBase >
54 inline const _TType* GetVTK( ) const;
61 // Purposely not implemented
62 Object( const Self& );
63 Self& operator=( const Self& );
66 itk::LightObject::Pointer m_ITK;
67 vtkSmartPointer< vtkObjectBase > m_VTK;
77 #include <cpPlugins/BaseObjects/Object.hxx>
79 #endif // __cpPlugins__BaseObjects__Object__h__