18#include <itkDiffusionTensor3D.h>
69#define _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME) \
70 case MLuint8Type: ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, "Dummy MLuint8Type type is not legal and is ignored."); break;
78#define _ML_IMPLEMENT_FVECTOR_TO_FVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, ML_IT_VEC_TYPE) \
79 case MLVector2fType : \
80 DIM_INST(Vector2f, ML_IT_VEC_TYPE##2f, Vector2f, ML_IT_VEC_TYPE##2f, USER_CODE, CLASS_NAME, DIM); \
83 case MLVector3fType : \
84 DIM_INST(Vector3f, ML_IT_VEC_TYPE##3f, Vector3f, ML_IT_VEC_TYPE##3f, USER_CODE, CLASS_NAME, DIM); \
87 case MLVector4fType : \
88 DIM_INST(Vector4f, ML_IT_VEC_TYPE##4f, Vector4f, ML_IT_VEC_TYPE##4f, USER_CODE, CLASS_NAME, DIM); \
91 case MLVector6fType : \
92 DIM_INST(Vector6f, ML_IT_VEC_TYPE##6f, Vector6f, ML_IT_VEC_TYPE##6f, USER_CODE, CLASS_NAME, DIM); \
95 case MLVector8fType : \
96 DIM_INST(Vector8f, ML_IT_VEC_TYPE##8f, Vector8f, ML_IT_VEC_TYPE##8f, USER_CODE, CLASS_NAME, DIM); \
100#define _ML_IMPLEMENT_DVECTOR_TO_DVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, ML_IT_VEC_TYPE) \
101 case MLVector2dType : \
102 DIM_INST(Vector2d, ML_IT_VEC_TYPE##2d, Vector2d, ML_IT_VEC_TYPE##2d, USER_CODE, CLASS_NAME, DIM); \
105 case MLVector3dType : \
106 DIM_INST(Vector3d, ML_IT_VEC_TYPE##3d, Vector3d, ML_IT_VEC_TYPE##3d, USER_CODE, CLASS_NAME, DIM); \
109 case MLVector4dType : \
110 DIM_INST(Vector4d, ML_IT_VEC_TYPE##4d, Vector4d, ML_IT_VEC_TYPE##4d, USER_CODE, CLASS_NAME, DIM); \
113 case MLVector6dType : \
114 DIM_INST(Vector6d, ML_IT_VEC_TYPE##6d, Vector6d, ML_IT_VEC_TYPE##6d, USER_CODE, CLASS_NAME, DIM); \
117 case MLVector8dType : \
118 DIM_INST(Vector8d, ML_IT_VEC_TYPE##8d, Vector8d, ML_IT_VEC_TYPE##8d, USER_CODE, CLASS_NAME, DIM); \
124#define _ML_IMPLEMENT_FDVECTOR_TO_FDVECTOR_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, FCASES, DCASES) \
127 bool isFloatType = _addOns->getOutSubImageTypeInfos()->structInfoString[0]=='f'; \
128 bool isDoubleType = _addOns->getOutSubImageTypeInfos()->structInfoString[0]=='d'; \
130 switch (DATATYPE_ENUM){ \
133 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, \
134 "Data type case not executed(_ML_IMPLEMENT_FDVECTOR_TO_FDVECTOR_CASES, 1).", \
135 ", DATATYPE_ENUM=", DATATYPE_ENUM); \
140 else if (isDoubleType){ \
141 switch (DATATYPE_ENUM){ \
144 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, \
145 "Data type case not executed(_ML_IMPLEMENT_FDVECTOR_TO_FDVECTOR_CASES, 2).", \
146 ", DATATYPE_ENUM=", DATATYPE_ENUM); \
152 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, \
153 "Input data type case not executed(_ML_IMPLEMENT_FDVECTOR_TO_FDVECTOR_CASES)," \
154 "because it is neither a float nor a double vector type.", \
155 ", DATATYPE_ENUM=", DATATYPE_ENUM); \
169#define _ML_IMPLEMENT_FVECTOR_TO_INT_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, ML_IT_VEC_TYPE) \
170 case MLVector2fType : \
171 if (MLint16Type == _m_PixelType){ \
172 DIM_INST(MLint16, MLint16, Vector2f, ML_IT_VEC_TYPE##2f, USER_CODE, CLASS_NAME, DIM); \
174 DIM_INST(MLint32, MLint32, Vector2f, ML_IT_VEC_TYPE##2f, USER_CODE, CLASS_NAME, DIM); \
178 case MLVector3fType : \
179 if (MLint16Type == _m_PixelType){ \
180 DIM_INST(MLint16, MLint16, Vector3f, ML_IT_VEC_TYPE##3f, USER_CODE, CLASS_NAME, DIM); \
182 DIM_INST(MLint32, MLint32, Vector3f, ML_IT_VEC_TYPE##3f, USER_CODE, CLASS_NAME, DIM); \
186 case MLVector4fType : \
187 if (MLint16Type == _m_PixelType){ \
188 DIM_INST(MLint16, MLint16, Vector4f, ML_IT_VEC_TYPE##4f, USER_CODE, CLASS_NAME, DIM); \
190 DIM_INST(MLint32, MLint32, Vector4f, ML_IT_VEC_TYPE##4f, USER_CODE, CLASS_NAME, DIM); \
194 case MLVector6fType : \
195 if (MLint16Type == _m_PixelType){ \
196 DIM_INST(MLint16, MLint16, Vector6f, ML_IT_VEC_TYPE##6f, USER_CODE, CLASS_NAME, DIM); \
198 DIM_INST(MLint32, MLint32, Vector6f, ML_IT_VEC_TYPE##6f, USER_CODE, CLASS_NAME, DIM); \
202 case MLVector8fType : \
203 if (MLint16Type == _m_PixelType){ \
204 DIM_INST(MLint16, MLint16, Vector8f, ML_IT_VEC_TYPE##8f, USER_CODE, CLASS_NAME, DIM); \
206 DIM_INST(MLint32, MLint32, Vector8f, ML_IT_VEC_TYPE##8f, USER_CODE, CLASS_NAME, DIM); \
211#define _ML_IMPLEMENT_DVECTOR_TO_INT_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, ML_IT_VEC_TYPE) \
212 case MLVector2dType : \
213 if (MLint16Type == _m_PixelType){ \
214 DIM_INST(MLint16, MLint16, Vector2d, ML_IT_VEC_TYPE##2d, USER_CODE, CLASS_NAME, DIM); \
216 DIM_INST(MLint32, MLint32, Vector2d, ML_IT_VEC_TYPE##2d, USER_CODE, CLASS_NAME, DIM); \
220 case MLVector3dType : \
221 if (MLint16Type == _m_PixelType){ \
222 DIM_INST(MLint16, MLint16, Vector3d, ML_IT_VEC_TYPE##3d, USER_CODE, CLASS_NAME, DIM); \
224 DIM_INST(MLint32, MLint32, Vector3d, ML_IT_VEC_TYPE##3d, USER_CODE, CLASS_NAME, DIM); \
228 case MLVector4dType : \
229 if (MLint16Type == _m_PixelType){ \
230 DIM_INST(MLint16, MLint16, Vector4d, ML_IT_VEC_TYPE##4d, USER_CODE, CLASS_NAME, DIM); \
232 DIM_INST(MLint32, MLint32, Vector4d, ML_IT_VEC_TYPE##4d, USER_CODE, CLASS_NAME, DIM); \
236 case MLVector6dType : \
237 if (MLint16Type == _m_PixelType){ \
238 DIM_INST(MLint16, MLint16, Vector6d, ML_IT_VEC_TYPE##6d, USER_CODE, CLASS_NAME, DIM); \
240 DIM_INST(MLint32, MLint32, Vector6d, ML_IT_VEC_TYPE##6d, USER_CODE, CLASS_NAME, DIM); \
244 case MLVector8dType : \
245 if (MLint16Type == _m_PixelType){ \
246 DIM_INST(MLint16, MLint16, Vector8d, ML_IT_VEC_TYPE##8d, USER_CODE, CLASS_NAME, DIM); \
248 DIM_INST(MLint32, MLint32, Vector8d, ML_IT_VEC_TYPE##8d, USER_CODE, CLASS_NAME, DIM); \
253#define _ML_IMPLEMENT_FDVECTOR_TO_INT_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, FCASES, DCASES) \
256 bool isFloatType = _addOns->getInSubImageTypeInfos()->structInfoString[0]=='f'; \
257 bool isDoubleType = _addOns->getInSubImageTypeInfos()->structInfoString[0]=='d'; \
259 const MLDataType fDataType = _addOns->getInputSubImageDataType(); \
260 switch (fDataType){ \
263 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, \
264 "Input type case not executed(_ML_IMPLEMENT_FDVECTOR_TO_INT_CASES, 1).", \
265 ", fDataType=", fDataType, ", _m_PixelType=", _m_PixelType); \
270 else if (isDoubleType){ \
271 const MLDataType dDataType = _addOns->getInputSubImageDataType(); \
272 switch (dDataType){ \
275 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, \
276 "Input type case not executed(_ML_IMPLEMENT_FDVECTOR_TO_INT_CASES, 2).", \
277 ", dDataType=", dDataType, ", _m_PixelType=", _m_PixelType); \
282 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, \
283 "Input type case not executed(_ML_IMPLEMENT_FDVECTOR_TO_INT_CASES), because it is neither " \
284 "a float nor a double vector type)", " _m_PixelType=", _m_PixelType); \
298#define _ML_IMPLEMENT_FVECTOR_TO_REAL_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, ML_IT_VEC_TYPE) \
299 case MLVector2fType : \
300 DIM_INST(MLfloat, MLfloat, Vector2f, ML_IT_VEC_TYPE##2f, USER_CODE, CLASS_NAME, DIM); \
303 case MLVector3fType : \
304 DIM_INST(MLfloat, MLfloat, Vector3f, ML_IT_VEC_TYPE##3f, USER_CODE, CLASS_NAME, DIM); \
307 case MLVector4fType : \
308 DIM_INST(MLfloat, MLfloat, Vector4f, ML_IT_VEC_TYPE##4f, USER_CODE, CLASS_NAME, DIM); \
311 case MLVector6fType : \
312 DIM_INST(MLfloat, MLfloat, Vector6f, ML_IT_VEC_TYPE##6f, USER_CODE, CLASS_NAME, DIM); \
315 case MLVector8fType : \
316 DIM_INST(MLfloat, MLfloat, Vector8f, ML_IT_VEC_TYPE##8f, USER_CODE, CLASS_NAME, DIM); \
320#define _ML_IMPLEMENT_DVECTOR_TO_REAL_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, ML_IT_VEC_TYPE) \
321 case MLVector2dType : \
322 DIM_INST(MLdouble, MLdouble, Vector2d, ML_IT_VEC_TYPE##2d, USER_CODE, CLASS_NAME, DIM); \
325 case MLVector3dType : \
326 DIM_INST(MLdouble, MLdouble, Vector3d, ML_IT_VEC_TYPE##3d, USER_CODE, CLASS_NAME, DIM); \
329 case MLVector4dType : \
330 DIM_INST(MLdouble, MLdouble, Vector4d, ML_IT_VEC_TYPE##4d, USER_CODE, CLASS_NAME, DIM); \
333 case MLVector6dType : \
334 DIM_INST(MLdouble, MLdouble, Vector6d, ML_IT_VEC_TYPE##6d, USER_CODE, CLASS_NAME, DIM); \
337 case MLVector8dType : \
338 DIM_INST(MLdouble, MLdouble, Vector8d, ML_IT_VEC_TYPE##8d, USER_CODE, CLASS_NAME, DIM); \
342#define _ML_IMPLEMENT_FDVECTOR_TO_REAL_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, FCASES, DCASES) \
344 switch (_m_PixelType){ \
345 case MLfloatType : { \
346 const MLDataType fDataType = _addOns->getInputSubImageDataType(); \
347 switch (fDataType){ \
350 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, \
351 "Input type case not executed(_ML_IMPLEMENT_FDVECTOR_TO_REAL_CASES, 1).", \
352 ", fDataType=", fDataType, ", _m_PixelType=", _m_PixelType);\
359 case MLdoubleType : { \
360 const MLDataType dDataType = _addOns->getInputSubImageDataType(); \
361 switch (dDataType){ \
364 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, \
365 "Input type case not executed(_ML_IMPLEMENT_FDVECTOR_TO_REAL_CASES, 2).", \
366 ", dDataType=", dDataType, ", _m_PixelType=", _m_PixelType); \
373 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, \
374 "Output type case not executed(_ML_IMPLEMENT_FDVECTOR_TO_REAL_CASES, 3).", \
375 ", _m_PixelType=", _m_PixelType); \
388#define _ML_IMPLEMENT_REAL_TO_FVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, ML_IT_VEC_TYPE) \
389 case MLVector2fType : \
390 DIM_INST(Vector2f, ML_IT_VEC_TYPE##2f, MLfloat, MLfloat, USER_CODE, CLASS_NAME, DIM); \
393 case MLVector3fType : \
394 DIM_INST(Vector3f, ML_IT_VEC_TYPE##3f, MLfloat, MLfloat, USER_CODE, CLASS_NAME, DIM); \
397 case MLVector4fType : \
398 DIM_INST(Vector4f, ML_IT_VEC_TYPE##4f, MLfloat, MLfloat, USER_CODE, CLASS_NAME, DIM); \
401 case MLVector6fType : \
402 DIM_INST(Vector6f, ML_IT_VEC_TYPE##6f, MLfloat, MLfloat, USER_CODE, CLASS_NAME, DIM); \
405 case MLVector8fType : \
406 DIM_INST(Vector8f, ML_IT_VEC_TYPE##8f, MLfloat, MLfloat, USER_CODE, CLASS_NAME, DIM); \
410#define _ML_IMPLEMENT_REAL_TO_DVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, ML_IT_VEC_TYPE) \
411 case MLVector2dType : \
412 DIM_INST(Vector2d, ML_IT_VEC_TYPE##2d, MLdouble, MLdouble, USER_CODE, CLASS_NAME, DIM); \
415 case MLVector3dType : \
416 DIM_INST(Vector3d, ML_IT_VEC_TYPE##3d, MLdouble, MLdouble, USER_CODE, CLASS_NAME, DIM); \
419 case MLVector4dType : \
420 DIM_INST(Vector4d, ML_IT_VEC_TYPE##4d, MLdouble, MLdouble, USER_CODE, CLASS_NAME, DIM); \
423 case MLVector6dType : \
424 DIM_INST(Vector6d, ML_IT_VEC_TYPE##6d, MLdouble, MLdouble, USER_CODE, CLASS_NAME, DIM); \
427 case MLVector8dType : \
428 DIM_INST(Vector8d, ML_IT_VEC_TYPE##8d, MLdouble, MLdouble, USER_CODE, CLASS_NAME, DIM); \
432#define _ML_IMPLEMENT_REAL_TO_FDVECTOR_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, FCASES, DCASES) \
435 bool isFloatType = _addOns->getOutSubImageTypeInfos()->structInfoString[0]=='f'; \
437 switch (DATATYPE_ENUM){ \
440 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, "Data type case not executed(_ML_IMPLEMENT_REAL_TO_FDVECTOR_CASES, 1).", ", DATATYPE_ENUM=", DATATYPE_ENUM); \
446 switch (DATATYPE_ENUM){ \
449 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, "Data type case not executed(_ML_IMPLEMENT_REAL_TO_FDVECTOR_CASES, 2).", ", DATATYPE_ENUM=", DATATYPE_ENUM); \
465#define ML_IMPLEMENT_FDVECTOR_TO_FDVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
466 _ML_IMPLEMENT_FDVECTOR_TO_FDVECTOR_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
467 _ML_IMPLEMENT_FVECTOR_TO_FVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector),\
468 _ML_IMPLEMENT_DVECTOR_TO_DVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector))
470#define ML_IMPLEMENT_FDVECTOR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
471 _ML_IMPLEMENT_FDVECTOR_TO_INT_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
472 _ML_IMPLEMENT_FVECTOR_TO_INT_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector), \
473 _ML_IMPLEMENT_DVECTOR_TO_INT_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector))
475#define ML_IMPLEMENT_FDVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
476 _ML_IMPLEMENT_FDVECTOR_TO_REAL_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
477 _ML_IMPLEMENT_FVECTOR_TO_REAL_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector), \
478 _ML_IMPLEMENT_DVECTOR_TO_REAL_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector))
480#define ML_IMPLEMENT_REAL_TO_FDVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
481 _ML_IMPLEMENT_REAL_TO_FDVECTOR_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
482 _ML_IMPLEMENT_REAL_TO_FVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector), \
483 _ML_IMPLEMENT_REAL_TO_DVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector))
489#define ML_IMPLEMENT_FVECTOR_TO_FVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
490 _ML_IMPLEMENT_FDVECTOR_TO_FDVECTOR_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
491 _ML_IMPLEMENT_FVECTOR_TO_FVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector), \
492 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME))
494#define ML_IMPLEMENT_FVECTOR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
495 _ML_IMPLEMENT_FDVECTOR_TO_INT_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
496 _ML_IMPLEMENT_FVECTOR_TO_INT_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector), \
497 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME))
499#define ML_IMPLEMENT_FVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
500 _ML_IMPLEMENT_FDVECTOR_TO_REAL_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
501 _ML_IMPLEMENT_FVECTOR_TO_REAL_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector), \
502 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME))
504#define ML_IMPLEMENT_REAL_TO_FVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
505 _ML_IMPLEMENT_REAL_TO_FDVECTOR_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
506 _ML_IMPLEMENT_REAL_TO_FVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector), \
507 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME))
512#define ML_IMPLEMENT_DVECTOR_TO_DVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
513 _ML_IMPLEMENT_FDVECTOR_TO_FDVECTOR_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
514 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME), \
515 _ML_IMPLEMENT_DVECTOR_TO_DVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector))
517#define ML_IMPLEMENT_DVECTOR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
518 _ML_IMPLEMENT_FDVECTOR_TO_INT_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
519 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME), \
520 _ML_IMPLEMENT_DVECTOR_TO_INT_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector))
522#define ML_IMPLEMENT_DVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
523 _ML_IMPLEMENT_FDVECTOR_TO_REAL_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
524 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME), \
525 _ML_IMPLEMENT_DVECTOR_TO_REAL_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector))
527#define ML_IMPLEMENT_REAL_TO_DVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
528 _ML_IMPLEMENT_REAL_TO_FDVECTOR_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
529 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME), \
530 _ML_IMPLEMENT_REAL_TO_DVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkVector))
541#define ML_IMPLEMENT_CVFDVECTOR_TO_CVFDVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
542 _ML_IMPLEMENT_FDVECTOR_TO_FDVECTOR_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
543 _ML_IMPLEMENT_FVECTOR_TO_FVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector),\
544 _ML_IMPLEMENT_DVECTOR_TO_DVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector))
546#define ML_IMPLEMENT_CVFDVECTOR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
547 _ML_IMPLEMENT_FDVECTOR_TO_INT_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
548 _ML_IMPLEMENT_FVECTOR_TO_INT_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector), \
549 _ML_IMPLEMENT_DVECTOR_TO_INT_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector))
551#define ML_IMPLEMENT_CVFDVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
552 _ML_IMPLEMENT_FDVECTOR_TO_REAL_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
553 _ML_IMPLEMENT_FVECTOR_TO_REAL_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector), \
554 _ML_IMPLEMENT_DVECTOR_TO_REAL_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector))
556#define ML_IMPLEMENT_REAL_TO_CVFDVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
557 _ML_IMPLEMENT_REAL_TO_FDVECTOR_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
558 _ML_IMPLEMENT_REAL_TO_FVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector), \
559 _ML_IMPLEMENT_REAL_TO_DVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector))
565#define ML_IMPLEMENT_CVFVECTOR_TO_CVFVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
566 _ML_IMPLEMENT_FDVECTOR_TO_FDVECTOR_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
567 _ML_IMPLEMENT_FVECTOR_TO_FVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector), \
568 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME))
570#define ML_IMPLEMENT_CVFVECTOR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
571 _ML_IMPLEMENT_FDVECTOR_TO_INT_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
572 _ML_IMPLEMENT_FVECTOR_TO_INT_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector), \
573 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME))
575#define ML_IMPLEMENT_CVFVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
576 _ML_IMPLEMENT_FDVECTOR_TO_REAL_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
577 _ML_IMPLEMENT_FVECTOR_TO_REAL_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector),\
578 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME))
580#define ML_IMPLEMENT_REAL_TO_CVFVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
581 _ML_IMPLEMENT_REAL_TO_FDVECTOR_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
582 _ML_IMPLEMENT_REAL_TO_FVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector),\
583 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME))
588#define ML_IMPLEMENT_CVDVECTOR_TO_CVDVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
589 _ML_IMPLEMENT_FDVECTOR_TO_FDVECTOR_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
590 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME), \
591 _ML_IMPLEMENT_DVECTOR_TO_DVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector))
593#define ML_IMPLEMENT_CVDVECTOR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
594 _ML_IMPLEMENT_FDVECTOR_TO_INT_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
595 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME), \
596 _ML_IMPLEMENT_DVECTOR_TO_INT_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector))
598#define ML_IMPLEMENT_CVDVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
599 _ML_IMPLEMENT_FDVECTOR_TO_REAL_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
600 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME), \
601 _ML_IMPLEMENT_DVECTOR_TO_REAL_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector))
603#define ML_IMPLEMENT_REAL_TO_CVDVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
604 _ML_IMPLEMENT_REAL_TO_FDVECTOR_CASES(INFO_STRING, CLASS_NAME, DATATYPE_ENUM, \
605 _ML_IMPLEMENT_EMPTY_VECTOR_CASE(CLASS_NAME), \
606 _ML_IMPLEMENT_REAL_TO_DVECTOR_CASES(DIM_INST, USER_CODE, DATATYPE_ENUM, CLASS_NAME, DIM, mlItkCVVector))
618#define _ML_IMPLEMENT_REAL_TO_IMG_DIM_FVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE) \
621 case 2 : USER_CODE(Vector2f, ML_ITK_VECTOR_TYPE##2f, MLfloat, MLfloat, 2, CLASS_NAME); break; \
622 case 3 : USER_CODE(Vector3f, ML_ITK_VECTOR_TYPE##3f, MLfloat, MLfloat, 3, CLASS_NAME); break; \
623 case 4 : USER_CODE(Vector4f, ML_ITK_VECTOR_TYPE##4f, MLfloat, MLfloat, 4, CLASS_NAME); break; \
624 case 6 : USER_CODE(Vector6f, ML_ITK_VECTOR_TYPE##6f, MLfloat, MLfloat, 6, CLASS_NAME); break; \
625 default: ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DIMENSION, "Dimension not supported(_ML_IMPLEMENT_REAL_TO_IMG_DIM_FVECTOR_CASES).", ", DIM=", DIM); break; \
632#define _ML_IMPLEMENT_REAL_TO_IMG_DIM_DVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE) \
635 case 2 : USER_CODE(Vector2d, ML_ITK_VECTOR_TYPE##2d, MLdouble, MLdouble, 2, CLASS_NAME); break; \
636 case 3 : USER_CODE(Vector3d, ML_ITK_VECTOR_TYPE##3d, MLdouble, MLdouble, 3, CLASS_NAME); break; \
637 case 4 : USER_CODE(Vector4d, ML_ITK_VECTOR_TYPE##4d, MLdouble, MLdouble, 4, CLASS_NAME); break; \
638 case 6 : USER_CODE(Vector6d, ML_ITK_VECTOR_TYPE##6d, MLdouble, MLdouble, 6, CLASS_NAME); break; \
639 default: ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DIMENSION, "Dimension not supported(_ML_IMPLEMENT_REAL_TO_IMG_DIM_DVECTOR_CASES).", ", DIM=", DIM); break; \
646#define _ML_IMPLEMENT_REAL_TO_IMG_DIM_FDVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE) \
648 if (_addOns->getInputSubImageDataType()==MLfloatType){ \
650 case 2 : USER_CODE(Vector2f, ML_ITK_VECTOR_TYPE##2f, MLfloat, MLfloat, 2, CLASS_NAME); break; \
651 case 3 : USER_CODE(Vector3f, ML_ITK_VECTOR_TYPE##3f, MLfloat, MLfloat, 3, CLASS_NAME); break; \
652 case 4 : USER_CODE(Vector4f, ML_ITK_VECTOR_TYPE##4f, MLfloat, MLfloat, 4, CLASS_NAME); break; \
653 case 6 : USER_CODE(Vector6f, ML_ITK_VECTOR_TYPE##6f, MLfloat, MLfloat, 6, CLASS_NAME); break; \
654 default: ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DIMENSION, "Dimension not supported(_ML_IMPLEMENT_REAL_TO_IMG_DIM_FDVECTOR_CASES), 1.", ", DIM=", DIM); break; \
659 case 2 : USER_CODE(Vector2d, ML_ITK_VECTOR_TYPE##2d, MLdouble, MLdouble, 2, CLASS_NAME); break; \
660 case 3 : USER_CODE(Vector3d, ML_ITK_VECTOR_TYPE##3d, MLdouble, MLdouble, 3, CLASS_NAME); break; \
661 case 4 : USER_CODE(Vector4d, ML_ITK_VECTOR_TYPE##4d, MLdouble, MLdouble, 4, CLASS_NAME); break; \
662 case 6 : USER_CODE(Vector6d, ML_ITK_VECTOR_TYPE##6d, MLdouble, MLdouble, 6, CLASS_NAME); break; \
663 default: ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DIMENSION, "Dimension not supported(_ML_IMPLEMENT_REAL_TO_IMG_DIM_FDVECTOR_CASES, 2).", ", DIM=", DIM); break; \
671#define _ML_IMPLEMENT_REAL_TO_IMG_DIM_FVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE, DIM_C, DIM_CF, DIM_CD) \
673 USER_CODE(Vector##DIM_C##f, ML_ITK_VECTOR_TYPE##DIM_C##f, MLfloat, MLfloat, DIM_C, CLASS_NAME); \
679#define _ML_IMPLEMENT_REAL_TO_IMG_DIM_DVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE, DIM_C, DIM_CF, DIM_CD) \
681 USER_CODE(Vector##DIM_C##d, ML_ITK_VECTOR_TYPE##DIM_C##d, MLdouble, MLdouble, DIM_C, CLASS_NAME); \
687#define _ML_IMPLEMENT_REAL_TO_IMG_DIM_FDVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE, DIM_C, DIM_CF, DIM_CD) \
689 if (_addOns->getInputSubImageDataType() == MLfloatType){ \
690 USER_CODE(Vector##DIM_C##f, ML_ITK_VECTOR_TYPE##DIM_C##f, MLfloat, MLfloat, DIM_C, CLASS_NAME); \
693 USER_CODE(Vector##DIM_C##d, ML_ITK_VECTOR_TYPE##DIM_C##d, MLdouble, MLdouble, DIM_C, CLASS_NAME); \
698#define ML_IMPLEMENT_REAL_TO_IMG_DIM_CVFVECTOR_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
699 _ML_IMPLEMENT_REAL_TO_IMG_DIM_FVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 2, 8, 16)
700#define ML_IMPLEMENT_REAL_TO_IMG_DIM_CVFVECTOR_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
701 _ML_IMPLEMENT_REAL_TO_IMG_DIM_FVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 3, 12, 24)
702#define ML_IMPLEMENT_REAL_TO_IMG_DIM_CVFVECTOR_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
703 _ML_IMPLEMENT_REAL_TO_IMG_DIM_FVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector)
705#define ML_IMPLEMENT_REAL_TO_IMG_DIM_CVDVECTOR_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
706 _ML_IMPLEMENT_REAL_TO_IMG_DIM_DVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 2, 8, 16)
707#define ML_IMPLEMENT_REAL_TO_IMG_DIM_CVDVECTOR_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
708 _ML_IMPLEMENT_REAL_TO_IMG_DIM_DVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 3, 12, 24)
709#define ML_IMPLEMENT_REAL_TO_IMG_DIM_CVDVECTOR_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
710 _ML_IMPLEMENT_REAL_TO_IMG_DIM_DVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector)
712#define ML_IMPLEMENT_REAL_TO_IMG_DIM_CVFDVECTOR_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
713 _ML_IMPLEMENT_REAL_TO_IMG_DIM_FDVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 2, 8, 16)
714#define ML_IMPLEMENT_REAL_TO_IMG_DIM_CVFDVECTOR_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
715 _ML_IMPLEMENT_REAL_TO_IMG_DIM_FDVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 3, 12, 24)
716#define ML_IMPLEMENT_REAL_TO_IMG_DIM_CVFDVECTOR_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
717 _ML_IMPLEMENT_REAL_TO_IMG_DIM_FDVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector)
721#define ML_IMPLEMENT_REAL_TO_IMG_DIM_FVECTOR_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
722 _ML_IMPLEMENT_REAL_TO_IMG_DIM_FVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 2, 8, 16)
723#define ML_IMPLEMENT_REAL_TO_IMG_DIM_FVECTOR_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
724 _ML_IMPLEMENT_REAL_TO_IMG_DIM_FVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 3, 12, 24)
725#define ML_IMPLEMENT_REAL_TO_IMG_DIM_FVECTOR_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
726 _ML_IMPLEMENT_REAL_TO_IMG_DIM_FVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector)
728#define ML_IMPLEMENT_REAL_TO_IMG_DIM_DVECTOR_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
729 _ML_IMPLEMENT_REAL_TO_IMG_DIM_DVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 2, 8, 16)
730#define ML_IMPLEMENT_REAL_TO_IMG_DIM_DVECTOR_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
731 _ML_IMPLEMENT_REAL_TO_IMG_DIM_DVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 3, 12, 24)
732#define ML_IMPLEMENT_REAL_TO_IMG_DIM_DVECTOR_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
733 _ML_IMPLEMENT_REAL_TO_IMG_DIM_DVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector)
735#define ML_IMPLEMENT_REAL_TO_IMG_DIM_FDVECTOR_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
736 _ML_IMPLEMENT_REAL_TO_IMG_DIM_FDVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 2, 8, 16)
737#define ML_IMPLEMENT_REAL_TO_IMG_DIM_FDVECTOR_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
738 _ML_IMPLEMENT_REAL_TO_IMG_DIM_FDVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 3, 12, 24)
739#define ML_IMPLEMENT_REAL_TO_IMG_DIM_FDVECTOR_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
740 _ML_IMPLEMENT_REAL_TO_IMG_DIM_FDVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector)
758#define _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE) \
761 case 2 : USER_CODE(MLfloat, MLfloat, Vector2f, ML_ITK_VECTOR_TYPE##2f, 2, CLASS_NAME); break; \
762 case 3 : USER_CODE(MLfloat, MLfloat, Vector3f, ML_ITK_VECTOR_TYPE##3f, 3, CLASS_NAME); break; \
763 case 4 : USER_CODE(MLfloat, MLfloat, Vector4f, ML_ITK_VECTOR_TYPE##4f, 4, CLASS_NAME); break; \
764 case 6 : USER_CODE(MLfloat, MLfloat, Vector6f, ML_ITK_VECTOR_TYPE##6f, 6, CLASS_NAME); break; \
765 default: ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DIMENSION, "Dimension not supported(_ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_REAL_CASES).", ", DIM=", DIM); break; \
772#define _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE) \
775 case 2 : USER_CODE(MLdouble, MLdouble, Vector2d, ML_ITK_VECTOR_TYPE##2d, 2, CLASS_NAME); break; \
776 case 3 : USER_CODE(MLdouble, MLdouble, Vector3d, ML_ITK_VECTOR_TYPE##3d, 3, CLASS_NAME); break; \
777 case 4 : USER_CODE(MLdouble, MLdouble, Vector4d, ML_ITK_VECTOR_TYPE##4d, 4, CLASS_NAME); break; \
778 case 6 : USER_CODE(MLdouble, MLdouble, Vector6d, ML_ITK_VECTOR_TYPE##6d, 6, CLASS_NAME); break; \
779 default: ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DIMENSION, "Dimension not supported(_ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_REAL_CASES).", ", DIM=", DIM); break; \
786#define _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE) \
789 const bool isFloatType = _addOns->getInSubImageTypeInfos()->structInfoString[0]=='f'; \
792 case 2 : USER_CODE(MLfloat, MLfloat, Vector2f, ML_ITK_VECTOR_TYPE##2f, 2, CLASS_NAME); break; \
793 case 3 : USER_CODE(MLfloat, MLfloat, Vector3f, ML_ITK_VECTOR_TYPE##3f, 3, CLASS_NAME); break; \
794 case 4 : USER_CODE(MLfloat, MLfloat, Vector4f, ML_ITK_VECTOR_TYPE##4f, 4, CLASS_NAME); break; \
795 case 6 : USER_CODE(MLfloat, MLfloat, Vector6f, ML_ITK_VECTOR_TYPE##6f, 6, CLASS_NAME); break; \
796 default: ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DIMENSION, "Dimension not supported(_ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_REAL_CASES, 1).", ", DIM=", DIM); break; \
801 case 2 : USER_CODE(MLdouble, MLdouble, Vector2d, ML_ITK_VECTOR_TYPE##2d, 2, CLASS_NAME); break; \
802 case 3 : USER_CODE(MLdouble, MLdouble, Vector3d, ML_ITK_VECTOR_TYPE##3d, 3, CLASS_NAME); break; \
803 case 4 : USER_CODE(MLdouble, MLdouble, Vector4d, ML_ITK_VECTOR_TYPE##4d, 4, CLASS_NAME); break; \
804 case 6 : USER_CODE(MLdouble, MLdouble, Vector6d, ML_ITK_VECTOR_TYPE##6d, 6, CLASS_NAME); break; \
805 default: ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DIMENSION, "Dimension not supported(_ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_REAL_CASES, 2).", ", DIM=", DIM); break; \
813#define _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE, DIM_C, DIM_CF, DIM_CD) \
815 USER_CODE(MLfloat, MLfloat, Vector##DIM_C##f, ML_ITK_VECTOR_TYPE##DIM_C##f, DIM_C, CLASS_NAME); \
821#define _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE, DIM_C, DIM_CF, DIM_CD) \
823 USER_CODE(MLdouble, MLdouble, Vector##DIM_C##d, ML_ITK_VECTOR_TYPE##DIM_C##d, DIM_C, CLASS_NAME); \
837#define _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE, DIM_C, DIM_CF, DIM_CD) \
840 const bool isFloatType = _addOns->getInSubImageTypeInfos()->structInfoString[0]=='f'; \
842 USER_CODE(Vector##DIM_C##f, ML_ITK_VECTOR_TYPE##DIM_C##f, MLfloat, MLfloat, DIM_C, CLASS_NAME); \
845 USER_CODE(MLdouble, MLdouble, Vector##DIM_C##d, ML_ITK_VECTOR_TYPE##DIM_C##d, DIM_C, CLASS_NAME); \
850#define ML_IMPLEMENT_IMG_DIM_CVFVECTOR_TO_REAL_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
851 _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 2, 8, 16)
852#define ML_IMPLEMENT_IMG_DIM_CVFVECTOR_TO_REAL_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
853 _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 3, 12, 24)
854#define ML_IMPLEMENT_IMG_DIM_CVFVECTOR_TO_REAL_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
855 _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector)
857#define ML_IMPLEMENT_IMG_DIM_CVDVECTOR_TO_REAL_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
858 _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 2, 8, 16)
859#define ML_IMPLEMENT_IMG_DIM_CVDVECTOR_TO_REAL_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
860 _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 3, 12, 24)
861#define ML_IMPLEMENT_IMG_DIM_CVDVECTOR_TO_REAL_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
862 _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector)
864#define ML_IMPLEMENT_IMG_DIM_CVFDVECTOR_TO_REAL_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
865 _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 2, 8, 16)
866#define ML_IMPLEMENT_IMG_DIM_CVFDVECTOR_TO_REAL_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
867 _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 3, 12, 24)
868#define ML_IMPLEMENT_IMG_DIM_CVFDVECTOR_TO_REAL_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
869 _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector)
873#define ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_REAL_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
874 _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 2, 8, 16)
875#define ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_REAL_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
876 _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 3, 12, 24)
877#define ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_REAL_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
878 _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector)
880#define ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_REAL_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
881 _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 2, 8, 16)
882#define ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_REAL_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
883 _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 3, 12, 24)
884#define ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_REAL_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
885 _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector)
887#define ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_REAL_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
888 _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 2, 8, 16)
889#define ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_REAL_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
890 _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_REAL_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 3, 12, 24)
891#define ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_REAL_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
892 _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector)
911#define _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_IMG_DIM_FVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE) \
914 case 2 : USER_CODE(Vector2f, ML_ITK_VECTOR_TYPE##2f, Vector2f, ML_ITK_VECTOR_TYPE##2f, 2, CLASS_NAME); break; \
915 case 3 : USER_CODE(Vector3f, ML_ITK_VECTOR_TYPE##3f, Vector3f, ML_ITK_VECTOR_TYPE##3f, 3, CLASS_NAME); break; \
916 case 4 : USER_CODE(Vector4f, ML_ITK_VECTOR_TYPE##4f, Vector4f, ML_ITK_VECTOR_TYPE##4f, 4, CLASS_NAME); break; \
917 case 6 : USER_CODE(Vector6f, ML_ITK_VECTOR_TYPE##6f, Vector6f, ML_ITK_VECTOR_TYPE##6f, 6, CLASS_NAME); break; \
918 default: ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DIMENSION, "Dimension not supported(_ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_IMG_DIM_FVECTOR_CASES).", ", DIM=", DIM); break; \
925#define _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_IMG_DIM_DVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE) \
928 case 2 : USER_CODE(Vector2d, ML_ITK_VECTOR_TYPE##2d, Vector2d, ML_ITK_VECTOR_TYPE##2d, 2, CLASS_NAME); break; \
929 case 3 : USER_CODE(Vector3d, ML_ITK_VECTOR_TYPE##3d, Vector3d, ML_ITK_VECTOR_TYPE##3d, 3, CLASS_NAME); break; \
930 case 4 : USER_CODE(Vector4d, ML_ITK_VECTOR_TYPE##4d, Vector4d, ML_ITK_VECTOR_TYPE##4d, 4, CLASS_NAME); break; \
931 case 6 : USER_CODE(Vector6d, ML_ITK_VECTOR_TYPE##6d, Vector6d, ML_ITK_VECTOR_TYPE##6d, 6, CLASS_NAME); break; \
932 default: ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DIMENSION, "Dimension not supported(_ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_IMG_DIM_DVECTOR_CASES).", ", DIM=", DIM); break; \
939#define _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_IMG_DIM_FDVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE) \
942 bool isFloatType = _addOns->getInSubImageTypeInfos()->structInfoString[0]=='f'; \
945 case 2 : USER_CODE(Vector2f, ML_ITK_VECTOR_TYPE##2f, Vector2f, ML_ITK_VECTOR_TYPE##2f, 2, CLASS_NAME); break; \
946 case 3 : USER_CODE(Vector3f, ML_ITK_VECTOR_TYPE##3f, Vector3f, ML_ITK_VECTOR_TYPE##3f, 3, CLASS_NAME); break; \
947 case 4 : USER_CODE(Vector4f, ML_ITK_VECTOR_TYPE##4f, Vector4f, ML_ITK_VECTOR_TYPE##4f, 4, CLASS_NAME); break; \
948 case 6 : USER_CODE(Vector6f, ML_ITK_VECTOR_TYPE##6f, Vector6f, ML_ITK_VECTOR_TYPE##6f, 6, CLASS_NAME); break; \
949 default: ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DIMENSION, "Dimension not supported(_ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_IMG_DIM_FDVECTOR_CASES, 1).", ", DIM=", DIM); break; \
954 case 2 : USER_CODE(Vector2d, ML_ITK_VECTOR_TYPE##2d, Vector2d, ML_ITK_VECTOR_TYPE##2d, 2, CLASS_NAME); break; \
955 case 3 : USER_CODE(Vector3d, ML_ITK_VECTOR_TYPE##3d, Vector3d, ML_ITK_VECTOR_TYPE##3d, 3, CLASS_NAME); break; \
956 case 4 : USER_CODE(Vector4d, ML_ITK_VECTOR_TYPE##4d, Vector4d, ML_ITK_VECTOR_TYPE##4d, 4, CLASS_NAME); break; \
957 case 6 : USER_CODE(Vector6d, ML_ITK_VECTOR_TYPE##6d, Vector6d, ML_ITK_VECTOR_TYPE##6d, 6, CLASS_NAME); break; \
958 default: ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DIMENSION, "Dimension not supported(_ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_IMG_DIM_FDVECTOR_CASES, 2).", ", DIM=", DIM); break; \
966#define _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_IMG_DIM_FVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE, DIM_C, DIM_CF, DIM_CD) \
968 USER_CODE(Vector##DIM_C##f, ML_ITK_VECTOR_TYPE##DIM_C##f, MLfloat, MLfloat, DIM_C, CLASS_NAME); \
974#define _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_IMG_DIM_DVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE, DIM_C, DIM_CF, DIM_CD) \
976 USER_CODE(Vector##DIM_C##d, ML_ITK_VECTOR_TYPE##DIM_C##d, Vector##DIM_C##d, ML_ITK_VECTOR_TYPE##DIM_C##d, DIM_C, CLASS_NAME); \
982#define _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_IMG_DIM_FDVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, ML_ITK_VECTOR_TYPE, DIM_C, DIM_CF, DIM_CD) \
985 bool isFloatType = _addOns->getInSubImageTypeInfos()->structInfoString[0]=='f'; \
987 USER_CODE(Vector##DIM_C##f, ML_ITK_VECTOR_TYPE##DIM_C##f, Vector##DIM_C##f, ML_ITK_VECTOR_TYPE##DIM_C##f, DIM_C, CLASS_NAME); \
990 USER_CODE(Vector##DIM_C##d, ML_ITK_VECTOR_TYPE##DIM_C##d, Vector##DIM_C##d, ML_ITK_VECTOR_TYPE##DIM_C##d, DIM_C, CLASS_NAME); \
995#define ML_IMPLEMENT_IMG_DIM_CVFVECTOR_TO_IMG_DIM_CVFVECTOR_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
996 _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_IMG_DIM_FVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 2, 8, 16)
997#define ML_IMPLEMENT_IMG_DIM_CVFVECTOR_TO_IMG_DIM_CVFVECTOR_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
998 _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_IMG_DIM_FVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 3, 12, 24)
999#define ML_IMPLEMENT_IMG_DIM_CVFVECTOR_TO_IMG_DIM_CVFVECTOR_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1000 _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_IMG_DIM_FVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector)
1002#define ML_IMPLEMENT_IMG_DIM_CVDVECTOR_TO_IMG_DIM_CVDVECTOR_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1003 _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_IMG_DIM_DVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 2, 8, 16)
1004#define ML_IMPLEMENT_IMG_DIM_CVDVECTOR_TO_IMG_DIM_CVDVECTOR_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1005 _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_IMG_DIM_DVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 3, 12, 24)
1006#define ML_IMPLEMENT_IMG_DIM_CVDVECTOR_TO_IMG_DIM_CVDVECTOR_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1007 _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_IMG_DIM_DVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector)
1009#define ML_IMPLEMENT_IMG_DIM_CVFDVECTOR_TO_IMG_DIM_CVFDVECTOR_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1010 _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_IMG_DIM_FDVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 2, 8, 16)
1011#define ML_IMPLEMENT_IMG_DIM_CVFDVECTOR_TO_IMG_DIM_CVFDVECTOR_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1012 _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_IMG_DIM_FDVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector, 3, 12, 24)
1013#define ML_IMPLEMENT_IMG_DIM_CVFDVECTOR_TO_IMG_DIM_CVFDVECTOR_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1014 _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_IMG_DIM_FDVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkCVVector)
1018#define ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_IMG_DIM_FVECTOR_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1019 _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_IMG_DIM_FVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 2, 8, 16)
1020#define ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_IMG_DIM_FVECTOR_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1021 _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_IMG_DIM_FVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 3, 12, 24)
1022#define ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_IMG_DIM_FVECTOR_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1023 _ML_IMPLEMENT_IMG_DIM_FVECTOR_TO_IMG_DIM_FVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector)
1025#define ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_IMG_DIM_DVECTOR_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1026 _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_IMG_DIM_DVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 2, 8, 16)
1027#define ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_IMG_DIM_DVECTOR_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1028 _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_IMG_DIM_DVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 3, 12, 24)
1029#define ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_IMG_DIM_DVECTOR_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1030 _ML_IMPLEMENT_IMG_DIM_DVECTOR_TO_IMG_DIM_DVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector)
1032#define ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_IMG_DIM_FDVECTOR_CASES_2D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1033 _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_IMG_DIM_FDVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 2, 8, 16)
1034#define ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_IMG_DIM_FDVECTOR_CASES_3D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1035 _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_IMG_DIM_FDVECTOR_CASESN(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector, 3, 12, 24)
1036#define ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_IMG_DIM_FDVECTOR_CASES_6D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1037 _ML_IMPLEMENT_IMG_DIM_FDVECTOR_TO_IMG_DIM_FDVECTOR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, mlItkVector)
1053#define _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1054 case ML##FCARRIER##Type : \
1055 DIM_INST(FCARRIER, ML_ITK_NONSCALAR_TYPE##f, FCARRIER, ML_ITK_NONSCALAR_TYPE##f, USER_CODE, CLASS_NAME, DIM); \
1061#define _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1062 case ML##DCARRIER##Type : \
1063 DIM_INST(DCARRIER, ML_ITK_NONSCALAR_TYPE##d, DCARRIER, ML_ITK_NONSCALAR_TYPE##d, USER_CODE, CLASS_NAME, DIM); \
1069#define _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1070 _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1071 _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER)
1076#define _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER, INST_CASES)\
1078 switch (DATATYPE_ENUM){ \
1079 INST_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1081 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, "Data type case(_ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES) not executed.", ", DATATYPE_ENUM=", DATATYPE_ENUM); \
1092#define _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1093 case ML##FCARRIER##Type : \
1094 DIM_INST(FCARRIER, ML_ITK_NONSCALAR_TYPE##f, MLfloat, MLfloat, USER_CODE, CLASS_NAME, DIM); \
1100#define _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1101 case ML##DCARRIER##Type : \
1102 DIM_INST(DCARRIER, ML_ITK_NONSCALAR_TYPE##d, MLdouble, MLdouble, USER_CODE, CLASS_NAME, DIM); \
1108#define _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1109 _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1110 _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER)
1116#define _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER, INST_CASES) \
1118 switch (DATATYPE_ENUM){ \
1119 INST_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1122 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, "Data type case(_ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES) not executed.", ", DATATYPE_ENUM=", DATATYPE_ENUM); \
1133#define _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1134 case MLint16Type : { \
1135 const MLDataType i16DataType = _addOns->getInputSubImageDataType(); \
1136 switch (i16DataType){ \
1137 case ML##FCARRIER##Type: \
1138 DIM_INST(MLint16, MLint16, FCARRIER, ML_ITK_NONSCALAR_TYPE##f, USER_CODE, CLASS_NAME, DIM); \
1142 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, "Input type case(_ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_F) not executed.", ", i16DataType=", i16DataType);\
1152#define _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1153 case MLint32Type : { \
1154 const MLDataType i32DataType = _addOns->getInputSubImageDataType(); \
1155 switch (i32DataType){ \
1156 case ML##DCARRIER##Type: \
1157 DIM_INST(MLint32, MLint32, DCARRIER, ML_ITK_NONSCALAR_TYPE##d, USER_CODE, CLASS_NAME, DIM); \
1161 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, "Input type case(_ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_D) not executed.", ", i32DataType=", i32DataType);\
1171#define _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1172 _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1173 _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER)
1178#define _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER, INST_CASES) \
1180 switch (_m_PixelType){ \
1181 INST_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1184 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, "Output data type case for _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES not executed.", ", _m_PixelType=", _m_PixelType); \
1196#define _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1197 case MLfloatType : { \
1198 const MLDataType fDataType = _addOns->getInputSubImageDataType(); \
1199 switch (fDataType){ \
1200 case ML##FCARRIER##Type: \
1201 DIM_INST(MLfloat, MLfloat, FCARRIER, ML_ITK_NONSCALAR_TYPE##f, USER_CODE, CLASS_NAME, DIM); \
1205 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, "Input type case not executed.", ", fDataType=", fDataType); \
1215#define _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1216 case MLdoubleType : { \
1217 const MLDataType dDataType = _addOns->getInputSubImageDataType(); \
1218 switch (dDataType){ \
1219 case ML##DCARRIER##Type: \
1220 DIM_INST(MLdouble, MLdouble, DCARRIER, ML_ITK_NONSCALAR_TYPE##d, USER_CODE, CLASS_NAME, DIM); \
1224 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, "Input type case not executed.", ", dDataType=", dDataType); \
1234#define _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1235 _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1236 _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER)
1241#define _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER, INST_CASES) \
1243 switch (_m_PixelType){ \
1244 INST_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, ML_ITK_NONSCALAR_TYPE, FCARRIER, DCARRIER) \
1247 ML_ITK_ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, "Output data type case not executed.", ", _m_PixelType=", _m_PixelType); \
1255#define ML_IMPLEMENT_DIFFUSION3D_TENSOR_TO_DIFFUSION3D_TENSOR_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1256 _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_FD)
1258#define ML_IMPLEMENT_REAL_TO_DIFFUSION3D_TENSOR_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1259 _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_FD)
1261#define ML_IMPLEMENT_DIFFUSION3D_TENSOR_TO_INT_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1262 _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_FD)
1264#define ML_IMPLEMENT_DIFFUSION3D_TENSOR_TO_REAL_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1265 _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_FD)
1270#define ML_IMPLEMENT_DIFFUSION3D_TENSOR_TO_DIFFUSION3D_TENSOR_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1271 _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_FD)
1273#define ML_IMPLEMENT_REAL_TO_DIFFUSION3D_TENSOR_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1274 _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_FD)
1276#define ML_IMPLEMENT_DIFFUSION3D_TENSOR_TO_INT_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1277 _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_FD)
1279#define ML_IMPLEMENT_DIFFUSION3D_TENSOR_TO_REAL_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1280 _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_FD)
1284#define ML_IMPLEMENT_SYMMETRICSECONDRANK3D_TENSOR_TO_SYMMETRICSECONDRANK3D_TENSOR_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1285 _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkSymmetricSecondRankTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_FD)
1287#define ML_IMPLEMENT_REAL_TO_SYMMETRICSECONDRANK3D_TENSOR_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1288 _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkSymmetricSecondRankTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_FD)
1290#define ML_IMPLEMENT_SYMMETRICSECONDRANK3D_TENSOR_TO_INT_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1291 _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkSymmetricSecondRankTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_FD)
1293#define ML_IMPLEMENT_SYMMETRICSECONDRANK3D_TENSOR_TO_REAL_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1294 _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkSymmetricSecondRankTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_FD)
1298#define ML_IMPLEMENT_COMPLEX_TO_COMPLEX_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1299 _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkComplex, Complexf, Complexd, _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_FD)
1301#define ML_IMPLEMENT_REAL_TO_COMPLEX_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1302 _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkComplex, Complexf, Complexd, _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_FD)
1304#define ML_IMPLEMENT_COMPLEX_TO_INT_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1305 _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkComplex, Complexf, Complexd, _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_FD)
1307#define ML_IMPLEMENT_COMPLEX_TO_REAL_CASES_FD(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1308 _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkComplex, Complexf, Complexd, _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_FD)
1314#define ML_IMPLEMENT_DIFFUSION3D_TENSOR_TO_DIFFUSION3D_TENSOR_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1315 _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_F)
1317#define ML_IMPLEMENT_REAL_TO_DIFFUSION3D_TENSOR_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1318 _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_F)
1320#define ML_IMPLEMENT_DIFFUSION3D_TENSOR_TO_INT_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1321 _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_F)
1323#define ML_IMPLEMENT_DIFFUSION3D_TENSOR_TO_REAL_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1324 _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_F)
1328#define ML_IMPLEMENT_SYMMETRICSECONDRANK3D_TENSOR_TO_SYMMETRICSECONDRANK3D_TENSOR_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1329 _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkSymmetricSecondRankTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_F)
1331#define ML_IMPLEMENT_REAL_TO_SYMMETRICSECONDRANK3D_TENSOR_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1332 _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkSymmetricSecondRankTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_F)
1334#define ML_IMPLEMENT_SYMMETRICSECONDRANK3D_TENSOR_TO_INT_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1335 _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkSymmetricSecondRankTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_F)
1337#define ML_IMPLEMENT_SYMMETRICSECONDRANK3D_TENSOR_TO_REAL_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1338 _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkSymmetricSecondRankTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_F)
1342#define ML_IMPLEMENT_COMPLEX_TO_COMPLEX_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1343 _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkComplex, Complexf, Complexd, _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_F)
1345#define ML_IMPLEMENT_REAL_TO_COMPLEX_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1346 _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkComplex, Complexf, Complexd, _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_F)
1348#define ML_IMPLEMENT_COMPLEX_TO_INT_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1349 _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkComplex, Complexf, Complexd, _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_F)
1351#define ML_IMPLEMENT_COMPLEX_TO_REAL_CASES_F(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1352 _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkComplex, Complexf, Complexd, _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_F)
1358#define ML_IMPLEMENT_DIFFUSION3D_TENSOR_TO_DIFFUSION3D_TENSOR_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1359 _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_D)
1361#define ML_IMPLEMENT_REAL_TO_DIFFUSION3D_TENSOR_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1362 _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_D)
1364#define ML_IMPLEMENT_DIFFUSION3D_TENSOR_TO_INT_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1365 _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_D)
1367#define ML_IMPLEMENT_DIFFUSION3D_TENSOR_TO_REAL_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1368 _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkDiffusionTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_D)
1372#define ML_IMPLEMENT_SYMMETRICSECONDRANK3D_TENSOR_TO_SYMMETRICSECONDRANK3D_TENSOR_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1373 _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkSymmetricSecondRankTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_D)
1375#define ML_IMPLEMENT_REAL_TO_SYMMETRICSECONDRANK3D_TENSOR_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1376 _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkSymmetricSecondRankTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_D)
1378#define ML_IMPLEMENT_SYMMETRICSECONDRANK3D_TENSOR_TO_INT_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1379 _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkSymmetricSecondRankTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_D)
1381#define ML_IMPLEMENT_SYMMETRICSECONDRANK3D_TENSOR_TO_REAL_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1382 _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkSymmetricSecondRankTensor3D, Vector6f, Vector6d, _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_D)
1386#define ML_IMPLEMENT_COMPLEX_TO_COMPLEX_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1387 _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkComplex, Complexf, Complexd, _ML_IMPLEMENT_NONSCALAR_TO_NONSCALAR_CASES_D)
1389#define ML_IMPLEMENT_REAL_TO_COMPLEX_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST)\
1390 _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkComplex, Complexf, Complexd, _ML_IMPLEMENT_REAL_TO_NONSCALAR_CASES_D)
1392#define ML_IMPLEMENT_COMPLEX_TO_INT_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1393 _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkComplex, Complexf, Complexd, _ML_IMPLEMENT_NONSCALAR_TO_INT_CASES_D)
1395#define ML_IMPLEMENT_COMPLEX_TO_REAL_CASES_D(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \
1396 _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST, mlItkComplex, Complexf, Complexd, _ML_IMPLEMENT_NONSCALAR_TO_REAL_CASES_D)
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
itk::CovariantVector< double, 4 > mlItkCVVector4d
itk::Vector< float, 8 > mlItkVector8f
itk::CovariantVector< float, 2 > mlItkCVVector2f
itk::Vector< float, 3 > mlItkVector3f
itk::CovariantVector< double, 6 > mlItkCVVector6d
itk::SymmetricSecondRankTensor< double, 3 > mlItkSymmetricSecondRankTensor3Dd
itk::Vector< float, 6 > mlItkVector6f
std::complex< float > Complexf
itk::Vector< double, 8 > mlItkVector8d
itk::CovariantVector< float, 8 > mlItkCVVector8f
itk::CovariantVector< double, 3 > mlItkCVVector3d
std::complex< double > mlItkComplexd
itk::CovariantVector< double, 2 > mlItkCVVector2d
itk::Vector< double, 2 > mlItkVector2d
itk::Vector< float, 2 > mlItkVector2f
itk::SymmetricSecondRankTensor< float, 3 > mlItkSymmetricSecondRankTensor3Df
itk::DiffusionTensor3D< float > mlItkDiffusionTensor3Df
itk::Vector< double, 4 > mlItkVector4d
itk::Vector< float, 4 > mlItkVector4f
itk::CovariantVector< float, 4 > mlItkCVVector4f
itk::Vector< double, 3 > mlItkVector3d
itk::CovariantVector< double, 8 > mlItkCVVector8d
std::complex< float > mlItkComplexf
itk::CovariantVector< float, 6 > mlItkCVVector6f
std::complex< double > Complexd
itk::DiffusionTensor3D< double > mlItkDiffusionTensor3Dd
itk::CovariantVector< float, 3 > mlItkCVVector3f
itk::Vector< double, 6 > mlItkVector6d