]> Creatis software - cpPlugins.git/blob - lib/cpPlugins_ITKInstances/Image.h
3069e311d494efef7c3fa0ab27c173d39b173766
[cpPlugins.git] / lib / cpPlugins_ITKInstances / Image.h
1 #ifndef __CPPLUGINS_ITKINSTANCES__IMAGE__H__
2 #define __CPPLUGINS_ITKINSTANCES__IMAGE__H__
3
4 #include <cpPlugins_ITKInstances/Config.h>
5 #include <itkConvertPixelBuffer.h>
6 #include <itkDefaultConvertPixelTraits.h>
7 #include <itkImportImageContainer.h>
8 #include <itkImage.h>
9 #include <itkImageSource.h>
10 #include <itkRGBPixel.h>
11 #include <itkRGBAPixel.h>
12 #include <itkImageConstIteratorWithIndex.h>
13 #include <itkImageIteratorWithIndex.h>
14 #include <itkImageLinearConstIteratorWithIndex.h>
15 #include <itkImageLinearIteratorWithIndex.h>
16 #include <itkImageRegionConstIterator.h>
17 #include <itkImageRegionIterator.h>
18 #include <itkImageScanlineConstIterator.h>
19 #include <itkImageScanlineIterator.h>
20 #include <itkConstNeighborhoodIterator.h>
21 #include <itkNeighborhoodIterator.h>
22 #include <itkConstShapedNeighborhoodIterator.h>
23 #include <itkShapedNeighborhoodIterator.h>
24 #include <itkConstantBoundaryCondition.h>
25 #include <itkPeriodicBoundaryCondition.h>
26 #include <itkZeroFluxNeumannBoundaryCondition.h>
27 #include <itkImageToVTKImageFilter.h>
28 #include <itkImageTransformer.h>
29
30 /*
31  * =========================================================================
32  * Define scalar ImageBase's
33  * =========================================================================
34  */
35 #define cpPlugins_ITKInstances_ImageBase( D )           \
36   cpPlugins_ITKInstances_PREFIX itk::ImageBase< D >
37
38 cpPlugins_ITKInstances_ImageBase( 1 );
39 cpPlugins_ITKInstances_ImageBase( 2 );
40 cpPlugins_ITKInstances_ImageBase( 3 );
41 cpPlugins_ITKInstances_ImageBase( 4 );
42
43 /*
44  * =========================================================================
45  * Define pixel-based objects
46  * =========================================================================
47  */
48 #define cpPlugins_ITKInstances_ConvertPixelBuffer( T, U, V )            \
49   cpPlugins_ITKInstances_PREFIX itk::ConvertPixelBuffer< T, U, itk::DefaultConvertPixelTraits< V > >
50
51 #define cpPlugins_ITKInstances_ColorPixel( T )          \
52   cpPlugins_ITKInstances_PREFIX itk::RGBPixel< T >;     \
53   cpPlugins_ITKInstances_PREFIX itk::RGBAPixel< T >
54
55 #define cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( U )         \
56   cpPlugins_ITKInstances_PREFIX itk::ImportImageContainer< unsigned long, U >; \
57   cpPlugins_ITKInstances_ConvertPixelBuffer( char, U, U );              \
58   cpPlugins_ITKInstances_ConvertPixelBuffer( short, U, U );             \
59   cpPlugins_ITKInstances_ConvertPixelBuffer( int, U, U );               \
60   cpPlugins_ITKInstances_ConvertPixelBuffer( long, U, U );              \
61   cpPlugins_ITKInstances_ConvertPixelBuffer( float, U, U );             \
62   cpPlugins_ITKInstances_ConvertPixelBuffer( double, U, U );            \
63   cpPlugins_ITKInstances_ConvertPixelBuffer( unsigned char, U, U );     \
64   cpPlugins_ITKInstances_ConvertPixelBuffer( unsigned short, U, U );    \
65   cpPlugins_ITKInstances_ConvertPixelBuffer( unsigned int, U, U );      \
66   cpPlugins_ITKInstances_ConvertPixelBuffer( unsigned long, U, U )
67
68 cpPlugins_ITKInstances_ColorPixel( char );
69 cpPlugins_ITKInstances_ColorPixel( short );
70 cpPlugins_ITKInstances_ColorPixel( int );
71 cpPlugins_ITKInstances_ColorPixel( long );
72 cpPlugins_ITKInstances_ColorPixel( float );
73 cpPlugins_ITKInstances_ColorPixel( double );
74 cpPlugins_ITKInstances_ColorPixel( unsigned char );
75 cpPlugins_ITKInstances_ColorPixel( unsigned short );
76 cpPlugins_ITKInstances_ColorPixel( unsigned int );
77 cpPlugins_ITKInstances_ColorPixel( unsigned long );
78
79 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( char );
80 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( short );
81 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( int );
82 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( long );
83 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( float );
84 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( double );
85 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( unsigned char );
86 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( unsigned short );
87 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( unsigned int );
88 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( unsigned long );
89
90 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBPixel< char > );
91 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBPixel< short > );
92 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBPixel< int > );
93 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBPixel< long > );
94 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBPixel< float > );
95 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBPixel< double > );
96 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBPixel< unsigned char > );
97 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBPixel< unsigned short > );
98 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBPixel< unsigned int > );
99 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBPixel< unsigned long > );
100
101 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBAPixel< char > );
102 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBAPixel< short > );
103 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBAPixel< int > );
104 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBAPixel< long > );
105 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBAPixel< float > );
106 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBAPixel< double > );
107 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBAPixel< unsigned char > );
108 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBAPixel< unsigned short > );
109 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBAPixel< unsigned int > );
110 cpPlugins_ITKInstances_ConvertPixelBuffer_AllTypes( itk::RGBAPixel< unsigned long > );
111
112 /*
113  * =========================================================================
114  * Define scalar Image's
115  * =========================================================================
116  */
117 #define cpPlugins_ITKInstances_ScalarImage( P, D )                      \
118   cpPlugins_ITKInstances_PREFIX itk::Image< P, D >;                     \
119   cpPlugins_ITKInstances_PREFIX itk::ImageTransformer< itk::Image< P, D > >; \
120   cpPlugins_ITKInstances_PREFIX itk::ImageSource< itk::Image< P, D > >; \
121   cpPlugins_ITKInstances_PREFIX itk::ImageConstIteratorWithIndex< itk::Image< P, D > >; \
122   cpPlugins_ITKInstances_PREFIX itk::ImageIteratorWithIndex< itk::Image< P, D > >; \
123   cpPlugins_ITKInstances_PREFIX itk::ImageRegionConstIterator< itk::Image< P, D > >; \
124   cpPlugins_ITKInstances_PREFIX itk::ImageRegionIterator< itk::Image< P, D > >; \
125   cpPlugins_ITKInstances_PREFIX itk::ImageScanlineConstIterator< itk::Image< P, D > >; \
126   cpPlugins_ITKInstances_PREFIX itk::ImageScanlineIterator< itk::Image< P, D > >
127
128 #define cpPlugins_ITKInstances_ScalarImage_AllDims( P ) \
129   cpPlugins_ITKInstances_ScalarImage( P, 1 );           \
130   cpPlugins_ITKInstances_ScalarImage( P, 2 );           \
131   cpPlugins_ITKInstances_ScalarImage( P, 3 );           \
132   cpPlugins_ITKInstances_ScalarImage( P, 4 )
133
134 cpPlugins_ITKInstances_ScalarImage_AllDims( char );
135 cpPlugins_ITKInstances_ScalarImage_AllDims( short );
136 cpPlugins_ITKInstances_ScalarImage_AllDims( int );
137 cpPlugins_ITKInstances_ScalarImage_AllDims( long );
138 cpPlugins_ITKInstances_ScalarImage_AllDims( float );
139 cpPlugins_ITKInstances_ScalarImage_AllDims( double );
140 cpPlugins_ITKInstances_ScalarImage_AllDims( unsigned char );
141 cpPlugins_ITKInstances_ScalarImage_AllDims( unsigned short );
142 cpPlugins_ITKInstances_ScalarImage_AllDims( unsigned int );
143 cpPlugins_ITKInstances_ScalarImage_AllDims( unsigned long );
144
145 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBPixel< char > );
146 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBPixel< short > );
147 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBPixel< int > );
148 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBPixel< long > );
149 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBPixel< float > );
150 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBPixel< double > );
151 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBPixel< unsigned char > );
152 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBPixel< unsigned short > );
153 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBPixel< unsigned int > );
154 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBPixel< unsigned long > );
155
156 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBAPixel< char > );
157 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBAPixel< short > );
158 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBAPixel< int > );
159 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBAPixel< long > );
160 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBAPixel< float > );
161 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBAPixel< double > );
162 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBAPixel< unsigned char > );
163 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBAPixel< unsigned short > );
164 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBAPixel< unsigned int > );
165 cpPlugins_ITKInstances_ScalarImage_AllDims( itk::RGBAPixel< unsigned long > );
166
167 /*
168  * =========================================================================
169  * Define scalar ItkVtkGlue
170  * =========================================================================
171  */
172 #define cpPlugins_ITKInstances_ItkVtkGlueScalarImage( P, D )            \
173   cpPlugins_ITKInstances_PREFIX itk::ImageToVTKImageFilter< itk::Image< P, D > >
174
175 #define cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( P )       \
176   cpPlugins_ITKInstances_ItkVtkGlueScalarImage( P, 2 );                 \
177   cpPlugins_ITKInstances_ItkVtkGlueScalarImage( P, 3 )
178
179 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( char );
180 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( short );
181 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( int );
182 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( long );
183 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( float );
184 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( double );
185 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( unsigned char );
186 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( unsigned short );
187 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( unsigned int );
188 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( unsigned long );
189
190 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBPixel< char > );
191 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBPixel< short > );
192 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBPixel< int > );
193 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBPixel< long > );
194 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBPixel< float > );
195 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBPixel< double > );
196 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBPixel< unsigned char > );
197 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBPixel< unsigned short > );
198 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBPixel< unsigned int > );
199 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBPixel< unsigned long > );
200
201 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBAPixel< char > );
202 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBAPixel< short > );
203 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBAPixel< int > );
204 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBAPixel< long > );
205 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBAPixel< float > );
206 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBAPixel< double > );
207 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBAPixel< unsigned char > );
208 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBAPixel< unsigned short > );
209 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBAPixel< unsigned int > );
210 cpPlugins_ITKInstances_ItkVtkGlueScalarImage_AllDims( itk::RGBAPixel< unsigned long > );
211
212 /*
213  * =========================================================================
214  * Define scalar shaped iterators
215  * =========================================================================
216  */
217 #define cpPlugins_ITKInstances_ScalarImage_ShapedIterators( P, D )      \
218   cpPlugins_ITKInstances_PREFIX itk::ImageLinearConstIteratorWithIndex< itk::Image< P, D > >; \
219   cpPlugins_ITKInstances_PREFIX itk::ImageLinearIteratorWithIndex< itk::Image< P, D > >; \
220   cpPlugins_ITKInstances_PREFIX itk::ConstantBoundaryCondition< itk::Image< P, D >, itk::Image< P, D > >; \
221   cpPlugins_ITKInstances_PREFIX itk::PeriodicBoundaryCondition< itk::Image< P, D >, itk::Image< P, D > >; \
222   cpPlugins_ITKInstances_PREFIX itk::ZeroFluxNeumannBoundaryCondition< itk::Image< P, D >, itk::Image< P, D > >; \
223   cpPlugins_ITKInstances_PREFIX itk::ConstNeighborhoodIterator< itk::Image< P, D >, itk::ConstantBoundaryCondition< itk::Image< P, D >, itk::Image< P, D > > >; \
224   cpPlugins_ITKInstances_PREFIX itk::NeighborhoodIterator< itk::Image< P, D >, itk::ConstantBoundaryCondition< itk::Image< P, D >, itk::Image< P, D > > >; \
225   cpPlugins_ITKInstances_PREFIX itk::ConstNeighborhoodIterator< itk::Image< P, D >, itk::PeriodicBoundaryCondition< itk::Image< P, D >, itk::Image< P, D > > >; \
226   cpPlugins_ITKInstances_PREFIX itk::NeighborhoodIterator< itk::Image< P, D >, itk::PeriodicBoundaryCondition< itk::Image< P, D >, itk::Image< P, D > > >; \
227   cpPlugins_ITKInstances_PREFIX itk::ConstNeighborhoodIterator< itk::Image< P, D >, itk::ZeroFluxNeumannBoundaryCondition< itk::Image< P, D >, itk::Image< P, D > > >; \
228   cpPlugins_ITKInstances_PREFIX itk::NeighborhoodIterator< itk::Image< P, D >, itk::ZeroFluxNeumannBoundaryCondition< itk::Image< P, D >, itk::Image< P, D > > >; \
229   cpPlugins_ITKInstances_PREFIX itk::ConstShapedNeighborhoodIterator< itk::Image< P, D >, itk::ZeroFluxNeumannBoundaryCondition< itk::Image< P, D >, itk::Image< P, D > > >; \
230   cpPlugins_ITKInstances_PREFIX itk::ShapedNeighborhoodIterator< itk::Image< P, D >, itk::ZeroFluxNeumannBoundaryCondition< itk::Image< P, D >, itk::Image< P, D > > >
231
232 #define cpPlugins_ITKInstances_ScalarImage_ShapedIterators_AllTypes( D ) \
233   cpPlugins_ITKInstances_ScalarImage_ShapedIterators( char, D );        \
234   cpPlugins_ITKInstances_ScalarImage_ShapedIterators( short, D );       \
235   cpPlugins_ITKInstances_ScalarImage_ShapedIterators( int, D );         \
236   cpPlugins_ITKInstances_ScalarImage_ShapedIterators( long, D );        \
237   cpPlugins_ITKInstances_ScalarImage_ShapedIterators( float, D );       \
238   cpPlugins_ITKInstances_ScalarImage_ShapedIterators( double, D );      \
239   cpPlugins_ITKInstances_ScalarImage_ShapedIterators( unsigned char, D ); \
240   cpPlugins_ITKInstances_ScalarImage_ShapedIterators( unsigned short, D ); \
241   cpPlugins_ITKInstances_ScalarImage_ShapedIterators( unsigned int, D ); \
242   cpPlugins_ITKInstances_ScalarImage_ShapedIterators( unsigned long, D )
243
244 cpPlugins_ITKInstances_ScalarImage_ShapedIterators_AllTypes( 1 );
245 cpPlugins_ITKInstances_ScalarImage_ShapedIterators_AllTypes( 2 );
246 cpPlugins_ITKInstances_ScalarImage_ShapedIterators_AllTypes( 3 );
247 cpPlugins_ITKInstances_ScalarImage_ShapedIterators_AllTypes( 4 );
248
249 #endif // __CPPLUGINS_ITKINSTANCES__IMAGE__H__
250
251 // eof - $RCSfile$