]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpaPlugins/ImageRegionGrow.cxx
...
[FrontAlgorithms.git] / lib / fpaPlugins / ImageRegionGrow.cxx
index 0780fe028c1b604ca7494f4157494e11ec396ace..21bb43cd902af905b65aa394e0b5e96b7090ef85 100644 (file)
@@ -2,9 +2,16 @@
 
 #include <cpPlugins/Interface/Image.h>
 #include <cpPlugins/Interface/PointList.h>
+
+#include <fpaPlugins/GrowFunction.h>
+
 #include <fpa/Image/RegionGrow.h>
 #include <fpa/Image/Functors/RegionGrowAllBelongsFunction.h>
-#include <fpaPlugins/GrowFunction.h>
+#include <fpa/VTK/Image2DObserver.h>
+#include <fpa/VTK/Image3DObserver.h>
+
+#include <vtkRenderWindow.h>
+#include <vtkRenderWindowInteractor.h>
 
 // -------------------------------------------------------------------------
 fpaPlugins::ImageRegionGrow::
@@ -14,7 +21,7 @@ ImageRegionGrow( )
   this->_AddInput( "Input" );
   this->_AddInput( "GrowFunction" );
   this->_AddInput( "Seeds" );
-  this->_MakeOutput< cpPlugins::Interface::Image >( "Output" );
+  this->_AddOutput< cpPlugins::Interface::Image >( "Output" );
 
   this->m_Parameters->ConfigureAsBool( "VisualDebug" );
   this->m_Parameters->ConfigureAsBool( "StopAtOneFront" );
@@ -108,9 +115,36 @@ _GD0( itk::DataObject* data )
   } // rof
 
   // Connect visual debugger
-  /* TODO
-     this->m_Parameters->ConfigureAsBool( "VisualDebug", false );
-   */
+  if(
+    this->m_Parameters->GetBool( "VisualDebug" ) &&
+    this->m_Interactors.size( ) > 0
+    )
+  {
+    if( I::ImageDimension == 2 )
+    {
+      typedef
+        fpa::VTK::Image2DObserver< _TFilter, vtkRenderWindow >
+        _TDebugger;
+
+      for(
+        auto iIt = this->m_Interactors.begin( );
+        iIt != this->m_Interactors.end( );
+        ++iIt
+        )
+      {
+        typename _TDebugger::Pointer debugger = _TDebugger::New( );
+        debugger->SetRenderWindow( ( *iIt )->GetRenderWindow( ) );
+        debugger->SetRenderPercentage( 0.01 );
+        filter->AddObserver( itk::AnyEvent( ), debugger );
+
+      } // rof
+      filter->ThrowEventsOn( );
+    }
+    else if( I::ImageDimension == 3 )
+    {
+    } // fi
+
+  } // fi
 
   // Go!!!
   filter->Update( );