3 #include <cpInstances/DataObjects/Image.h>
6 #include <fpa/Base/Functors/RegionGrow/Tautology.h>
8 // -------------------------------------------------------------------------
9 void fpaPlugins_ImageFunctors::Tautology::
10 Instantiate( itk::LightObject* filter )
12 auto itk_filter = dynamic_cast< itk::ProcessObject* >( filter );
13 if( itk_filter != NULL )
15 auto inputs = itk_filter->GetInputs( );
16 if( inputs.size( ) > 0 )
18 cpPlugins_Demangle_Image_ScalarPixels_AllDims_2(
19 inputs[ 0 ].GetPointer( ), _GD0, itk_filter
21 this->_Error( "Invalid input data." );
24 this->_Error( "Not enough inputs." );
27 this->_Error( "Invalid instantiation filter." );
30 // -------------------------------------------------------------------------
31 fpaPlugins_ImageFunctors::Tautology::
35 this->_ConfigureOutput< cpPlugins::Pipeline::DataObject >( "Functor" );
36 this->GetOutput( "Functor" )->SetITK( this );
39 // -------------------------------------------------------------------------
40 fpaPlugins_ImageFunctors::Tautology::
45 // -------------------------------------------------------------------------
46 void fpaPlugins_ImageFunctors::Tautology::
51 // -------------------------------------------------------------------------
52 template< class _TInput >
53 void fpaPlugins_ImageFunctors::Tautology::
54 _GD0( _TInput* input, itk::ProcessObject* filter )
56 auto outputs = filter->GetOutputs( );
57 if( outputs.size( ) > 0 )
59 cpPlugins_Demangle_Image_IntPixels_3(
60 outputs[ 0 ].GetPointer( ), _GD1, _TInput::ImageDimension, input, filter
62 this->_Error( "Invalid output data." );
65 this->_Error( "Not enough outputs." );
68 // -------------------------------------------------------------------------
69 template< class _TInput, class _TOutput >
70 void fpaPlugins_ImageFunctors::Tautology::
71 _GD1( _TOutput* output, _TInput* input, itk::ProcessObject* filter )
73 typedef typename _TInput::IndexType _TVertex;
74 typedef typename _TOutput::PixelType _TValue;
75 typedef fpa::Base::Functors::RegionGrow::Tautology< _TVertex, _TValue > _TFunctor;
77 auto f = dynamic_cast< _TFunctor* >( this->m_Functor.GetPointer( ) );
80 typename _TFunctor::Pointer ptr_f = _TFunctor::New( );
81 f = ptr_f.GetPointer( );