#ifndef __CPPLUGINS__INTERFACE__PROCESSOBJECT__H__ #define __CPPLUGINS__INTERFACE__PROCESSOBJECT__H__ #include #include #include #include #include #ifdef cpPlugins_Interface_QT4 class QWidget; #else typedef char QWidget #endif // cpPlugins_Interface_QT4 #include class vtkAlgorithm; namespace cpPlugins { namespace Interface { /** */ class cpPlugins_Interface_EXPORT ProcessObject : public Object { public: typedef ProcessObject Self; typedef Object Superclass; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; public: itkTypeMacro( ProcessObject, Object ); public: virtual vtkAlgorithm* GetVTKAlgorithm( ) { return( NULL ); } virtual const vtkAlgorithm* GetVTKAlgorithm( ) const { return( NULL ); } virtual const Parameters& GetDefaultParameters( ) const; virtual void SetParameters( const Parameters& params ); 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 std::string Update( ); virtual void DisconnectOutputs( ); virtual bool ExecConfigurationDialog( QWidget* parent ); template< class T > inline T* GetInput( unsigned int idx ); template< class T > inline const T* GetInput( unsigned int idx ) const; template< class T > inline T* GetOutput( unsigned int idx ); template< class T > inline const T* GetOutput( unsigned int idx ) const; protected: ProcessObject( ); virtual ~ProcessObject( ); template< class O > inline void _MakeOutput( unsigned int idx ); virtual std::string _GenerateData( ) = 0; private: // Purposely not implemented ProcessObject( const Self& ); Self& operator=( const Self& ); protected: itk::ProcessObject::Pointer m_RealProcessObject; Parameters m_DefaultParameters; Parameters m_Parameters; std::vector< DataObject::Pointer > m_Inputs; std::vector< DataObject::Pointer > m_Outputs; }; } // ecapseman } // ecapseman #include #endif // __CPPLUGINS__INTERFACE__PROCESSOBJECT__H__ // eof - $RCSfile$