ML Reference
|
00001 // **InsertLicense** code 00002 //------------------------------------------------------------------------- 00010 //------------------------------------------------------------------------- 00011 #ifndef __mlModuleMacros_H 00012 #define __mlModuleMacros_H 00013 00014 //------------------------------------------------------------------------- 00015 // MACROS to simplify module programming 00016 //------------------------------------------------------------------------- 00017 00018 //------------------------------------------------------------------------------------ 00020 //------------------------------------------------------------------------------------ 00021 #define ML_EMPTY_PARAM 00022 00023 //------------------------------------------------------------------------------------ 00025 //------------------------------------------------------------------------------------ 00026 #define ML_INSTANTIATE_STANDARD_SIGNED_INT_TYPES(PASSED_CODE) \ 00027 PASSED_CODE(MLint8); \ 00028 PASSED_CODE(MLint16); \ 00029 PASSED_CODE(MLint32); \ 00030 PASSED_CODE(MLint64); 00031 00032 //------------------------------------------------------------------------------------ 00034 //------------------------------------------------------------------------------------ 00035 #define ML_INSTANTIATE_STANDARD_UNSIGNED_INT_TYPES(PASSED_CODE) \ 00036 PASSED_CODE(MLuint8); \ 00037 PASSED_CODE(MLuint16); \ 00038 PASSED_CODE(MLuint32); \ 00039 PASSED_CODE(MLuint64); 00040 00041 //------------------------------------------------------------------------------------ 00043 //------------------------------------------------------------------------------------ 00044 #define ML_INSTANTIATE_STANDARD_INT_TYPES(PASSED_CODE) \ 00045 ML_INSTANTIATE_STANDARD_SIGNED_INT_TYPES(PASSED_CODE) \ 00046 ML_INSTANTIATE_STANDARD_UNSIGNED_INT_TYPES(PASSED_CODE) 00047 00048 //------------------------------------------------------------------------------------ 00050 //------------------------------------------------------------------------------------ 00051 #define ML_INSTANTIATE_STANDARD_FLOAT_TYPES(PASSED_CODE) \ 00052 PASSED_CODE(MLfloat); \ 00053 PASSED_CODE(MLdouble); 00054 00055 //------------------------------------------------------------------------------------ 00074 //------------------------------------------------------------------------------------ 00075 #define ML_INSTANTIATE_STANDARD_TYPES(PASSED_CODE) \ 00076 ML_INSTANTIATE_STANDARD_INT_TYPES(PASSED_CODE) \ 00077 ML_INSTANTIATE_STANDARD_FLOAT_TYPES(PASSED_CODE) 00078 00079 //------------------------------------------------------------------------------------ 00081 //------------------------------------------------------------------------------------ 00082 #define ML_INSTANTIATE_DEFAULT_EXTENDED_TYPES(PASSED_CODE) \ 00083 PASSED_CODE(std::complex<MLfloat>); \ 00084 PASSED_CODE(std::complex<MLdouble>); \ 00085 PASSED_CODE(Vector2f); \ 00086 PASSED_CODE(Vector2d); \ 00087 PASSED_CODE(Vector3f); \ 00088 PASSED_CODE(Vector3d); \ 00089 PASSED_CODE(Vector6f); \ 00090 PASSED_CODE(Vector6d); \ 00091 PASSED_CODE(Matrix2f); \ 00092 PASSED_CODE(Matrix2d); \ 00093 PASSED_CODE(Matrix3f); \ 00094 PASSED_CODE(Matrix3d); 00095 00096 //------------------------------------------------------------------------------------ 00099 //------------------------------------------------------------------------------------ 00100 #define ML_INSTANTIATE_ALL_TYPES(PASSED_CODE) \ 00101 ML_INSTANTIATE_STANDARD_TYPES(PASSED_CODE) \ 00102 ML_INSTANTIATE_DEFAULT_EXTENDED_TYPES(PASSED_CODE) 00103 00104 00105 //------------------------------------------------------------------------------------ 00138 //------------------------------------------------------------------------------------ 00139 #define ML_IMPLEMENT_ALL_CASES(CLASS_NAME, SWITCH_CODE, O_SWITCH_TYPE, INFO_STRING, DUMMY_OUT_TYPE) \ 00140 switch(O_SWITCH_TYPE){ \ 00141 case MLint8Type: SWITCH_CODE(MLint8 , MLint8 , CLASS_NAME); break; \ 00142 case MLuint8Type: SWITCH_CODE(MLuint8 , MLuint8 , CLASS_NAME); break; \ 00143 case MLint16Type: SWITCH_CODE(MLint16 , MLint16 , CLASS_NAME); break; \ 00144 case MLuint16Type: SWITCH_CODE(MLuint16 , MLuint16 , CLASS_NAME); break; \ 00145 case MLint32Type: SWITCH_CODE(MLint32 , MLint32 , CLASS_NAME); break; \ 00146 case MLuint32Type: SWITCH_CODE(MLuint32 , MLuint32 , CLASS_NAME); break; \ 00147 case MLint64Type: SWITCH_CODE(MLint64 , MLint64 , CLASS_NAME); break; \ 00148 case MLuint64Type: SWITCH_CODE(MLuint64 , MLuint64 , CLASS_NAME); break; \ 00149 case MLfloatType: SWITCH_CODE(MLfloat , MLfloat , CLASS_NAME); break; \ 00150 case MLdoubleType: SWITCH_CODE(MLdouble , MLdouble , CLASS_NAME); break; \ 00151 case MLComplexfType: SWITCH_CODE(std::complex<MLfloat> , std::complex<MLfloat> , CLASS_NAME); break; \ 00152 case MLComplexdType: SWITCH_CODE(std::complex<MLdouble>, std::complex<MLdouble>, CLASS_NAME); break; \ 00153 case MLVector2fType: SWITCH_CODE(Vector2f , Vector2f , CLASS_NAME); break; \ 00154 case MLVector2dType: SWITCH_CODE(Vector2d , Vector2d , CLASS_NAME); break; \ 00155 case MLVector3fType: SWITCH_CODE(Vector3f , Vector3f , CLASS_NAME); break; \ 00156 case MLVector3dType: SWITCH_CODE(Vector3d , Vector3d , CLASS_NAME); break; \ 00157 case MLVector6fType: SWITCH_CODE(Vector6f , Vector6f , CLASS_NAME); break; \ 00158 case MLVector6dType: SWITCH_CODE(Vector6d , Vector6d , CLASS_NAME); break; \ 00159 case MLMatrix2fType: SWITCH_CODE(Matrix2f , Matrix2f , CLASS_NAME); break; \ 00160 case MLMatrix2dType: SWITCH_CODE(Matrix2d , Matrix2d , CLASS_NAME); break; \ 00161 case MLMatrix3fType: SWITCH_CODE(Matrix3f , Matrix3f , CLASS_NAME); break; \ 00162 case MLMatrix3dType: SWITCH_CODE(Matrix3d , Matrix3d , CLASS_NAME); break; \ 00163 default: { ML_PRINT_FATAL_ERROR(INFO_STRING, ML_BAD_DATA_TYPE, "Unsupported type case."); break; \ 00164 } \ 00165 } 00166 00167 //------------------------------------------------------------------------------------ 00169 //------------------------------------------------------------------------------------ 00170 #define ML_IMPLEMENT_SCALAR_TYPE_CASES(CLASS_NAME, SWITCH_CODE, O_SWITCH_TYPE, INFO_STRING, DUMMY_OUT_TYPE) \ 00171 switch(O_SWITCH_TYPE){ \ 00172 case MLint8Type: SWITCH_CODE(MLint8 , MLint8 , CLASS_NAME); break; \ 00173 case MLuint8Type: SWITCH_CODE(MLuint8 , MLuint8 , CLASS_NAME); break; \ 00174 case MLint16Type: SWITCH_CODE(MLint16 , MLint16 , CLASS_NAME); break; \ 00175 case MLuint16Type: SWITCH_CODE(MLuint16 , MLuint16 , CLASS_NAME); break; \ 00176 case MLint32Type: SWITCH_CODE(MLint32 , MLint32 , CLASS_NAME); break; \ 00177 case MLuint32Type: SWITCH_CODE(MLuint32 , MLuint32 , CLASS_NAME); break; \ 00178 case MLint64Type: SWITCH_CODE(MLint64 , MLint64 , CLASS_NAME); break; \ 00179 case MLuint64Type: SWITCH_CODE(MLuint64 , MLuint64 , CLASS_NAME); break; \ 00180 case MLfloatType: SWITCH_CODE(MLfloat , MLfloat , CLASS_NAME); break; \ 00181 case MLdoubleType: SWITCH_CODE(MLdouble , MLdouble , CLASS_NAME); break; \ 00182 default: { ML_PRINT_FATAL_ERROR(INFO_STRING, ML_BAD_DATA_TYPE, "Unsupported type case."); break; \ 00183 } \ 00184 } 00185 00186 //------------------------------------------------------------------------------------ 00216 //------------------------------------------------------------------------------------ 00217 #define ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, SWITCH_CODE, IN_SWITCH_TYPE, INFO_STRING, OUTPUT_TYPE) \ 00218 switch (static_cast<int>(IN_SWITCH_TYPE)){ \ 00219 case MLint8Type: SWITCH_CODE(OUTPUT_TYPE, MLint8 , CLASS_NAME); break; \ 00220 case MLuint8Type: SWITCH_CODE(OUTPUT_TYPE, MLuint8 , CLASS_NAME); break; \ 00221 case MLint16Type: SWITCH_CODE(OUTPUT_TYPE, MLint16 , CLASS_NAME); break; \ 00222 case MLuint16Type: SWITCH_CODE(OUTPUT_TYPE, MLuint16 , CLASS_NAME); break; \ 00223 case MLint32Type: SWITCH_CODE(OUTPUT_TYPE, MLint32 , CLASS_NAME); break; \ 00224 case MLuint32Type: SWITCH_CODE(OUTPUT_TYPE, MLuint32 , CLASS_NAME); break; \ 00225 case MLint64Type: SWITCH_CODE(OUTPUT_TYPE, MLint64 , CLASS_NAME); break; \ 00226 case MLuint64Type: SWITCH_CODE(OUTPUT_TYPE, MLuint64 , CLASS_NAME); break; \ 00227 case MLfloatType: SWITCH_CODE(OUTPUT_TYPE, MLfloat , CLASS_NAME); break; \ 00228 case MLdoubleType: SWITCH_CODE(OUTPUT_TYPE, MLdouble , CLASS_NAME); break; \ 00229 case MLComplexfType: SWITCH_CODE(OUTPUT_TYPE, std::complex<MLfloat> , CLASS_NAME); break; \ 00230 case MLComplexdType: SWITCH_CODE(OUTPUT_TYPE, std::complex<MLdouble>, CLASS_NAME); break; \ 00231 case MLVector2fType: SWITCH_CODE(OUTPUT_TYPE, Vector2f , CLASS_NAME); break; \ 00232 case MLVector2dType: SWITCH_CODE(OUTPUT_TYPE, Vector2d , CLASS_NAME); break; \ 00233 case MLVector3fType: SWITCH_CODE(OUTPUT_TYPE, Vector3f , CLASS_NAME); break; \ 00234 case MLVector3dType: SWITCH_CODE(OUTPUT_TYPE, Vector3d , CLASS_NAME); break; \ 00235 case MLVector6fType: SWITCH_CODE(OUTPUT_TYPE, Vector6f , CLASS_NAME); break; \ 00236 case MLVector6dType: SWITCH_CODE(OUTPUT_TYPE, Vector6d , CLASS_NAME); break; \ 00237 case MLMatrix2fType: SWITCH_CODE(OUTPUT_TYPE, Matrix2f , CLASS_NAME); break; \ 00238 case MLMatrix2dType: SWITCH_CODE(OUTPUT_TYPE, Matrix2d , CLASS_NAME); break; \ 00239 case MLMatrix3fType: SWITCH_CODE(OUTPUT_TYPE, Matrix3f , CLASS_NAME); break; \ 00240 case MLMatrix3dType: SWITCH_CODE(OUTPUT_TYPE, Matrix3d , CLASS_NAME); break; \ 00241 default:{ \ 00242 char buf[512]=""; \ 00243 sprintf(buf, "Type not supported, case type %d does not exist.", IN_SWITCH_TYPE); \ 00244 ML_PRINT_FATAL_ERROR(INFO_STRING, ML_BAD_DATA_TYPE, buf); } \ 00245 } 00246 00247 //------------------------------------------------------------------------------------ 00249 //------------------------------------------------------------------------------------ 00250 #define ML_IMPLEMENT_DIFFERENT_SCALAR_INOUT_DATATYPES_CASES(CLASS_NAME, SWITCH_CODE, IN_SWITCH_TYPE, INFO_STRING, OUTPUT_TYPE) \ 00251 switch (static_cast<int>(IN_SWITCH_TYPE)){ \ 00252 case MLint8Type: SWITCH_CODE(OUTPUT_TYPE, MLint8 , CLASS_NAME); break; \ 00253 case MLuint8Type: SWITCH_CODE(OUTPUT_TYPE, MLuint8 , CLASS_NAME); break; \ 00254 case MLint16Type: SWITCH_CODE(OUTPUT_TYPE, MLint16 , CLASS_NAME); break; \ 00255 case MLuint16Type: SWITCH_CODE(OUTPUT_TYPE, MLuint16 , CLASS_NAME); break; \ 00256 case MLint32Type: SWITCH_CODE(OUTPUT_TYPE, MLint32 , CLASS_NAME); break; \ 00257 case MLuint32Type: SWITCH_CODE(OUTPUT_TYPE, MLuint32 , CLASS_NAME); break; \ 00258 case MLint64Type: SWITCH_CODE(OUTPUT_TYPE, MLint64 , CLASS_NAME); break; \ 00259 case MLuint64Type: SWITCH_CODE(OUTPUT_TYPE, MLuint64 , CLASS_NAME); break; \ 00260 case MLfloatType: SWITCH_CODE(OUTPUT_TYPE, MLfloat , CLASS_NAME); break; \ 00261 case MLdoubleType: SWITCH_CODE(OUTPUT_TYPE, MLdouble , CLASS_NAME); break; \ 00262 default:{ \ 00263 char buf[512]=""; \ 00264 sprintf(buf, "Type not supported, case type %d does not exist.", IN_SWITCH_TYPE); \ 00265 ML_PRINT_FATAL_ERROR(INFO_STRING, ML_BAD_DATA_TYPE, buf); } \ 00266 } 00267 00268 #ifdef ML_DEPRECATED 00269 00270 00271 00272 00273 #define ML_IMPLEMENT_DD_CASES ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES 00274 00275 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00276 #pragma deprecated("ML_IMPLEMENT_DD_CASES") 00277 #endif 00278 00279 00280 #endif // ML_DEPRECATED 00281 00282 #define ML_IMPLEMENT_SCALAR_CASES_WITH_DEFAULT(CLASS_NAME, SWITCH_CODE, O_SWITCH_TYPE, DEFAULT_CODE, DUMMY_OUT_TYPE) \ 00283 switch (static_cast<int>(O_SWITCH_TYPE)){ \ 00284 case MLint8Type: { SWITCH_CODE(MLint8 , MLint8 , CLASS_NAME); } break; \ 00285 case MLuint8Type: { SWITCH_CODE(MLuint8 , MLuint8 , CLASS_NAME); } break; \ 00286 case MLint16Type: { SWITCH_CODE(MLint16 , MLint16 , CLASS_NAME); } break; \ 00287 case MLuint16Type: { SWITCH_CODE(MLuint16, MLuint16, CLASS_NAME); } break; \ 00288 case MLint32Type: { SWITCH_CODE(MLint32 , MLint32 , CLASS_NAME); } break; \ 00289 case MLuint32Type: { SWITCH_CODE(MLuint32, MLuint32, CLASS_NAME); } break; \ 00290 case MLint64Type: { SWITCH_CODE(MLint64 , MLint64 , CLASS_NAME); } break; \ 00291 case MLuint64Type: { SWITCH_CODE(MLuint64, MLuint64, CLASS_NAME); } break; \ 00292 case MLfloatType: { SWITCH_CODE(MLfloat , MLfloat , CLASS_NAME); } break; \ 00293 case MLdoubleType: { SWITCH_CODE(MLdouble, MLdouble, CLASS_NAME); } break; \ 00294 default: { DEFAULT_CODE(DUMMY_OUT_TYPE, CLASS_NAME); } \ 00295 } 00296 00297 #define ML_IMPLEMENT_DIFFERENT_INOUT_SCALAR_CASES_WITH_DEFAULT(CLASS_NAME, SWITCH_CODE, IN_SWITCH_TYPE, DEFAULT_CODE, OUTPUT_TYPE) \ 00298 switch (static_cast<int>(IN_SWITCH_TYPE)){ \ 00299 case MLint8Type: { SWITCH_CODE(OUTPUT_TYPE, MLint8 , CLASS_NAME); } break; \ 00300 case MLuint8Type: { SWITCH_CODE(OUTPUT_TYPE, MLuint8 , CLASS_NAME); } break; \ 00301 case MLint16Type: { SWITCH_CODE(OUTPUT_TYPE, MLint16 , CLASS_NAME); } break; \ 00302 case MLuint16Type: { SWITCH_CODE(OUTPUT_TYPE, MLuint16, CLASS_NAME); } break; \ 00303 case MLint32Type: { SWITCH_CODE(OUTPUT_TYPE, MLint32 , CLASS_NAME); } break; \ 00304 case MLuint32Type: { SWITCH_CODE(OUTPUT_TYPE, MLuint32, CLASS_NAME); } break; \ 00305 case MLint64Type: { SWITCH_CODE(OUTPUT_TYPE, MLint64 , CLASS_NAME); } break; \ 00306 case MLuint64Type: { SWITCH_CODE(OUTPUT_TYPE, MLuint64, CLASS_NAME); } break; \ 00307 case MLfloatType: { SWITCH_CODE(OUTPUT_TYPE, MLfloat , CLASS_NAME); } break; \ 00308 case MLdoubleType: { SWITCH_CODE(OUTPUT_TYPE, MLdouble, CLASS_NAME); } break; \ 00309 default:{ DEFAULT_CODE(OUTPUT_TYPE, CLASS_NAME); } \ 00310 } 00311 00312 00313 //------------------------------------------------------------------------------------ 00315 00316 //------------------------------------------------------------------------------------ 00317 #define ML_IMPLEMENT_INT8_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLint8Type: SWITCH_CODE(MLint8 , MLint8 , CLASS_NAME); break; 00318 #define ML_IMPLEMENT_UINT8_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLuint8Type: SWITCH_CODE(MLuint8 , MLuint8 , CLASS_NAME); break; 00319 #define ML_IMPLEMENT_INT16_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLint16Type: SWITCH_CODE(MLint16 , MLint16 , CLASS_NAME); break; 00320 #define ML_IMPLEMENT_UINT16_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLuint16Type: SWITCH_CODE(MLuint16 , MLuint16 , CLASS_NAME); break; 00321 #define ML_IMPLEMENT_INT32_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLint32Type: SWITCH_CODE(MLint32 , MLint32 , CLASS_NAME); break; 00322 #define ML_IMPLEMENT_UINT32_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLuint32Type: SWITCH_CODE(MLuint32 , MLuint32 , CLASS_NAME); break; 00323 #define ML_IMPLEMENT_INT64_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLint64Type: SWITCH_CODE(MLint64 , MLint64 , CLASS_NAME); break; 00324 #define ML_IMPLEMENT_UINT64_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLuint64Type: SWITCH_CODE(MLuint64 , MLuint64 , CLASS_NAME); break; 00325 #define ML_IMPLEMENT_FLOAT_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLfloatType: SWITCH_CODE(MLfloat , MLfloat , CLASS_NAME); break; 00326 #define ML_IMPLEMENT_DOUBLE_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLdoubleType: SWITCH_CODE(MLdouble , MLdouble , CLASS_NAME); break; 00327 #define ML_IMPLEMENT_COMPLEXF_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLComplexfType: SWITCH_CODE(std::complex<MLfloat> , std::complex<MLfloat> , CLASS_NAME); break; 00328 #define ML_IMPLEMENT_COMPLEXD_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLComplexdType: SWITCH_CODE(std::complex<MLdouble>, std::complex<MLdouble>, CLASS_NAME); break; 00329 #define ML_IMPLEMENT_VECTOR2F_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLVector2fType: SWITCH_CODE(Vector2f , Vector2f , CLASS_NAME); break; 00330 #define ML_IMPLEMENT_VECTOR2D_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLVector2dType: SWITCH_CODE(Vector2d , Vector2d , CLASS_NAME); break; 00331 #define ML_IMPLEMENT_VECTOR3F_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLVector3fType: SWITCH_CODE(Vector3f , Vector3f , CLASS_NAME); break; 00332 #define ML_IMPLEMENT_VECTOR3D_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLVector3dType: SWITCH_CODE(Vector3d , Vector3d , CLASS_NAME); break; 00333 #define ML_IMPLEMENT_VECTOR6F_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLVector6fType: SWITCH_CODE(Vector6f , Vector6f , CLASS_NAME); break; 00334 #define ML_IMPLEMENT_VECTOR6D_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLVector6dType: SWITCH_CODE(Vector6d , Vector6d , CLASS_NAME); break; 00335 #define ML_IMPLEMENT_MATRIX2F_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLMatrix2fType: SWITCH_CODE(Matrix2f , Matrix2f , CLASS_NAME); break; 00336 #define ML_IMPLEMENT_MATRIX2D_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLMatrix2dType: SWITCH_CODE(Matrix2d , Matrix2d , CLASS_NAME); break; 00337 #define ML_IMPLEMENT_MATRIX3F_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLMatrix3fType: SWITCH_CODE(Matrix3f , Matrix3f , CLASS_NAME); break; 00338 #define ML_IMPLEMENT_MATRIX3D_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) case MLMatrix3dType: SWITCH_CODE(Matrix3d , Matrix3d , CLASS_NAME); break; 00339 00340 00341 //------------------------------------------------------------------------------------ 00343 00344 //------------------------------------------------------------------------------------ 00346 #define ML_IMPLEMENT_INT_CASES_WO_INT64(CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3)\ 00347 ML_IMPLEMENT_INT8_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00348 ML_IMPLEMENT_UINT8_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00349 ML_IMPLEMENT_INT16_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00350 ML_IMPLEMENT_UINT16_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00351 ML_IMPLEMENT_INT32_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00352 ML_IMPLEMENT_UINT32_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) 00353 00355 #define ML_IMPLEMENT_INT_CASES(CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3) \ 00356 ML_IMPLEMENT_INT8_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00357 ML_IMPLEMENT_UINT8_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00358 ML_IMPLEMENT_INT16_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00359 ML_IMPLEMENT_UINT16_CASE(CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00360 ML_IMPLEMENT_INT32_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00361 ML_IMPLEMENT_UINT32_CASE(CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00362 ML_IMPLEMENT_INT64_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00363 ML_IMPLEMENT_UINT64_CASE(CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) 00364 00366 #define ML_IMPLEMENT_FLOAT_CASES(CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3)\ 00367 ML_IMPLEMENT_FLOAT_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3) \ 00368 ML_IMPLEMENT_DOUBLE_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3) \ 00369 00370 00371 #define ML_IMPLEMENT_COMPLEX_CASES(CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY)\ 00372 ML_IMPLEMENT_COMPLEXF_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00373 ML_IMPLEMENT_COMPLEXD_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) 00374 00375 #define ML_IMPLEMENT_VECTOR_CASES(CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00376 ML_IMPLEMENT_VECTOR2F_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00377 ML_IMPLEMENT_VECTOR2D_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00378 ML_IMPLEMENT_VECTOR3F_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00379 ML_IMPLEMENT_VECTOR3D_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00380 ML_IMPLEMENT_VECTOR6F_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00381 ML_IMPLEMENT_VECTOR6D_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) 00382 00383 #define ML_IMPLEMENT_MATRIX_CASES(CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00384 ML_IMPLEMENT_MATRIX2F_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00385 ML_IMPLEMENT_MATRIX2D_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00386 ML_IMPLEMENT_MATRIX3F_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00387 ML_IMPLEMENT_MATRIX3D_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) 00388 00390 #define ML_IMPLEMENT_INT_FLOAT_CASES(CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3)\ 00391 ML_IMPLEMENT_INT_CASES( CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3) \ 00392 ML_IMPLEMENT_FLOAT_CASES( CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3) 00393 00395 #define ML_IMPLEMENT_INT_FLOAT_CASES_WO_INT64(CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3)\ 00396 ML_IMPLEMENT_INT8_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3) \ 00397 ML_IMPLEMENT_UINT8_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3) \ 00398 ML_IMPLEMENT_INT16_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3) \ 00399 ML_IMPLEMENT_UINT16_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3) \ 00400 ML_IMPLEMENT_INT32_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3) \ 00401 ML_IMPLEMENT_UINT32_CASE( CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3) \ 00402 ML_IMPLEMENT_FLOAT_CASES( CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3) 00403 00405 #define ML_IMPLEMENT_DEFAULT_CASES(CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00406 ML_IMPLEMENT_INT_CASES( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00407 ML_IMPLEMENT_FLOAT_CASES( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00408 ML_IMPLEMENT_COMPLEX_CASES(CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00409 ML_IMPLEMENT_VECTOR_CASES( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00410 ML_IMPLEMENT_MATRIX_CASES( CLASS_NAME, SWITCH_CODE, OST_DUMMY, INFO_DUMMY, INTYPE_DUMMY) \ 00411 00412 00413 #define ML_IMPLEMENT_SCALAR_CASES(CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3)\ 00414 ML_IMPLEMENT_INT_CASES( CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3) \ 00415 ML_IMPLEMENT_FLOAT_CASES( CLASS_NAME, SWITCH_CODE, OST_DUMMY1, OST_DUMMY2, OST_DUMMY3) 00416 00420 #define ML_IMPLEMENT_DEFAULT_HANDLING(CALLING_POSITION_STRING) \ 00421 default: { \ 00422 ML_PRINT_FATAL_ERROR(CALLING_POSITION_STRING, \ 00423 ML_BAD_DATA_TYPE, \ 00424 "Type case not executed."); \ 00425 break; \ 00426 } \ 00427 00428 00429 00430 //------------------------------------------------------------------------------------ 00431 00432 //------------------------------------------------------------------------------------ 00442 //------------------------------------------------------------------------------------ 00443 #define _ML_TYPE_SWITCH_INTERN(DTSWITCHES, METHOD_PREFIX, DOUBLE_COLON, SWITCH_CODE, OUT_SWITCH_TYPE, CALLING_POSITION_STRING, INPTR, CLASS_NAME) \ 00444 \ 00445 void METHOD_PREFIX DOUBLE_COLON calculateOutputSubImage(SubImage *outSubImg, int outIndex, INPTR) \ 00446 { \ 00447 ML_TRACE_IN( "mlModuleMacros--calculateOutputSubImage( )" ); \ 00448 switch(OUT_SWITCH_TYPE){ \ 00449 DTSWITCHES(CLASS_NAME, SWITCH_CODE, OUT_SWITCH_TYPE, CALLING_POSITION_STRING, INTYPE_DUMMY)\ 00450 ML_IMPLEMENT_DEFAULT_HANDLING(CALLING_POSITION_STRING) \ 00451 } \ 00452 } 00453 00454 //------------------------------------------------------------------------------------ 00457 //------------------------------------------------------------------------------------ 00458 #define _ML_TYPE_SWITCH_C(DTSWITCHES, SWITCH_CODE, CALLING_POSITION_STRING, INPTR, CLASS_NAME) \ 00459 _ML_TYPE_SWITCH_INTERN(DTSWITCHES, CLASS_NAME, ::, SWITCH_CODE, outSubImg->getDataType(), CALLING_POSITION_STRING, INPTR, CLASS_NAME) 00460 00461 //------------------------------------------------------------------------------------ 00464 //------------------------------------------------------------------------------------ 00465 #define _ML_TYPE_SWITCH_H(DTSWITCHES, SWITCH_CODE, CALLING_POSITION_STRING, INPTR) \ 00466 _ML_TYPE_SWITCH_INTERN(DTSWITCHES, ML_EMPTY_PARAM, ML_EMPTY_PARAM, SWITCH_CODE, outSubImg->getDataType(), CALLING_POSITION_STRING, INPTR, CLASS_NAME) 00467 00468 00469 00470 00471 //--------------------------------------------------------------------------------------------------- 00472 // 00473 // 00474 // 00475 // Macros to support calculateOutputSubImage implementations with identical 00476 // input and output data types. 00477 // 00478 // 00479 // 00480 //--------------------------------------------------------------------------------------------------- 00481 00482 // The call to calculateOutputSubImage is non-const by default. 00483 // Enabling the ML_CALCULATEOUTPUTSUBIMAGE_IS_CONST macro allows to 00484 // make the call to calculateOutputSubImage const. This facilitates 00485 // ensuring that a module's calculateOutputSubImage method is thread-safe. 00486 #ifdef ML_CALCULATEOUTPUTSUBIMAGE_IS_CONST 00487 #define _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME) \ 00488 static_cast<const CLASS_NAME*>(this)->calculateOutputSubImage 00489 #else 00490 #define _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME) calculateOutputSubImage 00491 #endif 00492 00493 //--------------------------------------------------------------------------------------------------- 00494 // Support for 0 inputs. 00495 //--------------------------------------------------------------------------------------------------- 00497 #define _ML_SWITCH_CODE_0(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00498 {\ 00499 TSubImage<OUTDTYPE> tOutSubImg(*outSubImg);\ 00500 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&tOutSubImg,outIndex);\ 00501 } 00502 00508 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_DEFAULT_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_0, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_DEFAULT_TYPES_CPP", SubImage *, CLASS_NAME); 00509 00511 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_SCALAR_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_0, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_SCALAR_TYPES_CPP", SubImage *, CLASS_NAME); 00512 00515 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODE_0, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_WITH_CUSTOM_SWITCH_CPP", SubImage *, CLASS_NAME); 00516 00518 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_DEFAULT_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_0, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_DEFAULT_TYPES", SubImage *); 00519 00521 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_SCALAR_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_0, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_SCALAR_TYPES", SubImage *); 00522 00524 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE_0, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_WITH_CUSTOM_SWITCH", SubImage *); 00525 00526 00527 #ifdef ML_DEPRECATED 00528 00529 00530 00531 00532 #define CALC_OUTSUBIMAGE0_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_SCALAR_TYPES_CPP 00533 00534 00535 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_SCALAR_TYPES_CPP 00536 00537 00538 #define CALC_OUTSUBIMAGE0_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_WITH_CUSTOM_SWITCH_CPP 00539 00540 00541 #define CALC_OUTSUBIMAGE0 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_SCALAR_TYPES 00542 00543 00544 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_SCALAR_TYPES 00545 00546 00547 #define CALC_OUTSUBIMAGE0_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_WITH_CUSTOM_SWITCH 00548 00549 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00550 #pragma deprecated("CALC_OUTSUBIMAGE0_CPP", "CALC_OUTSUBIMAGE0_CPP_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_CPP", "CALC_OUTSUBIMAGE0", "CALC_OUTSUBIMAGE0_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0") 00551 #endif 00552 00554 #endif // ML_DEPRECATED 00555 00556 00557 00558 //--------------------------------------------------------------------------------------------------- 00559 // Support for 1 input. 00560 //--------------------------------------------------------------------------------------------------- 00562 #define _ML_SWITCH_CODE_1(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00563 { \ 00564 TSubImage<OUTDTYPE> typedOutSubImg(*outSubImg); \ 00565 TSubImage<INDTYPE> typedInSubImg1(inSubImgs[0]);\ 00566 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&typedOutSubImg,outIndex,\ 00567 &typedInSubImg1);\ 00568 } 00569 00571 00572 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DEFAULT_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_1, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DEFAULT_TYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 00573 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_SCALAR_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_1, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_SCALAR_TYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 00574 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODE_1, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_WITH_CUSTOM_SWITCH_CPP", SubImage *inSubImgs, CLASS_NAME); 00575 00576 00578 00579 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DEFAULT_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_1, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DEFAULT_TYPES", SubImage *inSubImgs); 00580 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_SCALAR_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_1, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_SCALAR_TYPES", SubImage *inSubImgs); 00581 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE_1, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 00582 00583 00584 #ifdef ML_DEPRECATED 00585 00586 00587 00588 00589 #define CALC_OUTSUBIMAGE1_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_SCALAR_TYPES_CPP 00590 00591 00592 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_SCALAR_TYPES_CPP 00593 00594 00595 #define CALC_OUTSUBIMAGE1_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_WITH_CUSTOM_SWITCH_CPP 00596 00597 00598 #define CALC_OUTSUBIMAGE1 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_SCALAR_TYPES 00599 00600 00601 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_SCALAR_TYPES 00602 00603 00604 #define CALC_OUTSUBIMAGE1_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_WITH_CUSTOM_SWITCH 00605 00606 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00607 #pragma deprecated("CALC_OUTSUBIMAGE1_CPP", "CALC_OUTSUBIMAGE1_CPP_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_CPP", "CALC_OUTSUBIMAGE1", "CALC_OUTSUBIMAGE1_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1") 00608 #endif 00609 00611 #endif // ML_DEPRECATED 00612 00613 00614 //--------------------------------------------------------------------------------------------------- 00615 // Support for 2 inputs. 00616 //--------------------------------------------------------------------------------------------------- 00618 #define _ML_SWITCH_CODE_2(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00619 { \ 00620 TSubImage<OUTDTYPE> typedOutSubImg(*outSubImg);\ 00621 TSubImage<INDTYPE> typedInSubImg0(inSubImgs[0]);\ 00622 TSubImage<INDTYPE> typedInSubImg1(inSubImgs[1]);\ 00623 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&typedOutSubImg,outIndex,&typedInSubImg0,&typedInSubImg1);\ 00624 } 00625 00627 00628 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DEFAULT_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_2, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DEFAULT_TYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 00629 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_SCALAR_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_2, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_SCALAR_TYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 00630 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODE_2, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_WITH_CUSTOM_SWITCH_CPP", SubImage *inSubImgs, CLASS_NAME); 00631 00632 00634 00635 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DEFAULT_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_2, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DEFAULT_TYPES", SubImage *inSubImgs); 00636 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_SCALAR_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_2, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_SCALAR_TYPES", SubImage *inSubImgs); 00637 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE_2, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 00638 00639 00640 00641 #ifdef ML_DEPRECATED 00642 00643 00644 00645 00646 #define CALC_OUTSUBIMAGE2_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_SCALAR_TYPES_CPP 00647 00648 00649 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_SCALAR_TYPES_CPP 00650 00651 00652 #define CALC_OUTSUBIMAGE2_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_WITH_CUSTOM_SWITCH_CPP 00653 00654 00655 #define CALC_OUTSUBIMAGE2 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_SCALAR_TYPES 00656 00657 00658 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_SCALAR_TYPES 00659 00660 00661 #define CALC_OUTSUBIMAGE2_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_WITH_CUSTOM_SWITCH 00662 00663 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00664 #pragma deprecated("CALC_OUTSUBIMAGE2_CPP", "CALC_OUTSUBIMAGE2_CPP_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_CPP", "CALC_OUTSUBIMAGE2", "CALC_OUTSUBIMAGE2_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2") 00665 #endif 00666 00668 #endif // ML_DEPRECATED 00669 00670 00671 00672 //--------------------------------------------------------------------------------------------------- 00673 // Support for 3 inputs. 00674 //--------------------------------------------------------------------------------------------------- 00676 #define _ML_SWITCH_CODE_3(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00677 { \ 00678 TSubImage<OUTDTYPE> typedOutSubImg(*outSubImg);\ 00679 TSubImage<INDTYPE> typedInSubImg0(inSubImgs[0]);\ 00680 TSubImage<INDTYPE> typedInSubImg1(inSubImgs[1]);\ 00681 TSubImage<INDTYPE> typedInSubImg2(inSubImgs[2]);\ 00682 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&typedOutSubImg,outIndex,\ 00683 &typedInSubImg0, &typedInSubImg1,\ 00684 &typedInSubImg2);\ 00685 } 00686 00688 00689 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DEFAULT_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_3, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DEFAULT_TYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 00690 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_SCALAR_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_3, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_SCALAR_TYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 00691 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODE_3, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_WITH_CUSTOM_SWITCH_CPP", SubImage *inSubImgs, CLASS_NAME); 00692 00693 00695 00696 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DEFAULT_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_3, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DEFAULT_TYPES", SubImage *inSubImgs); 00697 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_SCALAR_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_3, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_SCALAR_TYPES", SubImage *inSubImgs); 00698 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE_3, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 00699 00700 00701 00702 #ifdef ML_DEPRECATED 00703 00704 00705 00706 00707 #define CALC_OUTSUBIMAGE3_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_SCALAR_TYPES_CPP 00708 00709 00710 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_SCALAR_TYPES_CPP 00711 00712 00713 #define CALC_OUTSUBIMAGE3_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_WITH_CUSTOM_SWITCH_CPP 00714 00715 00716 #define CALC_OUTSUBIMAGE3 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_SCALAR_TYPES 00717 00718 00719 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_SCALAR_TYPES 00720 00721 00722 #define CALC_OUTSUBIMAGE3_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_WITH_CUSTOM_SWITCH 00723 00724 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00725 #pragma deprecated("CALC_OUTSUBIMAGE3_CPP", "CALC_OUTSUBIMAGE3_CPP_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_CPP", "CALC_OUTSUBIMAGE3", "CALC_OUTSUBIMAGE3_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3") 00726 #endif 00727 00729 #endif // ML_DEPRECATED 00730 00731 00732 //--------------------------------------------------------------------------------------------------- 00733 // Support for 4 inputs. 00734 //--------------------------------------------------------------------------------------------------- 00736 #define _ML_SWITCH_CODE_4(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00737 { \ 00738 TSubImage<OUTDTYPE> typedOutSubImg(*outSubImg);\ 00739 TSubImage<INDTYPE> typedInSubImg0(inSubImgs[0]);\ 00740 TSubImage<INDTYPE> typedInSubImg1(inSubImgs[1]);\ 00741 TSubImage<INDTYPE> typedInSubImg2(inSubImgs[2]);\ 00742 TSubImage<INDTYPE> typedInSubImg3(inSubImgs[3]);\ 00743 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&typedOutSubImg,outIndex,\ 00744 &typedInSubImg0, &typedInSubImg1,\ 00745 &typedInSubImg2, &typedInSubImg3);\ 00746 } 00747 00749 00750 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DEFAULT_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_4, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DEFAULT_TYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 00751 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_SCALAR_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_4, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_SCALAR_TYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 00752 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODE_4, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_WITH_CUSTOM_SWITCH_CPP", SubImage *inSubImgs, CLASS_NAME); 00753 00754 00756 00757 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DEFAULT_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_4, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DEFAULT_TYPES", SubImage *inSubImgs); 00758 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_SCALAR_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_4, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_SCALAR_TYPES", SubImage *inSubImgs); 00759 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE_4, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 00760 00761 00762 00763 #ifdef ML_DEPRECATED 00764 00765 00766 00767 00768 #define CALC_OUTSUBIMAGE4_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_SCALAR_TYPES_CPP 00769 00770 00771 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_SCALAR_TYPES_CPP 00772 00773 00774 #define CALC_OUTSUBIMAGE4_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_WITH_CUSTOM_SWITCH_CPP 00775 00776 00777 #define CALC_OUTSUBIMAGE4 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_SCALAR_TYPES 00778 00779 00780 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_SCALAR_TYPES 00781 00782 00783 #define CALC_OUTSUBIMAGE4_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_WITH_CUSTOM_SWITCH 00784 00785 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00786 #pragma deprecated("CALC_OUTSUBIMAGE4_CPP", "CALC_OUTSUBIMAGE4_CPP_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_CPP", "CALC_OUTSUBIMAGE4", "CALC_OUTSUBIMAGE4_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4") 00787 #endif 00788 00790 #endif // ML_DEPRECATED 00791 00792 00793 //--------------------------------------------------------------------------------------------------- 00794 // Support for 5 inputs. 00795 //--------------------------------------------------------------------------------------------------- 00797 #define _ML_SWITCH_CODE_5(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00798 { \ 00799 TSubImage<OUTDTYPE> typedOutSubImg(*outSubImg);\ 00800 TSubImage<INDTYPE> typedInSubImg0(inSubImgs[0]);\ 00801 TSubImage<INDTYPE> typedInSubImg1(inSubImgs[1]);\ 00802 TSubImage<INDTYPE> typedInSubImg2(inSubImgs[2]);\ 00803 TSubImage<INDTYPE> typedInSubImg3(inSubImgs[3]);\ 00804 TSubImage<INDTYPE> typedInSubImg4(inSubImgs[4]);\ 00805 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&typedOutSubImg,outIndex,\ 00806 &typedInSubImg0, &typedInSubImg1,\ 00807 &typedInSubImg2, &typedInSubImg3,\ 00808 &typedInSubImg4);\ 00809 } 00810 00812 00813 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DEFAULT_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_5, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DEFAULT_TYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 00814 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_SCALAR_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_5, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_SCALAR_TYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 00815 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODE_5, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_WITH_CUSTOM_SWITCH_CPP", SubImage *inSubImgs, CLASS_NAME); 00816 00817 00819 00820 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DEFAULT_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_5, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DEFAULT_TYPES", SubImage *inSubImgs); 00821 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_SCALAR_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_5, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_SCALAR_TYPES", SubImage *inSubImgs); 00822 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE_5, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 00823 00824 00825 00826 #ifdef ML_DEPRECATED 00827 00828 00829 00830 00831 #define CALC_OUTSUBIMAGE5_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_SCALAR_TYPES_CPP 00832 00833 00834 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_SCALAR_TYPES_CPP 00835 00836 00837 #define CALC_OUTSUBIMAGE5_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_WITH_CUSTOM_SWITCH_CPP 00838 00839 00840 #define CALC_OUTSUBIMAGE5 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_SCALAR_TYPES 00841 00842 00843 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_SCALAR_TYPES 00844 00845 00846 #define CALC_OUTSUBIMAGE5_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_WITH_CUSTOM_SWITCH 00847 00848 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00849 #pragma deprecated("CALC_OUTSUBIMAGE5_CPP", "CALC_OUTSUBIMAGE5_CPP_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_CPP", "CALC_OUTSUBIMAGE5", "CALC_OUTSUBIMAGE5_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5") 00850 #endif 00851 00853 #endif // ML_DEPRECATED 00854 00855 00856 //--------------------------------------------------------------------------------------------------- 00857 // Support for 10 inputs. 00858 //--------------------------------------------------------------------------------------------------- 00860 #define _ML_SWITCH_CODE_10(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00861 { \ 00862 TSubImage<OUTDTYPE> typedOutSubImg(*outSubImg);\ 00863 TSubImage<INDTYPE> typedInSubImg0(inSubImgs[0]);\ 00864 TSubImage<INDTYPE> typedInSubImg1(inSubImgs[1]);\ 00865 TSubImage<INDTYPE> typedInSubImg2(inSubImgs[2]);\ 00866 TSubImage<INDTYPE> typedInSubImg3(inSubImgs[3]);\ 00867 TSubImage<INDTYPE> typedInSubImg4(inSubImgs[4]);\ 00868 TSubImage<INDTYPE> typedInSubImg5(inSubImgs[5]);\ 00869 TSubImage<INDTYPE> typedInSubImg6(inSubImgs[6]);\ 00870 TSubImage<INDTYPE> typedInSubImg7(inSubImgs[7]);\ 00871 TSubImage<INDTYPE> typedInSubImg8(inSubImgs[8]);\ 00872 TSubImage<INDTYPE> typedInSubImg9(inSubImgs[9]);\ 00873 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&typedOutSubImg,outIndex,\ 00874 &typedInSubImg0, &typedInSubImg1, \ 00875 &typedInSubImg2, &typedInSubImg3, \ 00876 &typedInSubImg4, &typedInSubImg5, \ 00877 &typedInSubImg6, &typedInSubImg7, \ 00878 &typedInSubImg8, &typedInSubImg9);\ 00879 } 00880 00882 00883 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DEFAULT_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_10, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DEFAULT_TYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 00884 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_SCALAR_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_10, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_SCALAR_TYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 00885 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODE_10, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_WITH_CUSTOM_SWITCH_CPP", SubImage *inSubImgs, CLASS_NAME); 00886 00887 00889 00890 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DEFAULT_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_10, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DEFAULT_TYPES", SubImage *inSubImgs); 00891 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_SCALAR_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_10, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_SCALAR_TYPES", SubImage *inSubImgs); 00892 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE_10, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 00893 00894 00895 00896 #ifdef ML_DEPRECATED 00897 00898 00899 00900 00901 #define CALC_OUTSUBIMAGE10_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_SCALAR_TYPES_CPP 00902 00903 00904 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_SCALAR_TYPES_CPP 00905 00906 00907 #define CALC_OUTSUBIMAGE10_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_WITH_CUSTOM_SWITCH_CPP 00908 00909 00910 #define CALC_OUTSUBIMAGE10 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_SCALAR_TYPES 00911 00912 00913 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_SCALAR_TYPES 00914 00915 00916 #define CALC_OUTSUBIMAGE10_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_WITH_CUSTOM_SWITCH 00917 00918 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00919 #pragma deprecated("CALC_OUTSUBIMAGE10_CPP", "CALC_OUTSUBIMAGE10_CPP_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_CPP", "CALC_OUTSUBIMAGE10", "CALC_OUTSUBIMAGE10_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10") 00920 #endif 00921 00923 #endif // ML_DEPRECATED 00924 00925 //--------------------------------------------------------------------------------------------------- 00927 00928 00943 #define _ML_SWITCH_CODE_N(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00944 { \ 00945 /* Get number of inputs. */ \ 00946 const MLssize_t numIns = static_cast<MLssize_t>(this->getInputNum()); \ 00947 \ 00948 /* Create typed version of output buffer. */ \ 00949 TSubImage<OUTDTYPE> outSubImgT(*outSubImg); \ 00950 \ 00951 /* Implement special cases with automatic object creation, */ \ 00952 /* because it is much faster. */ \ 00953 if (numIns < 3){ \ 00954 switch(numIns){ \ 00955 /***** Optimization for 1 input. *****/ \ 00956 case 0:{ \ 00957 /* Calculate output subimage. */ \ 00958 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&outSubImgT, outIndex, \ 00959 (TSubImage<INDTYPE>**)NULL); \ 00960 } \ 00961 return; \ 00962 \ 00963 /***** Optimization for 1 input. *****/ \ 00964 case 1:{ \ 00965 /* Create typed version of input buffer. */ \ 00966 /* and create a pointer array with one element. */ \ 00967 TSubImage<INDTYPE> inSubImgT(inSubImgs[0]); \ 00968 TSubImage<INDTYPE> *inArr = &inSubImgT; \ 00969 \ 00970 /* Calculate output subimage. */ \ 00971 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&outSubImgT, outIndex, &inArr); \ 00972 } \ 00973 return; \ 00974 \ 00975 /***** Optimization for 2 inputs. *****/ \ 00976 case 2:{ \ 00977 TSubImage<INDTYPE> inSubImg0T(inSubImgs[0]); \ 00978 TSubImage<INDTYPE> inSubImg1T(inSubImgs[1]); \ 00979 TSubImage<INDTYPE> *inArr[2]; \ 00980 inArr[0] = &inSubImg0T; \ 00981 inArr[1] = &inSubImg1T; \ 00982 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&outSubImgT, outIndex, inArr); \ 00983 } \ 00984 return; \ 00985 \ 00986 /***** Should be impossible to reach here *****/ \ 00987 default:{ \ 00988 ML_PRINT_FATAL_ERROR("_ML_SWITCH_CODE_N", \ 00989 ML_PROGRAMMING_ERROR, \ 00990 "Invalid case switch detected, " \ 00991 "ignoring case and not processing page"); \ 00992 } \ 00993 } \ 00994 } /* if (numIns < 3) */ \ 00995 else{ \ 00996 /***** Any other number of inputs. *****/ \ 00997 /* Create an array for all pointers to input subimages. */ \ 00998 TSubImage<INDTYPE> **inArr = NULL; \ 00999 ML_CHECK_NEW(inArr, TSubImage<INDTYPE>*[numIns]); \ 01000 bool okay = inArr != NULL; \ 01001 \ 01002 /* Count number of created subimages. */ \ 01003 MLssize_t createdTSubs=0; \ 01004 \ 01005 /* For each untyped input subimage create a typed one and */ \ 01006 /* store its pointer into the array. */ \ 01007 for (MLssize_t c=0; okay && (c < numIns); c++){ \ 01008 ML_CHECK_NEW(inArr[c], TSubImage<INDTYPE>(inSubImgs[c])); \ 01009 if (inArr[c]){ createdTSubs++; } else { okay = false; } \ 01010 } \ 01011 \ 01012 /* Call the correct template version of calculateOutputSubImage. */ \ 01013 if (okay){ \ 01014 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&outSubImgT, outIndex, inArr); \ 01015 } \ 01016 else{ \ 01017 ML_PRINT_FATAL_ERROR(#CLASS_NAME, ML_NO_MEMORY, \ 01018 "Not calculating page."); \ 01019 } \ 01020 \ 01021 /* Clean up created subimages and array of subimage pointers. */ \ 01022 if (inArr){ \ 01023 for (MLssize_t d=0; d < createdTSubs; d++){ \ 01024 ML_DELETE(inArr[d]); \ 01025 } \ 01026 ML_DELETE_ARRAY(inArr); \ 01027 } \ 01028 } /* else (numIns < 3) */ \ 01029 } 01030 01031 01038 01039 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DEFAULT_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_N, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DEFAULT_TYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01040 01042 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_SCALAR_TYPES_CPP(CLASS_NAME) _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_N, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_SCALAR_TYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01043 01046 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODE_N, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_WITH_CUSTOM_SWITCH_CPP", SubImage *inSubImgs, CLASS_NAME); 01047 01048 01050 01051 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DEFAULT_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE_N, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DEFAULT_TYPES", SubImage *inSubImgs); 01052 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_SCALAR_TYPES(CLASS_NAME) _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE_N, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_SCALAR_TYPES", SubImage *inSubImgs); 01053 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE_N, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01054 01055 01056 01057 #ifdef ML_DEPRECATED 01058 01059 01060 01061 01062 #define CALC_OUTSUBIMAGEN_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_SCALAR_TYPES_CPP 01063 01064 01065 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_SCALAR_TYPES_CPP 01066 01067 01068 #define CALC_OUTSUBIMAGEN_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_WITH_CUSTOM_SWITCH_CPP 01069 01070 01071 #define CALC_OUTSUBIMAGEN ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_SCALAR_TYPES 01072 01073 01074 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_SCALAR_TYPES 01075 01076 01077 #define CALC_OUTSUBIMAGEN_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_WITH_CUSTOM_SWITCH 01078 01081 #define calcOutSubImageT calculateOutputSubImage 01082 01083 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01084 #pragma deprecated("CALC_OUTSUBIMAGEN_CPP", "CALC_OUTSUBIMAGEN_CPP_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_CPP", "CALC_OUTSUBIMAGEN", "CALC_OUTSUBIMAGEN_ANY", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N") 01085 #endif 01086 01088 #endif // ML_DEPRECATED 01089 01090 01091 01092 01093 //--------------------------------------------------------------------------------------------------- 01094 // 01095 // 01096 // 01097 // Macros to support different input and output data types. 01098 // Note that these macros produce significantly more code. 01099 // 01100 // 01101 // 01102 //--------------------------------------------------------------------------------------------------- 01103 01104 //--------------------------------------------------------------------------------------------------- 01111 01113 #define _ML_SWITCH_CODE1_DD_L2(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01114 { TSubImage<INDTYPE> inSIT(inSubImgs[0]); _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&outSI, outIndex, &inSIT); } 01115 01117 #define _ML_SWITCH_CODE1_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01118 { \ 01119 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01120 ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01121 _ML_SWITCH_CODE1_DD_L2, \ 01122 inSubImgs[0].getDataType(), \ 01123 "_ML_SWITCH_CODE1_DD", \ 01124 INDTYPE); \ 01125 } 01126 01128 #define _ML_SWITCH_CODE1S_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01129 { \ 01130 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01131 ML_IMPLEMENT_DIFFERENT_SCALAR_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01132 _ML_SWITCH_CODE1_DD_L2, \ 01133 inSubImgs[0].getDataType(), \ 01134 "_ML_SWITCH_CODE1_DD", \ 01135 INDTYPE); \ 01136 } 01137 01139 01140 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01141 _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE1_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01142 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01143 _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE1S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01144 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) \ 01145 _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODE1_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP", SubImage *inSubImgs, CLASS_NAME); 01146 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_DEFAULT_INOUT_DATATYPES(CLASS_NAME) \ 01147 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE1_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_DEFAULT_INOUT_DATATYPES", SubImage *inSubImgs); 01148 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES(CLASS_NAME) \ 01149 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE1S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES", SubImage *inSubImgs); 01150 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) \ 01151 _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE1_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01152 01153 01154 01155 #ifdef ML_DEPRECATED 01156 01157 01158 01159 01160 #define CALC_OUTSUBIMAGE1_CPP_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01161 01162 01163 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01164 01165 01166 #define CALC_OUTSUBIMAGE1_CPP_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP 01167 01168 01169 #define CALC_OUTSUBIMAGE1_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES 01170 01171 01172 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES 01173 01174 01175 #define CALC_OUTSUBIMAGE1_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH 01176 01177 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01178 #pragma deprecated("CALC_OUTSUBIMAGE1_CPP_DD", "CALC_OUTSUBIMAGE1_CPP_ANY_DD", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES_CPP", "CALC_OUTSUBIMAGE1_DD", "CALC_OUTSUBIMAGE1_ANY_DD", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES") 01179 #endif 01180 01182 #endif // ML_DEPRECATED 01183 01184 01185 01186 //--------------------------------------------------------------------------------------------------- 01193 01195 #define _ML_SWITCH_CODE2_DD_L2(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01196 { TSubImage<INDTYPE> it0(inSubImgs[0]), it1(inSubImgs[1]); _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&outSI, outIndex, &it0, &it1); } 01197 01199 #define _ML_SWITCH_CODE2_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01200 { \ 01201 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01202 ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01203 _ML_SWITCH_CODE2_DD_L2, \ 01204 inSubImgs[0].getDataType(), \ 01205 "_ML_SWITCH_CODE2_DD", \ 01206 INDTYPE); \ 01207 } 01208 01210 #define _ML_SWITCH_CODE2S_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01211 { \ 01212 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01213 ML_IMPLEMENT_DIFFERENT_SCALAR_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01214 _ML_SWITCH_CODE2_DD_L2, \ 01215 inSubImgs[0].getDataType(), \ 01216 "_ML_SWITCH_CODE2_DD", \ 01217 INDTYPE); \ 01218 } 01219 01221 01222 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01223 _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE2_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01224 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01225 _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE2S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01226 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) \ 01227 _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODE2_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP", SubImage *inSubImgs, CLASS_NAME); 01228 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_DEFAULT_INOUT_DATATYPES(CLASS_NAME) \ 01229 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE2_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_DEFAULT_INOUT_DATATYPES", SubImage *inSubImgs); 01230 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES(CLASS_NAME) \ 01231 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE2S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES", SubImage *inSubImgs); 01232 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) \ 01233 _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE2_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01234 01235 01236 01237 #ifdef ML_DEPRECATED 01238 01239 01240 01241 01242 #define CALC_OUTSUBIMAGE2_CPP_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01243 01244 01245 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01246 01247 01248 #define CALC_OUTSUBIMAGE2_CPP_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP 01249 01250 01251 #define CALC_OUTSUBIMAGE2_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES 01252 01253 01254 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES 01255 01256 01257 #define CALC_OUTSUBIMAGE2_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH 01258 01259 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01260 #pragma deprecated("CALC_OUTSUBIMAGE2_CPP_DD", "CALC_OUTSUBIMAGE2_CPP_ANY_DD", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES_CPP", "CALC_OUTSUBIMAGE2_DD", "CALC_OUTSUBIMAGE2_ANY_DD", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES") 01261 #endif 01262 01264 #endif // ML_DEPRECATED 01265 01266 01267 //--------------------------------------------------------------------------------------------------- 01276 01278 #define _ML_SWITCH_CODE3_DD_L2(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01279 { TSubImage<INDTYPE> it0(inSubImgs[0]), it1(inSubImgs[1]), it2(inSubImgs[2]); \ 01280 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&outSI, outIndex, &it0, &it1, &it2); } 01281 01283 #define _ML_SWITCH_CODE3_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01284 { \ 01285 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01286 ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01287 _ML_SWITCH_CODE3_DD_L2, \ 01288 inSubImgs[0].getDataType(), \ 01289 "_ML_SWITCH_CODE3_DD", \ 01290 INDTYPE); \ 01291 } 01292 01294 #define _ML_SWITCH_CODE3S_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01295 { \ 01296 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01297 ML_IMPLEMENT_DIFFERENT_SCALAR_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01298 _ML_SWITCH_CODE3_DD_L2, \ 01299 inSubImgs[0].getDataType(), \ 01300 "_ML_SWITCH_CODE3_DD", \ 01301 INDTYPE); \ 01302 } 01303 01305 01306 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01307 _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE3_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01308 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01309 _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE3S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01310 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) \ 01311 _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODE3_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP", SubImage *inSubImgs, CLASS_NAME); 01312 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_DEFAULT_INOUT_DATATYPES(CLASS_NAME) \ 01313 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE3_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_DEFAULT_INOUT_DATATYPES", SubImage *inSubImgs); 01314 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES(CLASS_NAME) \ 01315 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE3S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES", SubImage *inSubImgs); 01316 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) \ 01317 _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE3_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01318 01319 01320 01321 #ifdef ML_DEPRECATED 01322 01323 01324 01325 01326 #define CALC_OUTSUBIMAGE3_CPP_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01327 01328 01329 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01330 01331 01332 #define CALC_OUTSUBIMAGE3_CPP_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP 01333 01334 01335 #define CALC_OUTSUBIMAGE3_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES 01336 01337 01338 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES 01339 01340 01341 #define CALC_OUTSUBIMAGE3_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH 01342 01343 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01344 #pragma deprecated("CALC_OUTSUBIMAGE3_CPP_DD", "CALC_OUTSUBIMAGE3_CPP_ANY_DD", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES_CPP", "CALC_OUTSUBIMAGE3_DD", "CALC_OUTSUBIMAGE3_ANY_DD", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES") 01345 #endif 01346 01348 #endif // ML_DEPRECATED 01349 01350 01351 01352 //--------------------------------------------------------------------------------------------------- 01361 01363 #define _ML_SWITCH_CODE4_DD_L2(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01364 { TSubImage<INDTYPE> it0(inSubImgs[0]), it1(inSubImgs[1]), it2(inSubImgs[2]), it3(inSubImgs[3]); \ 01365 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&outSI, outIndex, &it0, &it1, &it2, &it3); } 01366 01368 #define _ML_SWITCH_CODE4_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01369 { \ 01370 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01371 ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01372 _ML_SWITCH_CODE4_DD_L2, \ 01373 inSubImgs[0].getDataType(), \ 01374 "_ML_SWITCH_CODE4_DD", \ 01375 INDTYPE); \ 01376 } 01377 01379 #define _ML_SWITCH_CODE4S_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01380 { \ 01381 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01382 ML_IMPLEMENT_DIFFERENT_SCALAR_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01383 _ML_SWITCH_CODE4_DD_L2, \ 01384 inSubImgs[0].getDataType(), \ 01385 "_ML_SWITCH_CODE4_DD", \ 01386 INDTYPE); \ 01387 } 01388 01390 01391 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01392 _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE4_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01393 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01394 _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE4S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01395 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) \ 01396 _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODE4_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP", SubImage *inSubImgs, CLASS_NAME); 01397 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_DEFAULT_INOUT_DATATYPES(CLASS_NAME) \ 01398 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE4_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_DEFAULT_INOUT_DATATYPES", SubImage *inSubImgs); 01399 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES(CLASS_NAME) \ 01400 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE4S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES", SubImage *inSubImgs); 01401 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) \ 01402 _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE4_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01403 01404 01405 01406 #ifdef ML_DEPRECATED 01407 01408 01409 01410 01411 #define CALC_OUTSUBIMAGE4_CPP_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01412 01413 01414 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01415 01416 01417 #define CALC_OUTSUBIMAGE4_CPP_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP 01418 01419 01420 #define CALC_OUTSUBIMAGE4_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES 01421 01422 01423 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES 01424 01425 01426 #define CALC_OUTSUBIMAGE4_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH 01427 01428 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01429 #pragma deprecated("CALC_OUTSUBIMAGE4_CPP_DD", "CALC_OUTSUBIMAGE4_CPP_ANY_DD", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES_CPP", "CALC_OUTSUBIMAGE4_DD", "CALC_OUTSUBIMAGE4_ANY_DD", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES") 01430 #endif 01431 01433 #endif // ML_DEPRECATED 01434 01435 01436 01437 //--------------------------------------------------------------------------------------------------- 01447 01449 #define _ML_SWITCH_CODE5_DD_L2(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01450 { TSubImage<INDTYPE> it0(inSubImgs[0]), it1(inSubImgs[1]), it2(inSubImgs[2]), it3(inSubImgs[3]), it4(inSubImgs[4]); \ 01451 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&outSI, outIndex, &it0, &it1, &it2, &it3, &it4); } 01452 01454 #define _ML_SWITCH_CODE5_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01455 { \ 01456 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01457 ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01458 _ML_SWITCH_CODE5_DD_L2, \ 01459 inSubImgs[0].getDataType(), \ 01460 "_ML_SWITCH_CODE5_DD", \ 01461 INDTYPE); \ 01462 } 01463 01465 #define _ML_SWITCH_CODE5S_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01466 { \ 01467 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01468 ML_IMPLEMENT_DIFFERENT_SCALAR_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01469 _ML_SWITCH_CODE5_DD_L2, \ 01470 inSubImgs[0].getDataType(), \ 01471 "_ML_SWITCH_CODE5_DD", \ 01472 INDTYPE); \ 01473 } 01474 01476 01477 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01478 _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE5_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01479 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01480 _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE5S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01481 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) \ 01482 _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODE5_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP", SubImage *inSubImgs, CLASS_NAME); 01483 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_DEFAULT_INOUT_DATATYPES(CLASS_NAME) \ 01484 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE5_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_DEFAULT_INOUT_DATATYPES", SubImage *inSubImgs); 01485 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES(CLASS_NAME) \ 01486 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE5S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES", SubImage *inSubImgs); 01487 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) \ 01488 _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE5_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01489 01490 01491 01492 #ifdef ML_DEPRECATED 01493 01494 01495 01496 01497 #define CALC_OUTSUBIMAGE5_CPP_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01498 01499 01500 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01501 01502 01503 #define CALC_OUTSUBIMAGE5_CPP_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP 01504 01505 01506 #define CALC_OUTSUBIMAGE5_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES 01507 01508 01509 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES 01510 01511 01512 #define CALC_OUTSUBIMAGE5_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH 01513 01514 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01515 #pragma deprecated("CALC_OUTSUBIMAGE5_CPP_DD", "CALC_OUTSUBIMAGE5_CPP_ANY_DD", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES_CPP", "CALC_OUTSUBIMAGE5_DD", "CALC_OUTSUBIMAGE5_ANY_DD", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES") 01516 #endif 01517 01519 #endif // ML_DEPRECATED 01520 01521 01522 01523 //--------------------------------------------------------------------------------------------------- 01535 01537 #define _ML_SWITCH_CODE10_DD_L2(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01538 { TSubImage<INDTYPE> it0(inSubImgs[0]), it1(inSubImgs[1]), it2(inSubImgs[2]), it3(inSubImgs[3]), it4(inSubImgs[4]); \ 01539 TSubImage<INDTYPE> it5(inSubImgs[5]), it6(inSubImgs[6]), it7(inSubImgs[7]), it8(inSubImgs[8]), it9(inSubImgs[9]); \ 01540 _ML_CALCULATEOUTPUTCALL_HELPER(CLASS_NAME)(&outSI, outIndex, &it0, &it1, &it2, &it3, &it4, &it5, &it6, &it7, &it8, &it9); } 01541 01543 #define _ML_SWITCH_CODE10_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01544 { \ 01545 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01546 ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01547 _ML_SWITCH_CODE10_DD_L2, \ 01548 inSubImgs[0].getDataType(), \ 01549 "_ML_SWITCH_CODE10_DD", \ 01550 INDTYPE); \ 01551 } 01552 01554 #define _ML_SWITCH_CODE10S_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01555 { \ 01556 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01557 ML_IMPLEMENT_DIFFERENT_SCALAR_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01558 _ML_SWITCH_CODE10_DD_L2, \ 01559 inSubImgs[0].getDataType(), \ 01560 "_ML_SWITCH_CODE10_DD", \ 01561 INDTYPE); \ 01562 } 01563 01565 01566 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01567 _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE10_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01568 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01569 _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE10S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01570 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) \ 01571 _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODE10_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP", SubImage *inSubImgs, CLASS_NAME); 01572 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_DEFAULT_INOUT_DATATYPES(CLASS_NAME) \ 01573 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE10_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_DEFAULT_INOUT_DATATYPES", SubImage *inSubImgs); 01574 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES(CLASS_NAME) \ 01575 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE10S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES", SubImage *inSubImgs); 01576 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) \ 01577 _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE10_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01578 01579 01580 01581 #ifdef ML_DEPRECATED 01582 01583 01584 01585 01586 #define CALC_OUTSUBIMAGE10_CPP_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01587 01588 01589 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01590 01591 01592 #define CALC_OUTSUBIMAGE10_CPP_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP 01593 01594 01595 #define CALC_OUTSUBIMAGE10_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES 01596 01597 01598 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES 01599 01600 01601 #define CALC_OUTSUBIMAGE10_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH 01602 01603 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01604 #pragma deprecated("CALC_OUTSUBIMAGE10_CPP_DD", "CALC_OUTSUBIMAGE10_CPP_ANY_DD", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES_CPP", "CALC_OUTSUBIMAGE10_DD", "CALC_OUTSUBIMAGE10_ANY_DD", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES") 01605 #endif 01606 01608 #endif // ML_DEPRECATED 01609 01610 01611 01612 //--------------------------------------------------------------------------------------------------- 01624 01626 #define _ML_SWITCH_CODEN_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01627 { \ 01628 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01629 ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01630 _ML_SWITCH_CODE_N, \ 01631 inSubImgs[0].getDataType(), \ 01632 "_ML_SWITCH_CODEN_DD", \ 01633 INDTYPE); \ 01634 } 01635 01637 #define _ML_SWITCH_CODENS_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01638 { \ 01639 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01640 ML_IMPLEMENT_DIFFERENT_SCALAR_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01641 _ML_SWITCH_CODE_N, \ 01642 inSubImgs[0].getDataType(), \ 01643 "_ML_SWITCH_CODEN_DD", \ 01644 INDTYPE); \ 01645 } 01646 01648 01649 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01650 _ML_TYPE_SWITCH_C(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODEN_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01651 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01652 _ML_TYPE_SWITCH_C(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODENS_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP", SubImage *inSubImgs, CLASS_NAME); 01653 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) \ 01654 _ML_TYPE_SWITCH_C(DTSWITCHES, _ML_SWITCH_CODEN_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP", SubImage *inSubImgs, CLASS_NAME); 01655 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_DEFAULT_INOUT_DATATYPES(CLASS_NAME) \ 01656 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODEN_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_DEFAULT_INOUT_DATATYPES", SubImage *inSubImgs); 01657 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES(CLASS_NAME) \ 01658 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODENS_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES", SubImage *inSubImgs); 01659 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) \ 01660 _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODEN_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01661 01662 01663 01664 #ifdef ML_DEPRECATED 01665 01666 01667 01668 01669 #define CALC_OUTSUBIMAGEN_CPP_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01670 01671 01672 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01673 01674 01675 #define CALC_OUTSUBIMAGEN_CPP_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP 01676 01677 01678 #define CALC_OUTSUBIMAGEN_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES 01679 01680 01681 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES 01682 01683 01684 #define CALC_OUTSUBIMAGEN_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH 01685 01686 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01687 #pragma deprecated("CALC_OUTSUBIMAGEN_CPP_DD", "CALC_OUTSUBIMAGEN_CPP_ANY_DD", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES_CPP", "CALC_OUTSUBIMAGEN_DD", "CALC_OUTSUBIMAGEN_ANY_DD", "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES") 01688 #endif 01689 01691 #endif // ML_DEPRECATED 01692 01693 01694 01695 #endif //of __mlModuleMacros_H 01696 01697