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 void 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 ) this->_GD0< 2 >( fname );
44 else if( dim == 3 ) this->_GD0< 3 >( fname );
45 else this->_Error( "Invalid dimensions." );
48 // -------------------------------------------------------------------------
49 template< unsigned int _NDim >
50 void fpaPlugins::MinimumSpanningTreeReader::
51 _GD0( const std::string& fname )
53 typedef fpa::Image::MinimumSpanningTree< _NDim > _TTree;
54 typedef fpa::IO::MinimumSpanningTreeReader< _TTree > _TFilter;
56 _TFilter* reader = this->_CreateITK< _TFilter >( );
57 reader->SetFileName( this->m_Parameters.GetOpenFileName( "FileName" ) );
62 catch( itk::ExceptionObject& err )
64 this->_Error( err.GetDescription( ) );
67 this->GetOutputData( "Output" )->SetITK( reader->GetOutput( ) );