1 #ifndef __FPA__IO__MINIMUMSPANNINGTREEREADER__HXX__
2 #define __FPA__IO__MINIMUMSPANNINGTREEREADER__HXX__
6 // -------------------------------------------------------------------------
8 T* fpa::IO::MinimumSpanningTreeReader< T >::
11 return( itkDynamicCastInDebugMode< T* >( this->GetPrimaryOutput( ) ) );
14 // -------------------------------------------------------------------------
16 void fpa::IO::MinimumSpanningTreeReader< T >::
19 this->GenerateData( );
22 // -------------------------------------------------------------------------
24 fpa::IO::MinimumSpanningTreeReader< T >::
25 MinimumSpanningTreeReader( )
29 this->itk::ProcessObject::SetNumberOfRequiredOutputs( 1 );
30 this->itk::ProcessObject::SetNthOutput( 0, T::New( ) );
33 // -------------------------------------------------------------------------
35 fpa::IO::MinimumSpanningTreeReader< T >::
36 ~MinimumSpanningTreeReader( )
40 // -------------------------------------------------------------------------
42 void fpa::IO::MinimumSpanningTreeReader< T >::
45 T* output = this->GetOutput( );
48 std::ifstream in( this->m_FileName.c_str( ) );
52 << "Error opening file to read a minimum spanning tree: \""
61 unsigned long nSeeds, nVertices;
64 typedef typename T::TCollisions _TCollisions;
65 typedef typename _TCollisions::value_type _TCollisionsRow;
66 typedef typename _TCollisionsRow::value_type _TCollision;
67 typedef typename T::TVertex _TVertex;
70 collisions( nSeeds, _TCollisionsRow( nSeeds, _TCollision( _TVertex( ), false ) ) );
71 for( unsigned long i = 0; i < nSeeds; ++i )
73 for( unsigned long j = 0; j < nSeeds; ++j )
77 collisions[ i ][ j ].second = ( val == 1 );
84 for( unsigned long vId = 0; vId < nVertices; ++vId )
86 typename T::TVertex v0, v1;
87 for( unsigned int d = 0; d < dim; ++d )
91 if( d < T::TVertex::Dimension )
95 for( unsigned int d = 0; d < dim; ++d )
99 if( d < T::TVertex::Dimension )
105 output->SetParent( v0, v1, fId );
108 output->SetCollisions( collisions );
112 #endif // __FPA__IO__MINIMUMSPANNINGTREEREADER__HXX__