MeVisLabToolboxReference
|
00001 // **InsertLicense** code 00002 //---------------------------------------------------------------------------------- 00008 00013 //---------------------------------------------------------------------------------- 00014 #ifndef __mlITKFixedTypesFilterSupport_H 00015 #define __mlITKFixedTypesFilterSupport_H 00016 00018 #include "mlInitSystemITKSupport.h" 00019 00020 // Include most ML specific things. 00021 #ifndef __mlModuleIncludes_H 00022 #include "mlModuleIncludes.h" 00023 #endif 00024 00025 #ifndef __mlITKNonScalarSupport_H 00026 #include "mlITKNonScalarSupport.h" 00027 #endif 00028 00029 //------------------------------------------------------------------------------------ 00033 //------------------------------------------------------------------------------------ 00034 #define _ML_IMPLEMENT_FIXED_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00035 case _WRAPPER_ML_INPUT_TYPE_TYPE: DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, _WRAPPER_ML_INPUT_TYPE, _WRAPPER_ITK_INPUT_TYPE, USER_CODE, CLASS_NAME, DIM); break; \ 00036 00037 00038 //------------------------------------------------------------------------------------ 00041 //------------------------------------------------------------------------------------ 00042 #define _ML_IMPLEMENT_FLOAT_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00043 case MLfloatType : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLfloat, MLfloat, USER_CODE, CLASS_NAME, DIM); break; \ 00044 00045 00046 //------------------------------------------------------------------------------------ 00049 //------------------------------------------------------------------------------------ 00050 #define _ML_IMPLEMENT_DOUBLE_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00051 case MLdoubleType: DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLdouble, MLdouble, USER_CODE, CLASS_NAME, DIM); break; \ 00052 00053 00054 //------------------------------------------------------------------------------------ 00057 //------------------------------------------------------------------------------------ 00058 #define _ML_IMPLEMENT_FLOATS_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00059 _ML_IMPLEMENT_FLOAT_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00060 _ML_IMPLEMENT_DOUBLE_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00061 00062 00063 //------------------------------------------------------------------------------------ 00066 //------------------------------------------------------------------------------------ 00067 #define _ML_IMPLEMENT_INTS_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00068 case MLint8Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint8 , MLint8 , USER_CODE, CLASS_NAME, DIM); break; \ 00069 case MLuint8Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLuint8 , MLuint8 , USER_CODE, CLASS_NAME, DIM); break; \ 00070 case MLint16Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint16 , MLint16 , USER_CODE, CLASS_NAME, DIM); break; \ 00071 case MLuint16Type: DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLuint16, MLuint16, USER_CODE, CLASS_NAME, DIM); break; \ 00072 case MLint32Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint32 , MLint32 , USER_CODE, CLASS_NAME, DIM); break; \ 00073 case MLuint32Type: DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLuint32, MLuint32, USER_CODE, CLASS_NAME, DIM); break; \ 00074 00075 00076 //------------------------------------------------------------------------------------ 00079 //------------------------------------------------------------------------------------ 00080 #define _ML_IMPLEMENT_SIGNED_INTS_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00081 case MLint8Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint8 , MLint8 , USER_CODE, CLASS_NAME, DIM); break; \ 00082 case MLint16Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint16 , MLint16 , USER_CODE, CLASS_NAME, DIM); break; \ 00083 case MLint32Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint32 , MLint32 , USER_CODE, CLASS_NAME, DIM); break; \ 00084 00085 00086 //------------------------------------------------------------------------------------ 00089 //------------------------------------------------------------------------------------ 00090 #define _ML_IMPLEMENT_SIGNED_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00091 case MLint8Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint8 , MLint8 , USER_CODE, CLASS_NAME, DIM); break; \ 00092 case MLint16Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint16 , MLint16 , USER_CODE, CLASS_NAME, DIM); break; \ 00093 case MLint32Type : DIM_INST(_WRAPPER_ML_OUTPUT_TYPE, _WRAPPER_ITK_OUTPUT_TYPE, MLint32 , MLint32 , USER_CODE, CLASS_NAME, DIM); break; \ 00094 _ML_IMPLEMENT_FLOATS_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00095 00096 00097 //------------------------------------------------------------------------------------ 00100 //------------------------------------------------------------------------------------ 00101 #define _ML_IMPLEMENT_SIGNED_ANY_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00102 _ML_IMPLEMENT_SIGNED_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00103 00104 00105 //------------------------------------------------------------------------------------ 00108 //------------------------------------------------------------------------------------ 00109 #define _ML_IMPLEMENT_ANY_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00110 _ML_IMPLEMENT_INTS_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00111 _ML_IMPLEMENT_FLOATS_TO_FIXED_WRAPPER_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00112 00113 00114 //------------------------------------------------------------------------------------ 00118 //------------------------------------------------------------------------------------ 00119 #define _ML_IMPLEMENT_TO_FIXED_ITK_CASES_ALL_DIMS(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00120 switch(DATATYPE_ENUM){ \ 00121 _ML_FIXED_IMPL_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, DIM_INST) \ 00122 default: { ML_PRINT_ERROR(#CLASS_NAME, ML_BAD_DATA_TYPE, "Fixed type case not executed(_ML_IMPLEMENT_TO_FIXED_ITK_CASES_ALL_DIMS)."); break; } \ 00123 } \ 00124 00125 00126 //------------------------------------------------------------------------------------ 00128 //------------------------------------------------------------------------------------ 00129 #define _ML_IMPLEMENT_TO_FIXED_ITK_2D_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM) \ 00130 _ML_IMPLEMENT_TO_FIXED_ITK_CASES_ALL_DIMS(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, _ML_INSTANTIATE_2D_CODE) 00131 00132 //------------------------------------------------------------------------------------ 00134 //------------------------------------------------------------------------------------ 00135 #define _ML_IMPLEMENT_TO_FIXED_ITK_3D_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM) \ 00136 _ML_IMPLEMENT_TO_FIXED_ITK_CASES_ALL_DIMS(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, _ML_INSTANTIATE_3D_CODE) 00137 00138 //------------------------------------------------------------------------------------ 00140 //------------------------------------------------------------------------------------ 00141 #define _ML_IMPLEMENT_TO_FIXED_ITK_2D3D_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM) \ 00142 _ML_IMPLEMENT_TO_FIXED_ITK_CASES_ALL_DIMS(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, _ML_INSTANTIATE_2D3D_CODE) 00143 00144 //------------------------------------------------------------------------------------ 00146 //------------------------------------------------------------------------------------ 00147 #define _ML_IMPLEMENT_TO_FIXED_ITK_6D_CASES(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM) \ 00148 _ML_IMPLEMENT_TO_FIXED_ITK_CASES_ALL_DIMS(INFO_STRING, USER_CODE, CLASS_NAME, DATATYPE_ENUM, DIM, _ML_INSTANTIATE_6D_CODE) 00149 00150 00151 //-------------------------------------------------------------------------------- 00155 //-------------------------------------------------------------------------------- 00156 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_0_2D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00157 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00158 _ML_ITK_DETERMINE_IN_REGION_0, \ 00159 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_0, \ 00160 _ML_IMPLEMENT_TO_FIXED_ITK_2D_CASES, \ 00161 _ML_ITK_DETERMINE_OUT_REGION_0) 00162 00163 //-------------------------------------------------------------------------------- 00167 //-------------------------------------------------------------------------------- 00168 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_1_2D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00169 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00170 _ML_ITK_DETERMINE_IN_REGION_N, \ 00171 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_1, \ 00172 _ML_IMPLEMENT_TO_FIXED_ITK_2D_CASES, \ 00173 _ML_ITK_DETERMINE_OUT_REGION_N) 00174 00175 //-------------------------------------------------------------------------------- 00179 //-------------------------------------------------------------------------------- 00180 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_2_2D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00181 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00182 _ML_ITK_DETERMINE_IN_REGION_N, \ 00183 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_2, \ 00184 _ML_IMPLEMENT_TO_FIXED_ITK_2D_CASES, \ 00185 _ML_ITK_DETERMINE_OUT_REGION_N) 00186 00187 //-------------------------------------------------------------------------------- 00191 //-------------------------------------------------------------------------------- 00192 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_3_2D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00193 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00194 _ML_ITK_DETERMINE_IN_REGION_N, \ 00195 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_3, \ 00196 _ML_IMPLEMENT_TO_FIXED_ITK_2D_CASES, \ 00197 _ML_ITK_DETERMINE_OUT_REGION_N) 00198 00199 00200 00201 00202 //-------------------------------------------------------------------------------- 00206 //-------------------------------------------------------------------------------- 00207 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_0_3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00208 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00209 _ML_ITK_DETERMINE_IN_REGION_0, \ 00210 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_0, \ 00211 _ML_IMPLEMENT_TO_FIXED_ITK_3D_CASES, \ 00212 _ML_ITK_DETERMINE_OUT_REGION_0) 00213 00214 //-------------------------------------------------------------------------------- 00218 //-------------------------------------------------------------------------------- 00219 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_1_3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00220 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00221 _ML_ITK_DETERMINE_IN_REGION_N, \ 00222 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_1, \ 00223 _ML_IMPLEMENT_TO_FIXED_ITK_3D_CASES, \ 00224 _ML_ITK_DETERMINE_OUT_REGION_N) 00225 00226 //-------------------------------------------------------------------------------- 00230 //-------------------------------------------------------------------------------- 00231 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_2_3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00232 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00233 _ML_ITK_DETERMINE_IN_REGION_N, \ 00234 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_2, \ 00235 _ML_IMPLEMENT_TO_FIXED_ITK_3D_CASES, \ 00236 _ML_ITK_DETERMINE_OUT_REGION_N) 00237 00238 //-------------------------------------------------------------------------------- 00242 //-------------------------------------------------------------------------------- 00243 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_3_3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00244 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00245 _ML_ITK_DETERMINE_IN_REGION_N, \ 00246 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_3, \ 00247 _ML_IMPLEMENT_TO_FIXED_ITK_3D_CASES, \ 00248 _ML_ITK_DETERMINE_OUT_REGION_N) 00249 00250 00251 00252 00253 //-------------------------------------------------------------------------------- 00257 //-------------------------------------------------------------------------------- 00258 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_0_2D3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00259 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00260 _ML_ITK_DETERMINE_IN_REGION_0, \ 00261 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_0, \ 00262 _ML_IMPLEMENT_TO_FIXED_ITK_2D3D_CASES, \ 00263 _ML_ITK_DETERMINE_OUT_REGION_0) 00264 00265 //-------------------------------------------------------------------------------- 00269 //-------------------------------------------------------------------------------- 00270 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_1_2D3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00271 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00272 _ML_ITK_DETERMINE_IN_REGION_N, \ 00273 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_1, \ 00274 _ML_IMPLEMENT_TO_FIXED_ITK_2D3D_CASES, \ 00275 _ML_ITK_DETERMINE_OUT_REGION_N) 00276 00277 //-------------------------------------------------------------------------------- 00281 //-------------------------------------------------------------------------------- 00282 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_2_2D3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00283 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00284 _ML_ITK_DETERMINE_IN_REGION_N, \ 00285 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_2, \ 00286 _ML_IMPLEMENT_TO_FIXED_ITK_2D3D_CASES, \ 00287 _ML_ITK_DETERMINE_OUT_REGION_N) 00288 00289 //-------------------------------------------------------------------------------- 00293 //-------------------------------------------------------------------------------- 00294 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_3_2D3D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00295 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00296 _ML_ITK_DETERMINE_IN_REGION_N, \ 00297 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_3, \ 00298 _ML_IMPLEMENT_TO_FIXED_ITK_2D3D_CASES, \ 00299 _ML_ITK_DETERMINE_OUT_REGION_N) 00300 00301 00302 00303 00304 //-------------------------------------------------------------------------------- 00307 //-------------------------------------------------------------------------------- 00308 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_0_6D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00309 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00310 _ML_ITK_DETERMINE_IN_REGION_N, \ 00311 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_0, \ 00312 _ML_IMPLEMENT_TO_FIXED_ITK_6D_CASES, \ 00313 _ML_ITK_DETERMINE_OUT_REGION_N) 00314 00315 //-------------------------------------------------------------------------------- 00318 //-------------------------------------------------------------------------------- 00319 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_1_6D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00320 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00321 _ML_ITK_DETERMINE_IN_REGION_N, \ 00322 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_1, \ 00323 _ML_IMPLEMENT_TO_FIXED_ITK_6D_CASES, \ 00324 _ML_ITK_DETERMINE_OUT_REGION_N) 00325 00326 //-------------------------------------------------------------------------------- 00329 //-------------------------------------------------------------------------------- 00330 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_2_6D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00331 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00332 _ML_ITK_DETERMINE_IN_REGION_N, \ 00333 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_2, \ 00334 _ML_IMPLEMENT_TO_FIXED_ITK_6D_CASES, \ 00335 _ML_ITK_DETERMINE_OUT_REGION_N) 00336 00337 //-------------------------------------------------------------------------------- 00340 //-------------------------------------------------------------------------------- 00341 #define ML_ITK_TO_FIXED_FILTER_WRAPPER_3_6D(PROJECT_PREFIX, CLASSNAME, NAMESPACE) \ 00342 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASSNAME, NAMESPACE, \ 00343 _ML_ITK_DETERMINE_IN_REGION_N, \ 00344 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_3, \ 00345 _ML_IMPLEMENT_TO_FIXED_ITK_6D_CASES, \ 00346 _ML_ITK_DETERMINE_OUT_REGION_N) 00347 00348 00349 #endif // __mlITKFixedTypesFilterSupport_H 00350