1 #include <cpExtensions/SkeletonWriter.h>
2 #include <cpInstances/Skeleton.h>
4 #include <cpExtensions/DataStructures/Skeleton.h>
5 #include <cpExtensions/Algorithms/SkeletonWriter.h>
6 #include <cpPlugins/QT/SaveFileDialog.h>
9 # include <QApplication>
10 #endif // cpPlugins_QT4
12 // -------------------------------------------------------------------------
13 QDialog* cpPluginscpExtensions::SkeletonWriter::
17 cpPlugins::QT::SaveFileDialog* dlg = NULL;
18 if( QApplication::instance( ) != NULL )
20 dlg = new cpPlugins::QT::SaveFileDialog( );
21 dlg->SetParameters( &( this->m_Parameters ), "FileName" );
25 #else // cpPlugins_QT4
27 #endif // cpPlugins_QT4
30 // -------------------------------------------------------------------------
31 cpPluginscpExtensions::SkeletonWriter::
35 this->_ConfigureInput< cpInstances::Skeleton >( "Input", true, false );
36 this->m_Parameters.ConfigureAsSaveFileName( "FileName", "" );
37 this->m_Parameters.SetAcceptedFileExtensions(
39 "Skeleton files (*.txt)"
43 // -------------------------------------------------------------------------
44 cpPluginscpExtensions::SkeletonWriter::
49 // -------------------------------------------------------------------------
50 void cpPluginscpExtensions::SkeletonWriter::
53 auto o = this->GetInputData( "Skeleton" );
54 cpPlugins_Demangle_Skeleton_All_1( o, _GD0 )
55 this->_Error( "Invalid input skeleton." );
58 // -------------------------------------------------------------------------
59 template< class _TSkeleton >
60 void cpPluginscpExtensions::SkeletonWriter::
61 _GD0( _TSkeleton* skeleton )
63 typedef cpExtensions::Algorithms::SkeletonWriter< _TSkeleton > _TWriter;
65 auto filter = this->_CreateITK< _TWriter >( );
66 filter->SetInput( skeleton );
67 filter->SetFileName( this->m_Parameters.GetSaveFileName( "FileName" ) );
72 catch( itk::ExceptionObject& err )
74 this->_Error( err.GetDescription( ) );