]> Creatis software - FrontAlgorithms.git/blobdiff - plugins/fpa/BaseImageFilter.hxx
...
[FrontAlgorithms.git] / plugins / fpa / BaseImageFilter.hxx
similarity index 59%
rename from lib/fpaPlugins/BaseImageFilter.hxx
rename to plugins/fpa/BaseImageFilter.hxx
index 4c27afd834193e813b8ae3a81e2c75b032dc1ea6..9d99f478e6c9814f6919bf2fbe133c11c0034274 100644 (file)
@@ -1,58 +1,64 @@
 #ifndef __FPAPLUGINS__BASEIMAGEFILTER__HXX__
 #define __FPAPLUGINS__BASEIMAGEFILTER__HXX__
 
-#include <cpPlugins/Interface/Image.h>
-#include <cpPlugins/Interface/PointList.h>
-#include <cpPlugins/Interface/SimpleMPRWidget.h>
-#include <cpExtensions/DataStructures/VectorValuesContainer.h>
-
+#include <cpPlugins/Image.h>
 #include <fpa/VTK/Image2DObserver.h>
 #include <fpa/VTK/Image3DObserver.h>
-
 #include <vtkRenderWindowInteractor.h>
 
+#include <fpa/VTK/Image2DObserver.hxx>
+#include <fpa/VTK/Image3DObserver.hxx>
+
 // -------------------------------------------------------------------------
-template< class F >
-F* fpaPlugins::BaseImageFilter::
+template< class _TFilter >
+_TFilter* fpaPlugins::BaseImageFilter::
 _ConfigureFilter( )
 {
-  typedef typename F::TInputImage _I;
-  typedef itk::Point< double, _I::ImageDimension > _Pnt;
-  typedef typename _I::IndexType _Idx;
-  typedef cpExtensions::DataStructures::VectorValuesContainer< _Pnt > _CPnt;
-  typedef cpExtensions::DataStructures::VectorValuesContainer< _Idx > _CIdx;
-
-  auto image = this->GetInputData( "Input" )->GetITK< _I >( );
-  auto seeds = this->GetInputData( "Seeds" );
-  auto p_seeds = seeds->GetITK< _CPnt >( );
-  auto i_seeds = seeds->GetITK< _CIdx >( );
+  typedef typename _TFilter::TInputImage                _TImage;
+  typedef typename _TImage::IndexType                   _TIndex;
+  typedef itk::Point< double, _TImage::ImageDimension > _TPoint;
+  typedef itk::SimpleDataObjectDecorator< std::vector< _TPoint > > _TPoints;
+  typedef itk::SimpleDataObjectDecorator< std::vector< _TIndex > > _TIndexes;
+
+  auto image = this->GetInputData( "Input" )->GetITK< _TImage >( );
+  if( image == NULL )
+    return( NULL );
+  auto points = this->GetInputData( "Seeds" )->GetITK< _TPoints >( );
+  auto indexes = this->GetInputData( "Seeds" )->GetITK< _TIndexes >( );
 
   // Create filter and connect input
-  F* filter = this->_CreateITK< F >( );
+  auto filter = this->_CreateITK< _TFilter >( );
   filter->SetInput( image );
 
   // Set numeric parameters
-  Superclass::TParameters* params = this->m_Parameters;
   filter->SetNeighborhoodOrder(
-    params->GetSelectedChoice( "NeighborhoodOrder" )[ 0 ] - '0'
+    this->m_Parameters.GetSelectedChoice( "NeighborhoodOrder" )[ 0 ] - '0'
     );
-  filter->SetStopAtOneFront( params->GetBool( "StopAtOneFront" ) );
+  filter->SetStopAtOneFront( this->m_Parameters.GetBool( "StopAtOneFront" ) );
 
   // Assign seeds
   filter->ClearSeeds( );
-  if( p_seeds != NULL )
+  if( points != NULL )
   {
-    for( auto pIt = p_seeds->Begin( ); pIt != p_seeds->End( ); ++pIt )
+    for(
+      auto pIt = points->Get( ).begin( );
+      pIt != points->Get( ).end( );
+      ++pIt
+      )
     {
-      _Idx idx;
+      _TIndex idx;
       if( image->TransformPhysicalPointToIndex( *pIt, idx ) )
         filter->AddSeed( idx, 0 );
 
     } // rof
   }
-  else if( i_seeds != NULL )
+  else if( indexes != NULL )
   {
-    for( auto iIt = i_seeds->Begin( ); iIt != i_seeds->End( ); ++iIt )
+    for(
+      auto iIt = indexes->Get( ).begin( );
+      iIt != indexes->Get( ).end( );
+      ++iIt
+      )
       filter->AddSeed( *iIt, 0 );
 
   } // fi
@@ -62,9 +68,9 @@ _ConfigureFilter( )
 }
 
 // -------------------------------------------------------------------------
-template< class F >
+template< class _TFilter >
 void fpaPlugins::BaseImageFilter::
-_ExecuteFilter( F* filter )
+_ExecuteFilter( _TFilter* filter )
 {
   // Go!!!
   this->_ConfigureDebugger( filter );
@@ -77,20 +83,20 @@ _ExecuteFilter( F* filter )
 }
 
 // -------------------------------------------------------------------------
-template< class F >
+template< class _TFilter >
 void fpaPlugins::BaseImageFilter::
-_ConfigureDebugger( F* filter )
+_ConfigureDebugger( _TFilter* filter )
 {
-  typedef typename F::TInputImage _I;
-  typedef fpa::VTK::Image2DObserver< F, vtkRenderWindow > _2D;
-  typedef fpa::VTK::Image3DObserver< F, vtkRenderWindow > _3D;
+  typedef typename _TFilter::TInputImage _TImage;
+  typedef fpa::VTK::Image2DObserver< _TFilter, vtkRenderWindow > _2D;
+  typedef fpa::VTK::Image3DObserver< _TFilter, vtkRenderWindow > _3D;
 
   this->m_Observers.clear( );
-  if( this->m_Parameters->GetBool( "VisualDebug" ) )
+  if( this->m_Parameters.GetBool( "VisualDebug" ) )
   {
     if( this->m_MPRViewer != NULL )
     {
-      if( _I::ImageDimension == 2 )
+      if( _TImage::ImageDimension == 2 )
       {
         auto iren = this->m_MPRViewer->GetInteractor( 2 );
         if( iren != NULL )
@@ -105,7 +111,7 @@ _ConfigureDebugger( F* filter )
 
         } // fi
       }
-      else if( _I::ImageDimension == 3 )
+      else if( _TImage::ImageDimension == 3 )
       {
         auto iren = this->m_MPRViewer->GetInteractor( 3 );
         if( iren != NULL )
@@ -126,10 +132,10 @@ _ConfigureDebugger( F* filter )
 
     if( this->m_SingleInteractor != NULL )
     {
-      if( _I::ImageDimension == 2 )
+      if( _TImage::ImageDimension == 2 )
       {
       }
-      else if( _I::ImageDimension == 3 )
+      else if( _TImage::ImageDimension == 3 )
       {
       } // fi