1 #include "MinimumSpanningTreeReader.h"
2 #include "MinimumSpanningTree.h"
4 #include <fpa/IO/MinimumSpanningTreeReader.h>
5 #include <fpa/IO/MinimumSpanningTreeReader.hxx>
7 // -------------------------------------------------------------------------
8 fpaPlugins::MinimumSpanningTreeReader::
9 MinimumSpanningTreeReader( )
12 this->_AddOutput< fpaPlugins::MinimumSpanningTree >( "Output" );
13 this->m_Parameters.Clear( );
14 this->m_Parameters.ConfigureAsOpenFileName( "FileName" );
15 this->m_Parameters.SetAcceptedFileExtensions(
17 "Minimum spanning tree files (*.mst)"
21 // -------------------------------------------------------------------------
22 fpaPlugins::MinimumSpanningTreeReader::
23 ~MinimumSpanningTreeReader( )
27 // -------------------------------------------------------------------------
28 std::string fpaPlugins::MinimumSpanningTreeReader::
31 // Infere MST dimensions
32 auto fname = this->m_Parameters.GetOpenFileName( "FileName" );
33 std::ifstream input( fname.c_str( ) );
36 std::string( "MinimumSpanningTreeReader: Error opening file \"" ) +
44 if ( dim == 2 ) return( this->_GD0< 2 >( fname ) );
45 else if( dim == 3 ) return( this->_GD0< 3 >( fname ) );
47 return( "MinimumSpanningTreeReader: invalid dimensions." );
50 // -------------------------------------------------------------------------
51 template< unsigned int _NDim >
52 std::string fpaPlugins::MinimumSpanningTreeReader::
53 _GD0( const std::string& fname )
55 typedef fpa::Image::MinimumSpanningTree< _NDim > _TTree;
56 typedef fpa::IO::MinimumSpanningTreeReader< _TTree > _TFilter;
58 _TFilter* reader = this->_CreateITK< _TFilter >( );
59 reader->SetFileName( this->m_Parameters.GetOpenFileName( "FileName" ) );
64 catch( itk::ExceptionObject& err )
67 "MinimumSpanningTreeReader: " + std::string( err.GetDescription( ) )
71 this->GetOutputData( "Output" )->SetITK( reader->GetOutput( ) );