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