]> Creatis software - FrontAlgorithms.git/blobdiff - plugins/ImageAlgorithms/Dijkstra.cxx
...
[FrontAlgorithms.git] / plugins / ImageAlgorithms / Dijkstra.cxx
similarity index 62%
rename from plugins/Plugins/ImageDijkstra.cxx
rename to plugins/ImageAlgorithms/Dijkstra.cxx
index 7c8212ef9f6e80d66ea56afc5a53c72c3602d57d..56be8f1a6590cbd27266a8abcdd1f64934300db8 100644 (file)
@@ -1,17 +1,15 @@
-#include <Plugins/ImageDijkstra.h>
+#include <ImageAlgorithms/Dijkstra.h>
 #include <cpInstances/Image.h>
-#include <cpInstances/Image_Demanglers.h>
 
 #include <fpa/Image/Dijkstra.h>
-#include <vtkPolyData.h>
 
 // -------------------------------------------------------------------------
-fpaPlugins::ImageDijkstra::
-ImageDijkstra( )
+fpaPluginsImageAlgorithms::Dijkstra::
+Dijkstra( )
   : Superclass( )
 {
   typedef cpPlugins::BaseObjects::DataObject _TData;
-  typedef cpInstances::Image      _TMST;
+  typedef cpInstances::Image _TMST;
 
   this->_ConfigureInput< _TData >( "Cost", false, false );
   this->_ConfigureInput< _TData >( "CostConversion", false, false );
@@ -25,13 +23,13 @@ ImageDijkstra( )
 }
 
 // -------------------------------------------------------------------------
-fpaPlugins::ImageDijkstra::
-~ImageDijkstra( )
+fpaPluginsImageAlgorithms::Dijkstra::
+~Dijkstra( )
 {
 }
 
 // -------------------------------------------------------------------------
-void fpaPlugins::ImageDijkstra::
+void fpaPluginsImageAlgorithms::Dijkstra::
 _GenerateData( )
 {
   auto o = this->GetInputData( "Input" );
@@ -41,7 +39,7 @@ _GenerateData( )
 
 // -------------------------------------------------------------------------
 template< class _TImage >
-void fpaPlugins::ImageDijkstra::
+void fpaPluginsImageAlgorithms::Dijkstra::
 _GD0( _TImage* image )
 {
   typedef itk::Image< float, _TImage::ImageDimension >  _TFloat;
@@ -54,55 +52,21 @@ _GD0( _TImage* image )
 
 // -------------------------------------------------------------------------
 template< class _TInputImage, class _TOutputImage >
-void fpaPlugins::ImageDijkstra::
+void fpaPluginsImageAlgorithms::Dijkstra::
 _GD1( _TInputImage* image )
 {
   typedef fpa::Image::Dijkstra< _TInputImage, _TOutputImage > _TFilter;
   typedef typename _TFilter::TCostConversionFunction _TCostConversion;
   typedef typename _TFilter::TCostFunction           _TCost;
-  typedef typename _TFilter::TNeighborhoodFunction   _TNeighborhood;
 
-  // Get functors
-  auto neig = this->GetInputData< _TNeighborhood >( "Neighborhood" );
+  auto filter = this->_CreateITK< _TFilter >( );
+  this->_ConfigureFilter( filter, image );
   auto cost = this->GetInputData< _TCost >( "Cost" );
   auto conv = this->GetInputData< _TCostConversion >( "CostConversion" );
-
-  // Configure filter
-  auto filter = this->_CreateITK< _TFilter >( );
-  filter->SetInput( image );
-  if( neig != NULL )
-    filter->SetNeighborhoodFunction( neig );
   if( cost != NULL )
     filter->SetCostFunction( cost );
   if( conv != NULL )
     filter->SetCostConversionFunction( conv );
-  filter->SetStopAtOneFront( this->m_Parameters.GetBool( "StopAtOneFront" ) );
-
-  // Assign seeds
-  auto seeds = this->GetInputData< vtkPolyData >( "Seeds" );
-  if( seeds != NULL )
-  {
-    typename _TInputImage::PointType pnt;
-    typename _TInputImage::IndexType idx;
-    unsigned int dim =
-      ( _TInputImage::ImageDimension < 3 )? _TInputImage::ImageDimension: 3;
-
-    for( int i = 0; i < seeds->GetNumberOfPoints( ); ++i )
-    {
-      double buf[ 3 ];
-      seeds->GetPoint( i, buf );
-      pnt.Fill( 0 );
-      for( unsigned int d = 0; d < dim; ++d )
-        pnt[ d ] = buf[ d ];
-
-      if( image->TransformPhysicalPointToIndex( pnt, idx ) )
-        filter->AddSeed( idx, 0 );
-
-    } // rof
-
-  } // fi
-
-  // Assign outputs
   filter->Update( );
   this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
   this->GetOutput( "MST" )->SetITK( filter->GetMinimumSpanningTree( ) );