1 #ifndef __CPPLUGINS__INTERFACE__DATAOBJECT__H__
2 #define __CPPLUGINS__INTERFACE__DATAOBJECT__H__
4 #include <cpPlugins/Interface/Object.h>
7 #include <vtkSmartPointer.h>
14 // Some forward declarations
19 class cpPlugins_Interface_EXPORT DataObject
23 typedef DataObject Self;
24 typedef Object Superclass;
25 typedef itk::SmartPointer< Self > Pointer;
26 typedef itk::SmartPointer< const Self > ConstPointer;
30 itkTypeMacro( DataObject, Object );
31 cpPlugins_Id_Macro( DataObject, "BasicObject" );
34 ProcessObject* GetSource( );
35 const ProcessObject* GetSource( ) const;
36 void SetSource( ProcessObject* src );
38 void DisconnectPipeline( );
44 inline const T* GetITK( ) const;
50 inline const T* GetVTK( ) const;
54 virtual ~DataObject( );
57 // Purposely not implemented
58 DataObject( const Self& );
59 Self& operator=( const Self& );
62 itk::Object::Pointer m_ITKObject;
63 vtkSmartPointer< vtkObject > m_VTKObject;
64 ProcessObject* m_Source;
71 #include <cpPlugins/Interface/DataObject.hxx>
73 #endif // __CPPLUGINS__INTERFACE__DATAOBJECT__H__