]> Creatis software - FrontAlgorithms.git/blobdiff - plugins/fpa/ImageDijkstra.cxx
...
[FrontAlgorithms.git] / plugins / fpa / ImageDijkstra.cxx
index cd34a9c7c30687f1e1b778cafaeee7c658213e80..ef86917f0134e2d1bb71760bae61863765c3ce23 100644 (file)
@@ -2,13 +2,7 @@
 #include "MinimumSpanningTree.h"
 
 #include <cpPlugins/Image.h>
-#include <fpa/Image/Dijkstra.h>
-#include <fpa/Base/Dijkstra.hxx>
-#include <fpa/Image/Dijkstra.hxx>
-#include <fpa/Base/Algorithm.hxx>
-#include <fpa/Image/Algorithm.hxx>
-#include <fpa/Base/Functors/InvertCostFunction.h>
-#include <itkSimpleDataObjectDecorator.hxx>
+#include <fpa_Instances/Filters.h>
 
 // -------------------------------------------------------------------------
 fpaPlugins::ImageDijkstra::
@@ -28,36 +22,35 @@ fpaPlugins::ImageDijkstra::
 }
 
 // -------------------------------------------------------------------------
-std::string fpaPlugins::ImageDijkstra::
+void fpaPlugins::ImageDijkstra::
 _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::ImageDijkstra::
+void fpaPlugins::ImageDijkstra::
 _GD0( _TImage* image )
 {
-  typedef fpa::Image::Dijkstra< _TImage, _TImage > _TFilter;
-  typedef typename _TFilter::TResult               _TCost;
-  typedef itk::FunctionBase< _TCost, _TCost >      _TCostFunctor;
-  typedef typename _TFilter::TMinimumSpanningTree  _TMST;
-
-  if( image == NULL )
-    return( "fpaPlugins::ImageDijkstra: Invalid image type." );
+  typedef float                                          _TPixel;
+  typedef itk::Image< _TPixel, _TImage::ImageDimension > _TOutImage;
+  typedef fpa::Image::Dijkstra< _TImage, _TOutImage >    _TFilter;
+  typedef typename _TFilter::TResult                     _TCost;
+  typedef itk::FunctionBase< _TCost, _TCost >            _TCostFunctor;
+  typedef typename _TFilter::TMinimumSpanningTree        _TMST;
 
   auto base_functor =
-    this->GetInputData( "CostFunctor" )->GetITK< itk::LightObject >( );
+    this->GetInputData< itk::LightObject >( "CostFunctor" );
   _TCostFunctor* functor = NULL;
   if( base_functor != NULL )
   {
     functor = dynamic_cast< _TCostFunctor* >( base_functor );
     if( functor == NULL )
-      return( "fpaPlugins::ImageDijkstra: Given cost functor is invalid." );
+      this->_Error( "Given cost functor is invalid." );
 
   } // fi
   
@@ -70,9 +63,7 @@ _GD0( _TImage* image )
   this->_ExecuteFilter( filter );
 
   // Connect remaining output
-  this->GetOutputData( "Output" )->SetITK( filter->GetOutput( ) );
-  this->GetOutputData( "MST" )->SetITK( filter->GetMinimumSpanningTree( ) );
-  return( "" );
+  this->GetOutput( "MST" )->SetITK( filter->GetMinimumSpanningTree( ) );
 }
 
 // eof - $RCSfile$