X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FInterface%2FDataObject.h;h=d90f8e960da95f0dd1ce834ce7a3ecf442a4ca33;hb=f654620df52b811be7bd263a1775c93d29c69a65;hp=e61da5cbef4f04b82e41afccb1e092008795cd63;hpb=9015cf98c60cf4ab304a639990004ee783a8bec0;p=cpPlugins.git diff --git a/lib/cpPlugins/Interface/DataObject.h b/lib/cpPlugins/Interface/DataObject.h index e61da5c..d90f8e9 100644 --- a/lib/cpPlugins/Interface/DataObject.h +++ b/lib/cpPlugins/Interface/DataObject.h @@ -1,20 +1,19 @@ #ifndef __CPPLUGINS__INTERFACE__DATAOBJECT__H__ #define __CPPLUGINS__INTERFACE__DATAOBJECT__H__ -#include -#include -#include -#include -#include #include -#define ITK_MANUAL_INSTANTIATION -#include +#include +#include +#include namespace cpPlugins { namespace Interface { + // Some forward declarations + class ProcessObject; + /** */ class cpPlugins_Interface_EXPORT DataObject @@ -27,22 +26,28 @@ namespace cpPlugins typedef itk::SmartPointer< const Self > ConstPointer; public: + itkNewMacro( Self ); itkTypeMacro( DataObject, Object ); + cpPlugins_Id_Macro( DataObject, "BasicObject" ); public: - virtual itk::DataObject* GetITKDataObject( ); - virtual const itk::DataObject* GetITKDataObject( ) const; - virtual void SetITKDataObject( itk::DataObject* o ) = 0; + ProcessObject* GetSource( ); + const ProcessObject* GetSource( ) const; + void SetSource( ProcessObject* src ); + + void DisconnectPipeline( ); - virtual vtkDataObject* GetVTKDataObject( ); - virtual const vtkDataObject* GetVTKDataObject( ) const; - virtual void SetVTKDataObject( vtkDataObject* o ) = 0; + template< class T > + inline T* GetITK( ); - Object* GetSource( ); - const Object* GetSource( ) const; - void SetSource( Object* src ); + template< class T > + inline const T* GetITK( ) const; - void DisconnectPipeline( ); + template< class T > + inline T* GetVTK( ); + + template< class T > + inline const T* GetVTK( ) const; protected: DataObject( ); @@ -54,15 +59,17 @@ namespace cpPlugins Self& operator=( const Self& ); protected: - itk::DataObject::Pointer m_ITKObject; - vtkSmartPointer< vtkDataObject > m_VTKObject; - Object::Pointer m_Source; + itk::Object::Pointer m_ITKObject; + vtkSmartPointer< vtkObject > m_VTKObject; + ProcessObject* m_Source; }; } // ecapseman } // ecapseman +#include + #endif // __CPPLUGINS__INTERFACE__DATAOBJECT__H__ // eof - $RCSfile$