]> Creatis software - cpPlugins.git/blobdiff - plugins/cpExtensions/PolyLineParametricPathWriter.cxx
...
[cpPlugins.git] / plugins / cpExtensions / PolyLineParametricPathWriter.cxx
index 7ee1be3d55140890801a3d17d4ed85765232817a..400d3eb33761254bc27db56626820e568702c268 100644 (file)
@@ -1,6 +1,8 @@
 #include <cpExtensions/PolyLineParametricPathWriter.h>
+#include <cpInstances/DataObjects/Image.h>
 #include <cpInstances/DataObjects/PolyLineParametricPath.h>
 
+#include <itkImage.h>
 #include <cpExtensions/DataStructures/PolyLineParametricPath.h>
 #include <cpExtensions/Algorithms/PolyLineParametricPathWriter.h>
 #include <cpPlugins/QT/SaveFileDialog.h>
@@ -32,7 +34,8 @@ cpPluginscpExtensions::PolyLineParametricPathWriter::
 PolyLineParametricPathWriter( )
   : Superclass( )
 {
-  this->_ConfigureInput< cpInstances::PolyLineParametricPath >( "Input", true, false );
+  this->_ConfigureInput< cpInstances::DataObjects::PolyLineParametricPath >( "Input", true, false );
+  this->_ConfigureInput< cpInstances::DataObjects::Image >( "Image", false, false );
   this->m_Parameters.ConfigureAsSaveFileName( "FileName", "" );
   this->m_Parameters.SetAcceptedFileExtensions(
     "FileName",
@@ -60,11 +63,22 @@ template< class _TPolyLineParametricPath >
 void cpPluginscpExtensions::PolyLineParametricPathWriter::
 _GD0( _TPolyLineParametricPath* skeleton )
 {
-  typedef cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLineParametricPath > _TWriter;
+  auto o = this->GetInputData( "Image" );
+  cpPlugins_Demangle_Image_ScalarPixels_2( o, _GD1, _TPolyLineParametricPath::PathDimension, skeleton )
+    this->_GD1< itk::Image< unsigned char, _TPolyLineParametricPath::PathDimension >, _TPolyLineParametricPath >( NULL, skeleton );
+}
+
+// -------------------------------------------------------------------------
+template< class _TImage, class _TPolyLineParametricPath >
+void cpPluginscpExtensions::PolyLineParametricPathWriter::
+_GD1( _TImage* image, _TPolyLineParametricPath* skeleton )
+{
+  typedef cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLineParametricPath, _TImage > _TWriter;
 
   auto filter = this->_CreateITK< _TWriter >( );
   filter->SetInput( skeleton );
   filter->SetFileName( this->m_Parameters.GetSaveFileName( "FileName" ) );
+  filter->SetImage( image );
   try
   {
     filter->Update( );