X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fitk%2Fsrc%2FbbitkImage.h;h=cc754d5ebfc83714853272fbc6683dbf088c65c6;hb=160a7addf97aff527f10d0a1cddca2f068ee0034;hp=8cc1a9482e1723eac5d0b809a447610af7ced4b0;hpb=7f5062112812aade4d10f1f2a3cf21abb3eb750e;p=bbtk.git diff --git a/packages/itk/src/bbitkImage.h b/packages/itk/src/bbitkImage.h index 8cc1a94..cc754d5 100644 --- a/packages/itk/src/bbitkImage.h +++ b/packages/itk/src/bbitkImage.h @@ -72,14 +72,8 @@ namespace bbitk //BBTK_TYPEDEF_ITK_IMAGES_DIM(5) -// printf("EEDitk TYPE_INFO=%s %s\n", TYPE_INFO.name(), typeid(bbitk::Image_int8_t_3_##CONST##ptr).name() ); \ #define BBTK_BEGIN_TEMPLATE_SWITCH(TYPE_INFO) \ -if ( TYPE_INFO == typeid(bbitk::Image_uint16_t_3_ptr) ) { printf ("Yes\n"); }else{ printf ("No\n"); } \ -if ( strcmp(TYPE_INFO.name() , typeid(bbitk::Image_uint16_t_3_ptr).name() ) ==0 ) { printf ("Yes\n"); }else{ printf ("No\n"); } \ - printf("EEDitk TYPE_INFO=<%s> <%s> <%s>\n", TYPE_INFO.name(), bbtk::demangle_type_name(typeid(bbitk::Image_uint8_t_3_ptr).name()).c_str() , typeid(bbitk::Image_uint8_t_3_ptr).name() ); \ - printf("EEDitk TYPE_INFO=<%s> <%s> <%s>\n", TYPE_INFO.name(), bbtk::demangle_type_name(typeid(bbitk::Image_uint16_t_3_ptr).name()).c_str() , typeid(bbitk::Image_uint16_t_3_ptr).name() ); \ - printf("EEDitk TYPE_INFO=<%s> <%s> <%s>\n", TYPE_INFO.name(), bbtk::demangle_type_name(typeid(bbitk::Image_uint32_t_3_ptr).name()).c_str() , typeid(bbitk::Image_uint32_t_3_ptr).name() ); \ if (false) {} #define BBTK_END_TEMPLATE_SWITCH(TYPE_INFO) else { bbtkError("bbtk was not built for itk images of type <"<< bbtk::demangle_type_name(TYPE_INFO.name())<<">"); } @@ -91,12 +85,17 @@ if (false) {} /// This macro must be used (maybe several times) between a pair of BEGIN_TEMPLATE_SWITCH and END_TEMPLATE_SWITCH macros -// 2021-12-15 -// else if (TYPE_INFO == typeid(bbitk::TEST_TYPE)) \ - -#define TEMPLATE_SWITCH(TYPE_INFO,TEST_TYPE,TEMPLATE_FUNCTION,TEMPLATE_TYPE) \ - else if ( strcmp(TYPE_INFO.name() , typeid(bbitk::TEST_TYPE).name() ) ==0 ) \ - { TEMPLATE_FUNCTION(); } +//EED 2021-12-15 typeid comparation is not working in MacOs for objects declared in different libraries +// ex: itk <-> vtk templates convertion +#if defined(MACOSX) + #define TEMPLATE_SWITCH(TYPE_INFO,TEST_TYPE,TEMPLATE_FUNCTION,TEMPLATE_TYPE) \ + else if ( strcmp(TYPE_INFO.name() , typeid(bbitk::TEST_TYPE).name() ) ==0 ) \ + { TEMPLATE_FUNCTION(); } +#else + #define TEMPLATE_SWITCH(TYPE_INFO,TEST_TYPE,TEMPLATE_FUNCTION,TEMPLATE_TYPE) \ + else if (TYPE_INFO == typeid(bbitk::TEST_TYPE)) \ + { TEMPLATE_FUNCTION(); } +#endif // DIMENSION 2 @@ -221,72 +220,6 @@ if (false) {} # define BBTK_SWITCH_ITK_IMAGE_double_3(TYPE_INFO,FUN,CONST) #endif - -/* EED -// DIMENSION 3 -#ifdef BBTK_ITK_IMAGE_DIM_3 -# ifdef BBTK_ITK_IMAGE_TYPE_int8_t -# define BBTK_SWITCH_ITK_IMAGE_int8_t_3(TYPE_INFO,FUN,CONST) \ - TEMPLATE_SWITCH(TYPE_INFO,Image_int8_t_3_ptr,FUN,Image_int8_t_3) -# else -# define BBTK_SWITCH_ITK_IMAGE_int8_t_3(TYPE_INFO,FUN,CONST) -# endif -# ifdef BBTK_ITK_IMAGE_TYPE_int16_t -# define BBTK_SWITCH_ITK_IMAGE_int16_t_3(TYPE_INFO,FUN,CONST) \ - TEMPLATE_SWITCH(TYPE_INFO,Image_int16_t_3_ptr,FUN,Image_int16_t_3) -# else -# define BBTK_SWITCH_ITK_IMAGE_int16_t_3(TYPE_INFO,FUN,CONST) -# endif -# ifdef BBTK_ITK_IMAGE_TYPE_int32_t -# define BBTK_SWITCH_ITK_IMAGE_int32_t_3(TYPE_INFO,FUN,CONST) \ - TEMPLATE_SWITCH(TYPE_INFO,Image_int32_t_3_ptr,FUN,Image_int32_t_3) -# else -# define BBTK_SWITCH_ITK_IMAGE_int32_t_3(TYPE_INFO,FUN,CONST) -# endif -# ifdef BBTK_ITK_IMAGE_TYPE_uint8_t -# define BBTK_SWITCH_ITK_IMAGE_uint8_t_3(TYPE_INFO,FUN,CONST) \ - TEMPLATE_SWITCH(TYPE_INFO,Image_uint8_t_3_ptr,FUN,Image_uint8_t_3) -# else -# define BBTK_SWITCH_ITK_IMAGE_uint8_t_3(TYPE_INFO,FUN,CONST) -# endif -# ifdef BBTK_ITK_IMAGE_TYPE_uint16_t -# define BBTK_SWITCH_ITK_IMAGE_uint16_t_3(TYPE_INFO,FUN,CONST) \ - TEMPLATE_SWITCH(TYPE_INFO,Image_uint16_t_3_,FUN,Image_uint16_t_3) -# else -# define BBTK_SWITCH_ITK_IMAGE_uint16_t_3(TYPE_INFO,FUN,CONST) -# endif -# ifdef BBTK_ITK_IMAGE_TYPE_uint32_t -# define BBTK_SWITCH_ITK_IMAGE_uint32_t_3(TYPE_INFO,FUN,CONST) \ - TEMPLATE_SWITCH(TYPE_INFO,Image_uint32_t_3_ptr,FUN,Image_uint32_t_3) -# else -# define BBTK_SWITCH_ITK_IMAGE_uint32_t_3(TYPE_INFO,FUN,CONST) -# endif -# ifdef BBTK_ITK_IMAGE_TYPE_float -# define BBTK_SWITCH_ITK_IMAGE_float_3(TYPE_INFO,FUN,CONST) \ - TEMPLATE_SWITCH(TYPE_INFO,Image_float_3_ptr,FUN,Image_float_3) -# else -# define BBTK_SWITCH_ITK_IMAGE_float_3(TYPE_INFO,FUN,CONST) -# endif -# ifdef BBTK_ITK_IMAGE_TYPE_double -# define BBTK_SWITCH_ITK_IMAGE_double_3(TYPE_INFO,FUN,CONST) \ - TEMPLATE_SWITCH(TYPE_INFO,Image_double_3_ptr,FUN,Image_double_3) -# else -# define BBTK_SWITCH_ITK_IMAGE_double_3(TYPE_INFO,FUN,CONST) -# endif -#else -# define BBTK_SWITCH_ITK_IMAGE_int8_t_3(TYPE_INFO,FUN,CONST) -# define BBTK_SWITCH_ITK_IMAGE_int16_t_3(TYPE_INFO,FUN,CONST) -# define BBTK_SWITCH_ITK_IMAGE_int32_t_3(TYPE_INFO,FUN,CONST) -# define BBTK_SWITCH_ITK_IMAGE_uint8_t_3(TYPE_INFO,FUN,CONST) -# define BBTK_SWITCH_ITK_IMAGE_uint16_t_3(TYPE_INFO,FUN,CONST) -# define BBTK_SWITCH_ITK_IMAGE_uint32_t_3(TYPE_INFO,FUN,CONST) -# define BBTK_SWITCH_ITK_IMAGE_float_3(TYPE_INFO,FUN,CONST) -# define BBTK_SWITCH_ITK_IMAGE_double_3(TYPE_INFO,FUN,CONST) -#endif -*/ - - - // DIMENSION 4 #ifdef BBTK_ITK_IMAGE_DIM_4 # ifdef BBTK_ITK_IMAGE_TYPE_int8_t