]> Creatis software - cpPlugins.git/blobdiff - plugins/IO/ImageWriter.cxx
...
[cpPlugins.git] / plugins / IO / ImageWriter.cxx
index a8b30b4321cc78f504d8a4a67627d12cf2b17587..94a822bd2ab1d8f781f85779759558225215658f 100644 (file)
@@ -1,7 +1,10 @@
-#include <plugins/IO/ImageWriter.h>
-#include <plugins/IO/ImageWriterQDialog.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances_ImageWriters.h>
+#include <IO/ImageWriter.h>
+#include <IO/ImageWriterQDialog.h>
+#include <cpPlugins/DataObjects/Image.h>
+#include <cpPlugins/DataObjects/Image_Demanglers.h>
+#include <cpInstances_SimpleImages.h>
+
+#include <itkImageFileWriter.h>
 
 #ifdef cpPlugins_QT4
 
@@ -28,7 +31,7 @@ cpPluginsIO::ImageWriterQDialog::
 
 // -------------------------------------------------------------------------
 void cpPluginsIO::ImageWriterQDialog::
-setProcessObject( cpPlugins::ProcessObject* obj )
+setProcessObject( cpPlugins::BaseObjects::ProcessObject* obj )
 {
   if( obj == NULL )
     return;
@@ -95,7 +98,7 @@ cpPluginsIO::ImageWriter::
 ImageWriter( )
   : Superclass( )
 {
-  this->_AddInput( "Input" );
+  this->_ConfigureInput< cpPlugins::DataObjects::Image >( "Input", true, false );
   this->m_Parameters.Clear( );
   this->m_Parameters.ConfigureAsSaveFileName( "FileName" );
   this->m_Parameters.SetAcceptedFileExtensions(
@@ -114,13 +117,10 @@ cpPluginsIO::ImageWriter::
 void cpPluginsIO::ImageWriter::
 _GenerateData( )
 {
-  auto image = this->GetInputData( "Input" );
-  cpPlugins_Image_Demangle_Dim( _GD0, image, 1 );
-  else cpPlugins_Image_Demangle_Dim( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Dim( _GD0, image, 3 );
-  else cpPlugins_Image_Demangle_Dim( _GD0, image, 4 );
-  else
-    this->_Error( "Invalid input itk::ImageBase" );
+  auto o = this->GetInputData( "Input" );
+  cpPlugins_Demangle_Image_ProcessDims( o, _GD0, )
+    cpPlugins_Demangle_Image_DiffTensors3D( o, _GD1, )
+    this->_Error( "Invalid input image dimension." );
 }
 
 // -------------------------------------------------------------------------
@@ -128,12 +128,11 @@ template< class _TImage >
 void cpPluginsIO::ImageWriter::
 _GD0( _TImage* image )
 {
-  static const unsigned int D = _TImage::ImageDimension;
-  cpPlugins_Image_Demangle_Pixel_AllScalars          ( _GD1, image, D );
-  else cpPlugins_Image_Demangle_ColorPixel_AllScalars( _GD1, image, RGB, D );
-  else cpPlugins_Image_Demangle_ColorPixel_AllScalars( _GD1, image, RGBA, D );
-  else
-    this->_Error( "Invalid pixel type" );
+  cpPlugins_Demangle_Image_ScalarPixels( image, _GD1, _TImage::ImageDimension, )
+    cpPlugins_Demangle_Image_ComplexPixels( image, _GD1, _TImage::ImageDimension, )
+    cpPlugins_Demangle_Image_ColorPixels( image, _GD1, _TImage::ImageDimension, )
+    cpPlugins_Demangle_Image_VectorPixels( image, _GD1, _TImage::ImageDimension, )
+    this->_Error( "Invalid input image pixel type." );
 }
 
 // -------------------------------------------------------------------------
@@ -142,6 +141,7 @@ void cpPluginsIO::ImageWriter::
 _GD1( _TImage* image )
 {
   typedef itk::ImageFileWriter< _TImage > _TFilter;
+
   auto f = this->_CreateITK< _TFilter >( );
   f->SetFileName( this->m_Parameters.GetSaveFileName( "FileName" ) );
   f->SetInput( image );