X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FImage.hxx;h=d0f3de410fcf83c04a5db04172730b7b9530bb1a;hb=bebef39d45df113f3a706279a395eba44ce9472c;hp=6caf7f073d565a7f9ffdaababccf6df7053ee605;hpb=b445d953049ba15290197549dcd4e31367e3c8a5;p=cpPlugins.git diff --git a/lib/cpPlugins/Image.hxx b/lib/cpPlugins/Image.hxx index 6caf7f0..d0f3de4 100644 --- a/lib/cpPlugins/Image.hxx +++ b/lib/cpPlugins/Image.hxx @@ -1,7 +1,7 @@ #ifndef __CPPLUGINS__IMAGE__HXX__ #define __CPPLUGINS__IMAGE__HXX__ -#include +#include // ------------------------------------------------------------------------- template< unsigned int D > @@ -104,53 +104,91 @@ _ITK_2_VTK_2( itk::LightObject* o ) * Demangle macros * ========================================================================= */ -#define cpPlugin_Image_Demangle_Dim( FUNC, INPUT, D ) \ - this->FUNC( INPUT->GetITK< itk::ImageBase< D > >( ) ) - -#define cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, PIXEL, D ) \ - this->FUNC( dynamic_cast< itk::Image< PIXEL, D >* >( INPUT ) ) - -#define cpPlugin_Image_Demangle_VectorPixel_Dim( FUNC, INPUT, VECTOR, PIXEL, D ) \ - this->FUNC( dynamic_cast< itk::Image< VECTOR< PIXEL, D >, D >* >( INPUT ) ) - -#define cpPlugin_Image_Demangle_Pixel_AllScalars( r, FUNC, INPUT, D ) \ - r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, char, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, short, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, int, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, long, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, float, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, double, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, unsigned char, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, unsigned short, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, unsigned int, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, unsigned long, D ) - -#define cpPlugin_Image_Demangle_Pixel_AllColor( r, FUNC, INPUT, D ) \ - r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< char >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< short >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< int >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< long >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< float >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< double >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< unsigned char >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< unsigned short >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< unsigned int >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< unsigned long >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< char >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< short >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< int >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< long >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< float >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< double >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< unsigned char >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< unsigned short >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< unsigned int >, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< unsigned long >, D ) - -#define cpPlugin_Image_Demangle_VectorPixel_AllFloats( r, FUNC, INPUT, VECTOR, D ) \ - r = cpPlugin_Image_Demangle_VectorPixel_Dim( FUNC, INPUT, VECTOR, float, D ); \ - if( r != "" ) r = cpPlugin_Image_Demangle_VectorPixel_Dim( FUNC, INPUT, VECTOR, double, D ) - +#define cpPlugins_Image_Demangle_Dim( F, I, D ) \ + if( dynamic_cast< itk::ImageBase< D >* >( I ) != NULL ) \ + this->F( dynamic_cast< itk::ImageBase< D >* >( I ) ) + +#define cpPlugins_Image_Demangle_Pixel_Dim( F, I, P, D ) \ + if( dynamic_cast< itk::Image< P, D >* >( I ) != NULL ) \ + this->F( dynamic_cast< itk::Image< P, D >* >( I ) ) + +#define cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, P, D ) \ + if( dynamic_cast< itk::Image< itk::C##Pixel< P >, D >* >( I ) != NULL ) \ + this->F( dynamic_cast< itk::Image< itk::C##Pixel< P >, D >* >( I ) ) + +#define cpPlugins_Image_Demangle_VectorPixel_Dim( F, I, V, P, D ) \ + if( dynamic_cast< itk::Image< V< P, D >, D >* >( I ) != NULL ) \ + this->F( dynamic_cast< itk::Image< V< P, D >, D >* >( I ) ) + +#define cpPlugins_Image_Demangle_Pixel_AllInts( F, I, D ) \ + cpPlugins_Image_Demangle_Pixel_Dim ( F, I, char, D ); \ + else cpPlugins_Image_Demangle_Pixel_Dim( F, I, short, D ); \ + else cpPlugins_Image_Demangle_Pixel_Dim( F, I, int, D ); \ + else cpPlugins_Image_Demangle_Pixel_Dim( F, I, long, D ) + +#define cpPlugins_Image_Demangle_Pixel_AllUInts( F, I, D ) \ + cpPlugins_Image_Demangle_Pixel_Dim ( F, I, unsigned char, D ); \ + else cpPlugins_Image_Demangle_Pixel_Dim( F, I, unsigned short, D ); \ + else cpPlugins_Image_Demangle_Pixel_Dim( F, I, unsigned int, D ); \ + else cpPlugins_Image_Demangle_Pixel_Dim( F, I, unsigned long, D ) + +#define cpPlugins_Image_Demangle_Pixel_AllFloats( F, I, D ) \ + cpPlugins_Image_Demangle_Pixel_Dim ( F, I, float, D ); \ + else cpPlugins_Image_Demangle_Pixel_Dim( F, I, double, D ) + +#define cpPlugins_Image_Demangle_Pixel_AllScalars( F, I, D ) \ + cpPlugins_Image_Demangle_Pixel_AllInts ( F, I, D ); \ + else cpPlugins_Image_Demangle_Pixel_AllUInts( F, I, D ); \ + else cpPlugins_Image_Demangle_Pixel_AllInts ( F, I, D ) + +#define cpPlugins_Image_Demangle_ColorPixel_AllInts( F, I, C, D ) \ + cpPlugins_Image_Demangle_ColorPixel_Dim ( F, I, C, char, D ); \ + else cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, short, D ); \ + else cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, int, D ); \ + else cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, long, D ) + +#define cpPlugins_Image_Demangle_ColorPixel_AllUInts( F, I, C, D ) \ + cpPlugins_Image_Demangle_ColorPixel_Dim ( F, I, C, unsigned char, D ); \ + else cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, unsigned short, D ); \ + else cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, unsigned int, D ); \ + else cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, unsigned long, D ) + +#define cpPlugins_Image_Demangle_ColorPixel_AllFloats( F, I, C, D ) \ + cpPlugins_Image_Demangle_ColorPixel_Dim ( F, I, C, float, D ); \ + else cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, double, D ) + +#define cpPlugins_Image_Demangle_ColorPixel_AllScalars( F, I, C, D ) \ + cpPlugins_Image_Demangle_ColorPixel_AllInts ( F, I, C, D ); \ + else cpPlugins_Image_Demangle_ColorPixel_AllUInts( F, I, C, D ); \ + else cpPlugins_Image_Demangle_ColorPixel_AllInts ( F, I, C, D ) + +/* TODO + #define cpPlugins_Image_Demangle_Pixel_AllColor( r, FUNC, INPUT, D ) \ + r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< char >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< short >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< int >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< long >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< float >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< double >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< unsigned char >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< unsigned short >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< unsigned int >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< unsigned long >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< char >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< short >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< int >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< long >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< float >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< double >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< unsigned char >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< unsigned short >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< unsigned int >, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< unsigned long >, D ) + + #define cpPlugins_Image_Demangle_VectorPixel_AllFloats( r, FUNC, INPUT, VECTOR, D ) \ + r = cpPlugins_Image_Demangle_VectorPixel_Dim( FUNC, INPUT, VECTOR, float, D ); \ + if( r != "" ) r = cpPlugins_Image_Demangle_VectorPixel_Dim( FUNC, INPUT, VECTOR, double, D ) +*/ #endif // __CPPLUGINS__IMAGE__HXX__ // eof - $RCSfile$