X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FInterface%2FProcessObject.h;h=9548d48167c19fda02e1fdb2fa897c0afdb6c348;hb=2eaf38cfdcbd2cfb0cc323dad6ded6bbeb436edf;hp=9cf1924992d2396d4e93f20e97a3ae81270a40b4;hpb=e9143845b476fc8b86c1706fb140ebee770a650b;p=cpPlugins.git diff --git a/lib/cpPlugins/Interface/ProcessObject.h b/lib/cpPlugins/Interface/ProcessObject.h index 9cf1924..9548d48 100644 --- a/lib/cpPlugins/Interface/ProcessObject.h +++ b/lib/cpPlugins/Interface/ProcessObject.h @@ -2,6 +2,9 @@ #define __CPPLUGINS__INTERFACE__PROCESSOBJECT__H__ #include + +#include + #include #include #include @@ -42,16 +45,16 @@ namespace cpPlugins ); public: + // To impact pipeline + virtual void Modified( ) const; + virtual TParameters* GetParameters( ); virtual const TParameters* GetParameters( ) const; virtual unsigned int GetNumberOfInputs( ) const; virtual unsigned int GetNumberOfOutputs( ) const; - virtual void SetNumberOfInputs( unsigned int n ); - virtual void SetNumberOfOutputs( unsigned int n ); - - virtual void SetInput( unsigned int idx, DataObject* dobj ); + virtual void SetInput( const std::string& id, DataObject* dobj ); virtual std::string Update( ); virtual void DisconnectOutputs( ); @@ -71,21 +74,23 @@ namespace cpPlugins inline const T* GetVTK( ) const; template< class T > - inline T* GetInput( unsigned int idx ); + inline T* GetInput( const std::string& id ); template< class T > - inline const T* GetInput( unsigned int idx ) const; + inline const T* GetInput( const std::string& id ) const; template< class T > - inline T* GetOutput( unsigned int idx ); + inline T* GetOutput( const std::string& id ); template< class T > - inline const T* GetOutput( unsigned int idx ) const; + inline const T* GetOutput( const std::string& id ) const; protected: ProcessObject( ); virtual ~ProcessObject( ); + virtual void _AddInput( const std::string& name ); + template< class F > inline F* _CreateITK( ); @@ -93,7 +98,7 @@ namespace cpPlugins inline F* _CreateVTK( ); template< class O > - inline void _MakeOutput( unsigned int idx ); + inline void _MakeOutput( const std::string& id ); virtual std::string _GenerateData( ) = 0; @@ -108,8 +113,9 @@ namespace cpPlugins Parameters::Pointer m_Parameters; - std::vector< DataObject::Pointer > m_Inputs; - std::vector< DataObject::Pointer > m_Outputs; + typedef std::map< std::string, DataObject::Pointer > _TDataContainer; + _TDataContainer m_Inputs; + _TDataContainer m_Outputs; }; } // ecapseman