1 #ifndef __CPPLUGINS__OBJECT__H__
2 #define __CPPLUGINS__OBJECT__H__
4 #include <cpPlugins/Utilities.h>
7 #include <itkLightObject.h>
9 #include <itkObjectFactory.h>
10 #include <vtkSmartPointer.h>
11 #include <vtkObjectBase.h>
17 class cpPlugins_EXPORT Object
22 typedef itk::Object Superclass;
23 typedef itk::SmartPointer< Self > Pointer;
24 typedef itk::SmartPointer< const Self > ConstPointer;
27 itkTypeMacro( Object, itk::Object );
30 virtual const char* GetClassName( ) const = 0;
31 virtual const char* GetClassCategory( ) const = 0;
33 const float& GetViewX( ) const;
34 const float& GetViewY( ) const;
35 void SetViewCoords( float x, float y );
37 virtual void Modified( ) const ITK_OVERRIDE;
38 virtual itk::ModifiedTimeType GetMTime( ) const ITK_OVERRIDE;
40 virtual void SetITK( itk::LightObject* o );
41 virtual void SetVTK( vtkObjectBase* o );
47 inline const T* GetITK( ) const;
53 inline const T* GetVTK( ) const;
60 // Purposely not implemented
61 Object( const Self& );
62 Self& operator=( const Self& );
65 itk::LightObject::Pointer m_ITKObject;
66 vtkSmartPointer< vtkObjectBase > m_VTKObject;
74 #include <cpPlugins/Object.hxx>
76 #endif // __CPPLUGINS__OBJECT__H__