1 #include "MinimumSpanningTreeReader.h"
2 #include "MinimumSpanningTree.h"
4 #include <fpa_Instances/Instances.h>
6 // -------------------------------------------------------------------------
7 fpaPlugins::MinimumSpanningTreeReader::
8 MinimumSpanningTreeReader( )
11 this->_AddOutput< fpaPlugins::MinimumSpanningTree >( "Output" );
12 this->m_Parameters.Clear( );
13 this->m_Parameters.ConfigureAsOpenFileName( "FileName" );
14 this->m_Parameters.SetAcceptedFileExtensions(
16 "Minimum spanning tree files (*.mst)"
20 // -------------------------------------------------------------------------
21 fpaPlugins::MinimumSpanningTreeReader::
22 ~MinimumSpanningTreeReader( )
26 // -------------------------------------------------------------------------
27 std::string fpaPlugins::MinimumSpanningTreeReader::
30 // Infere MST dimensions
31 auto fname = this->m_Parameters.GetOpenFileName( "FileName" );
32 std::ifstream input( fname.c_str( ) );
35 std::string( "MinimumSpanningTreeReader: Error opening file \"" ) +
43 if ( dim == 2 ) return( this->_GD0< 2 >( fname ) );
44 else if( dim == 3 ) return( this->_GD0< 3 >( fname ) );
46 return( "MinimumSpanningTreeReader: invalid dimensions." );
49 // -------------------------------------------------------------------------
50 template< unsigned int _NDim >
51 std::string fpaPlugins::MinimumSpanningTreeReader::
52 _GD0( const std::string& fname )
54 typedef fpa::Image::MinimumSpanningTree< _NDim > _TTree;
55 typedef fpa::IO::MinimumSpanningTreeReader< _TTree > _TFilter;
57 _TFilter* reader = this->_CreateITK< _TFilter >( );
58 reader->SetFileName( this->m_Parameters.GetOpenFileName( "FileName" ) );
63 catch( itk::ExceptionObject& err )
66 "MinimumSpanningTreeReader: " + std::string( err.GetDescription( ) )
70 this->GetOutputData( "Output" )->SetITK( reader->GetOutput( ) );