X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fitk%2Fsrc%2FbbitkImage.h;h=cc754d5ebfc83714853272fbc6683dbf088c65c6;hb=160a7addf97aff527f10d0a1cddca2f068ee0034;hp=9f74cec6f3aa7bdc203351eb5837c1f17c8086de;hpb=cfad95b6e08e6e53846ffcda7fbc5932065f2c47;p=bbtk.git diff --git a/packages/itk/src/bbitkImage.h b/packages/itk/src/bbitkImage.h index 9f74cec..cc754d5 100644 --- a/packages/itk/src/bbitkImage.h +++ b/packages/itk/src/bbitkImage.h @@ -65,7 +65,7 @@ namespace bbitk BBTK_TYPEDEF_ITK_IMAGE(uint32_t,DIM); \ BBTK_TYPEDEF_ITK_IMAGE(float,DIM); \ BBTK_TYPEDEF_ITK_IMAGE(double,DIM) - + BBTK_TYPEDEF_ITK_IMAGES_DIM(2); BBTK_TYPEDEF_ITK_IMAGES_DIM(3); BBTK_TYPEDEF_ITK_IMAGES_DIM(4); @@ -73,7 +73,8 @@ namespace bbitk -#define BBTK_BEGIN_TEMPLATE_SWITCH(TYPE_INFO) if (false) {} +#define BBTK_BEGIN_TEMPLATE_SWITCH(TYPE_INFO) \ +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())<<">"); } @@ -82,14 +83,24 @@ namespace bbitk /// Generic macro which calls a TEMPLATE_FUNCTION instanciated /// on TEMPLATE_TYPE iff TYPE_INFO == typeid(TEST_TYPE). /// This macro must be used (maybe several times) between a pair of BEGIN_TEMPLATE_SWITCH and END_TEMPLATE_SWITCH macros -#define TEMPLATE_SWITCH(TYPE_INFO,TEST_TYPE,TEMPLATE_FUNCTION,TEMPLATE_TYPE) \ - else if (TYPE_INFO == typeid(bbitk::TEST_TYPE)) \ - { 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 #ifdef BBTK_ITK_IMAGE_DIM_2 -# ifdef BBTK_ITK_IMAGE_TYPE_int8_t +# ifdef BBTK_ITK_IMAGE_TYPE_int8_t # define BBTK_SWITCH_ITK_IMAGE_int8_t_2(TYPE_INFO,FUN,CONST) \ TEMPLATE_SWITCH(TYPE_INFO,Image_int8_t_2_##CONST##ptr,FUN,Image_int8_t_2) # else @@ -113,7 +124,7 @@ namespace bbitk # else # define BBTK_SWITCH_ITK_IMAGE_uint8_t_2(TYPE_INFO,FUN,CONST) # endif -# ifdef BBTK_ITK_IMAGE_TYPE_int16_t +# ifdef BBTK_ITK_IMAGE_TYPE_uint16_t # define BBTK_SWITCH_ITK_IMAGE_uint16_t_2(TYPE_INFO,FUN,CONST) \ TEMPLATE_SWITCH(TYPE_INFO,Image_uint16_t_2_##CONST##ptr,FUN,Image_uint16_t_2) # else @@ -148,7 +159,6 @@ namespace bbitk # define BBTK_SWITCH_ITK_IMAGE_double_2(TYPE_INFO,FUN,CONST) #endif - // DIMENSION 3 #ifdef BBTK_ITK_IMAGE_DIM_3 # ifdef BBTK_ITK_IMAGE_TYPE_int8_t @@ -175,7 +185,7 @@ namespace bbitk # else # define BBTK_SWITCH_ITK_IMAGE_uint8_t_3(TYPE_INFO,FUN,CONST) # endif -# ifdef BBTK_ITK_IMAGE_TYPE_int16_t +# 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_##CONST##ptr,FUN,Image_uint16_t_3) # else @@ -210,7 +220,6 @@ namespace bbitk # 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 @@ -237,7 +246,7 @@ namespace bbitk # else # define BBTK_SWITCH_ITK_IMAGE_uint8_t_4(TYPE_INFO,FUN,CONST) # endif -# ifdef BBTK_ITK_IMAGE_TYPE_int16_t +# ifdef BBTK_ITK_IMAGE_TYPE_uint16_t # define BBTK_SWITCH_ITK_IMAGE_uint16_t_4(TYPE_INFO,FUN,CONST) \ TEMPLATE_SWITCH(TYPE_INFO,Image_uint16_t_4_##CONST##ptr,FUN,Image_uint16_t_4) # else