#include #include #include #include // ------------------------------------------------------------------------- cpPluginsITKImageInterpolators::BSplineInterpolateImageFunction:: BSplineInterpolateImageFunction( ) : Superclass( ) { this->m_Parameters.ConfigureAsUint( "SplineOrder", 3 ); this->m_Parameters.ConfigureAsBool( "UseImageDirection", true ); } // ------------------------------------------------------------------------- cpPluginsITKImageInterpolators::BSplineInterpolateImageFunction:: ~BSplineInterpolateImageFunction( ) { } // ------------------------------------------------------------------------- void cpPluginsITKImageInterpolators::BSplineInterpolateImageFunction:: CreateInterpolator( itk::LightObject* image, const std::string& precision_type ) { this->m_PrecisionType = precision_type; cpPlugins_Demangle_Image_ScalarPixels_AllDims_1( image, _GD0 ) this->_Error( "Invalid input image." ); } // ------------------------------------------------------------------------- void cpPluginsITKImageInterpolators::BSplineInterpolateImageFunction:: _GenerateData( ) { } // ------------------------------------------------------------------------- template< class _TImage > void cpPluginsITKImageInterpolators::BSplineInterpolateImageFunction:: _GD0( _TImage* image ) { if( this->m_PrecisionType == "float" ) this->_GD1< _TImage, float >( image ); else if( this->m_PrecisionType == "double" ) this->_GD1< _TImage, double >( image ); } // ------------------------------------------------------------------------- template< class _TImage, class _TScalar > void cpPluginsITKImageInterpolators::BSplineInterpolateImageFunction:: _GD1( _TImage* image ) { typedef itk::BSplineInterpolateImageFunction< _TImage, _TScalar, _TScalar > _TFunction; auto function = this->_CreateITK< _TFunction >( ); function->SetSplineOrder( this->m_Parameters.GetUint( "SplineOrder" ) ); function->SetUseImageDirection( this->m_Parameters.GetBool( "UseImageDirection" ) ); this->GetOutput( "Output" )->SetITK( function ); } // eof - $RCSfile$