+#include <cpPlugins/Interface/Macros.h>
+
+#include <complex>
+
#undef ITK_MANUAL_INSTANTIATION
#include <itkImage.h>
+#include <itkImageToVTKImageFilter.h>
+
#include <itkCovariantVector.h>
+#include <itkDiffusionTensor3D.h>
+#include <itkPoint.h>
#include <itkRGBPixel.h>
#include <itkRGBAPixel.h>
-#include <itkVector.h>
#include <itkSymmetricSecondRankTensor.h>
-#include <itkDiffusionTensor3D.h>
-#include <itkImageToVTKImageFilter.h>
+#include <itkVector.h>
+
+// -------------------------------------------------------------------------
+#define cpPlugins_ITKImage_Export( T, D ) \
+ cpPlugins_TEMPLATE_EXPORT( \
+ 2(class cpPlugins_Interface_EXPORT itk::Image< T, D >) \
+ )
// -------------------------------------------------------------------------
-#define cpPlugins_Instance_itkImage_Pixel( p, d ) \
- template class itk::Image< p, d >; \
- template class itk::ImageToVTKImageFilter< itk::Image< p, d > >
+#define cpPlugins_ITKArrayImage_Export( A, T, DA, DI ) \
+ cpPlugins_TEMPLATE_EXPORT( \
+ 3(class cpPlugins_Interface_EXPORT itk::Image< A< T, DA >, DI >) \
+ )
// -------------------------------------------------------------------------
-#define cpPlugins_Instance_itkImage_RGB( p, d ) \
- cpPlugins_Instance_itkImage_Pixel( itk::RGBPixel< p >, d )
+#define cpPlugins_ITKImage_AllDims_Export( T ) \
+ cpPlugins_ITKImage_Export( T, 2 ); \
+ cpPlugins_ITKImage_Export( T, 3 ); \
+ cpPlugins_ITKImage_Export( T, 4 )
// -------------------------------------------------------------------------
-#define cpPlugins_Instance_itkImage_RGBA( p, d ) \
- cpPlugins_Instance_itkImage_Pixel( itk::RGBAPixel< p >, d )
+#define cpPlugins_ITKArrayImage_AllDims_Export( A, T ) \
+ cpPlugins_ITKArrayImage_Export( A, T, 2, 2 ); \
+ cpPlugins_ITKArrayImage_Export( A, T, 3, 3 ); \
+ cpPlugins_ITKArrayImage_Export( A, T, 4, 4 )
// -------------------------------------------------------------------------
-#define cpPlugins_Instance_itkImage_Vector( p, d ) \
- template class itk::Image< itk::Vector< p, d >, d >; \
- template class \
- itk::ImageToVTKImageFilter< itk::Image< itk::Vector< p, d >, d > >
+#define cpPlugins_VTKImage_Export( T, D ) \
+ cpPlugins_TEMPLATE_EXPORT( \
+ 2( \
+ class cpPlugins_Interface_EXPORT \
+ itk::ImageToVTKImageFilter< itk::Image< T, D > > \
+ ) \
+ )
// -------------------------------------------------------------------------
-#define cpPlugins_Instance_itkImage_CovVector( p, d ) \
- template class itk::Image< itk::CovariantVector< p, d >, d >; \
- template class \
- itk::ImageToVTKImageFilter< itk::Image< itk::CovariantVector< p, d >, d > >
+#define cpPlugins_VTKArrayImage_Export( A, T, DA, DI ) \
+ cpPlugins_TEMPLATE_EXPORT( \
+ 3(class \
+ cpPlugins_Interface_EXPORT \
+ itk::ImageToVTKImageFilter< itk::Image< A< T, DA >, DI > >) \
+ )
// -------------------------------------------------------------------------
-#define cpPlugins_Instance_itkImage_SymTensor( p, d ) \
- template class itk::Image< itk::SymmetricSecondRankTensor< p, d >, d >; \
- template class \
- itk::ImageToVTKImageFilter< itk::Image< itk::SymmetricSecondRankTensor< p, d >, d > >
+#define cpPlugins_VTKImage_AllDims_Export( T ) \
+ cpPlugins_VTKImage_Export( T, 2 ); \
+ cpPlugins_VTKImage_Export( T, 3 )
// -------------------------------------------------------------------------
-#define cpPlugins_Instance_itkImage_DiffTensor( p, d ) \
- cpPlugins_Instance_itkImage_Pixel( itk::DiffusionTensor3D< p >, d )
+#define cpPlugins_VTKArrayImage_AllDims_Export( A, T ) \
+ cpPlugins_VTKArrayImage_Export( A, T, 2, 2 ); \
+ cpPlugins_VTKArrayImage_Export( A, T, 3, 3 )
// -------------------------------------------------------------------------
-#define cpPlugins_Instance_itkImage_DIM( d ) \
- cpPlugins_Instance_itkImage_Pixel( char, d ); \
- cpPlugins_Instance_itkImage_Pixel( short, d ); \
- cpPlugins_Instance_itkImage_Pixel( int, d ); \
- cpPlugins_Instance_itkImage_Pixel( long, d ); \
- cpPlugins_Instance_itkImage_Pixel( float, d ); \
- cpPlugins_Instance_itkImage_Pixel( double, d ); \
- cpPlugins_Instance_itkImage_Pixel( unsigned char, d ); \
- cpPlugins_Instance_itkImage_Pixel( unsigned short, d ); \
- cpPlugins_Instance_itkImage_Pixel( unsigned int, d ); \
- cpPlugins_Instance_itkImage_Pixel( unsigned long, d ); \
- cpPlugins_Instance_itkImage_RGB( char, d ); \
- cpPlugins_Instance_itkImage_RGB( short, d ); \
- cpPlugins_Instance_itkImage_RGB( int, d ); \
- cpPlugins_Instance_itkImage_RGB( long, d ); \
- cpPlugins_Instance_itkImage_RGB( float, d ); \
- cpPlugins_Instance_itkImage_RGB( double, d ); \
- cpPlugins_Instance_itkImage_RGB( unsigned char, d ); \
- cpPlugins_Instance_itkImage_RGB( unsigned short, d ); \
- cpPlugins_Instance_itkImage_RGB( unsigned int, d ); \
- cpPlugins_Instance_itkImage_RGB( unsigned long, d ); \
- cpPlugins_Instance_itkImage_RGBA( char, d ); \
- cpPlugins_Instance_itkImage_RGBA( short, d ); \
- cpPlugins_Instance_itkImage_RGBA( int, d ); \
- cpPlugins_Instance_itkImage_RGBA( long, d ); \
- cpPlugins_Instance_itkImage_RGBA( float, d ); \
- cpPlugins_Instance_itkImage_RGBA( double, d ); \
- cpPlugins_Instance_itkImage_RGBA( unsigned char, d ); \
- cpPlugins_Instance_itkImage_RGBA( unsigned short, d ); \
- cpPlugins_Instance_itkImage_RGBA( unsigned int, d ); \
- cpPlugins_Instance_itkImage_RGBA( unsigned long, d ); \
- cpPlugins_Instance_itkImage_Vector( char, d ); \
- cpPlugins_Instance_itkImage_Vector( short, d ); \
- cpPlugins_Instance_itkImage_Vector( int, d ); \
- cpPlugins_Instance_itkImage_Vector( long, d ); \
- cpPlugins_Instance_itkImage_Vector( float, d ); \
- cpPlugins_Instance_itkImage_Vector( double, d ); \
- cpPlugins_Instance_itkImage_Vector( unsigned char, d ); \
- cpPlugins_Instance_itkImage_Vector( unsigned short, d ); \
- cpPlugins_Instance_itkImage_Vector( unsigned int, d ); \
- cpPlugins_Instance_itkImage_Vector( unsigned long, d ); \
- cpPlugins_Instance_itkImage_CovVector( char, d ); \
- cpPlugins_Instance_itkImage_CovVector( short, d ); \
- cpPlugins_Instance_itkImage_CovVector( int, d ); \
- cpPlugins_Instance_itkImage_CovVector( long, d ); \
- cpPlugins_Instance_itkImage_CovVector( float, d ); \
- cpPlugins_Instance_itkImage_CovVector( double, d ); \
- cpPlugins_Instance_itkImage_CovVector( unsigned char, d ); \
- cpPlugins_Instance_itkImage_CovVector( unsigned short, d ); \
- cpPlugins_Instance_itkImage_CovVector( unsigned int, d ); \
- cpPlugins_Instance_itkImage_CovVector( unsigned long, d ); \
- cpPlugins_Instance_itkImage_SymTensor( char, d ); \
- cpPlugins_Instance_itkImage_SymTensor( short, d ); \
- cpPlugins_Instance_itkImage_SymTensor( int, d ); \
- cpPlugins_Instance_itkImage_SymTensor( long, d ); \
- cpPlugins_Instance_itkImage_SymTensor( float, d ); \
- cpPlugins_Instance_itkImage_SymTensor( double, d ); \
- cpPlugins_Instance_itkImage_SymTensor( unsigned char, d ); \
- cpPlugins_Instance_itkImage_SymTensor( unsigned short, d ); \
- cpPlugins_Instance_itkImage_SymTensor( unsigned int, d ); \
- cpPlugins_Instance_itkImage_SymTensor( unsigned long, d ); \
- cpPlugins_Instance_itkImage_DiffTensor( char, d ); \
- cpPlugins_Instance_itkImage_DiffTensor( short, d ); \
- cpPlugins_Instance_itkImage_DiffTensor( int, d ); \
- cpPlugins_Instance_itkImage_DiffTensor( long, d ); \
- cpPlugins_Instance_itkImage_DiffTensor( float, d ); \
- cpPlugins_Instance_itkImage_DiffTensor( double, d ); \
- cpPlugins_Instance_itkImage_DiffTensor( unsigned char, d ); \
- cpPlugins_Instance_itkImage_DiffTensor( unsigned short, d ); \
- cpPlugins_Instance_itkImage_DiffTensor( unsigned int, d ); \
- cpPlugins_Instance_itkImage_DiffTensor( unsigned long, d );
+#define cpPlugins_Image_Export( T, D ) \
+ cpPlugins_ITKImage_Export( T, D ); \
+ cpPlugins_VTKImage_Export( T, D ) \
+
+// -------------------------------------------------------------------------
+#define cpPlugins_Image_AllDims_Export( T ) \
+ cpPlugins_ITKImage_AllDims_Export( T ); \
+ cpPlugins_VTKImage_AllDims_Export( T ) \
+
+// -------------------------------------------------------------------------
+#define cpPlugins_ArrayImage_AllDims_Export( A, T ) \
+ cpPlugins_ITKArrayImage_AllDims_Export( A, T ); \
+ cpPlugins_VTKArrayImage_AllDims_Export( A, T ) \
+
+// -------------------------------------------------------------------------
+// ITK-VTK base clases
+// -------------------------------------------------------------------------
+
+cpPlugins_Image_AllDims_Export( char );
+cpPlugins_Image_AllDims_Export( short );
+cpPlugins_Image_AllDims_Export( int );
+cpPlugins_Image_AllDims_Export( long );
+cpPlugins_Image_AllDims_Export( unsigned char );
+cpPlugins_Image_AllDims_Export( unsigned short );
+cpPlugins_Image_AllDims_Export( unsigned int );
+cpPlugins_Image_AllDims_Export( unsigned long );
+cpPlugins_Image_AllDims_Export( float );
+cpPlugins_Image_AllDims_Export( double );
+
+cpPlugins_Image_AllDims_Export( itk::RGBPixel< char > );
+cpPlugins_Image_AllDims_Export( itk::RGBPixel< short > );
+cpPlugins_Image_AllDims_Export( itk::RGBPixel< int > );
+cpPlugins_Image_AllDims_Export( itk::RGBPixel< long > );
+cpPlugins_Image_AllDims_Export( itk::RGBPixel< unsigned char > );
+cpPlugins_Image_AllDims_Export( itk::RGBPixel< unsigned short > );
+cpPlugins_Image_AllDims_Export( itk::RGBPixel< unsigned int > );
+cpPlugins_Image_AllDims_Export( itk::RGBPixel< unsigned long > );
+cpPlugins_Image_AllDims_Export( itk::RGBPixel< float > );
+cpPlugins_Image_AllDims_Export( itk::RGBPixel< double > );
+
+cpPlugins_Image_AllDims_Export( itk::RGBAPixel< char > );
+cpPlugins_Image_AllDims_Export( itk::RGBAPixel< short > );
+cpPlugins_Image_AllDims_Export( itk::RGBAPixel< int > );
+cpPlugins_Image_AllDims_Export( itk::RGBAPixel< long > );
+cpPlugins_Image_AllDims_Export( itk::RGBAPixel< unsigned char > );
+cpPlugins_Image_AllDims_Export( itk::RGBAPixel< unsigned short > );
+cpPlugins_Image_AllDims_Export( itk::RGBAPixel< unsigned int > );
+cpPlugins_Image_AllDims_Export( itk::RGBAPixel< unsigned long > );
+cpPlugins_Image_AllDims_Export( itk::RGBAPixel< float > );
+cpPlugins_Image_AllDims_Export( itk::RGBAPixel< double > );
+
+cpPlugins_Image_AllDims_Export( itk::DiffusionTensor3D< float > );
+cpPlugins_Image_AllDims_Export( itk::DiffusionTensor3D< double > );
+
+cpPlugins_ArrayImage_AllDims_Export( itk::Vector, float );
+cpPlugins_ArrayImage_AllDims_Export( itk::Vector, double );
+
+cpPlugins_ArrayImage_AllDims_Export( itk::CovariantVector, float );
+cpPlugins_ArrayImage_AllDims_Export( itk::CovariantVector, double );
+
+cpPlugins_ArrayImage_AllDims_Export( itk::Point, float );
+cpPlugins_ArrayImage_AllDims_Export( itk::Point, double );
+
+cpPlugins_ArrayImage_AllDims_Export( itk::SymmetricSecondRankTensor, float );
+cpPlugins_ArrayImage_AllDims_Export( itk::SymmetricSecondRankTensor, double );
// -------------------------------------------------------------------------
-cpPlugins_Instance_itkImage_DIM( 1 );
-cpPlugins_Instance_itkImage_DIM( 2 );
-cpPlugins_Instance_itkImage_DIM( 3 );
+// ITK-only base clases
+// -------------------------------------------------------------------------
+
+cpPlugins_ITKImage_AllDims_Export( std::complex< float > );
+cpPlugins_ITKImage_AllDims_Export( std::complex< double > );
+
+cpPlugins_ITKImage_Export( itk::Offset< 2 >, 2 );
+cpPlugins_ITKImage_Export( itk::Offset< 3 >, 3 );
+cpPlugins_ITKImage_Export( itk::Offset< 4 >, 4 );
// eof - $RCSfile$