]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Interface/Instances_itkImage.cxx
...
[cpPlugins.git] / lib / cpPlugins / Interface / Instances_itkImage.cxx
index ba4d66e07f450dd16fe100f21bbcb271e03bf5e4..8fadae00bd0e3ff5c5d78e618ff933da14e09430 100644 (file)
+#include <cpPlugins/Interface/Macros.h>
+
+#include <complex>
+
 #include <itkImage.h>
-#include <itkRGBPixel.h>
 #include <itkImageToVTKImageFilter.h>
 
+#include <itkCovariantVector.h>
+#include <itkDiffusionTensor3D.h>
+#include <itkPoint.h>
+#include <itkRGBPixel.h>
+#include <itkRGBAPixel.h>
+#include <itkSymmetricSecondRankTensor.h>
+#include <itkVector.h>
+
+// -------------------------------------------------------------------------
+#define cpPlugins_Image_Export( T, D )                                  \
+  cpPlugins_TEMPLATE_EXPORT(                                            \
+    2(class cpPlugins_Interface_EXPORT itk::Image< T, D >)              \
+    )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_VTKImage_Export( T, D )                               \
+  cpPlugins_TEMPLATE_EXPORT(                                            \
+    2(                                                                  \
+      class cpPlugins_Interface_EXPORT                                  \
+      itk::ImageToVTKImageFilter< itk::Image< T, D > >                  \
+      )                                                                 \
+    )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_ImageArray_Export( A, T, DA, DI )                     \
+  cpPlugins_TEMPLATE_EXPORT(                                            \
+    3(                                                                  \
+      class cpPlugins_Interface_EXPORT                                  \
+      itk::Image< itk::A< T, DA >, DI >                                 \
+      )                                                                 \
+    )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_VTKImageArray_Export( A, T, DA, DI )                  \
+  cpPlugins_TEMPLATE_EXPORT(                                            \
+    3(                                                                  \
+      class cpPlugins_Interface_EXPORT                                  \
+      itk::ImageToVTKImageFilter< itk::Image< itk::A< T, DA >, DI > >   \
+      )                                                                 \
+    )
+
+// -------------------------------------------------------------------------
+#define cpPlugins_Image_Export_AllDimensions( T )       \
+  cpPlugins_Image_Export( T, 2 );                       \
+  cpPlugins_Image_Export( T, 3 );                       \
+  cpPlugins_Image_Export( T, 4 )
+
 // -------------------------------------------------------------------------
-#define cpPlugins_Instance_itkImage( t, d )             \
-  template class itk::Image< t, d >;                    \
-  template class itk::Image< itk::RGBPixel< t >, d >
+#define cpPlugins_VTKImage_Export_AllDimensions( T )       \
+  cpPlugins_VTKImage_Export( T, 2 );                       \
+  cpPlugins_VTKImage_Export( T, 3 )
 
 // -------------------------------------------------------------------------
-#define cpPlugins_Instance_itkImage2vtkImage( t, d )                    \
-  template class itk::ImageToVTKImageFilter< itk::Image< t, d > >;      \
-  template class                                                        \
-  itk::ImageToVTKImageFilter< itk::Image< itk::RGBPixel< t >, d > >
+#define cpPlugins_ImageArray_Export_AllDimensions( A, T )             \
+  cpPlugins_ImageArray_Export( A, T, 2, 2 );                          \
+  cpPlugins_ImageArray_Export( A, T, 3, 3 );                          \
+  cpPlugins_ImageArray_Export( A, T, 4, 4 )
 
 // -------------------------------------------------------------------------
-#define cpPlugins_Instance_All_itkImage( t, d )          \
-  cpPlugins_Instance_itkImage( t, d );                   \
-  cpPlugins_Instance_itkImage2vtkImage( t, d )
+#define cpPlugins_VTKImageArray_Export_AllDimensions( A, T )            \
+  cpPlugins_VTKImageArray_Export( A, T, 2, 2 );                         \
+  cpPlugins_VTKImageArray_Export( A, T, 3, 3 )
 
 // -------------------------------------------------------------------------
