#include <cpPlugins/Plugins/ImageWriter.h>
-#undef ITK_MANUAL_INSTANTIATION
-#include <itkImage.h>
-#include <itkRGBPixel.h>
-#include <itkImageFileWriter.h>
+#include <complex>
-// -------------------------------------------------------------------------
-#define cpPlugins_ImageWriter_Dimension( r, d, i, f ) \
- if( dynamic_cast< itk::ImageBase< d >* >( i ) != NULL ) \
- r = this->f< d >( i )
+#define ITK_MANUAL_INSTANTIATION
+#include <itkImage.h>
-// -------------------------------------------------------------------------
-#define cpPlugins_ImageWriter_Pixel( r, p, d, i, f ) \
- if( dynamic_cast< itk::Image< p, d >* >( i ) != NULL ) \
- r = this->f< p, d >( i )
+#include <itkCovariantVector.h>
+#include <itkDiffusionTensor3D.h>
+#include <itkPoint.h>
+#include <itkRGBPixel.h>
+#include <itkRGBAPixel.h>
+#include <itkSymmetricSecondRankTensor.h>
+#include <itkVector.h>
-// -------------------------------------------------------------------------
-#define cpPlugins_ImageWriter_RGB( r, p, d, i, f ) \
- if( \
- dynamic_cast< itk::Image< itk::RGBPixel< p >, d >* >( i ) != NULL \
- ) \
- r = this->f< itk::RGBPixel< p >, d >( i )
+#undef ITK_MANUAL_INSTANTIATION
+#include <itkImageFileWriter.h>
// -------------------------------------------------------------------------
cpPlugins::Plugins::ImageWriter::
_GenerateData( )
{
itk::DataObject* i = this->m_Inputs[ 0 ]->GetITKDataObject( );
-
- std::string r = "ImageWriter: Image dimension not supported.";
- cpPlugins_ImageWriter_Dimension ( r, 1, i, _GD0 );
- else cpPlugins_ImageWriter_Dimension( r, 2, i, _GD0 );
- else cpPlugins_ImageWriter_Dimension( r, 3, i, _GD0 );
- return( r );
+ return( this->_DemangleImageDimension( i ) );
}
// -------------------------------------------------------------------------
-template< unsigned int D >
-std::string cpPlugins::Plugins::ImageWriter::
-_GD0( itk::DataObject* i )
+namespace cpPlugins
{
- std::string r = "ImageWriter: Image pixel type not supported";
- cpPlugins_ImageWriter_Pixel ( r, char , D, i, _GD1 );
- else cpPlugins_ImageWriter_Pixel( r, short , D, i, _GD1 );
- else cpPlugins_ImageWriter_Pixel( r, int , D, i, _GD1 );
- else cpPlugins_ImageWriter_Pixel( r, long , D, i, _GD1 );
- else cpPlugins_ImageWriter_Pixel( r, unsigned char , D, i, _GD1 );
- else cpPlugins_ImageWriter_Pixel( r, unsigned short, D, i, _GD1 );
- else cpPlugins_ImageWriter_Pixel( r, unsigned int , D, i, _GD1 );
- else cpPlugins_ImageWriter_Pixel( r, unsigned long , D, i, _GD1 );
- else cpPlugins_ImageWriter_Pixel( r, float , D, i, _GD1 );
- else cpPlugins_ImageWriter_Pixel( r, double , D, i, _GD1 );
- else cpPlugins_ImageWriter_RGB ( r, char , D, i, _GD1 );
- else cpPlugins_ImageWriter_RGB ( r, short , D, i, _GD1 );
- else cpPlugins_ImageWriter_RGB ( r, int , D, i, _GD1 );
- else cpPlugins_ImageWriter_RGB ( r, long , D, i, _GD1 );
- else cpPlugins_ImageWriter_RGB ( r, unsigned char , D, i, _GD1 );
- else cpPlugins_ImageWriter_RGB ( r, unsigned short, D, i, _GD1 );
- else cpPlugins_ImageWriter_RGB ( r, unsigned int , D, i, _GD1 );
- else cpPlugins_ImageWriter_RGB ( r, unsigned long , D, i, _GD1 );
- else cpPlugins_ImageWriter_RGB ( r, float , D, i, _GD1 );
- else cpPlugins_ImageWriter_RGB ( r, double , D, i, _GD1 );
- return( r );
+ namespace Plugins
+ {
+ cpPlugins_Image_Demangle_Methods_Code( ImageWriter, _RealGD );
+ }
}
// -------------------------------------------------------------------------
-template< class P, unsigned int D >
+template< class I >
std::string cpPlugins::Plugins::ImageWriter::
-_GD1( itk::DataObject* i )
+_RealGD( itk::DataObject* image )
{
- typedef itk::Image< P, D > _I;
- typedef itk::ImageFileWriter< _I > _W;
+ typedef itk::ImageFileWriter< I > _W;
// Get filename
using namespace cpPlugins::Interface;
} // fi
writer->SetFileName( fname );
- writer->SetInput( dynamic_cast< _I* >( i ) );
+ writer->SetInput( dynamic_cast< I* >( image ) );
try
{
writer->Update( );