+++ /dev/null
-#ifndef __cpPlugins__Interface__Workspace__h__
-#define __cpPlugins__Interface__Workspace__h__
-
-#include <cpPlugins/Interface/Plugins.h>
-#include <cpPlugins/BaseObjects/DataObject.h>
-#include <cpPlugins/BaseObjects/ProcessObject.h>
-#include <cpPlugins/BaseObjects/Widget.h>
-#include <itkObject.h>
-
-class vtkRenderWindowInteractor;
-
-namespace cpPlugins
-{
- namespace Interface
- {
- /** \brief A complex pipeline
- */
- class cpPlugins_EXPORT Workspace
- : public itk::Object
- {
- public:
- typedef Workspace Self;
- typedef itk::Object Superclass;
- typedef itk::SmartPointer< Self > Pointer;
- typedef itk::SmartPointer< const Self > ConstPointer;
-
- typedef cpPlugins::BaseObjects::DataObject TDataObject;
- typedef cpPlugins::BaseObjects::ProcessObject TFilter;
- typedef cpPlugins::BaseObjects::Widget TWidget;
- typedef cpPlugins::Interface::Plugins TPlugins;
-
- typedef std::map< std::string, TFilter::Pointer > TFilters;
-
- /* TODO
- typedef
- std::map< std::string, std::pair< std::string, std::string > >
- TExposedPorts;
- */
-
- public:
- cpPluginsNewMacro( Self );
- itkTypeMacro( Workspace, itk::Object );
-
- public:
- // Workspace IO
- void Load( const std::string& fname );
- void Save( const std::string& fname ) const;
-
- // Memory management
- void Clear( );
-
- // Filter management
- std::vector< std::string > GetFiltersNames( ) const;
- TFilter* GetFilter( const std::string& name );
- const TFilter* GetFilter( const std::string& name ) const;
- TWidget* GetWidget( const std::string& name );
- const TWidget* GetWidget( const std::string& name ) const;
- bool HasFilter( const std::string& name ) const;
- bool HasWidget( const std::string& name ) const;
- TFilter* CreateFilter(
- const std::string& category, const std::string& filter
- );
- bool RenameFilter(
- const std::string& old_name, const std::string& new_name
- );
- bool RemoveFilter( const std::string& name );
-
- void SetPrintExecution( bool b );
- void PrintExecutionOn( );
- void PrintExecutionOff( );
-
- // Interactors
- void AddInteractor( vtkRenderWindowInteractor* iren );
-
- // Connection management
- bool Connect(
- const std::string& origin_filter,
- const std::string& origin_output,
- const std::string& destination_filter,
- const std::string& destination_input
- );
- bool Connect(
- TDataObject* input,
- const std::string& destination_filter,
- const std::string& destination_input
- );
- bool Disconnect(
- const std::string& origin_filter,
- const std::string& origin_output,
- const std::string& destination_filter,
- const std::string& destination_input
- );
-
- /* TODO
- std::vector< std::pair< std::string, std::string > > GetConnections(
- const std::string& origin, const std::string& destination
- ) const;
- void Connect(
- const std::string& orig_filter, const std::string& dest_filter,
- const std::string& output_name, const std::string& input_name
- );
- void Connect(
- cpPlugins::BaseObjects::DataObject* output,
- const std::string& dest_filter, const std::string& input_name
- );
- void Connect(
- cpPlugins::BaseObjects::DataObject* output,
- const std::string& exposed_input_name
- );
- void Disconnect(
- const std::string& orig_filter, const std::string& dest_filter,
- const std::string& output_name, const std::string& input_name
- );
- void Disconnect(
- const std::string& dest_filter, const std::string& input_name
- );
- void Disconnect( const std::string& dest_filter );
- */
-
- // Pipeline execution
- void Update( );
- void Update( const std::string& name );
-
- protected:
- Workspace( );
- virtual ~Workspace( );
-
- private:
- // Purposely not implemented
- Workspace( const Self& other );
- Self& operator=( const Self& other );
-
- protected:
- TPlugins::Pointer m_Plugins;
- TFilters m_Filters;
- bool m_PrintExecution;
-
- /* TODO
- TExposedPorts m_ExposedInputs;
- TExposedPorts m_ExposedOutputs;
- */
-
- std::set< vtkRenderWindowInteractor* > m_Interactors;
- };
-
- } // ecapseman
-
-} // ecapseman
-
-#endif // __cpPlugins__Interface__Workspace__h__
-
-// eof - $RCSfile$