X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FInterface%2FImage.hxx;h=8c31dca4c7e6acc0caf11e6842a16168871b6037;hb=00b54bc0344d74f31df8b93f7c28a07cfc8d6873;hp=640e01c3cf05a8a5a22b69a21c9c077bebc54f56;hpb=75740198fa0c55f8fdcd8b33ddff00071c893a94;p=cpPlugins.git diff --git a/lib/cpPlugins/Interface/Image.hxx b/lib/cpPlugins/Interface/Image.hxx index 640e01c..8c31dca 100644 --- a/lib/cpPlugins/Interface/Image.hxx +++ b/lib/cpPlugins/Interface/Image.hxx @@ -1,9 +1,10 @@ #ifndef __CPPLUGINS__INTERFACE__IMAGE__HXX__ #define __CPPLUGINS__INTERFACE__IMAGE__HXX__ -#include +#include #include +#include #include #include @@ -15,231 +16,29 @@ #include // ------------------------------------------------------------------------- -#define cpPlugins_Image_Demangle( TI, T, D, o ) \ - if( typeid( typename TI::PixelType ) == typeid( T ) ) \ +#define cpPlugins_VTKImage_Demangle( TI, T, D, o ) \ + if( typeid( TI ) == typeid( itk::Image< T, D > ) ) \ this->_ITK_2_VTK< T, D >( o ) // ------------------------------------------------------------------------- -#define cpPlugins_ImageArray_Demangle( TI, T, P, DP, DI, o ) \ - if( typeid( typename TI::PixelType ) == typeid( T< P, DP > ) ) \ +#define cpPlugins_VTKImageArray_Demangle( TI, T, P, DP, DI, o ) \ + if( typeid( TI ) == typeid( itk::Image< T< P, DP >, DI > ) ) \ this->_ITK_2_VTK< T< P, DP >, DI >( o ) // ------------------------------------------------------------------------- -#define cpPlugins_Image_Demangle_Dimension( TI, D, o ) \ - cpPlugins_Image_Demangle( TI, char, D, o ); \ - else cpPlugins_Image_Demangle( TI, short, D, o ); \ - else cpPlugins_Image_Demangle( TI, int, D, o ); \ - else cpPlugins_Image_Demangle( TI, long, D, o ); \ - else cpPlugins_Image_Demangle( TI, float, D, o ); \ - else cpPlugins_Image_Demangle( TI, double, D, o ); \ - else cpPlugins_Image_Demangle( TI, unsigned char, D, o ); \ - else cpPlugins_Image_Demangle( TI, unsigned short, D, o ); \ - else cpPlugins_Image_Demangle( TI, unsigned int, D, o ); \ - else cpPlugins_Image_Demangle( TI, unsigned long, D, o ); \ - else cpPlugins_Image_Demangle( TI, itk::RGBPixel< char >, D, o ); \ - else cpPlugins_Image_Demangle( TI, itk::RGBPixel< short >, D, o ); \ - else cpPlugins_Image_Demangle( \ - TI, itk::RGBPixel< unsigned char >, D, o \ - ); \ - else cpPlugins_Image_Demangle( \ - TI, itk::RGBPixel< unsigned short >, D, o \ - ); \ - else cpPlugins_Image_Demangle( TI, itk::RGBAPixel< char >, D, o ); \ - else cpPlugins_Image_Demangle( TI, itk::RGBAPixel< short >, D, o ); \ - else cpPlugins_Image_Demangle( \ - TI, itk::RGBAPixel< unsigned char >, D, o \ - ); \ - else cpPlugins_Image_Demangle( \ - TI, itk::RGBAPixel< unsigned short >, D, o \ - ); \ - else cpPlugins_ImageArray_Demangle( \ - TI, itk::Vector, float, D, D, o \ - ); \ - else cpPlugins_ImageArray_Demangle( \ - TI, itk::Vector, double, D, D, o \ - ); \ - else cpPlugins_ImageArray_Demangle( \ - TI, itk::CovariantVector, float, D, D, o \ - ); \ - else cpPlugins_ImageArray_Demangle( \ - TI, itk::CovariantVector, double, D, D, o \ - ); \ - else cpPlugins_ImageArray_Demangle( TI, itk::Point, float, D, D, o ); \ - else cpPlugins_ImageArray_Demangle( \ - TI, itk::Point, double, D, D, o \ - ); \ - else cpPlugins_ImageArray_Demangle( \ - TI, itk::SymmetricSecondRankTensor, float, D, D, o \ - ); \ - else cpPlugins_ImageArray_Demangle( \ - TI, itk::SymmetricSecondRankTensor, double, D, D, o \ - ) - -// ------------------------------------------------------------------------- -#define cpPlugins_Image_Import( T, D ) \ - cpPlugins_TEMPLATE_IMPORT( \ - 2(class cpPlugins_Interface_EXPORT itk::Image< T, D >) \ - ) - -// ------------------------------------------------------------------------- -#define cpPlugins_VTKImage_Import( T, D ) \ - cpPlugins_TEMPLATE_IMPORT( \ - 2( \ - class cpPlugins_Interface_EXPORT \ - itk::ImageToVTKImageFilter< itk::Image< T, D > > \ - ) \ - ) - -// ------------------------------------------------------------------------- -#define cpPlugins_ImageArray_Import( A, T, DA, DI ) \ - cpPlugins_TEMPLATE_IMPORT( \ - 3( \ - class cpPlugins_Interface_EXPORT \ - itk::Image< itk::A< T, DA >, DI > \ - ) \ - ) - -// ------------------------------------------------------------------------- -#define cpPlugins_VTKImageArray_Import( A, T, DA, DI ) \ - cpPlugins_TEMPLATE_IMPORT( \ - 3( \ - class cpPlugins_Interface_EXPORT \ - itk::ImageToVTKImageFilter< itk::Image< itk::A< T, DA >, DI > > \ - ) \ - ) - -// ------------------------------------------------------------------------- -#define cpPlugins_Image_Import_AllDimensions( T ) \ - cpPlugins_Image_Import( T, 2 ); \ - cpPlugins_Image_Import( T, 3 ); \ - cpPlugins_Image_Import( T, 4 ) - -// ------------------------------------------------------------------------- -#define cpPlugins_VTKImage_Import_AllDimensions( T ) \ - cpPlugins_VTKImage_Import( T, 2 ); \ - cpPlugins_VTKImage_Import( T, 3 ) - -// ------------------------------------------------------------------------- -#define cpPlugins_ImageArray_Import_AllDimensions( A, T ) \ - cpPlugins_ImageArray_Import( A, T, 2, 2 ); \ - cpPlugins_ImageArray_Import( A, T, 3, 3 ); \ - cpPlugins_ImageArray_Import( A, T, 4, 4 ) - -// ------------------------------------------------------------------------- -#define cpPlugins_VTKImageArray_Import_AllDimensions( A, T ) \ - cpPlugins_VTKImageArray_Import( A, T, 2, 2 ); \ - cpPlugins_VTKImageArray_Import( A, T, 3, 3 ) +#define cpPlugins_VTKImage_Demangle_AllDims( TI, T, o ) \ + cpPlugins_VTKImage_Demangle( TI, T, 2, o ); \ + else cpPlugins_VTKImage_Demangle( TI, T, 3, o ) // ------------------------------------------------------------------------- -// ITK base clases -cpPlugins_Image_Import_AllDimensions( char ); -cpPlugins_Image_Import_AllDimensions( short ); -cpPlugins_Image_Import_AllDimensions( int ); -cpPlugins_Image_Import_AllDimensions( long ); -cpPlugins_Image_Import_AllDimensions( unsigned char ); -cpPlugins_Image_Import_AllDimensions( unsigned short ); -cpPlugins_Image_Import_AllDimensions( unsigned int ); -cpPlugins_Image_Import_AllDimensions( unsigned long ); -cpPlugins_Image_Import_AllDimensions( float ); -cpPlugins_Image_Import_AllDimensions( double ); - -cpPlugins_Image_Import_AllDimensions( std::complex< float > ); -cpPlugins_Image_Import_AllDimensions( std::complex< double > ); - -cpPlugins_Image_Import_AllDimensions( itk::RGBPixel< char > ); -cpPlugins_Image_Import_AllDimensions( itk::RGBPixel< short > ); -cpPlugins_Image_Import_AllDimensions( itk::RGBPixel< int > ); -cpPlugins_Image_Import_AllDimensions( itk::RGBPixel< long > ); -cpPlugins_Image_Import_AllDimensions( itk::RGBPixel< unsigned char > ); -cpPlugins_Image_Import_AllDimensions( itk::RGBPixel< unsigned short > ); -cpPlugins_Image_Import_AllDimensions( itk::RGBPixel< unsigned int > ); -cpPlugins_Image_Import_AllDimensions( itk::RGBPixel< unsigned long > ); - -cpPlugins_Image_Import_AllDimensions( itk::RGBAPixel< char > ); -cpPlugins_Image_Import_AllDimensions( itk::RGBAPixel< short > ); -cpPlugins_Image_Import_AllDimensions( itk::RGBAPixel< int > ); -cpPlugins_Image_Import_AllDimensions( itk::RGBAPixel< long > ); -cpPlugins_Image_Import_AllDimensions( itk::RGBAPixel< unsigned char > ); -cpPlugins_Image_Import_AllDimensions( itk::RGBAPixel< unsigned short > ); -cpPlugins_Image_Import_AllDimensions( itk::RGBAPixel< unsigned int > ); -cpPlugins_Image_Import_AllDimensions( itk::RGBAPixel< unsigned long > ); - -cpPlugins_ImageArray_Import_AllDimensions( Vector, float ); -cpPlugins_ImageArray_Import_AllDimensions( Vector, double ); - -cpPlugins_ImageArray_Import_AllDimensions( CovariantVector, float ); -cpPlugins_ImageArray_Import_AllDimensions( CovariantVector, double ); - -cpPlugins_ImageArray_Import_AllDimensions( Point, float ); -cpPlugins_ImageArray_Import_AllDimensions( Point, double ); - -cpPlugins_ImageArray_Import_AllDimensions( - SymmetricSecondRankTensor, float - ); -cpPlugins_ImageArray_Import_AllDimensions( - SymmetricSecondRankTensor, double - ); - -cpPlugins_Image_Import( itk::DiffusionTensor3D< float >, 3 ); -cpPlugins_Image_Import( itk::DiffusionTensor3D< double >, 3 ); -cpPlugins_Image_Import( itk::Offset< 2 >, 2 ); -cpPlugins_Image_Import( itk::Offset< 3 >, 3 ); -cpPlugins_Image_Import( itk::Offset< 4 >, 4 ); - -// ------------------------------------------------------------------------- -// ITK<->VTK base clases -cpPlugins_VTKImage_Import_AllDimensions( char ); -cpPlugins_VTKImage_Import_AllDimensions( short ); -cpPlugins_VTKImage_Import_AllDimensions( int ); -cpPlugins_VTKImage_Import_AllDimensions( long ); -cpPlugins_VTKImage_Import_AllDimensions( unsigned char ); -cpPlugins_VTKImage_Import_AllDimensions( unsigned short ); -cpPlugins_VTKImage_Import_AllDimensions( unsigned int ); -cpPlugins_VTKImage_Import_AllDimensions( unsigned long ); -cpPlugins_VTKImage_Import_AllDimensions( float ); -cpPlugins_VTKImage_Import_AllDimensions( double ); - -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBPixel< char > ); -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBPixel< short > ); -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBPixel< int > ); -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBPixel< long > ); -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBPixel< unsigned char > ); -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBPixel< unsigned short > ); -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBPixel< unsigned int > ); -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBPixel< unsigned long > ); - -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBAPixel< char > ); -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBAPixel< short > ); -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBAPixel< int > ); -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBAPixel< long > ); -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBAPixel< unsigned char > ); -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBAPixel< unsigned short > ); -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBAPixel< unsigned int > ); -cpPlugins_VTKImage_Import_AllDimensions( itk::RGBAPixel< unsigned long > ); - -cpPlugins_VTKImageArray_Import_AllDimensions( Vector, float ); -cpPlugins_VTKImageArray_Import_AllDimensions( Vector, double ); - -cpPlugins_VTKImageArray_Import_AllDimensions( CovariantVector, float ); -cpPlugins_VTKImageArray_Import_AllDimensions( CovariantVector, double ); - -cpPlugins_VTKImageArray_Import_AllDimensions( Point, float ); -cpPlugins_VTKImageArray_Import_AllDimensions( Point, double ); - -cpPlugins_VTKImageArray_Import_AllDimensions( - SymmetricSecondRankTensor, float - ); -cpPlugins_VTKImageArray_Import_AllDimensions( - SymmetricSecondRankTensor, double - ); - -cpPlugins_VTKImage_Import( itk::DiffusionTensor3D< float >, 3 ); -cpPlugins_VTKImage_Import( itk::DiffusionTensor3D< double >, 3 ); +#define cpPlugins_VTKImageArray_Demangle_AllDims( TI, T, P, o ) \ + cpPlugins_VTKImageArray_Demangle( TI, T, P, 2, 2, o ); \ + else cpPlugins_VTKImageArray_Demangle( TI, T, P, 3, 3, o ) // ------------------------------------------------------------------------- template< class I > void cpPlugins::Interface::Image:: -SetITKImage( itk::DataObject* object ) +SetITK( itk::Object* object ) { // Check if input object has the desired type I* image = dynamic_cast< I* >( object ); @@ -252,33 +51,53 @@ SetITKImage( itk::DataObject* object ) } // fi + // --------- TODO --------------- + typename I::DirectionType norm_dir; + norm_dir.SetIdentity( ); + image->SetDirection( norm_dir ); + // --------- TODO --------------- + // Connect it to VTK - if( I::ImageDimension == 2 ) - { - cpPlugins_Image_Demangle_Dimension( I, 2, object ); - else - { - this->m_VTKObject = NULL; - this->m_ITKvVTKConnection = NULL; - - } // fi - } - else if( I::ImageDimension == 3 ) - { - cpPlugins_Image_Demangle_Dimension( I, 3, object ); - else cpPlugins_Image_Demangle( - I, itk::DiffusionTensor3D< float >, 3, object - ); - else cpPlugins_Image_Demangle( - I, itk::DiffusionTensor3D< double >, 3, object - ); - else - { - this->m_VTKObject = NULL; - this->m_ITKvVTKConnection = NULL; - - } // fi - } + cpPlugins_VTKImage_Demangle_AllDims( I, char, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, short, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, int, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, long, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, unsigned char, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, unsigned short, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, unsigned int, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, unsigned long, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, float, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, double, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBPixel< char >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBPixel< short >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBPixel< int >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBPixel< long >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBPixel< unsigned char >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBPixel< unsigned short >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBPixel< unsigned int >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBPixel< unsigned long >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBPixel< float >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBPixel< double >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBAPixel< char >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBAPixel< short >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBAPixel< int >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBAPixel< long >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBAPixel< unsigned char >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBAPixel< unsigned short >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBAPixel< unsigned int >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBAPixel< unsigned long >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBAPixel< float >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::RGBAPixel< double >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::DiffusionTensor3D< float >, image ); + else cpPlugins_VTKImage_Demangle_AllDims( I, itk::DiffusionTensor3D< double >, image ); + else cpPlugins_VTKImageArray_Demangle_AllDims( I, itk::Vector, float, image ); + else cpPlugins_VTKImageArray_Demangle_AllDims( I, itk::Vector, double, image ); + else cpPlugins_VTKImageArray_Demangle_AllDims( I, itk::CovariantVector, float, image ); + else cpPlugins_VTKImageArray_Demangle_AllDims( I, itk::CovariantVector, double, image ); + else cpPlugins_VTKImageArray_Demangle_AllDims( I, itk::Point, float, image ); + else cpPlugins_VTKImageArray_Demangle_AllDims( I, itk::Point, double, image ); + else cpPlugins_VTKImageArray_Demangle_AllDims( I, itk::SymmetricSecondRankTensor, float, image ); + else cpPlugins_VTKImageArray_Demangle_AllDims( I, itk::SymmetricSecondRankTensor, double, image ); else { this->m_VTKObject = NULL; @@ -291,26 +110,10 @@ SetITKImage( itk::DataObject* object ) this->Modified( ); } -// ------------------------------------------------------------------------- -template< class I > -I* cpPlugins::Interface::Image:: -GetITKImage( ) -{ - return( dynamic_cast< I* >( this->m_ITKObject.GetPointer( ) ) ); -} - -// ------------------------------------------------------------------------- -template< class I > -const I* cpPlugins::Interface::Image:: -GetITKImage( ) const -{ - return( dynamic_cast< const I* >( this->m_ITKObject.GetPointer( ) ) ); -} - // ------------------------------------------------------------------------- template< class P, unsigned int D > void cpPlugins::Interface::Image:: -_ITK_2_VTK( itk::DataObject* object ) +_ITK_2_VTK( itk::Object* object ) { typedef itk::Image< P, D > _I; @@ -330,6 +133,236 @@ _ITK_2_VTK( itk::DataObject* object ) this->m_ITKvVTKConnection = f; } +#ifndef cpPlugins_Interface_EXPORTS + +// ========================================================================= +// ========== Declare import itk::Image types ========== +// ========================================================================= + +// ------------------------------------------------------------------------- +#define cpPlugins_ITKImage_Import( T, D ) \ + cpPlugins_TEMPLATE_IMPORT( \ + 2(class cpPlugins_Interface_EXPORT itk::Image< T, D >) \ + ) + +// ------------------------------------------------------------------------- +#define cpPlugins_ITKArrayImage_Import( A, T, DA, DI ) \ + cpPlugins_TEMPLATE_IMPORT( \ + 3(class cpPlugins_Interface_EXPORT itk::Image< A< T, DA >, DI >) \ + ) + +// ------------------------------------------------------------------------- +#define cpPlugins_ITKImage_AllDims_Import( T ) \ + cpPlugins_ITKImage_Import( T, 2 ); \ + cpPlugins_ITKImage_Import( T, 3 ); \ + cpPlugins_ITKImage_Import( T, 4 ) + +// ------------------------------------------------------------------------- +#define cpPlugins_ITKArrayImage_AllDims_Import( A, T ) \ + cpPlugins_ITKArrayImage_Import( A, T, 2, 2 ); \ + cpPlugins_ITKArrayImage_Import( A, T, 3, 3 ); \ + cpPlugins_ITKArrayImage_Import( A, T, 4, 4 ) + +// ------------------------------------------------------------------------- +#define cpPlugins_VTKImage_Import( T, D ) \ + cpPlugins_TEMPLATE_IMPORT( \ + 2( \ + class cpPlugins_Interface_EXPORT \ + itk::ImageToVTKImageFilter< itk::Image< T, D > > \ + ) \ + ) + +// ------------------------------------------------------------------------- +#define cpPlugins_VTKArrayImage_Import( A, T, DA, DI ) \ + cpPlugins_TEMPLATE_IMPORT( \ + 3(class \ + cpPlugins_Interface_EXPORT \ + itk::ImageToVTKImageFilter< itk::Image< A< T, DA >, DI > >) \ + ) + +// ------------------------------------------------------------------------- +#define cpPlugins_VTKImage_AllDims_Import( T ) \ + cpPlugins_VTKImage_Import( T, 2 ); \ + cpPlugins_VTKImage_Import( T, 3 ) + +// ------------------------------------------------------------------------- +#define cpPlugins_VTKArrayImage_AllDims_Import( A, T ) \ + cpPlugins_VTKArrayImage_Import( A, T, 2, 2 ); \ + cpPlugins_VTKArrayImage_Import( A, T, 3, 3 ) + +// ------------------------------------------------------------------------- +#define cpPlugins_Image_Import( T, D ) \ + cpPlugins_ITKImage_Import( T, D ); \ + cpPlugins_VTKImage_Import( T, D ) \ + +// ------------------------------------------------------------------------- +#define cpPlugins_Image_AllDims_Import( T ) \ + cpPlugins_ITKImage_AllDims_Import( T ); \ + cpPlugins_VTKImage_AllDims_Import( T ) \ + +// ------------------------------------------------------------------------- +#define cpPlugins_ArrayImage_AllDims_Import( A, T ) \ + cpPlugins_ITKArrayImage_AllDims_Import( A, T ); \ + cpPlugins_VTKArrayImage_AllDims_Import( A, T ) \ + +// ------------------------------------------------------------------------- +// ITK-VTK base clases +// ------------------------------------------------------------------------- + +cpPlugins_Image_AllDims_Import( char ); +cpPlugins_Image_AllDims_Import( short ); +cpPlugins_Image_AllDims_Import( int ); +cpPlugins_Image_AllDims_Import( long ); +cpPlugins_Image_AllDims_Import( unsigned char ); +cpPlugins_Image_AllDims_Import( unsigned short ); +cpPlugins_Image_AllDims_Import( unsigned int ); +cpPlugins_Image_AllDims_Import( unsigned long ); +cpPlugins_Image_AllDims_Import( float ); +cpPlugins_Image_AllDims_Import( double ); + +cpPlugins_Image_AllDims_Import( itk::RGBPixel< char > ); +cpPlugins_Image_AllDims_Import( itk::RGBPixel< short > ); +cpPlugins_Image_AllDims_Import( itk::RGBPixel< int > ); +cpPlugins_Image_AllDims_Import( itk::RGBPixel< long > ); +cpPlugins_Image_AllDims_Import( itk::RGBPixel< unsigned char > ); +cpPlugins_Image_AllDims_Import( itk::RGBPixel< unsigned short > ); +cpPlugins_Image_AllDims_Import( itk::RGBPixel< unsigned int > ); +cpPlugins_Image_AllDims_Import( itk::RGBPixel< unsigned long > ); +cpPlugins_Image_AllDims_Import( itk::RGBPixel< float > ); +cpPlugins_Image_AllDims_Import( itk::RGBPixel< double > ); + +cpPlugins_Image_AllDims_Import( itk::RGBAPixel< char > ); +cpPlugins_Image_AllDims_Import( itk::RGBAPixel< short > ); +cpPlugins_Image_AllDims_Import( itk::RGBAPixel< int > ); +cpPlugins_Image_AllDims_Import( itk::RGBAPixel< long > ); +cpPlugins_Image_AllDims_Import( itk::RGBAPixel< unsigned char > ); +cpPlugins_Image_AllDims_Import( itk::RGBAPixel< unsigned short > ); +cpPlugins_Image_AllDims_Import( itk::RGBAPixel< unsigned int > ); +cpPlugins_Image_AllDims_Import( itk::RGBAPixel< unsigned long > ); +cpPlugins_Image_AllDims_Import( itk::RGBAPixel< float > ); +cpPlugins_Image_AllDims_Import( itk::RGBAPixel< double > ); + +cpPlugins_Image_AllDims_Import( itk::DiffusionTensor3D< float > ); +cpPlugins_Image_AllDims_Import( itk::DiffusionTensor3D< double > ); + +cpPlugins_ArrayImage_AllDims_Import( itk::Vector, float ); +cpPlugins_ArrayImage_AllDims_Import( itk::Vector, double ); + +cpPlugins_ArrayImage_AllDims_Import( itk::CovariantVector, float ); +cpPlugins_ArrayImage_AllDims_Import( itk::CovariantVector, double ); + +cpPlugins_ArrayImage_AllDims_Import( itk::Point, float ); +cpPlugins_ArrayImage_AllDims_Import( itk::Point, double ); + +cpPlugins_ArrayImage_AllDims_Import( itk::SymmetricSecondRankTensor, float ); +cpPlugins_ArrayImage_AllDims_Import( itk::SymmetricSecondRankTensor, double ); + +// ------------------------------------------------------------------------- +// ITK-only base clases +// ------------------------------------------------------------------------- + +cpPlugins_ITKImage_AllDims_Import( std::complex< float > ); +cpPlugins_ITKImage_AllDims_Import( std::complex< double > ); + +cpPlugins_ITKImage_Import( itk::Offset< 2 >, 2 ); +cpPlugins_ITKImage_Import( itk::Offset< 3 >, 3 ); +cpPlugins_ITKImage_Import( itk::Offset< 4 >, 4 ); + +// ========================================================================= +// ========== Declare import itk::VectorImage types ========== +// ========================================================================= + +// ------------------------------------------------------------------------- +#define cpPlugins_VectorImage_Import( T, D ) \ + cpPlugins_TEMPLATE_IMPORT( \ + 2(class cpPlugins_Interface_EXPORT itk::VectorImage< T, D >) \ + ) + +// ------------------------------------------------------------------------- +#define cpPlugins_ArrayVectorImage_Import( A, T, DA, DI ) \ + cpPlugins_TEMPLATE_IMPORT( \ + 3(class \ + cpPlugins_Interface_EXPORT \ + itk::VectorImage< A< T, DA >, DI >) \ + ) + +// ------------------------------------------------------------------------- +#define cpPlugins_VectorImage_AllDims_Import( T ) \ + cpPlugins_VectorImage_Import( T, 2 ); \ + cpPlugins_VectorImage_Import( T, 3 ); \ + cpPlugins_VectorImage_Import( T, 4 ) + +// ------------------------------------------------------------------------- +#define cpPlugins_ArrayVectorImage_AllDims_Import( A, T ) \ + cpPlugins_ArrayVectorImage_Import( A, T, 2, 2 ); \ + cpPlugins_ArrayVectorImage_Import( A, T, 3, 3 ); \ + cpPlugins_ArrayVectorImage_Import( A, T, 4, 4 ) + +// ------------------------------------------------------------------------- +// ITK-VTK base clases +// ------------------------------------------------------------------------- + +cpPlugins_VectorImage_AllDims_Import( char ); +cpPlugins_VectorImage_AllDims_Import( short ); +cpPlugins_VectorImage_AllDims_Import( int ); +cpPlugins_VectorImage_AllDims_Import( long ); +cpPlugins_VectorImage_AllDims_Import( unsigned char ); +cpPlugins_VectorImage_AllDims_Import( unsigned short ); +cpPlugins_VectorImage_AllDims_Import( unsigned int ); +cpPlugins_VectorImage_AllDims_Import( unsigned long ); +cpPlugins_VectorImage_AllDims_Import( float ); +cpPlugins_VectorImage_AllDims_Import( double ); + +cpPlugins_VectorImage_AllDims_Import( std::complex< float > ); +cpPlugins_VectorImage_AllDims_Import( std::complex< double > ); + +cpPlugins_VectorImage_Import( itk::Offset< 2 >, 2 ); +cpPlugins_VectorImage_Import( itk::Offset< 3 >, 3 ); +cpPlugins_VectorImage_Import( itk::Offset< 4 >, 4 ); + +cpPlugins_VectorImage_AllDims_Import( itk::RGBPixel< char > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBPixel< short > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBPixel< int > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBPixel< long > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBPixel< unsigned char > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBPixel< unsigned short > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBPixel< unsigned int > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBPixel< unsigned long > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBPixel< float > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBPixel< double > ); + +cpPlugins_VectorImage_AllDims_Import( itk::RGBAPixel< char > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBAPixel< short > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBAPixel< int > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBAPixel< long > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBAPixel< unsigned char > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBAPixel< unsigned short > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBAPixel< unsigned int > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBAPixel< unsigned long > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBAPixel< float > ); +cpPlugins_VectorImage_AllDims_Import( itk::RGBAPixel< double > ); + +cpPlugins_VectorImage_AllDims_Import( itk::DiffusionTensor3D< float > ); +cpPlugins_VectorImage_AllDims_Import( itk::DiffusionTensor3D< double > ); + +cpPlugins_ArrayVectorImage_AllDims_Import( itk::Vector, float ); +cpPlugins_ArrayVectorImage_AllDims_Import( itk::Vector, double ); + +cpPlugins_ArrayVectorImage_AllDims_Import( itk::CovariantVector, float ); +cpPlugins_ArrayVectorImage_AllDims_Import( itk::CovariantVector, double ); + +cpPlugins_ArrayVectorImage_AllDims_Import( itk::Point, float ); +cpPlugins_ArrayVectorImage_AllDims_Import( itk::Point, double ); + +cpPlugins_ArrayVectorImage_AllDims_Import( + itk::SymmetricSecondRankTensor, float + ); +cpPlugins_ArrayVectorImage_AllDims_Import( + itk::SymmetricSecondRankTensor, double + ); + +#endif // cpPlugins_Interface_EXPORTS + #endif // __CPPLUGINS__INTERFACE__IMAGE__HXX__ // eof - $RCSfile$