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( )
46 { return( dynamic_cast< _TType* >( this->m_ITK.GetPointer( ) ) ); }
48 template< class _TType = itk::LightObject >
49 inline const _TType* GetITK( ) const
52 dynamic_cast< const _TType* >( this->m_ITK.GetPointer( ) )
56 template< class _TType = vtkObjectBase >
57 inline _TType* GetVTK( )
58 { return( dynamic_cast< _TType* >( this->m_VTK.GetPointer( ) ) ); }
60 template< class _TType = vtkObjectBase >
61 inline const _TType* GetVTK( ) const
64 dynamic_cast< const _TType* >( this->m_VTK.GetPointer( ) )
73 // Purposely not implemented
74 Object( const Self& );
75 Self& operator=( const Self& );
78 itk::LightObject::Pointer m_ITK;
79 vtkSmartPointer< vtkObjectBase > m_VTK;
89 #endif // __cpPlugins__BaseObjects__Object__h__