]> Creatis software - FrontAlgorithms.git/blobdiff - plugins/fpa/ImageRegionGrow.cxx
...
[FrontAlgorithms.git] / plugins / fpa / ImageRegionGrow.cxx
index a988c632bc8f894caf4ce480d929829ab4a3e742..333c70865afbf8ce0f49b43263112a3649dbac7e 100644 (file)
@@ -1,12 +1,7 @@
 #include "ImageRegionGrow.h"
 
 #include <cpPlugins/Image.h>
-#include <fpa/Image/RegionGrow.h>
-#include <fpa/Base/RegionGrow.hxx>
-#include <fpa/Image/RegionGrow.hxx>
-#include <fpa/Base/Algorithm.hxx>
-#include <fpa/Image/Algorithm.hxx>
-#include <fpa/Image/Functors/RegionGrowAllBelongsFunction.h>
+#include <fpa_Instances/Filters.h>
 
 // -------------------------------------------------------------------------
 fpaPlugins::ImageRegionGrow::
@@ -27,39 +22,35 @@ fpaPlugins::ImageRegionGrow::
 }
 
 // -------------------------------------------------------------------------
-std::string fpaPlugins::ImageRegionGrow::
+void fpaPlugins::ImageRegionGrow::
 _GenerateData( )
 {
-  auto image = this->GetInputData( "Input" )->GetITK< itk::DataObject >( );
-  std::string   cpPlugin_Image_Demangle_Pixel_AllScalars( r, _GD0, image, 2 );
-  if( r != "" ) cpPlugin_Image_Demangle_Pixel_AllScalars( r, _GD0, image, 3 );
-  return( r );
+  auto image = this->GetInputData< itk::DataObject >( "Input" );
+  cpPlugins_Image_Demangle_Pixel_AllScalars     ( _GD0, image, 2 );
+  else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 3 );
+  else this->_Error( "No valid input image." );
 }
 
 // -------------------------------------------------------------------------
 template< class _TImage >
-std::string fpaPlugins::ImageRegionGrow::
+void fpaPlugins::ImageRegionGrow::
 _GD0( _TImage* image )
 {
-  typedef fpa::Image::RegionGrow< _TImage, _TImage > _TFilter;
-  typedef typename _TFilter::TGrowingFunction        _TGrowFunctor;
-  typedef typename _TFilter::TResult                 _TResult;
+  typedef unsigned short _TPixel;
+  typedef itk::Image< _TPixel, _TImage::ImageDimension > _TOutImage;
+  typedef fpa::Image::RegionGrow< _TImage, _TOutImage >  _TFilter;
+  typedef typename _TFilter::TGrowingFunction            _TGrowFunctor;
+  typedef typename _TFilter::TResult                     _TResult;
 
-  if( image == NULL )
-    return( "fpaPlugins::ImageRegionGrow: Invalid image type." );
+  // Create filter
+  _TFilter* filter = this->_ConfigureFilter< _TFilter >( );
 
-  // Get functor (if any)
   typename _TGrowFunctor::Pointer functor;
-  auto wrap_functor = this->GetInputData( "GrowFunctor" );
+  auto wrap_functor = this->GetInput( "GrowFunctor" );
   if( wrap_functor != NULL )
     functor = wrap_functor->GetITK< _TGrowFunctor >( );
   if( functor.IsNull( ) )
-    functor =
-      fpa::Image::Functors::RegionGrowAllBelongsFunction< _TImage >::New( );
-
-  // Create filter
-  _TFilter* filter = this->_ConfigureFilter< _TFilter >( );
-  filter->SetGrowingFunction( functor );
+    filter->SetGrowingFunction( functor );
   filter->SetInsideValue(
     _TResult( this->m_Parameters.GetUint( "InsideValue" ) )
     );
@@ -69,10 +60,6 @@ _GD0( _TImage* image )
 
   // Go!!!
   this->_ExecuteFilter( filter );
-
-  // Connect remaining output
-  this->GetOutputData( "Output" )->SetITK( filter->GetOutput( ) );
-  return( "" );
 }
 
 // eof - $RCSfile$