MeVisLab Toolbox Reference
mlITKFixedTypesFilterSupport.h
Go to the documentation of this file.
1
/*************************************************************************************
2
**
3
** Copyright 2007, MeVis Medical Solutions AG
4
**
5
** The user may use this file in accordance with the license agreement provided with
6
** the Software or, alternatively, in accordance with the terms contained in a
7
** written agreement between the user and MeVis Medical Solutions AG.
8
**
9
** For further information use the contact form at https://www.mevislab.de/contact
10
**
11
**************************************************************************************/
12
13
#pragma once
14
16
#include "
mlInitSystemITKSupport.h
"
17
18
// Include most ML specific things.
19
#include "
mlModuleIncludes.h
"
20
#include "
mlITKNonScalarSupport.h
"
21
22
//------------------------------------------------------------------------------------
26
//------------------------------------------------------------------------------------
27
#define _ML_IMPLEMENT_FIXED_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
28
case _WRAPPER_ML_INPUT_TYPE_TYPE: DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, _WRAPPER_ML_INPUT_TYPE, _WRAPPER_ITK_INPUT_TYPE, USER_CODE, CLASS_NAME, DIM); break; \
29
30
31
//------------------------------------------------------------------------------------
34
//------------------------------------------------------------------------------------
35
#define _ML_IMPLEMENT_FLOAT_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
36
case MLfloatType : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLfloat, MLfloat, USER_CODE, CLASS_NAME, DIM); break; \
37
38
39
//------------------------------------------------------------------------------------
42
//------------------------------------------------------------------------------------
43
#define _ML_IMPLEMENT_DOUBLE_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
44
case MLdoubleType: DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLdouble, MLdouble, USER_CODE, CLASS_NAME, DIM); break; \
45
46
47
//------------------------------------------------------------------------------------
50
//------------------------------------------------------------------------------------
51
#define _ML_IMPLEMENT_FLOATS_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
52
_ML_IMPLEMENT_FLOAT_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
53
_ML_IMPLEMENT_DOUBLE_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
54
55
56
//------------------------------------------------------------------------------------
59
//------------------------------------------------------------------------------------
60
#define _ML_IMPLEMENT_INTS_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
61
case MLint8Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint8 , MLint8 , USER_CODE, CLASS_NAME, DIM); break; \
62
case MLuint8Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLuint8 , MLuint8 , USER_CODE, CLASS_NAME, DIM); break; \
63
case MLint16Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint16 , MLint16 , USER_CODE, CLASS_NAME, DIM); break; \
64
case MLuint16Type: DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLuint16, MLuint16, USER_CODE, CLASS_NAME, DIM); break; \
65
case MLint32Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint32 , MLint32 , USER_CODE, CLASS_NAME, DIM); break; \
66
case MLuint32Type: DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLuint32, MLuint32, USER_CODE, CLASS_NAME, DIM); break; \
67
68
69
//------------------------------------------------------------------------------------
72
//------------------------------------------------------------------------------------
73
#define _ML_IMPLEMENT_SIGNED_INTS_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
74
case MLint8Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint8 , MLint8 , USER_CODE, CLASS_NAME, DIM); break; \
75
case MLint16Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint16 , MLint16 , USER_CODE, CLASS_NAME, DIM); break; \
76
case MLint32Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint32 , MLint32 , USER_CODE, CLASS_NAME, DIM); break; \
77
78
79
//------------------------------------------------------------------------------------
82
//------------------------------------------------------------------------------------
83
#define _ML_IMPLEMENT_SIGNED_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
84
case MLint8Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint8 , MLint8 , USER_CODE, CLASS_NAME, DIM); break; \
85
case MLint16Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint16 , MLint16 , USER_CODE, CLASS_NAME, DIM); break; \
86
case MLint32Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint32 , MLint32 , USER_CODE, CLASS_NAME, DIM); break; \
87
_ML_IMPLEMENT_FLOATS_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
88
89
90
//------------------------------------------------------------------------------------
93
//------------------------------------------------------------------------------------
94
#define _ML_IMPLEMENT_SIGNED_ANY_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
95
_ML_IMPLEMENT_SIGNED_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
96
97
98
//------------------------------------------------------------------------------------
101
//------------------------------------------------------------------------------------
102
#define _ML_IMPLEMENT_ANY_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
103
_ML_IMPLEMENT_INTS_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
104
_ML_IMPLEMENT_FLOATS_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
105
106
107
//------------------------------------------------------------------------------------
111
//------------------------------------------------------------------------------------
112
#define _ML_IMPLEMENT_TO_FIXED_ITK_CASES_ALL_DIMS(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
113
switch(DATATYPE_ENUM){ \
114
_ML_FIXED_IMPL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
115
default: { ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, "Fixed type case not executed(_ML_IMPLEMENT_TO_FIXED_ITK_CASES_ALL_DIMS)."
); break; } \
116
} \
117
118
119
//------------------------------------------------------------------------------------
121
//------------------------------------------------------------------------------------
122
#define _ML_IMPLEMENT_TO_FIXED_ITK_2D_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM) \
123
_ML_IMPLEMENT_TO_FIXED_ITK_CASES_ALL_DIMS(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, _ML_INSTANTIATE_2D_CODE)
124
125
//------------------------------------------------------------------------------------
127
//------------------------------------------------------------------------------------
128
#define _ML_IMPLEMENT_TO_FIXED_ITK_3D_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM) \
129
_ML_IMPLEMENT_TO_FIXED_ITK_CASES_ALL_DIMS(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, _ML_INSTANTIATE_3D_CODE)
130
131
//------------------------------------------------------------------------------------
133
//------------------------------------------------------------------------------------
134
#define _ML_IMPLEMENT_TO_FIXED_ITK_2D3D_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM) \
135
_ML_IMPLEMENT_TO_FIXED_ITK_CASES_ALL_DIMS(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, _ML_INSTANTIATE_2D3D_CODE)
136
137
//------------------------------------------------------------------------------------
139
//------------------------------------------------------------------------------------
140
#define _ML_IMPLEMENT_TO_FIXED_ITK_6D_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM) \
141
_ML_IMPLEMENT_TO_FIXED_ITK_CASES_ALL_DIMS(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, _ML_INSTANTIATE_6D_CODE)
142
143
144
//--------------------------------------------------------------------------------
148
//--------------------------------------------------------------------------------
149
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_0_2D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
150
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
151
_ML_ITK_DETERMINE_IN_REGION_0, \
152
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_0, \
153
_ML_IMPLEMENT_TO_FIXED_ITK_2D_CASES, \
154
_ML_ITK_DETERMINE_OUT_REGION_0)
155
156
//--------------------------------------------------------------------------------
160
//--------------------------------------------------------------------------------
161
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_1_2D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
162
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
163
_ML_ITK_DETERMINE_IN_REGION_N, \
164
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_1, \
165
_ML_IMPLEMENT_TO_FIXED_ITK_2D_CASES, \
166
_ML_ITK_DETERMINE_OUT_REGION_N)
167
168
//--------------------------------------------------------------------------------
172
//--------------------------------------------------------------------------------
173
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_2_2D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
174
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
175
_ML_ITK_DETERMINE_IN_REGION_N, \
176
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_2, \
177
_ML_IMPLEMENT_TO_FIXED_ITK_2D_CASES, \
178
_ML_ITK_DETERMINE_OUT_REGION_N)
179
180
//--------------------------------------------------------------------------------
184
//--------------------------------------------------------------------------------
185
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_3_2D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
186
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
187
_ML_ITK_DETERMINE_IN_REGION_N, \
188
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_3, \
189
_ML_IMPLEMENT_TO_FIXED_ITK_2D_CASES, \
190
_ML_ITK_DETERMINE_OUT_REGION_N)
191
192
193
194
195
//--------------------------------------------------------------------------------
199
//--------------------------------------------------------------------------------
200
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_0_3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
201
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
202
_ML_ITK_DETERMINE_IN_REGION_0, \
203
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_0, \
204
_ML_IMPLEMENT_TO_FIXED_ITK_3D_CASES, \
205
_ML_ITK_DETERMINE_OUT_REGION_0)
206
207
//--------------------------------------------------------------------------------
211
//--------------------------------------------------------------------------------
212
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_1_3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
213
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
214
_ML_ITK_DETERMINE_IN_REGION_N, \
215
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_1, \
216
_ML_IMPLEMENT_TO_FIXED_ITK_3D_CASES, \
217
_ML_ITK_DETERMINE_OUT_REGION_N)
218
219
//--------------------------------------------------------------------------------
223
//--------------------------------------------------------------------------------
224
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_2_3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
225
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
226
_ML_ITK_DETERMINE_IN_REGION_N, \
227
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_2, \
228
_ML_IMPLEMENT_TO_FIXED_ITK_3D_CASES, \
229
_ML_ITK_DETERMINE_OUT_REGION_N)
230
231
//--------------------------------------------------------------------------------
235
//--------------------------------------------------------------------------------
236
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_3_3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
237
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
238
_ML_ITK_DETERMINE_IN_REGION_N, \
239
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_3, \
240
_ML_IMPLEMENT_TO_FIXED_ITK_3D_CASES, \
241
_ML_ITK_DETERMINE_OUT_REGION_N)
242
243
244
245
246
//--------------------------------------------------------------------------------
250
//--------------------------------------------------------------------------------
251
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_0_2D3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
252
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
253
_ML_ITK_DETERMINE_IN_REGION_0, \
254
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_0, \
255
_ML_IMPLEMENT_TO_FIXED_ITK_2D3D_CASES, \
256
_ML_ITK_DETERMINE_OUT_REGION_0)
257
258
//--------------------------------------------------------------------------------
262
//--------------------------------------------------------------------------------
263
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_1_2D3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
264
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
265
_ML_ITK_DETERMINE_IN_REGION_N, \
266
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_1, \
267
_ML_IMPLEMENT_TO_FIXED_ITK_2D3D_CASES, \
268
_ML_ITK_DETERMINE_OUT_REGION_N)
269
270
//--------------------------------------------------------------------------------
274
//--------------------------------------------------------------------------------
275
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_2_2D3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
276
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
277
_ML_ITK_DETERMINE_IN_REGION_N, \
278
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_2, \
279
_ML_IMPLEMENT_TO_FIXED_ITK_2D3D_CASES, \
280
_ML_ITK_DETERMINE_OUT_REGION_N)
281
282
//--------------------------------------------------------------------------------
286
//--------------------------------------------------------------------------------
287
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_3_2D3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
288
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
289
_ML_ITK_DETERMINE_IN_REGION_N, \
290
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_3, \
291
_ML_IMPLEMENT_TO_FIXED_ITK_2D3D_CASES, \
292
_ML_ITK_DETERMINE_OUT_REGION_N)
293
294
295
296
297
//--------------------------------------------------------------------------------
300
//--------------------------------------------------------------------------------
301
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_0_6D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
302
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
303
_ML_ITK_DETERMINE_IN_REGION_N, \
304
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_0, \
305
_ML_IMPLEMENT_TO_FIXED_ITK_6D_CASES, \
306
_ML_ITK_DETERMINE_OUT_REGION_N)
307
308
//--------------------------------------------------------------------------------
311
//--------------------------------------------------------------------------------
312
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_1_6D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
313
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
314
_ML_ITK_DETERMINE_IN_REGION_N, \
315
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_1, \
316
_ML_IMPLEMENT_TO_FIXED_ITK_6D_CASES, \
317
_ML_ITK_DETERMINE_OUT_REGION_N)
318
319
//--------------------------------------------------------------------------------
322
//--------------------------------------------------------------------------------
323
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_2_6D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
324
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
325
_ML_ITK_DETERMINE_IN_REGION_N, \
326
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_2, \
327
_ML_IMPLEMENT_TO_FIXED_ITK_6D_CASES, \
328
_ML_ITK_DETERMINE_OUT_REGION_N)
329
330
//--------------------------------------------------------------------------------
333
//--------------------------------------------------------------------------------
334
#define ML_ITK_TO_FIXED_FILTER_WRAPPER_3_6D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \
335
_ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \
336
_ML_ITK_DETERMINE_IN_REGION_N, \
337
ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_3, \
338
_ML_IMPLEMENT_TO_FIXED_ITK_6D_CASES, \
339
_ML_ITK_DETERMINE_OUT_REGION_N)
340
mlITKNonScalarSupport.h
mlInitSystemITKSupport.h
mlModuleIncludes.h
MeVisLab
ITK
Sources
ML
MLITKSupport
mlITKFixedTypesFilterSupport.h
Generated by
1.9.1