#include "MultiplyImageFilter.h" #include #include // ------------------------------------------------------------------------- cpPlugins::BasicFilters::MultiplyImageFilter:: MultiplyImageFilter( ) : Superclass( ) { this->_AddInput( "Input0" ); this->_AddInput( "Input1", false ); this->_AddOutput< cpPlugins::Interface::Image >( "Output" ); this->m_Parameters->ConfigureAsReal( "Constant" ); this->m_Parameters->SetReal( "Constant", 1 ); } // ------------------------------------------------------------------------- cpPlugins::BasicFilters::MultiplyImageFilter:: ~MultiplyImageFilter( ) { } // ------------------------------------------------------------------------- std::string cpPlugins::BasicFilters::MultiplyImageFilter:: _GenerateData( ) { auto image = this->GetInputData< cpPlugins::Interface::Image >( "Input0" ); itk::DataObject* itk_image = NULL; std::string r = ""; cpPlugins_Image_Demangle_AllScalarTypes( 2, image, itk_image, r, _GD0 ); else cpPlugins_Image_Demangle_AllScalarTypes( 3, image, itk_image, r, _GD0 ); else cpPlugins_Image_Demangle_AllScalarTypes( 4, image, itk_image, r, _GD0 ); else r = "MultiplyImageFilter: Input image type not supported."; return( r ); } // ------------------------------------------------------------------------- template< class I > std::string cpPlugins::BasicFilters::MultiplyImageFilter:: _GD0( itk::DataObject* image ) { return( this->_RealGD< I, I >( image ) ); } // ------------------------------------------------------------------------- template< class I, class O > inline std::string cpPlugins::BasicFilters::MultiplyImageFilter:: _RealGD( itk::DataObject* image ) { typedef itk::MultiplyImageFilter< I, I, O > _F; typedef typename I::PixelType _IP; // Get parameters _IP c = _IP( this->m_Parameters->GetReal( "Constant" ) ); // Configure filter _F* filter = this->_CreateITK< _F >( ); filter->SetInput( dynamic_cast< I* >( image ) ); filter->SetConstant( c ); filter->Update( ); // Connect output auto out = this->GetOutputData< cpPlugins::Interface::Image >( "Output" ); out->SetITK( filter->GetOutput( ) ); return( "" ); } // eof - $RCSfile$