X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=plugins%2Ffpa%2FBaseImageFilter.hxx;h=965514ff3858b32fd9ee4e64a10c35afd3cab3e6;hb=e832f438861464a8d521464b61be7e31c896adb8;hp=9db580a9bea296ab8484dc1026046656549a7a07;hpb=826a318db2e9b41fbd865e41ebb5906efdefbb02;p=FrontAlgorithms.git diff --git a/plugins/fpa/BaseImageFilter.hxx b/plugins/fpa/BaseImageFilter.hxx index 9db580a..965514f 100644 --- a/plugins/fpa/BaseImageFilter.hxx +++ b/plugins/fpa/BaseImageFilter.hxx @@ -1,34 +1,21 @@ #ifndef __FPAPLUGINS__BASEIMAGEFILTER__HXX__ #define __FPAPLUGINS__BASEIMAGEFILTER__HXX__ +#include #include -#include -/* TODO - #include - #include - #include - #include - - #include - #include -*/ // ------------------------------------------------------------------------- template< class _TFilter > _TFilter* fpaPlugins::BaseImageFilter:: _ConfigureFilter( ) { - 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; + typedef typename _TFilter::TInputImage _TImage; + static const unsigned int Dim = _TImage::ImageDimension; - auto image = this->GetInputData( "Input" )->GetITK< _TImage >( ); + auto image = this->GetInputData< _TImage >( "Input" ); if( image == NULL ) return( NULL ); - auto points = this->GetInputData( "Seeds" )->GetITK< _TPoints >( ); - auto indexes = this->GetInputData( "Seeds" )->GetITK< _TIndexes >( ); + auto seeds = this->GetInputData< vtkPoints >( "Seeds" ); // Create filter and connect input auto filter = this->_CreateITK< _TFilter >( ); @@ -42,28 +29,24 @@ _ConfigureFilter( ) // Assign seeds filter->ClearSeeds( ); - if( points != NULL ) + if( seeds != NULL ) { - for( - auto pIt = points->Get( ).begin( ); - pIt != points->Get( ).end( ); - ++pIt - ) + typename _TImage::PointType pnt; + typename _TImage::IndexType idx; + unsigned int dim = + ( _TImage::ImageDimension < 3 )? _TImage::ImageDimension: 3; + for( unsigned int i = 0; i < seeds->GetNumberOfPoints( ); ++i ) { - _TIndex idx; - if( image->TransformPhysicalPointToIndex( *pIt, idx ) ) + 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 - } - else if( indexes != NULL ) - { - for( - auto iIt = indexes->Get( ).begin( ); - iIt != indexes->Get( ).end( ); - ++iIt - ) - filter->AddSeed( *iIt, 0 ); } // fi @@ -82,8 +65,7 @@ _ExecuteFilter( _TFilter* filter ) this->_DeconfigureDebugger( filter ); // Connect output - auto out = this->GetOutputData( "Output" ); - out->SetITK( filter->GetOutput( ) ); + this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) ); } // ------------------------------------------------------------------------- @@ -92,8 +74,8 @@ void fpaPlugins::BaseImageFilter:: _ConfigureDebugger( _TFilter* filter ) { typedef typename _TFilter::TInputImage _TImage; - typedef fpa::VTK::Image2DObserver< _TFilter, vtkRenderWindow > _2D; - typedef fpa::VTK::Image3DObserver< _TFilter, vtkRenderWindow > _3D; + typedef fpa::VTK::Image::Observer2D< _TFilter, vtkRenderWindow > _2D; + typedef fpa::VTK::Image::Observer3D< _TFilter, vtkRenderWindow > _3D; this->m_Observers.clear( ); if( this->m_Parameters.GetBool( "VisualDebug" ) )