1 #ifndef __cpPlugins__DataObjects__Image__hxx__
2 #define __cpPlugins__DataObjects__Image__hxx__
4 #include <itkImageToVTKImageFilter.h>
5 #include <itkVTKImageToImageFilter.h>
6 #include <itkImageToVTKImageFilter.hxx>
7 #include <itkVTKImageToImageFilter.hxx>
8 #include <itkVTKImageExport.hxx>
9 #include <itkVTKImageImport.hxx>
11 // -------------------------------------------------------------------------
12 template< unsigned int _VDim >
13 void cpPlugins::DataObjects::Image::
14 _ITK_2_VTK_0( itk::ImageBase< _VDim >* image )
16 cpPlugins_Demangle_ImageIntegers( image, _ITK_2_VTK_1, _VDim );
17 else cpPlugins_Demangle_ImageReals( image, _ITK_2_VTK_1, _VDim );
18 else cpPlugins_Demangle_ImageColors( image, _ITK_2_VTK_1, _VDim );
19 else cpPlugins_Demangle_ImageFixedArrays( image, _ITK_2_VTK_1, _VDim );
20 else cpPlugins_Demangle_ImageCovariantVectors( image, _ITK_2_VTK_1, _VDim );
21 else cpPlugins_Demangle_ImagePoints( image, _ITK_2_VTK_1, _VDim );
22 else cpPlugins_Demangle_ImageVectors( image, _ITK_2_VTK_1, _VDim );
23 else cpPlugins_Demangle_ImageSymmetricSecondRankTensors( image, _ITK_2_VTK_1, _VDim );
27 this->m_ITKvVTK = NULL;
32 // -------------------------------------------------------------------------
33 template< class _TImage >
34 void cpPlugins::DataObjects::Image::
35 _ITK_2_VTK_1( _TImage* image )
37 typedef itk::ImageToVTKImageFilter< _TImage > _TFilter;
38 _TFilter* f = dynamic_cast< _TFilter* >( this->m_ITKvVTK.GetPointer( ) );
41 typename _TFilter::Pointer nf = _TFilter::New( );
51 this->m_VTK = f->GetOutput( );
54 // -------------------------------------------------------------------------
55 template< class _TPixel >
56 void cpPlugins::DataObjects::Image::
57 _VTK_2_ITK_0( vtkImageData* image )
59 if( image->GetDataDimension( ) == 2 )
60 this->_VTK_2_ITK_1< _TPixel, 2 >( image );
61 else if( image->GetDataDimension( ) == 3 )
62 this->_VTK_2_ITK_1< _TPixel, 3 >( image );
66 this->m_ITKvVTK = NULL;
71 // -------------------------------------------------------------------------
72 template< class _TPixel, unsigned int _VDim >
73 void cpPlugins::DataObjects::Image::
74 _VTK_2_ITK_1( vtkImageData* image )
76 typedef itk::Image< _TPixel, _VDim > _TImage;
77 typedef itk::VTKImageToImageFilter< _TImage > _TFilter;
78 _TFilter* f = dynamic_cast< _TFilter* >( this->m_ITKvVTK.GetPointer( ) );
80 std::cout << typeid( _TImage ).name( ) << std::endl;
84 typename _TFilter::Pointer nf = _TFilter::New( );
94 this->m_ITK = f->GetOutput( );
97 #endif // __cpPlugins__DataObjects__Image__hxx__