1 #include <cpPlugins/Interface/Macros.h>
6 #include <itkImageToVTKImageFilter.h>
8 #include <itkCovariantVector.h>
9 #include <itkDiffusionTensor3D.h>
11 #include <itkRGBPixel.h>
12 #include <itkRGBAPixel.h>
13 #include <itkSymmetricSecondRankTensor.h>
14 #include <itkVector.h>
16 // -------------------------------------------------------------------------
17 #define cpPlugins_ITKImage_Export( T, D ) \
18 cpPlugins_TEMPLATE_EXPORT( \
19 2(class cpPlugins_Interface_EXPORT itk::Image< T, D >) \
22 // -------------------------------------------------------------------------
23 #define cpPlugins_ITKArrayImage_Export( A, T, DA, DI ) \
24 cpPlugins_TEMPLATE_EXPORT( \
25 3(class cpPlugins_Interface_EXPORT itk::Image< A< T, DA >, DI >) \
28 // -------------------------------------------------------------------------
29 #define cpPlugins_ITKImage_AllDims_Export( T ) \
30 cpPlugins_ITKImage_Export( T, 2 ); \
31 cpPlugins_ITKImage_Export( T, 3 ); \
32 cpPlugins_ITKImage_Export( T, 4 )
34 // -------------------------------------------------------------------------
35 #define cpPlugins_ITKArrayImage_AllDims_Export( A, T ) \
36 cpPlugins_ITKArrayImage_Export( A, T, 2, 2 ); \
37 cpPlugins_ITKArrayImage_Export( A, T, 3, 3 ); \
38 cpPlugins_ITKArrayImage_Export( A, T, 4, 4 )
40 // -------------------------------------------------------------------------
41 #define cpPlugins_VTKImage_Export( T, D ) \
42 cpPlugins_TEMPLATE_EXPORT( \
44 class cpPlugins_Interface_EXPORT \
45 itk::ImageToVTKImageFilter< itk::Image< T, D > > \
49 // -------------------------------------------------------------------------
50 #define cpPlugins_VTKArrayImage_Export( A, T, DA, DI ) \
51 cpPlugins_TEMPLATE_EXPORT( \
53 cpPlugins_Interface_EXPORT \
54 itk::ImageToVTKImageFilter< itk::Image< A< T, DA >, DI > >) \
57 // -------------------------------------------------------------------------
58 #define cpPlugins_VTKImage_AllDims_Export( T ) \
59 cpPlugins_VTKImage_Export( T, 2 ); \
60 cpPlugins_VTKImage_Export( T, 3 )
62 // -------------------------------------------------------------------------
63 #define cpPlugins_VTKArrayImage_AllDims_Export( A, T ) \
64 cpPlugins_VTKArrayImage_Export( A, T, 2, 2 ); \
65 cpPlugins_VTKArrayImage_Export( A, T, 3, 3 )
67 // -------------------------------------------------------------------------
68 #define cpPlugins_Image_Export( T, D ) \
69 cpPlugins_ITKImage_Export( T, D ); \
70 cpPlugins_VTKImage_Export( T, D ) \
72 // -------------------------------------------------------------------------
73 #define cpPlugins_Image_AllDims_Export( T ) \
74 cpPlugins_ITKImage_AllDims_Export( T ); \
75 cpPlugins_VTKImage_AllDims_Export( T ) \
77 // -------------------------------------------------------------------------
78 #define cpPlugins_ArrayImage_AllDims_Export( A, T ) \
79 cpPlugins_ITKArrayImage_AllDims_Export( A, T ); \
80 cpPlugins_VTKArrayImage_AllDims_Export( A, T ) \
82 // -------------------------------------------------------------------------
83 // ITK-VTK base clases
84 // -------------------------------------------------------------------------
86 cpPlugins_Image_AllDims_Export( char );
87 cpPlugins_Image_AllDims_Export( short );
88 cpPlugins_Image_AllDims_Export( int );
89 cpPlugins_Image_AllDims_Export( long );
90 cpPlugins_Image_AllDims_Export( unsigned char );
91 cpPlugins_Image_AllDims_Export( unsigned short );
92 cpPlugins_Image_AllDims_Export( unsigned int );
93 cpPlugins_Image_AllDims_Export( unsigned long );
94 cpPlugins_Image_AllDims_Export( float );
95 cpPlugins_Image_AllDims_Export( double );
97 cpPlugins_Image_AllDims_Export( itk::RGBPixel< char > );
98 cpPlugins_Image_AllDims_Export( itk::RGBPixel< short > );
99 cpPlugins_Image_AllDims_Export( itk::RGBPixel< int > );
100 cpPlugins_Image_AllDims_Export( itk::RGBPixel< long > );
101 cpPlugins_Image_AllDims_Export( itk::RGBPixel< unsigned char > );
102 cpPlugins_Image_AllDims_Export( itk::RGBPixel< unsigned short > );
103 cpPlugins_Image_AllDims_Export( itk::RGBPixel< unsigned int > );
104 cpPlugins_Image_AllDims_Export( itk::RGBPixel< unsigned long > );
105 cpPlugins_Image_AllDims_Export( itk::RGBPixel< float > );
106 cpPlugins_Image_AllDims_Export( itk::RGBPixel< double > );
108 cpPlugins_Image_AllDims_Export( itk::RGBAPixel< char > );
109 cpPlugins_Image_AllDims_Export( itk::RGBAPixel< short > );
110 cpPlugins_Image_AllDims_Export( itk::RGBAPixel< int > );
111 cpPlugins_Image_AllDims_Export( itk::RGBAPixel< long > );
112 cpPlugins_Image_AllDims_Export( itk::RGBAPixel< unsigned char > );
113 cpPlugins_Image_AllDims_Export( itk::RGBAPixel< unsigned short > );
114 cpPlugins_Image_AllDims_Export( itk::RGBAPixel< unsigned int > );
115 cpPlugins_Image_AllDims_Export( itk::RGBAPixel< unsigned long > );
116 cpPlugins_Image_AllDims_Export( itk::RGBAPixel< float > );
117 cpPlugins_Image_AllDims_Export( itk::RGBAPixel< double > );
119 cpPlugins_Image_AllDims_Export( itk::DiffusionTensor3D< float > );
120 cpPlugins_Image_AllDims_Export( itk::DiffusionTensor3D< double > );
122 cpPlugins_ArrayImage_AllDims_Export( itk::Vector, float );
123 cpPlugins_ArrayImage_AllDims_Export( itk::Vector, double );
125 cpPlugins_ArrayImage_AllDims_Export( itk::CovariantVector, float );
126 cpPlugins_ArrayImage_AllDims_Export( itk::CovariantVector, double );
128 cpPlugins_ArrayImage_AllDims_Export( itk::Point, float );
129 cpPlugins_ArrayImage_AllDims_Export( itk::Point, double );
131 cpPlugins_ArrayImage_AllDims_Export( itk::SymmetricSecondRankTensor, float );
132 cpPlugins_ArrayImage_AllDims_Export( itk::SymmetricSecondRankTensor, double );
134 // -------------------------------------------------------------------------
135 // ITK-only base clases
136 // -------------------------------------------------------------------------
138 cpPlugins_ITKImage_AllDims_Export( std::complex< float > );
139 cpPlugins_ITKImage_AllDims_Export( std::complex< double > );
141 cpPlugins_ITKImage_Export( itk::Offset< 2 >, 2 );
142 cpPlugins_ITKImage_Export( itk::Offset< 3 >, 3 );
143 cpPlugins_ITKImage_Export( itk::Offset< 4 >, 4 );