1 #ifndef __CPPLUGINS__INTERFACE__DATAOBJECT__H__
2 #define __CPPLUGINS__INTERFACE__DATAOBJECT__H__
6 #include <vtkDataObject.h>
7 #include <vtkSmartPointer.h>
8 #include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
9 #include <cpPlugins/Interface/Object.h>
11 #define ITK_MANUAL_INSTANTIATION
12 #include <itkDataObject.h>
20 class cpPlugins_Interface_EXPORT DataObject
24 typedef DataObject Self;
25 typedef Object Superclass;
26 typedef itk::SmartPointer< Self > Pointer;
27 typedef itk::SmartPointer< const Self > ConstPointer;
30 itkTypeMacro( DataObject, Object );
33 virtual itk::DataObject* GetITKDataObject( );
34 virtual const itk::DataObject* GetITKDataObject( ) const;
35 virtual void SetITKDataObject( itk::DataObject* o ) = 0;
37 virtual vtkDataObject* GetVTKDataObject( );
38 virtual const vtkDataObject* GetVTKDataObject( ) const;
39 virtual void SetVTKDataObject( vtkDataObject* o ) = 0;
42 const Object* GetSource( ) const;
43 void SetSource( Object* src );
45 void DisconnectPipeline( );
49 virtual ~DataObject( );
52 // Purposely not implemented
53 DataObject( const Self& );
54 Self& operator=( const Self& );
57 itk::DataObject::Pointer m_ITKObject;
58 vtkSmartPointer< vtkDataObject > m_VTKObject;
59 Object::Pointer m_Source;
66 #endif // __CPPLUGINS__INTERFACE__DATAOBJECT__H__