-// Images without vtk conversion
-cpPlugins_Instance_itkImage( char, 1 );
-cpPlugins_Instance_itkImage( short, 1 );
-cpPlugins_Instance_itkImage( int, 1 );
-cpPlugins_Instance_itkImage( long, 1 );
-cpPlugins_Instance_itkImage( unsigned char, 1 );
-cpPlugins_Instance_itkImage( unsigned short, 1 );
-cpPlugins_Instance_itkImage( unsigned int, 1 );
-cpPlugins_Instance_itkImage( unsigned long, 1 );
-cpPlugins_Instance_itkImage( float, 1 );
-cpPlugins_Instance_itkImage( double, 1 );
-
-cpPlugins_Instance_itkImage( char, 4 );
-cpPlugins_Instance_itkImage( short, 4 );
-cpPlugins_Instance_itkImage( int, 4 );
-cpPlugins_Instance_itkImage( long, 4 );
-cpPlugins_Instance_itkImage( unsigned char, 4 );
-cpPlugins_Instance_itkImage( unsigned short, 4 );
-cpPlugins_Instance_itkImage( unsigned int, 4 );
-cpPlugins_Instance_itkImage( unsigned long, 4 );
-cpPlugins_Instance_itkImage( float, 4 );
-cpPlugins_Instance_itkImage( double, 4 );
+// ITK base clases
+cpPlugins_Image_Export_AllDimensions( char );
+cpPlugins_Image_Export_AllDimensions( short );
+cpPlugins_Image_Export_AllDimensions( int );
+cpPlugins_Image_Export_AllDimensions( long );
+cpPlugins_Image_Export_AllDimensions( unsigned char );
+cpPlugins_Image_Export_AllDimensions( unsigned short );
+cpPlugins_Image_Export_AllDimensions( unsigned int );
+cpPlugins_Image_Export_AllDimensions( unsigned long );
+cpPlugins_Image_Export_AllDimensions( float );
+cpPlugins_Image_Export_AllDimensions( double );
+
+cpPlugins_Image_Export_AllDimensions( std::complex< float > );
+cpPlugins_Image_Export_AllDimensions( std::complex< double > );
+
+cpPlugins_Image_Export_AllDimensions( itk::RGBPixel< char > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBPixel< short > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBPixel< int > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBPixel< long > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBPixel< unsigned char > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBPixel< unsigned short > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBPixel< unsigned int > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBPixel< unsigned long > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBPixel< float > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBPixel< double > );
+
+cpPlugins_Image_Export_AllDimensions( itk::RGBAPixel< char > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBAPixel< short > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBAPixel< int > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBAPixel< long > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBAPixel< unsigned char > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBAPixel< unsigned short > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBAPixel< unsigned int > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBAPixel< unsigned long > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBAPixel< float > );
+cpPlugins_Image_Export_AllDimensions( itk::RGBAPixel< double > );
+
+cpPlugins_ImageArray_Export_AllDimensions( Vector, float );
+cpPlugins_ImageArray_Export_AllDimensions( Vector, double );
+
+cpPlugins_ImageArray_Export_AllDimensions( CovariantVector, float );
+cpPlugins_ImageArray_Export_AllDimensions( CovariantVector, double );
+
+cpPlugins_ImageArray_Export_AllDimensions( Point, float );
+cpPlugins_ImageArray_Export_AllDimensions( Point, double );
+
+cpPlugins_ImageArray_Export_AllDimensions(
+  SymmetricSecondRankTensor, float
+  );
+cpPlugins_ImageArray_Export_AllDimensions(
+  SymmetricSecondRankTensor, double
+  );
+
+cpPlugins_Image_Export( itk::DiffusionTensor3D< float >, 3 );
+cpPlugins_Image_Export( itk::DiffusionTensor3D< double >, 3 );
+cpPlugins_Image_Export( itk::DiffusionTensor3D< float >, 4 );
+cpPlugins_Image_Export( itk::DiffusionTensor3D< double >, 4 );
+cpPlugins_Image_Export( itk::Offset< 2 >, 2 );
+cpPlugins_Image_Export( itk::Offset< 3 >, 3 );
+cpPlugins_Image_Export( itk::Offset< 4 >, 4 );
 
 // -------------------------------------------------------------------------
