X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FPlugins%2FIO%2FImageWriter.cxx;h=a6549793232a24096f5c42d61384982ea8dfdb39;hb=e3bf0f6ea82aedbb6d703a7bf54a655d4d53e8d1;hp=9de1fe60f2613bccf9733e2381c1013162e47d41;hpb=2da3b422ceb0b6abfd336200a4ede6efe982ebe2;p=cpPlugins.git diff --git a/lib/cpPlugins/Plugins/IO/ImageWriter.cxx b/lib/cpPlugins/Plugins/IO/ImageWriter.cxx index 9de1fe6..a654979 100644 --- a/lib/cpPlugins/Plugins/IO/ImageWriter.cxx +++ b/lib/cpPlugins/Plugins/IO/ImageWriter.cxx @@ -8,13 +8,9 @@ cpPlugins::IO::ImageWriter:: ImageWriter( ) : Superclass( ) { - this->m_ClassName = "cpPlugins::IO::ImageWriter"; - this->m_ClassCategory = "ImageWriter"; - this->SetNumberOfInputs( 1 ); + this->_AddInput( "Input" ); - using namespace cpPlugins::Interface; - this->m_DefaultParameters.Configure( Parameters::String, "FileName" ); - this->m_Parameters = this->m_DefaultParameters; + this->m_Parameters->ConfigureAsString( "FileName", "" ); } // ------------------------------------------------------------------------- @@ -26,20 +22,48 @@ cpPlugins::IO::ImageWriter:: // ------------------------------------------------------------------------- std::string cpPlugins::IO::ImageWriter:: _GenerateData( ) +{ + // Thank you very much Microsoft !!! :-@ + std::string r = this->_GD0_Image< 2 >( ); + if( r != "" ) r = this->_GD0_Image< 3 >( ); + if( r != "" ) r = this->_GD0_Image< 4 >( ); + if( r != "" ) r = this->_GD0_VectorImage< 2 >( ); + if( r != "" ) r = this->_GD0_VectorImage< 3 >( ); + if( r != "" ) r = this->_GD0_VectorImage< 4 >( ); + return( r ); +} + +// ------------------------------------------------------------------------- +template< unsigned int D > +std::string cpPlugins::IO::ImageWriter:: +_GD0_Image( ) +{ + cpPlugins::Interface::Image* image = + this->GetInput< cpPlugins::Interface::Image >( "Input" ); + if( image == NULL ) + return( "ImageWriter: No input image." ); + + itk::DataObject* itk_image = NULL; + std::string r = ""; + cpPlugins_Image_Demangle_AllTypes( D, image, itk_image, r, _RealGD ); + else r = "ImageWriter: Input image type not supported."; + + return( r ); +} + +// ------------------------------------------------------------------------- +template< unsigned int D > +std::string cpPlugins::IO::ImageWriter:: +_GD0_VectorImage( ) { cpPlugins::Interface::Image* image = - this->GetInput< cpPlugins::Interface::Image >( 0 ); + this->GetInput< cpPlugins::Interface::Image >( "Input" ); if( image == NULL ) return( "ImageWriter: No input image." ); itk::DataObject* itk_image = NULL; std::string r = ""; - cpPlugins_Image_Demangle_AllTypes( 2, image, itk_image, r, _RealGD ); - else cpPlugins_Image_Demangle_AllTypes( 3, image, itk_image, r, _RealGD ); - else cpPlugins_Image_Demangle_AllTypes( 4, image, itk_image, r, _RealGD ); - else cpPlugins_VectorImage_Demangle_AllTypes( 2, image, itk_image, r, _RealGD ); - else cpPlugins_VectorImage_Demangle_AllTypes( 3, image, itk_image, r, _RealGD ); - else cpPlugins_VectorImage_Demangle_AllTypes( 4, image, itk_image, r, _RealGD ); + cpPlugins_VectorImage_Demangle_AllTypes( D, image, itk_image, r, _RealGD ); else r = "ImageWriter: Input image type not supported."; return( r ); @@ -51,7 +75,7 @@ std::string cpPlugins::IO::ImageWriter:: _RealGD( itk::DataObject* image ) { // Get filename - std::string fname = this->m_Parameters.GetValueAsString( "FileName" ); + std::string fname = this->m_Parameters->GetString( "FileName" ); typedef itk::ImageFileWriter< I > _W; _W* writer = this->_CreateITK< _W >( );