]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/DataObjects/Image.hxx
Spline widget finished.
[cpPlugins.git] / lib / cpPlugins / DataObjects / Image.hxx
index ea76d1e2ae8f45411430de08caf7126d7a8be0f1..3b0bd8e1e1432b519f7ccf22ba71b12533d37d50 100644 (file)
@@ -2,8 +2,11 @@
 #define __cpPlugins__DataObjects__Image__hxx__
 
 #include <itkImageToVTKImageFilter.h>
+#include <itkVTKImageToImageFilter.h>
 #include <itkImageToVTKImageFilter.hxx>
+#include <itkVTKImageToImageFilter.hxx>
 #include <itkVTKImageExport.hxx>
+#include <itkVTKImageImport.hxx>
 
 // -------------------------------------------------------------------------
 template< unsigned int _VDim >
@@ -48,6 +51,49 @@ _ITK_2_VTK_1( _TImage* image )
   this->m_VTK = f->GetOutput( );
 }
 
+// -------------------------------------------------------------------------
+template< class _TPixel >
+void cpPlugins::DataObjects::Image::
+_VTK_2_ITK_0( vtkImageData* image )
+{
+  if( image->GetDataDimension( ) == 2 )
+    this->_VTK_2_ITK_1< _TPixel, 2 >( image );
+  else if( image->GetDataDimension( ) == 3 )
+    this->_VTK_2_ITK_1< _TPixel, 3 >( image );
+  else
+  {
+    this->m_ITK = NULL;
+    this->m_ITKvVTK = NULL;
+
+  } // fi
+}
+
+// -------------------------------------------------------------------------
+template< class _TPixel, unsigned int _VDim >
+void cpPlugins::DataObjects::Image::
+_VTK_2_ITK_1( vtkImageData* image )
+{
+  typedef itk::Image< _TPixel, _VDim > _TImage;
+  typedef itk::VTKImageToImageFilter< _TImage > _TFilter;
+  _TFilter* f = dynamic_cast< _TFilter* >( this->m_ITKvVTK.GetPointer( ) );
+
+  std::cout << typeid( _TImage ).name( ) << std::endl;
+
+  if( f == NULL )
+  {
+    typename _TFilter::Pointer nf = _TFilter::New( );
+    this->m_ITKvVTK = nf;
+    f = nf.GetPointer( );
+
+  } // fi
+  f->SetInput( image );
+  f->Update( );
+
+  // Keep object track
+  this->m_VTK = image;
+  this->m_ITK = f->GetOutput( );
+}
+
 #endif // __cpPlugins__DataObjects__Image__hxx__
 
 // eof - $RCSfile$