]> Creatis software - cpPlugins.git/blob - plugins/cpExtensions/SkeletonWriter.cxx
...
[cpPlugins.git] / plugins / cpExtensions / SkeletonWriter.cxx
1 #include <cpExtensions/SkeletonWriter.h>
2 #include <cpInstances/DataObjects/Skeleton.h>
3
4 #include <cpExtensions/DataStructures/Skeleton.h>
5 #include <cpExtensions/Algorithms/SkeletonWriter.h>
6 #include <cpPlugins/QT/SaveFileDialog.h>
7
8 #ifdef cpPlugins_QT4
9 #  include <QApplication>
10 #endif // cpPlugins_QT4
11
12 // -------------------------------------------------------------------------
13 QDialog* cpPluginscpExtensions::SkeletonWriter::
14 CreateQDialog( )
15 {
16 #ifdef cpPlugins_QT4
17   cpPlugins::QT::SaveFileDialog* dlg = NULL;
18   if( QApplication::instance( ) != NULL )
19   {
20     dlg = new cpPlugins::QT::SaveFileDialog( );
21     dlg->SetParameters( &( this->m_Parameters ), "FileName" );
22
23   } // fi
24   return( dlg );
25 #else // cpPlugins_QT4
26   return( NULL );
27 #endif // cpPlugins_QT4
28 }
29
30 // -------------------------------------------------------------------------
31 cpPluginscpExtensions::SkeletonWriter::
32 SkeletonWriter( )
33   : Superclass( )
34 {
35   this->_ConfigureInput< cpInstances::DataObjects::Skeleton >( "Input", true, false );
36   this->m_Parameters.ConfigureAsSaveFileName( "FileName", "" );
37   this->m_Parameters.SetAcceptedFileExtensions(
38     "FileName",
39     "Skeleton files (*.txt)"
40     );
41 }
42
43 // -------------------------------------------------------------------------
44 cpPluginscpExtensions::SkeletonWriter::
45 ~SkeletonWriter( )
46 {
47 }
48
49 // -------------------------------------------------------------------------
50 void cpPluginscpExtensions::SkeletonWriter::
51 _GenerateData( )
52 {
53   auto o = this->GetInputData( "Input" );
54   cpPlugins_Demangle_Skeleton_All_1( o, _GD0 )
55     this->_Error( "Invalid input skeleton." );
56 }
57
58 // -------------------------------------------------------------------------
59 template< class _TSkeleton >
60 void cpPluginscpExtensions::SkeletonWriter::
61 _GD0( _TSkeleton* skeleton )
62 {
63   typedef cpExtensions::Algorithms::SkeletonWriter< _TSkeleton > _TWriter;
64
65   auto filter = this->_CreateITK< _TWriter >( );
66   filter->SetInput( skeleton );
67   filter->SetFileName( this->m_Parameters.GetSaveFileName( "FileName" ) );
68   try
69   {
70     filter->Update( );
71   }
72   catch( itk::ExceptionObject& err )
73   {
74     this->_Error( err.GetDescription( ) );
75
76   } // yrt
77 }
78
79 // eof - $RCSfile$