#include "MinimumSpanningTreeReader.h" #include "MinimumSpanningTree.h" #include // ------------------------------------------------------------------------- fpaPlugins::MinimumSpanningTreeReader:: MinimumSpanningTreeReader( ) : Superclass( ) { this->_AddOutput< fpaPlugins::MinimumSpanningTree >( "Output" ); this->m_Parameters.Clear( ); this->m_Parameters.ConfigureAsOpenFileName( "FileName" ); this->m_Parameters.SetAcceptedFileExtensions( "FileName", "Minimum spanning tree files (*.mst)" ); } // ------------------------------------------------------------------------- fpaPlugins::MinimumSpanningTreeReader:: ~MinimumSpanningTreeReader( ) { } // ------------------------------------------------------------------------- void fpaPlugins::MinimumSpanningTreeReader:: _GenerateData( ) { // Infere MST dimensions auto fname = this->m_Parameters.GetOpenFileName( "FileName" ); std::ifstream input( fname.c_str( ) ); if( !input ) this->_Error( std::string( "MinimumSpanningTreeReader: Error opening file \"" ) + fname + std::string( "\"" ) ); unsigned int dim; input >> dim; // Real execution if ( dim == 2 ) this->_GD0< 2 >( fname ); else if( dim == 3 ) this->_GD0< 3 >( fname ); else this->_Error( "Invalid dimensions." ); } // ------------------------------------------------------------------------- template< unsigned int _NDim > void fpaPlugins::MinimumSpanningTreeReader:: _GD0( const std::string& fname ) { typedef fpa::Image::MinimumSpanningTree< _NDim > _TTree; typedef fpa::IO::MinimumSpanningTreeReader< _TTree > _TFilter; _TFilter* reader = this->_CreateITK< _TFilter >( ); reader->SetFileName( this->m_Parameters.GetOpenFileName( "FileName" ) ); try { reader->Update( ); } catch( itk::ExceptionObject& err ) { this->_Error( err.GetDescription( ) ); } // yrt this->GetOutput( "Output" )->SetITK( reader->GetOutput( ) ); } // eof - $RCSfile$