#include <itkProcessObject.h>
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-fpa::Base::Algorithm< V, C, R, VC, B >::_TNode::
+template< class V, class C, class R, class S, class VC, class B >
+fpa::Base::Algorithm< V, C, R, S, VC, B >::_TNode::
_TNode( )
: Result( TResult( 0 ) ),
FrontId( -1 ),
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-fpa::Base::Algorithm< V, C, R, VC, B >::_TNode::
+template< class V, class C, class R, class S, class VC, class B >
+fpa::Base::Algorithm< V, C, R, S, VC, B >::_TNode::
~_TNode( )
{
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-typename fpa::Base::Algorithm< V, C, R, VC, B >::
-TMinimumSpanningTree* fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+typename fpa::Base::Algorithm< V, C, R, S, VC, B >::
+TMinimumSpanningTree* fpa::Base::Algorithm< V, C, R, S, VC, B >::
GetMinimumSpanningTree( )
{
return(
dynamic_cast< TMinimumSpanningTree* >(
- this->itk::ProcessObject::GetOutput( 1 )
+ this->itk::ProcessObject::GetOutput(
+ this->m_MinimumSpanningTreeIndex
+ )
)
);
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-const typename fpa::Base::Algorithm< V, C, R, VC, B >::
-TMinimumSpanningTree* fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+const typename fpa::Base::Algorithm< V, C, R, S, VC, B >::
+TMinimumSpanningTree* fpa::Base::Algorithm< V, C, R, S, VC, B >::
GetMinimumSpanningTree( ) const
{
return(
dynamic_cast< const TMinimumSpanningTree* >(
- this->itk::ProcessObject::GetOutput( 1 )
+ this->itk::ProcessObject::GetOutput(
+ this->m_MinimumSpanningTreeIndex
+ )
)
);
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-void fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+void fpa::Base::Algorithm< V, C, R, S, VC, B >::
GraftMinimumSpanningTree( itk::DataObject* obj )
{
TMinimumSpanningTree* mst = dynamic_cast< TMinimumSpanningTree* >( obj );
if( mst != NULL )
- this->GraftNthOutput( 1, mst );
+ this->GraftNthOutput( this->m_MinimumSpanningTreeIndex, mst );
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-void fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+void fpa::Base::Algorithm< V, C, R, S, VC, B >::
InvokeEvent( const itk::EventObject& e )
{
if( this->m_ThrowEvents )
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-void fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+void fpa::Base::Algorithm< V, C, R, S, VC, B >::
InvokeEvent( const itk::EventObject& e ) const
{
if( this->m_ThrowEvents )
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-void fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+void fpa::Base::Algorithm< V, C, R, S, VC, B >::
AddSeed( const TVertex& s, const TResult& r )
{
_TNode ns;
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-const typename fpa::Base::Algorithm< V, C, R, VC, B >::
-TVertex& fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+const typename fpa::Base::Algorithm< V, C, R, S, VC, B >::
+TVertex& fpa::Base::Algorithm< V, C, R, S, VC, B >::
GetSeed( const unsigned int& id ) const
{
return( this->m_SeedVertices[ id ] );
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-void fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+void fpa::Base::Algorithm< V, C, R, S, VC, B >::
ClearSeeds( )
{
this->m_Seeds.clear( );
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-unsigned long fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+unsigned long fpa::Base::Algorithm< V, C, R, S, VC, B >::
GetNumberOfSeeds( ) const
{
return( this->m_Seeds.size( ) );
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+fpa::Base::Algorithm< V, C, R, S, VC, B >::
Algorithm( )
: Superclass( ),
m_ThrowEvents( false ),
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+fpa::Base::Algorithm< V, C, R, S, VC, B >::
~Algorithm( )
{
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-void fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+void fpa::Base::Algorithm< V, C, R, S, VC, B >::
GenerateData( )
{
unsigned long N = this->m_Seeds.size( );
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-void fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+void fpa::Base::Algorithm< V, C, R, S, VC, B >::
_Loop( )
{
this->InvokeEvent( TStartLoopEvent( ) );
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-void fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+void fpa::Base::Algorithm< V, C, R, S, VC, B >::
_BeforeGenerateData( )
{
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-void fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+void fpa::Base::Algorithm< V, C, R, S, VC, B >::
_AfterGenerateData( )
{
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-void fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+void fpa::Base::Algorithm< V, C, R, S, VC, B >::
_BeforeLoop( )
{
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-void fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+void fpa::Base::Algorithm< V, C, R, S, VC, B >::
_AfterLoop( )
{
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-bool fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+bool fpa::Base::Algorithm< V, C, R, S, VC, B >::
_UpdateCollisions( const TVertex& a, const TVertex& b )
{
bool ret = false;
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-bool fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+bool fpa::Base::Algorithm< V, C, R, S, VC, B >::
_NeedToStop( ) const
{
return( false );
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-typename fpa::Base::Algorithm< V, C, R, VC, B >::
-_TNode& fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+typename fpa::Base::Algorithm< V, C, R, S, VC, B >::
+_TNode& fpa::Base::Algorithm< V, C, R, S, VC, B >::
_Node( const TVertex& v )
{
typename _TNodes::iterator vIt = this->m_Marks.find( v );
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-const typename fpa::Base::Algorithm< V, C, R, VC, B >::
-_TNode& fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+const typename fpa::Base::Algorithm< V, C, R, S, VC, B >::
+_TNode& fpa::Base::Algorithm< V, C, R, S, VC, B >::
_Node( const TVertex& v ) const
{
typename _TNodes::const_iterator vIt = this->m_Marks.find( v );
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-void fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+void fpa::Base::Algorithm< V, C, R, S, VC, B >::
_InitMarks( )
{
this->m_Marks.clear( );
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-void fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+void fpa::Base::Algorithm< V, C, R, S, VC, B >::
_Mark( const TVertex& v, const _TNode& node )
{
this->m_Marks[ v ] = node;
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class VC, class B >
-void fpa::Base::Algorithm< V, C, R, VC, B >::
+template< class V, class C, class R, class S, class VC, class B >
+void fpa::Base::Algorithm< V, C, R, S, VC, B >::
_InitQueue( )
{
this->_QueueClear( );