]> Creatis software - FrontAlgorithms.git/blob - plugins/fpa/MinimumSpanningTreeWriter.cxx
...
[FrontAlgorithms.git] / plugins / fpa / MinimumSpanningTreeWriter.cxx
1 #include "MinimumSpanningTreeWriter.h"
2 #include "MinimumSpanningTree.h"
3
4 #include <fpa_Instances/Instances.h>
5
6 // -------------------------------------------------------------------------
7 fpaPlugins::MinimumSpanningTreeWriter::
8 MinimumSpanningTreeWriter( )
9   : Superclass( )
10 {
11   this->_AddInput( "Input" );
12   this->m_Parameters.Clear( );
13   this->m_Parameters.ConfigureAsSaveFileName( "FileName" );
14   this->m_Parameters.SetAcceptedFileExtensions(
15     "FileName",
16     "Minimum spanning tree files (*.mst)"
17     );
18 }
19
20 // -------------------------------------------------------------------------
21 fpaPlugins::MinimumSpanningTreeWriter::
22 ~MinimumSpanningTreeWriter( )
23 {
24 }
25
26 // -------------------------------------------------------------------------
27 void fpaPlugins::MinimumSpanningTreeWriter::
28 _GenerateData( )
29 {
30   typedef fpa::Image::MinimumSpanningTree< 2 > _2D;
31   typedef fpa::Image::MinimumSpanningTree< 3 > _3D;
32
33   auto _2d = this->GetInputData( "Input" )->GetITK< _2D >( );
34   auto _3d = this->GetInputData( "Input" )->GetITK< _3D >( );
35
36   if     ( _2d != NULL ) this->_GD0( _2d );
37   else if( _3d != NULL ) this->_GD0( _3d );
38   else this->_Error( "Not a valid MST." );
39 }
40
41 // -------------------------------------------------------------------------
42 template< class _TTree >
43 void fpaPlugins::MinimumSpanningTreeWriter::
44 _GD0( _TTree* tree )
45 {
46   typedef fpa::IO::MinimumSpanningTreeWriter< _TTree > _TFilter;
47
48   _TFilter* writer = this->_CreateITK< _TFilter >( );
49   writer->SetInput( tree );
50   writer->SetFileName( this->m_Parameters.GetSaveFileName( "FileName" ) );
51   try
52   {
53     writer->Update( );
54   }
55   catch( itk::ExceptionObject& err )
56   {
57     this->_Error( err.GetDescription( ) );
58
59   } // yrt
60 }
61
62 // eof - $RCSfile$