#include "Tautology.h" #include #include #include // ------------------------------------------------------------------------- void fpaPlugins_ImageFunctors::Tautology:: Instantiate( itk::LightObject* filter ) { auto itk_filter = dynamic_cast< itk::ProcessObject* >( filter ); if( itk_filter != NULL ) { auto inputs = itk_filter->GetInputs( ); if( inputs.size( ) > 0 ) { cpPlugins_Demangle_Image_ScalarPixels_AllDims_2( inputs[ 0 ].GetPointer( ), _GD0, itk_filter ) this->_Error( "Invalid input data." ); } else this->_Error( "Not enough inputs." ); } else this->_Error( "Invalid instantiation filter." ); } // ------------------------------------------------------------------------- fpaPlugins_ImageFunctors::Tautology:: Tautology( ) : Superclass( ) { this->_ConfigureOutput< cpPlugins::Pipeline::DataObject >( "Functor" ); this->GetOutput( "Functor" )->SetITK( this ); } // ------------------------------------------------------------------------- fpaPlugins_ImageFunctors::Tautology:: ~Tautology( ) { } // ------------------------------------------------------------------------- void fpaPlugins_ImageFunctors::Tautology:: _GenerateData( ) { } // ------------------------------------------------------------------------- template< class _TInput > void fpaPlugins_ImageFunctors::Tautology:: _GD0( _TInput* input, itk::ProcessObject* filter ) { auto outputs = filter->GetOutputs( ); if( outputs.size( ) > 0 ) { cpPlugins_Demangle_Image_IntPixels_3( outputs[ 0 ].GetPointer( ), _GD1, _TInput::ImageDimension, input, filter ) this->_Error( "Invalid output data." ); } else this->_Error( "Not enough outputs." ); } // ------------------------------------------------------------------------- template< class _TInput, class _TOutput > void fpaPlugins_ImageFunctors::Tautology:: _GD1( _TOutput* output, _TInput* input, itk::ProcessObject* filter ) { typedef typename _TInput::IndexType _TVertex; typedef typename _TOutput::PixelType _TValue; typedef fpa::Base::Functors::RegionGrow::Tautology< _TVertex, _TValue > _TFunctor; auto f = dynamic_cast< _TFunctor* >( this->m_Functor.GetPointer( ) ); if( f == NULL ) { typename _TFunctor::Pointer ptr_f = _TFunctor::New( ); f = ptr_f.GetPointer( ); this->m_Functor = f; } // fi } // eof - $RCSfile$