-// Images with vtk conversion
-cpPlugins_Instance_All_itkImage( char, 2 );
-cpPlugins_Instance_All_itkImage( short, 2 );
-cpPlugins_Instance_All_itkImage( int, 2 );
-cpPlugins_Instance_All_itkImage( long, 2 );
-cpPlugins_Instance_All_itkImage( unsigned char, 2 );
-cpPlugins_Instance_All_itkImage( unsigned short, 2 );
-cpPlugins_Instance_All_itkImage( unsigned int, 2 );
-cpPlugins_Instance_All_itkImage( unsigned long, 2 );
-cpPlugins_Instance_All_itkImage( float, 2 );
-cpPlugins_Instance_All_itkImage( double, 2 );
-
-cpPlugins_Instance_All_itkImage( char, 3 );
-cpPlugins_Instance_All_itkImage( short, 3 );
-cpPlugins_Instance_All_itkImage( int, 3 );
-cpPlugins_Instance_All_itkImage( long, 3 );
-cpPlugins_Instance_All_itkImage( unsigned char, 3 );
-cpPlugins_Instance_All_itkImage( unsigned short, 3 );
-cpPlugins_Instance_All_itkImage( unsigned int, 3 );
-cpPlugins_Instance_All_itkImage( unsigned long, 3 );
-cpPlugins_Instance_All_itkImage( float, 3 );
-cpPlugins_Instance_All_itkImage( double, 3 );
+// ITK<->VTK base clases
+cpPlugins_VTKImage_Export_AllDimensions( char );
+cpPlugins_VTKImage_Export_AllDimensions( short );
+cpPlugins_VTKImage_Export_AllDimensions( int );
+cpPlugins_VTKImage_Export_AllDimensions( long );
+cpPlugins_VTKImage_Export_AllDimensions( unsigned char );
+cpPlugins_VTKImage_Export_AllDimensions( unsigned short );
+cpPlugins_VTKImage_Export_AllDimensions( unsigned int );
+cpPlugins_VTKImage_Export_AllDimensions( unsigned long );
+cpPlugins_VTKImage_Export_AllDimensions( float );
+cpPlugins_VTKImage_Export_AllDimensions( double );
+
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBPixel< char > );
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBPixel< short > );
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBPixel< int > );
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBPixel< long > );
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBPixel< unsigned char > );
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBPixel< unsigned short > );
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBPixel< unsigned int > );
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBPixel< unsigned long > );
+
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBAPixel< char > );
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBAPixel< short > );
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBAPixel< int > );
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBAPixel< long > );
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBAPixel< unsigned char > );
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBAPixel< unsigned short > );
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBAPixel< unsigned int > );
+cpPlugins_VTKImage_Export_AllDimensions( itk::RGBAPixel< unsigned long > );
+
+cpPlugins_VTKImageArray_Export_AllDimensions( Vector, float );
+cpPlugins_VTKImageArray_Export_AllDimensions( Vector, double );
+
+cpPlugins_VTKImageArray_Export_AllDimensions( CovariantVector, float );
+cpPlugins_VTKImageArray_Export_AllDimensions( CovariantVector, double );
+
+cpPlugins_VTKImageArray_Export_AllDimensions( Point, float );
+cpPlugins_VTKImageArray_Export_AllDimensions( Point, double );
+
+cpPlugins_VTKImageArray_Export_AllDimensions(
+  SymmetricSecondRankTensor, float
+  );
+cpPlugins_VTKImageArray_Export_AllDimensions(
+  SymmetricSecondRankTensor, double
+  );
+
+cpPlugins_VTKImage_Export( itk::DiffusionTensor3D< float >, 3 );
+cpPlugins_VTKImage_Export( itk::DiffusionTensor3D< double >, 3 );
 
 // eof - $RCSfile$