+ itk::DataObject* dobj = this->_GetInput( 0 );
+
+ std::string ret = "itk::Image dimension not supported.";
+ cpPlugins_Plugins_ImageWriter_Dimension( ret, 1, dobj, _GenerateData0 );
+ else cpPlugins_Plugins_ImageWriter_Dimension( ret, 2, dobj, _GenerateData0 );
+ else cpPlugins_Plugins_ImageWriter_Dimension( ret, 3, dobj, _GenerateData0 );
+ else cpPlugins_Plugins_ImageWriter_Dimension( ret, 4, dobj, _GenerateData0 );
+
+ return( ret );
+}
+
+// -------------------------------------------------------------------------
+template< unsigned int D >
+std::string cpPlugins::Plugins::ImageWriter::
+_GenerateData0( )
+{
+ itk::ImageBase< D >* img =
+ dynamic_cast< itk::ImageBase< D >* >( this->_GetInput( 0 ) );
+
+ std::string ret = "itk::Image pixel type not supported";
+ cpPlugins_Plugins_ImageWriter_Pixel( ret, char, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_Pixel( ret, short, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_Pixel( ret, int, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_Pixel( ret, long, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_Pixel( ret, unsigned char, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_Pixel( ret, unsigned short, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_Pixel( ret, unsigned int, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_Pixel( ret, unsigned long, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_Pixel( ret, float, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_Pixel( ret, double, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_RGB( ret, char, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_RGB( ret, short, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_RGB( ret, int, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_RGB( ret, long, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_RGB( ret, unsigned char, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_RGB( ret, unsigned short, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_RGB( ret, unsigned int, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_RGB( ret, unsigned long, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_RGB( ret, float, D, img, _GenerateData1 );
+ else cpPlugins_Plugins_ImageWriter_RGB( ret, double, D, img, _GenerateData1 );
+
+ return( ret );
+}
+
+// -------------------------------------------------------------------------
+template< class P, unsigned int D >
+std::string cpPlugins::Plugins::ImageWriter::
+_GenerateData1( )
+{
+ typedef itk::Image< P, D > _TImage;
+ typedef itk::ImageFileWriter< _TImage > _TImageWriter;
+
+ TParameters::const_iterator fIt;
+
+ // Get image pixelType
+ fIt = this->m_Parameters.find( "FileName" );
+ if( fIt == this->m_Parameters.end( ) )
+ fIt = this->m_DefaultParameters.find( "FileName" );
+
+ _TImageWriter* writer =
+ dynamic_cast< _TImageWriter* >( this->m_Writer.GetPointer( ) );
+ if( writer == NULL )
+ {
+ this->m_Writer = _TImageWriter::New( );
+ writer = dynamic_cast< _TImageWriter* >( this->m_Writer.GetPointer( ) );
+
+ } // fi
+ writer->SetFileName( fIt->second.second );
+ writer->SetInput( dynamic_cast< _TImage* >( this->_GetInput( 0 ) ) );
+ try
+ {
+ writer->Update( );
+ }
+ catch( itk::ExceptionObject& err )
+ {
+ return( err.GetDescription( ) );
+
+ } // yrt
+ return( "" );