]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Workspace.cxx
...
[cpPlugins.git] / lib / cpPlugins / Workspace.cxx
index a63b749670717e43961d7709fe8f5a7da7e32d40..4c1fe1d298b2976faf57a21b5869bdfa1d0d365a 100644 (file)
@@ -7,6 +7,7 @@
 cpPlugins::Workspace::
 Workspace( )
   : m_Interface( NULL ),
+    m_PrintExecution( false ),
     m_MPRViewer( NULL )
 {
   this->m_Graph = TGraph::New( );
@@ -93,6 +94,28 @@ GetFilter( const std::string& name ) const
   return( f );
 }
 
+// -------------------------------------------------------------------------
+cpPlugins::DataObject* cpPlugins::Workspace::
+GetOutput( const std::string& filter, const std::string& output )
+{
+  auto f = this->GetFilter( filter );
+  if( f != NULL )
+    return( f->GetOutput( output ) );
+  else
+    return( NULL );
+}
+
+// -------------------------------------------------------------------------
+const cpPlugins::DataObject* cpPlugins::Workspace::
+GetOutput( const std::string& filter, const std::string& output ) const
+{
+  auto f = this->GetFilter( filter );
+  if( f != NULL )
+    return( f->GetOutput( output ) );
+  else
+    return( NULL );
+}
+
 // -------------------------------------------------------------------------
 bool cpPlugins::Workspace::
 HasFilter( const std::string& name ) const
@@ -117,8 +140,7 @@ CreateFilter(
   // Get or create new filter from name
   if( !( this->m_Graph->HasVertexIndex( name ) ) )
   {
-    ProcessObject::Pointer f =
-      this->m_Interface->Create( category, filter );
+    ProcessObject::Pointer f = this->m_Interface->Create( category, filter );
     if( f.IsNotNull( ) )
     {
       if( f->IsInteractive( ) )
@@ -129,6 +151,7 @@ CreateFilter(
         f->SetInteractionObjects( interactive_objects );
 
       } // fi
+      f->SetPrintExecution( this->m_PrintExecution );
       Object::Pointer o = f.GetPointer( );
       this->m_Graph->SetVertex( name, o );
 
@@ -167,6 +190,35 @@ SetParameter( const std::string& name, const std::string& value )
   } // fi
 }
 
+// -------------------------------------------------------------------------
+void cpPlugins::Workspace::
+SetPrintExecution( bool b )
+{
+  this->m_PrintExecution = b;
+  auto vIt = this->m_Graph->BeginVertices( );
+  for( ; vIt != this->m_Graph->EndVertices( ); ++vIt )
+  {
+    auto f = dynamic_cast< ProcessObject* >( vIt->second.GetPointer( ) );
+    if( f != NULL )
+      f->SetPrintExecution( b );
+
+  } // rof
+}
+
+// -------------------------------------------------------------------------
+void cpPlugins::Workspace::
+PrintExecutionOn( )
+{
+  this->SetPrintExecution( true );
+}
+
+// -------------------------------------------------------------------------
+void cpPlugins::Workspace::
+PrintExecutionOff( )
+{
+  this->SetPrintExecution( false );
+}
+
 // -------------------------------------------------------------------------
 vtkRenderWindowInteractor* cpPlugins::Workspace::
 GetSingleInteractor( )
@@ -223,7 +275,7 @@ Connect(
     return( false );
 
   // Real connection
-  if( dest->SetInput( input_name, orig->GetOutput( output_name ) ) )
+  if( dest->SetInputPort( input_name, orig->GetOutputPort( output_name ) ) )
   {
     this->m_Graph->AddEdge(
       orig_filter, dest_filter,
@@ -244,7 +296,7 @@ Connect( const OutputPort& port, const std::string& exposed_port )
   {
     ProcessObject* filter = this->GetFilter( i->second.first );
     if( filter != NULL )
-      return( filter->SetInput( i->second.second, port ) );
+      return( filter->SetInputPort( i->second.second, port ) );
     else
       return( false );
   }
@@ -369,7 +421,7 @@ GetExposedOutput( const std::string& name )
   {
     ProcessObject* filter = this->GetFilter( i->second.first );
     if( filter != NULL )
-      return( filter->GetOutput( i->second.second ) );
+      return( filter->GetOutputPort( i->second.second ) );
 
   } // fi
   return( null_port );
@@ -387,7 +439,7 @@ GetExposedOutput( const std::string& name ) const
   {
     const ProcessObject* filter = this->GetFilter( i->second.first );
     if( filter != NULL )
-      return( filter->GetOutput( i->second.second ) );
+      return( filter->GetOutputPort( i->second.second ) );
 
   } // fi
   return( null_port );