1 #include <cpExtensions/PolyLineParametricPathWriter.h>
2 #include <cpInstances/DataObjects/Image.h>
3 #include <cpInstances/DataObjects/PolyLineParametricPath.h>
6 #include <cpExtensions/DataStructures/PolyLineParametricPath.h>
7 #include <cpExtensions/Algorithms/PolyLineParametricPathWriter.h>
8 #include <cpPlugins/QT/SaveFileDialog.h>
11 # include <QApplication>
12 #endif // cpPlugins_QT4
14 // -------------------------------------------------------------------------
15 QDialog* cpPluginscpExtensions::PolyLineParametricPathWriter::
19 cpPlugins::QT::SaveFileDialog* dlg = NULL;
20 if( QApplication::instance( ) != NULL )
22 dlg = new cpPlugins::QT::SaveFileDialog( );
23 dlg->SetParameters( &( this->m_Parameters ), "FileName" );
27 #else // cpPlugins_QT4
29 #endif // cpPlugins_QT4
32 // -------------------------------------------------------------------------
33 cpPluginscpExtensions::PolyLineParametricPathWriter::
34 PolyLineParametricPathWriter( )
37 this->_ConfigureInput< cpInstances::DataObjects::PolyLineParametricPath >( "Input", true, false );
38 this->_ConfigureInput< cpInstances::DataObjects::Image >( "Image", false, false );
39 this->m_Parameters.ConfigureAsSaveFileName( "FileName", "" );
40 this->m_Parameters.SetAcceptedFileExtensions(
42 "PolyLineParametricPath files (*.txt)"
46 // -------------------------------------------------------------------------
47 cpPluginscpExtensions::PolyLineParametricPathWriter::
48 ~PolyLineParametricPathWriter( )
52 // -------------------------------------------------------------------------
53 void cpPluginscpExtensions::PolyLineParametricPathWriter::
56 auto o = this->GetInputData( "Input" );
57 cpPlugins_Demangle_PolyLineParametricPath_All_1( o, _GD0 )
58 this->_Error( "Invalid input skeleton." );
61 // -------------------------------------------------------------------------
62 template< class _TPolyLineParametricPath >
63 void cpPluginscpExtensions::PolyLineParametricPathWriter::
64 _GD0( _TPolyLineParametricPath* skeleton )
66 auto o = this->GetInputData( "Image" );
67 cpPlugins_Demangle_Image_ScalarPixels_2( o, _GD1, _TPolyLineParametricPath::PathDimension, skeleton )
68 this->_GD1< itk::Image< unsigned char, _TPolyLineParametricPath::PathDimension >, _TPolyLineParametricPath >( NULL, skeleton );
71 // -------------------------------------------------------------------------
72 template< class _TImage, class _TPolyLineParametricPath >
73 void cpPluginscpExtensions::PolyLineParametricPathWriter::
74 _GD1( _TImage* image, _TPolyLineParametricPath* skeleton )
76 typedef cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLineParametricPath, _TImage > _TWriter;
78 auto filter = this->_CreateITK< _TWriter >( );
79 filter->SetInput( skeleton );
80 filter->SetFileName( this->m_Parameters.GetSaveFileName( "FileName" ) );
81 filter->SetImage( image );
86 catch( itk::ExceptionObject& err )
88 this->_Error( err.GetDescription( ) );