X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FInterface%2FBaseProcessObjects.h;h=04c29822b1b7afb3660d53ed0f00170477adaaca;hb=75dc4945344b4a5a7be10a3ca33fa2e6fff87df8;hp=687a00fa6a80a399209699390277c09315a0b404;hpb=7c7bc497af96e7b5845be9a2fc277036ec752be9;p=cpPlugins.git diff --git a/lib/cpPlugins/Interface/BaseProcessObjects.h b/lib/cpPlugins/Interface/BaseProcessObjects.h index 687a00f..04c2982 100644 --- a/lib/cpPlugins/Interface/BaseProcessObjects.h +++ b/lib/cpPlugins/Interface/BaseProcessObjects.h @@ -33,6 +33,137 @@ } \ cpPlugins::Interface::O::~O( ) { } +// ------------------------------------------------------------------------- +#define cpPlugins_Image_Input_Demangle( T, D, I, O, r, f ) \ + if( ( O = I->GetITKImage< itk::Image< T, D > >( ) ) != NULL ) \ + r = this->f< itk::Image< T, D > >( O ) + +// ------------------------------------------------------------------------- +#define cpPlugins_ImageArray_Input_Demangle( A, T, DP, DI, I, O, r, f ) \ + if( \ + ( O = I->GetITKImage< itk::Image< A< T, DP >, DI > >( ) ) != NULL \ + ) \ + r = this->f< itk::Image< A< T, DP >, DI > >( O ) + +// ------------------------------------------------------------------------- +#define cpPlugins_Image_Input_Demangle_Dimension_AllScalarTypes( D, I, O, r, f ) \ + cpPlugins_Image_Input_Demangle( char, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( short, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( int, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( long, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( float, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( double, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( unsigned char, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( unsigned short, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( unsigned int, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( unsigned long, D, I, O, r, f ) + +// ------------------------------------------------------------------------- +#define cpPlugins_Image_Input_Demangle_Dimension_AllTypes( D, I, O, r, f ) \ + cpPlugins_Image_Input_Demangle( char, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( short, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( int, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( long, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( float, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( double, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( unsigned char, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( unsigned short, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( unsigned int, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( unsigned long, D, I, O, r, f ); \ + else cpPlugins_Image_Input_Demangle( \ + std::complex< float >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + std::complex< double >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBPixel< char >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBPixel< short >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBPixel< int >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBPixel< long >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBPixel< unsigned char >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBPixel< unsigned short >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBPixel< unsigned int >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBPixel< unsigned long >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBPixel< float >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBPixel< double >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBAPixel< char >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBAPixel< short >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBAPixel< int >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBAPixel< long >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBAPixel< unsigned char >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBAPixel< unsigned short >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBAPixel< unsigned int >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBAPixel< unsigned long >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBAPixel< float >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::RGBAPixel< double >, D, I, O, r, f \ + ); \ + else cpPlugins_Image_Input_Demangle( \ + itk::Offset< D >, D, I, O, r, f \ + ); \ + else cpPlugins_ImageArray_Input_Demangle( \ + itk::Vector, float, D, D, I, O, r, f \ + ); \ + else cpPlugins_ImageArray_Input_Demangle( \ + itk::Vector, double, D, D, I, O, r, f \ + ); \ + else cpPlugins_ImageArray_Input_Demangle( \ + itk::Point, float, D, D, I, O, r, f \ + ); \ + else cpPlugins_ImageArray_Input_Demangle( \ + itk::Point, double, D, D, I, O, r, f \ + ); \ + else cpPlugins_ImageArray_Input_Demangle( \ + itk::CovariantVector, float, D, D, I, O, r, f \ + ); \ + else cpPlugins_ImageArray_Input_Demangle( \ + itk::CovariantVector, double, D, D, I, O, r, f \ + ); \ + else cpPlugins_ImageArray_Input_Demangle( \ + itk::SymmetricSecondRankTensor, float, D, D, I, O, r, f \ + ); \ + else cpPlugins_ImageArray_Input_Demangle( \ + itk::SymmetricSecondRankTensor, double, D, D, I, O, r, f \ + ) + namespace cpPlugins { namespace Interface @@ -44,10 +175,18 @@ namespace cpPlugins cpPlugins_Interface_Define_ProcessObject( MeshSource, SourceObject ); cpPlugins_Interface_Define_ProcessObject( ImageSink, SinkObject ); cpPlugins_Interface_Define_ProcessObject( MeshSink, SinkObject ); - cpPlugins_Interface_Define_ProcessObject( ImageToImageFitler, FilterObject ); - cpPlugins_Interface_Define_ProcessObject( ImageToMeshFitler, FilterObject ); - cpPlugins_Interface_Define_ProcessObject( MeshToImageFitler, FilterObject ); - cpPlugins_Interface_Define_ProcessObject( MeshToMeshFitler, FilterObject ); + cpPlugins_Interface_Define_ProcessObject( + ImageToImageFilter, FilterObject + ); + cpPlugins_Interface_Define_ProcessObject( + ImageToMeshFilter, FilterObject + ); + cpPlugins_Interface_Define_ProcessObject( + MeshToImageFilter, FilterObject + ); + cpPlugins_Interface_Define_ProcessObject( + MeshToMeshFilter, FilterObject + ); } // ecapseman