#include #include #define ITK_MANUAL_INSTANTIATION #include #include #include #include #include #include #include #include #undef ITK_MANUAL_INSTANTIATION #include // ------------------------------------------------------------------------- cpPlugins::Plugins::ImageWriter:: ImageWriter( ) : Superclass( ) { this->m_ClassName = "cpPlugins::ImageWriter"; this->m_ClassCategory = "ImageWriter"; this->SetNumberOfInputs( 1 ); using namespace cpPlugins::Interface; this->m_DefaultParameters.Configure( Parameters::String, "FileName" ); this->m_Parameters = this->m_DefaultParameters; } // ------------------------------------------------------------------------- cpPlugins::Plugins::ImageWriter:: ~ImageWriter( ) { } // ------------------------------------------------------------------------- std::string cpPlugins::Plugins::ImageWriter:: _GenerateData( ) { itk::DataObject* i = this->m_Inputs[ 0 ]->GetITKDataObject( ); return( this->_DemangleImageDimension( i ) ); } // ------------------------------------------------------------------------- namespace cpPlugins { namespace Plugins { cpPlugins_Image_Demangle_Methods_Code( ImageWriter, _RealGD ); } } // ------------------------------------------------------------------------- template< class I > std::string cpPlugins::Plugins::ImageWriter:: _RealGD( itk::DataObject* image ) { typedef itk::ImageFileWriter< I > _W; // Get filename using namespace cpPlugins::Interface; Parameters::TString fname = this->m_Parameters.GetValueAsString( "FileName" ); _W* writer = dynamic_cast< _W* >( this->m_RealProcessObject.GetPointer( ) ); if( writer == NULL ) { this->m_RealProcessObject = _W::New( ); writer = dynamic_cast< _W* >( this->m_RealProcessObject.GetPointer( ) ); } // fi writer->SetFileName( fname ); writer->SetInput( dynamic_cast< I* >( image ) ); try { writer->Update( ); } catch( itk::ExceptionObject& err ) { return( "ImageWriter: " + std::string( err.GetDescription( ) ) ); } // yrt return( "" ); } // eof - $RCSfile$