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 implmentations with identical 00476 // input and output data types. 00477 // 00478 // 00479 // 00480 //--------------------------------------------------------------------------------------------------- 00481 00482 //--------------------------------------------------------------------------------------------------- 00483 // Support for 0 inputs. 00484 //--------------------------------------------------------------------------------------------------- 00486 #define _ML_SWITCH_CODE_0(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00487 {\ 00488 TSubImage<OUTDTYPE> tOutSubImg(*outSubImg);\ 00489 calculateOutputSubImage(&tOutSubImg,outIndex);\ 00490 } 00491 00497 #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); 00498 00500 #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); 00501 00504 #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); 00505 00507 #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 *); 00508 00510 #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 *); 00511 00513 #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 *); 00514 00515 00516 #ifdef ML_DEPRECATED 00517 00518 00519 00520 00521 #define CALC_OUTSUBIMAGE0_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_SCALAR_TYPES_CPP 00522 00523 00524 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_SCALAR_TYPES_CPP 00525 00526 00527 #define CALC_OUTSUBIMAGE0_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_WITH_CUSTOM_SWITCH_CPP 00528 00529 00530 #define CALC_OUTSUBIMAGE0 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_SCALAR_TYPES 00531 00532 00533 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_SCALAR_TYPES 00534 00535 00536 #define CALC_OUTSUBIMAGE0_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_0_WITH_CUSTOM_SWITCH 00537 00538 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00539 #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") 00540 #endif 00541 00543 #endif // ML_DEPRECATED 00544 00545 00546 00547 //--------------------------------------------------------------------------------------------------- 00548 // Support for 1 input. 00549 //--------------------------------------------------------------------------------------------------- 00551 #define _ML_SWITCH_CODE_1(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00552 { \ 00553 TSubImage<OUTDTYPE> typedOutSubImg(*outSubImg); \ 00554 TSubImage<INDTYPE> typedInSubImg1(inSubImgs[0]);\ 00555 calculateOutputSubImage(&typedOutSubImg,outIndex,\ 00556 &typedInSubImg1);\ 00557 } 00558 00560 00561 #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); 00562 #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); 00563 #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); 00564 00565 00567 00568 #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); 00569 #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); 00570 #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); 00571 00572 00573 #ifdef ML_DEPRECATED 00574 00575 00576 00577 00578 #define CALC_OUTSUBIMAGE1_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_SCALAR_TYPES_CPP 00579 00580 00581 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_SCALAR_TYPES_CPP 00582 00583 00584 #define CALC_OUTSUBIMAGE1_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_WITH_CUSTOM_SWITCH_CPP 00585 00586 00587 #define CALC_OUTSUBIMAGE1 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_SCALAR_TYPES 00588 00589 00590 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_SCALAR_TYPES 00591 00592 00593 #define CALC_OUTSUBIMAGE1_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_WITH_CUSTOM_SWITCH 00594 00595 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00596 #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") 00597 #endif 00598 00600 #endif // ML_DEPRECATED 00601 00602 00603 //--------------------------------------------------------------------------------------------------- 00604 // Support for 2 inputs. 00605 //--------------------------------------------------------------------------------------------------- 00607 #define _ML_SWITCH_CODE_2(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00608 { \ 00609 TSubImage<OUTDTYPE> typedOutSubImg(*outSubImg);\ 00610 TSubImage<INDTYPE> typedInSubImg0(inSubImgs[0]);\ 00611 TSubImage<INDTYPE> typedInSubImg1(inSubImgs[1]);\ 00612 calculateOutputSubImage(&typedOutSubImg,outIndex,&typedInSubImg0,&typedInSubImg1);\ 00613 } 00614 00616 00617 #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); 00618 #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); 00619 #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); 00620 00621 00623 00624 #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); 00625 #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); 00626 #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); 00627 00628 00629 00630 #ifdef ML_DEPRECATED 00631 00632 00633 00634 00635 #define CALC_OUTSUBIMAGE2_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_SCALAR_TYPES_CPP 00636 00637 00638 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_SCALAR_TYPES_CPP 00639 00640 00641 #define CALC_OUTSUBIMAGE2_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_WITH_CUSTOM_SWITCH_CPP 00642 00643 00644 #define CALC_OUTSUBIMAGE2 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_SCALAR_TYPES 00645 00646 00647 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_SCALAR_TYPES 00648 00649 00650 #define CALC_OUTSUBIMAGE2_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_WITH_CUSTOM_SWITCH 00651 00652 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00653 #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") 00654 #endif 00655 00657 #endif // ML_DEPRECATED 00658 00659 00660 00661 //--------------------------------------------------------------------------------------------------- 00662 // Support for 3 inputs. 00663 //--------------------------------------------------------------------------------------------------- 00665 #define _ML_SWITCH_CODE_3(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00666 { \ 00667 TSubImage<OUTDTYPE> typedOutSubImg(*outSubImg);\ 00668 TSubImage<INDTYPE> typedInSubImg0(inSubImgs[0]);\ 00669 TSubImage<INDTYPE> typedInSubImg1(inSubImgs[1]);\ 00670 TSubImage<INDTYPE> typedInSubImg2(inSubImgs[2]);\ 00671 calculateOutputSubImage(&typedOutSubImg,outIndex,\ 00672 &typedInSubImg0, &typedInSubImg1,\ 00673 &typedInSubImg2);\ 00674 } 00675 00677 00678 #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); 00679 #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); 00680 #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); 00681 00682 00684 00685 #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); 00686 #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); 00687 #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); 00688 00689 00690 00691 #ifdef ML_DEPRECATED 00692 00693 00694 00695 00696 #define CALC_OUTSUBIMAGE3_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_SCALAR_TYPES_CPP 00697 00698 00699 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_SCALAR_TYPES_CPP 00700 00701 00702 #define CALC_OUTSUBIMAGE3_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_WITH_CUSTOM_SWITCH_CPP 00703 00704 00705 #define CALC_OUTSUBIMAGE3 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_SCALAR_TYPES 00706 00707 00708 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_SCALAR_TYPES 00709 00710 00711 #define CALC_OUTSUBIMAGE3_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_WITH_CUSTOM_SWITCH 00712 00713 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00714 #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") 00715 #endif 00716 00718 #endif // ML_DEPRECATED 00719 00720 00721 //--------------------------------------------------------------------------------------------------- 00722 // Support for 4 inputs. 00723 //--------------------------------------------------------------------------------------------------- 00725 #define _ML_SWITCH_CODE_4(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00726 { \ 00727 TSubImage<OUTDTYPE> typedOutSubImg(*outSubImg);\ 00728 TSubImage<INDTYPE> typedInSubImg0(inSubImgs[0]);\ 00729 TSubImage<INDTYPE> typedInSubImg1(inSubImgs[1]);\ 00730 TSubImage<INDTYPE> typedInSubImg2(inSubImgs[2]);\ 00731 TSubImage<INDTYPE> typedInSubImg3(inSubImgs[3]);\ 00732 calculateOutputSubImage(&typedOutSubImg,outIndex,\ 00733 &typedInSubImg0, &typedInSubImg1,\ 00734 &typedInSubImg2, &typedInSubImg3);\ 00735 } 00736 00738 00739 #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); 00740 #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); 00741 #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); 00742 00743 00745 00746 #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); 00747 #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); 00748 #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); 00749 00750 00751 00752 #ifdef ML_DEPRECATED 00753 00754 00755 00756 00757 #define CALC_OUTSUBIMAGE4_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_SCALAR_TYPES_CPP 00758 00759 00760 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_SCALAR_TYPES_CPP 00761 00762 00763 #define CALC_OUTSUBIMAGE4_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_WITH_CUSTOM_SWITCH_CPP 00764 00765 00766 #define CALC_OUTSUBIMAGE4 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_SCALAR_TYPES 00767 00768 00769 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_SCALAR_TYPES 00770 00771 00772 #define CALC_OUTSUBIMAGE4_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_WITH_CUSTOM_SWITCH 00773 00774 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00775 #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") 00776 #endif 00777 00779 #endif // ML_DEPRECATED 00780 00781 00782 //--------------------------------------------------------------------------------------------------- 00783 // Support for 5 inputs. 00784 //--------------------------------------------------------------------------------------------------- 00786 #define _ML_SWITCH_CODE_5(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00787 { \ 00788 TSubImage<OUTDTYPE> typedOutSubImg(*outSubImg);\ 00789 TSubImage<INDTYPE> typedInSubImg0(inSubImgs[0]);\ 00790 TSubImage<INDTYPE> typedInSubImg1(inSubImgs[1]);\ 00791 TSubImage<INDTYPE> typedInSubImg2(inSubImgs[2]);\ 00792 TSubImage<INDTYPE> typedInSubImg3(inSubImgs[3]);\ 00793 TSubImage<INDTYPE> typedInSubImg4(inSubImgs[4]);\ 00794 calculateOutputSubImage(&typedOutSubImg,outIndex,\ 00795 &typedInSubImg0, &typedInSubImg1,\ 00796 &typedInSubImg2, &typedInSubImg3,\ 00797 &typedInSubImg4);\ 00798 } 00799 00801 00802 #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); 00803 #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); 00804 #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); 00805 00806 00808 00809 #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); 00810 #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); 00811 #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); 00812 00813 00814 00815 #ifdef ML_DEPRECATED 00816 00817 00818 00819 00820 #define CALC_OUTSUBIMAGE5_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_SCALAR_TYPES_CPP 00821 00822 00823 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_SCALAR_TYPES_CPP 00824 00825 00826 #define CALC_OUTSUBIMAGE5_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_WITH_CUSTOM_SWITCH_CPP 00827 00828 00829 #define CALC_OUTSUBIMAGE5 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_SCALAR_TYPES 00830 00831 00832 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_SCALAR_TYPES 00833 00834 00835 #define CALC_OUTSUBIMAGE5_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_WITH_CUSTOM_SWITCH 00836 00837 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00838 #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") 00839 #endif 00840 00842 #endif // ML_DEPRECATED 00843 00844 00845 //--------------------------------------------------------------------------------------------------- 00846 // Support for 10 inputs. 00847 //--------------------------------------------------------------------------------------------------- 00849 #define _ML_SWITCH_CODE_10(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00850 { \ 00851 TSubImage<OUTDTYPE> typedOutSubImg(*outSubImg);\ 00852 TSubImage<INDTYPE> typedInSubImg0(inSubImgs[0]);\ 00853 TSubImage<INDTYPE> typedInSubImg1(inSubImgs[1]);\ 00854 TSubImage<INDTYPE> typedInSubImg2(inSubImgs[2]);\ 00855 TSubImage<INDTYPE> typedInSubImg3(inSubImgs[3]);\ 00856 TSubImage<INDTYPE> typedInSubImg4(inSubImgs[4]);\ 00857 TSubImage<INDTYPE> typedInSubImg5(inSubImgs[5]);\ 00858 TSubImage<INDTYPE> typedInSubImg6(inSubImgs[6]);\ 00859 TSubImage<INDTYPE> typedInSubImg7(inSubImgs[7]);\ 00860 TSubImage<INDTYPE> typedInSubImg8(inSubImgs[8]);\ 00861 TSubImage<INDTYPE> typedInSubImg9(inSubImgs[9]);\ 00862 calculateOutputSubImage(&typedOutSubImg,outIndex,\ 00863 &typedInSubImg0, &typedInSubImg1, \ 00864 &typedInSubImg2, &typedInSubImg3, \ 00865 &typedInSubImg4, &typedInSubImg5, \ 00866 &typedInSubImg6, &typedInSubImg7, \ 00867 &typedInSubImg8, &typedInSubImg9);\ 00868 } 00869 00871 00872 #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); 00873 #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); 00874 #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); 00875 00876 00878 00879 #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); 00880 #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); 00881 #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); 00882 00883 00884 00885 #ifdef ML_DEPRECATED 00886 00887 00888 00889 00890 #define CALC_OUTSUBIMAGE10_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_SCALAR_TYPES_CPP 00891 00892 00893 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_SCALAR_TYPES_CPP 00894 00895 00896 #define CALC_OUTSUBIMAGE10_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_WITH_CUSTOM_SWITCH_CPP 00897 00898 00899 #define CALC_OUTSUBIMAGE10 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_SCALAR_TYPES 00900 00901 00902 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10 ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_SCALAR_TYPES 00903 00904 00905 #define CALC_OUTSUBIMAGE10_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_WITH_CUSTOM_SWITCH 00906 00907 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 00908 #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") 00909 #endif 00910 00912 #endif // ML_DEPRECATED 00913 00914 //--------------------------------------------------------------------------------------------------- 00916 00917 00932 #define _ML_SWITCH_CODE_N(OUTDTYPE, INDTYPE, CLASS_NAME) \ 00933 { \ 00934 /* Get number of inputs. */ \ 00935 const MLssize_t numIns = static_cast<MLssize_t>(this->getInputNum()); \ 00936 \ 00937 /* Create typed version of output buffer. */ \ 00938 TSubImage<OUTDTYPE> outSubImgT(*outSubImg); \ 00939 \ 00940 /* Implement special cases with automatic object creation, */ \ 00941 /* because it is much faster. */ \ 00942 if (numIns < 3){ \ 00943 switch(numIns){ \ 00944 /***** Optimization for 1 input. *****/ \ 00945 case 0:{ \ 00946 /* Calculate output subimage. */ \ 00947 calculateOutputSubImage(&outSubImgT, outIndex, \ 00948 (TSubImage<INDTYPE>**)NULL); \ 00949 } \ 00950 return; \ 00951 \ 00952 /***** Optimization for 1 input. *****/ \ 00953 case 1:{ \ 00954 /* Create typed version of input buffer. */ \ 00955 /* and create a pointer array with one element. */ \ 00956 TSubImage<INDTYPE> inSubImgT(inSubImgs[0]); \ 00957 TSubImage<INDTYPE> *inArr = &inSubImgT; \ 00958 \ 00959 /* Calculate output subimage. */ \ 00960 calculateOutputSubImage(&outSubImgT, outIndex, &inArr); \ 00961 } \ 00962 return; \ 00963 \ 00964 /***** Optimization for 2 inputs. *****/ \ 00965 case 2:{ \ 00966 TSubImage<INDTYPE> inSubImg0T(inSubImgs[0]); \ 00967 TSubImage<INDTYPE> inSubImg1T(inSubImgs[1]); \ 00968 TSubImage<INDTYPE> *inArr[2]; \ 00969 inArr[0] = &inSubImg0T; \ 00970 inArr[1] = &inSubImg1T; \ 00971 calculateOutputSubImage(&outSubImgT, outIndex, inArr); \ 00972 } \ 00973 return; \ 00974 \ 00975 /***** Should be impossible to reach here *****/ \ 00976 default:{ \ 00977 ML_PRINT_FATAL_ERROR("_ML_SWITCH_CODE_N", \ 00978 ML_PROGRAMMING_ERROR, \ 00979 "Invalid case switch detected, " \ 00980 "ignoring case and not processing page"); \ 00981 } \ 00982 } \ 00983 } /* if (numIns < 3) */ \ 00984 else{ \ 00985 /***** Any other number of inputs. *****/ \ 00986 /* Create an array for all pointers to input subimages. */ \ 00987 TSubImage<INDTYPE> **inArr = NULL; \ 00988 ML_CHECK_NEW(inArr, TSubImage<INDTYPE>*[numIns]); \ 00989 bool okay = inArr != NULL; \ 00990 \ 00991 /* Count number of created subimages. */ \ 00992 MLssize_t createdTSubs=0; \ 00993 \ 00994 /* For each untyped input subimage create a typed one and */ \ 00995 /* store its pointer into the array. */ \ 00996 for (MLssize_t c=0; okay && (c < numIns); c++){ \ 00997 ML_CHECK_NEW(inArr[c], TSubImage<INDTYPE>(inSubImgs[c])); \ 00998 if (inArr[c]){ createdTSubs++; } else { okay = false; } \ 00999 } \ 01000 \ 01001 /* Call the correct template version of calculateOutputSubImage. */ \ 01002 if (okay){ \ 01003 calculateOutputSubImage(&outSubImgT, outIndex, inArr); \ 01004 } \ 01005 else{ \ 01006 ML_PRINT_FATAL_ERROR(#CLASS_NAME, ML_NO_MEMORY, \ 01007 "Not calculating page."); \ 01008 } \ 01009 \ 01010 /* Clean up created subimages and array of subimage pointers. */ \ 01011 if (inArr){ \ 01012 for (MLssize_t d=0; d < createdTSubs; d++){ \ 01013 ML_DELETE(inArr[d]); \ 01014 } \ 01015 ML_DELETE_ARRAY(inArr); \ 01016 } \ 01017 } /* else (numIns < 3) */ \ 01018 } 01019 01020 01027 01028 #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); 01029 01031 #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); 01032 01035 #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); 01036 01037 01039 01040 #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); 01041 #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); 01042 #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); 01043 01044 01045 01046 #ifdef ML_DEPRECATED 01047 01048 01049 01050 01051 #define CALC_OUTSUBIMAGEN_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_SCALAR_TYPES_CPP 01052 01053 01054 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_SCALAR_TYPES_CPP 01055 01056 01057 #define CALC_OUTSUBIMAGEN_CPP_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_WITH_CUSTOM_SWITCH_CPP 01058 01059 01060 #define CALC_OUTSUBIMAGEN ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_SCALAR_TYPES 01061 01062 01063 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_SCALAR_TYPES 01064 01065 01066 #define CALC_OUTSUBIMAGEN_ANY ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_WITH_CUSTOM_SWITCH 01067 01070 #define calcOutSubImageT calculateOutputSubImage 01071 01072 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01073 #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") 01074 #endif 01075 01077 #endif // ML_DEPRECATED 01078 01079 01080 01081 01082 //--------------------------------------------------------------------------------------------------- 01083 // 01084 // 01085 // 01086 // Macros to support different input and output data types. 01087 // Note that these macros produce significantly more code. 01088 // 01089 // 01090 // 01091 //--------------------------------------------------------------------------------------------------- 01092 01093 //--------------------------------------------------------------------------------------------------- 01100 01102 #define _ML_SWITCH_CODE1_DD_L2(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01103 { TSubImage<INDTYPE> inSIT(inSubImgs[0]); calculateOutputSubImage(&outSI, outIndex, &inSIT); } 01104 01106 #define _ML_SWITCH_CODE1_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01107 { \ 01108 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01109 ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01110 _ML_SWITCH_CODE1_DD_L2, \ 01111 inSubImgs[0].getDataType(), \ 01112 "_ML_SWITCH_CODE1_DD", \ 01113 INDTYPE); \ 01114 } 01115 01117 #define _ML_SWITCH_CODE1S_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01118 { \ 01119 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01120 ML_IMPLEMENT_DIFFERENT_SCALAR_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 01129 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01130 _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); 01131 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01132 _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); 01133 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) \ 01134 _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); 01135 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_DEFAULT_INOUT_DATATYPES(CLASS_NAME) \ 01136 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE1_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_DEFAULT_INOUT_DATATYPES", SubImage *inSubImgs); 01137 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES(CLASS_NAME) \ 01138 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE1S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES", SubImage *inSubImgs); 01139 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) \ 01140 _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE1_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01141 01142 01143 01144 #ifdef ML_DEPRECATED 01145 01146 01147 01148 01149 #define CALC_OUTSUBIMAGE1_CPP_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01150 01151 01152 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01153 01154 01155 #define CALC_OUTSUBIMAGE1_CPP_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP 01156 01157 01158 #define CALC_OUTSUBIMAGE1_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES 01159 01160 01161 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_SCALAR_INOUT_DATATYPES 01162 01163 01164 #define CALC_OUTSUBIMAGE1_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_1_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH 01165 01166 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01167 #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") 01168 #endif 01169 01171 #endif // ML_DEPRECATED 01172 01173 01174 01175 //--------------------------------------------------------------------------------------------------- 01182 01184 #define _ML_SWITCH_CODE2_DD_L2(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01185 { TSubImage<INDTYPE> it0(inSubImgs[0]), it1(inSubImgs[1]); calculateOutputSubImage(&outSI, outIndex, &it0, &it1); } 01186 01188 #define _ML_SWITCH_CODE2_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01189 { \ 01190 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01191 ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01192 _ML_SWITCH_CODE2_DD_L2, \ 01193 inSubImgs[0].getDataType(), \ 01194 "_ML_SWITCH_CODE2_DD", \ 01195 INDTYPE); \ 01196 } 01197 01199 #define _ML_SWITCH_CODE2S_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01200 { \ 01201 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01202 ML_IMPLEMENT_DIFFERENT_SCALAR_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 01211 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01212 _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); 01213 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01214 _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); 01215 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) \ 01216 _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); 01217 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_DEFAULT_INOUT_DATATYPES(CLASS_NAME) \ 01218 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE2_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_DEFAULT_INOUT_DATATYPES", SubImage *inSubImgs); 01219 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES(CLASS_NAME) \ 01220 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE2S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES", SubImage *inSubImgs); 01221 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) \ 01222 _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE2_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01223 01224 01225 01226 #ifdef ML_DEPRECATED 01227 01228 01229 01230 01231 #define CALC_OUTSUBIMAGE2_CPP_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01232 01233 01234 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01235 01236 01237 #define CALC_OUTSUBIMAGE2_CPP_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP 01238 01239 01240 #define CALC_OUTSUBIMAGE2_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES 01241 01242 01243 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_SCALAR_INOUT_DATATYPES 01244 01245 01246 #define CALC_OUTSUBIMAGE2_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_2_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH 01247 01248 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01249 #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") 01250 #endif 01251 01253 #endif // ML_DEPRECATED 01254 01255 01256 //--------------------------------------------------------------------------------------------------- 01265 01267 #define _ML_SWITCH_CODE3_DD_L2(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01268 { TSubImage<INDTYPE> it0(inSubImgs[0]), it1(inSubImgs[1]), it2(inSubImgs[2]); \ 01269 calculateOutputSubImage(&outSI, outIndex, &it0, &it1, &it2); } 01270 01272 #define _ML_SWITCH_CODE3_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01273 { \ 01274 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01275 ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01276 _ML_SWITCH_CODE3_DD_L2, \ 01277 inSubImgs[0].getDataType(), \ 01278 "_ML_SWITCH_CODE3_DD", \ 01279 INDTYPE); \ 01280 } 01281 01283 #define _ML_SWITCH_CODE3S_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01284 { \ 01285 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01286 ML_IMPLEMENT_DIFFERENT_SCALAR_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 01295 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01296 _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); 01297 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01298 _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); 01299 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) \ 01300 _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); 01301 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_DEFAULT_INOUT_DATATYPES(CLASS_NAME) \ 01302 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE3_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_DEFAULT_INOUT_DATATYPES", SubImage *inSubImgs); 01303 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES(CLASS_NAME) \ 01304 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE3S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES", SubImage *inSubImgs); 01305 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) \ 01306 _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE3_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01307 01308 01309 01310 #ifdef ML_DEPRECATED 01311 01312 01313 01314 01315 #define CALC_OUTSUBIMAGE3_CPP_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01316 01317 01318 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01319 01320 01321 #define CALC_OUTSUBIMAGE3_CPP_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP 01322 01323 01324 #define CALC_OUTSUBIMAGE3_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES 01325 01326 01327 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_SCALAR_INOUT_DATATYPES 01328 01329 01330 #define CALC_OUTSUBIMAGE3_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_3_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH 01331 01332 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01333 #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") 01334 #endif 01335 01337 #endif // ML_DEPRECATED 01338 01339 01340 01341 //--------------------------------------------------------------------------------------------------- 01350 01352 #define _ML_SWITCH_CODE4_DD_L2(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01353 { TSubImage<INDTYPE> it0(inSubImgs[0]), it1(inSubImgs[1]), it2(inSubImgs[2]), it3(inSubImgs[3]); \ 01354 calculateOutputSubImage(&outSI, outIndex, &it0, &it1, &it2, &it3); } 01355 01357 #define _ML_SWITCH_CODE4_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01358 { \ 01359 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01360 ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01361 _ML_SWITCH_CODE4_DD_L2, \ 01362 inSubImgs[0].getDataType(), \ 01363 "_ML_SWITCH_CODE4_DD", \ 01364 INDTYPE); \ 01365 } 01366 01368 #define _ML_SWITCH_CODE4S_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01369 { \ 01370 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01371 ML_IMPLEMENT_DIFFERENT_SCALAR_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 01380 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01381 _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); 01382 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01383 _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); 01384 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) \ 01385 _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); 01386 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_DEFAULT_INOUT_DATATYPES(CLASS_NAME) \ 01387 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE4_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_DEFAULT_INOUT_DATATYPES", SubImage *inSubImgs); 01388 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES(CLASS_NAME) \ 01389 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE4S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES", SubImage *inSubImgs); 01390 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) \ 01391 _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE4_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01392 01393 01394 01395 #ifdef ML_DEPRECATED 01396 01397 01398 01399 01400 #define CALC_OUTSUBIMAGE4_CPP_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01401 01402 01403 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01404 01405 01406 #define CALC_OUTSUBIMAGE4_CPP_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP 01407 01408 01409 #define CALC_OUTSUBIMAGE4_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES 01410 01411 01412 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_SCALAR_INOUT_DATATYPES 01413 01414 01415 #define CALC_OUTSUBIMAGE4_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_4_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH 01416 01417 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01418 #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") 01419 #endif 01420 01422 #endif // ML_DEPRECATED 01423 01424 01425 01426 //--------------------------------------------------------------------------------------------------- 01436 01438 #define _ML_SWITCH_CODE5_DD_L2(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01439 { TSubImage<INDTYPE> it0(inSubImgs[0]), it1(inSubImgs[1]), it2(inSubImgs[2]), it3(inSubImgs[3]), it4(inSubImgs[4]); \ 01440 calculateOutputSubImage(&outSI, outIndex, &it0, &it1, &it2, &it3, &it4); } 01441 01443 #define _ML_SWITCH_CODE5_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01444 { \ 01445 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01446 ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01447 _ML_SWITCH_CODE5_DD_L2, \ 01448 inSubImgs[0].getDataType(), \ 01449 "_ML_SWITCH_CODE5_DD", \ 01450 INDTYPE); \ 01451 } 01452 01454 #define _ML_SWITCH_CODE5S_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01455 { \ 01456 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01457 ML_IMPLEMENT_DIFFERENT_SCALAR_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 01466 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01467 _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); 01468 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01469 _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); 01470 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) \ 01471 _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); 01472 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_DEFAULT_INOUT_DATATYPES(CLASS_NAME) \ 01473 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE5_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_DEFAULT_INOUT_DATATYPES", SubImage *inSubImgs); 01474 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES(CLASS_NAME) \ 01475 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE5S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES", SubImage *inSubImgs); 01476 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) \ 01477 _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE5_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01478 01479 01480 01481 #ifdef ML_DEPRECATED 01482 01483 01484 01485 01486 #define CALC_OUTSUBIMAGE5_CPP_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01487 01488 01489 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01490 01491 01492 #define CALC_OUTSUBIMAGE5_CPP_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP 01493 01494 01495 #define CALC_OUTSUBIMAGE5_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES 01496 01497 01498 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_SCALAR_INOUT_DATATYPES 01499 01500 01501 #define CALC_OUTSUBIMAGE5_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_5_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH 01502 01503 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01504 #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") 01505 #endif 01506 01508 #endif // ML_DEPRECATED 01509 01510 01511 01512 //--------------------------------------------------------------------------------------------------- 01524 01526 #define _ML_SWITCH_CODE10_DD_L2(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01527 { TSubImage<INDTYPE> it0(inSubImgs[0]), it1(inSubImgs[1]), it2(inSubImgs[2]), it3(inSubImgs[3]), it4(inSubImgs[4]); \ 01528 TSubImage<INDTYPE> it5(inSubImgs[5]), it6(inSubImgs[6]), it7(inSubImgs[7]), it8(inSubImgs[8]), it9(inSubImgs[9]); \ 01529 calculateOutputSubImage(&outSI, outIndex, &it0, &it1, &it2, &it3, &it4, &it5, &it6, &it7, &it8, &it9); } 01530 01532 #define _ML_SWITCH_CODE10_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01533 { \ 01534 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01535 ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01536 _ML_SWITCH_CODE10_DD_L2, \ 01537 inSubImgs[0].getDataType(), \ 01538 "_ML_SWITCH_CODE10_DD", \ 01539 INDTYPE); \ 01540 } 01541 01543 #define _ML_SWITCH_CODE10S_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01544 { \ 01545 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01546 ML_IMPLEMENT_DIFFERENT_SCALAR_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 01555 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01556 _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); 01557 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01558 _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); 01559 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) \ 01560 _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); 01561 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_DEFAULT_INOUT_DATATYPES(CLASS_NAME) \ 01562 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODE10_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_DEFAULT_INOUT_DATATYPES", SubImage *inSubImgs); 01563 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES(CLASS_NAME) \ 01564 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODE10S_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES", SubImage *inSubImgs); 01565 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) \ 01566 _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODE10_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01567 01568 01569 01570 #ifdef ML_DEPRECATED 01571 01572 01573 01574 01575 #define CALC_OUTSUBIMAGE10_CPP_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01576 01577 01578 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01579 01580 01581 #define CALC_OUTSUBIMAGE10_CPP_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP 01582 01583 01584 #define CALC_OUTSUBIMAGE10_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES 01585 01586 01587 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_SCALAR_INOUT_DATATYPES 01588 01589 01590 #define CALC_OUTSUBIMAGE10_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_10_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH 01591 01592 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01593 #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") 01594 #endif 01595 01597 #endif // ML_DEPRECATED 01598 01599 01600 01601 //--------------------------------------------------------------------------------------------------- 01613 01615 #define _ML_SWITCH_CODEN_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01616 { \ 01617 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01618 ML_IMPLEMENT_DIFFERENT_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01619 _ML_SWITCH_CODE_N, \ 01620 inSubImgs[0].getDataType(), \ 01621 "_ML_SWITCH_CODEN_DD", \ 01622 INDTYPE); \ 01623 } 01624 01626 #define _ML_SWITCH_CODENS_DD(OUTDTYPE, INDTYPE, CLASS_NAME) \ 01627 { \ 01628 TSubImage<OUTDTYPE> outSI(*outSubImg); \ 01629 ML_IMPLEMENT_DIFFERENT_SCALAR_INOUT_DATATYPES_CASES(CLASS_NAME, \ 01630 _ML_SWITCH_CODE_N, \ 01631 inSubImgs[0].getDataType(), \ 01632 "_ML_SWITCH_CODEN_DD", \ 01633 INDTYPE); \ 01634 } 01635 01637 01638 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_DEFAULT_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01639 _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); 01640 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP(CLASS_NAME) \ 01641 _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); 01642 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP(CLASS_NAME, DTSWITCHES) \ 01643 _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); 01644 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_DEFAULT_INOUT_DATATYPES(CLASS_NAME) \ 01645 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_DEFAULT_CASES, _ML_SWITCH_CODEN_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_DEFAULT_INOUT_DATATYPES", SubImage *inSubImgs); 01646 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES(CLASS_NAME) \ 01647 _ML_TYPE_SWITCH_H(ML_IMPLEMENT_SCALAR_CASES, _ML_SWITCH_CODENS_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES", SubImage *inSubImgs); 01648 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH(CLASS_NAME, DTSWITCHES) \ 01649 _ML_TYPE_SWITCH_H(DTSWITCHES, _ML_SWITCH_CODEN_DD, "ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH", SubImage *inSubImgs); 01650 01651 01652 01653 #ifdef ML_DEPRECATED 01654 01655 01656 01657 01658 #define CALC_OUTSUBIMAGEN_CPP_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01659 01660 01661 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES_CPP ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES_CPP 01662 01663 01664 #define CALC_OUTSUBIMAGEN_CPP_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH_CPP 01665 01666 01667 #define CALC_OUTSUBIMAGEN_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES 01668 01669 01670 #define ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_SCALAR_INOUT_DATATYPES 01671 01672 01673 #define CALC_OUTSUBIMAGEN_ANY_DD ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_DIFFERENT_INOUT_DATATYPES_WITH_CUSTOM_SWITCH 01674 01675 #if defined(WIN32) && defined(ML_WARN_DEPRECATED) 01676 #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") 01677 #endif 01678 01680 #endif // ML_DEPRECATED 01681 01682 01683 01684 #endif //of __mlModuleMacros_H 01685 01686