#ifndef __CPPLUGINS__INTERFACE__IMAGE__HXX__
#define __CPPLUGINS__INTERFACE__IMAGE__HXX__
-#include <cpPlugins/Interface/Macros.h>
+#include <complex>
#include <itkImage.h>
+#include <itkVectorImage.h>
#include <itkImageToVTKImageFilter.h>
#include <itkCovariantVector.h>
#include <itkVector.h>
// -------------------------------------------------------------------------
-#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 )
-
-// -------------------------------------------------------------------------
-// ITK base clases
-
-#ifndef cpPlugins_Interface_EXPORTS
-
-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 );
+#define cpPlugins_VTKImage_Demangle_AllDims( TI, T, o ) \
+ cpPlugins_VTKImage_Demangle( TI, T, 2, o ); \
+ else cpPlugins_VTKImage_Demangle( TI, T, 3, o )
// -------------------------------------------------------------------------
-// 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::RGBPixel< float > );
-cpPlugins_VTKImage_Import_AllDimensions( itk::RGBPixel< double > );
-
-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_VTKImage_Import_AllDimensions( itk::RGBAPixel< float > );
-cpPlugins_VTKImage_Import_AllDimensions( itk::RGBAPixel< double > );
-
-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 );
-
-#endif // cpPlugins_Interface_EXPORTS
+#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 );
} // 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;
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;
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$