+++ /dev/null
-// =========================================================================
-// @author Leonardo Florez Valencia
-// @email florez-l@javeriana.edu.co
-// =========================================================================
-
-#ifndef __fpa__Base__RegionGrow__hxx__
-#define __fpa__Base__RegionGrow__hxx__
-
-// -------------------------------------------------------------------------
-template< class _TAlgorithm >
-itk::ModifiedTimeType fpa::Base::RegionGrow< _TAlgorithm >::
-GetMTime( ) const
-{
- itk::ModifiedTimeType t = this->Superclass::GetMTime( );
- if( this->m_ValuePredicate.IsNotNull( ) )
- {
- itk::ModifiedTimeType q = this->m_ValuePredicate->GetMTime( );
- t = ( q < t )? q: t;
-
- } // fi
- if( this->m_VertexPredicate.IsNotNull( ) )
- {
- itk::ModifiedTimeType q = this->m_VertexPredicate->GetMTime( );
- t = ( q < t )? q: t;
-
- } // fi
-
- return( t );
-}
-
-// -------------------------------------------------------------------------
-template< class _TAlgorithm >
-typename fpa::Base::RegionGrow< _TAlgorithm >::
-TOutputValue fpa::Base::RegionGrow< _TAlgorithm >::
-GetOutsideValue( ) const
-{
- return( this->GetInitValue( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TAlgorithm >
-void fpa::Base::RegionGrow< _TAlgorithm >::
-SetOutsideValue( const TOutputValue& v )
-{
- this->SetInitValue( v );
-}
-
-// -------------------------------------------------------------------------
-template< class _TAlgorithm >
-void fpa::Base::RegionGrow< _TAlgorithm >::
-SetPredicate( TValuePredicate* p )
-{
- if( this->m_ValuePredicate.GetPointer( ) != p )
- {
- this->m_ValuePredicate = p;
- this->Modified( );
-
- } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class _TAlgorithm >
-void fpa::Base::RegionGrow< _TAlgorithm >::
-SetPredicate( TVertexPredicate* p )
-{
- if( this->m_VertexPredicate.GetPointer( ) != p )
- {
- this->m_VertexPredicate = p;
- this->Modified( );
-
- } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class _TAlgorithm >
-fpa::Base::RegionGrow< _TAlgorithm >::
-RegionGrow( )
- : Superclass( ),
- m_InsideValue( TOutputValue( 1 ) )
-{
- this->SetInitValue( TOutputValue( 0 ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TAlgorithm >
-fpa::Base::RegionGrow< _TAlgorithm >::
-~RegionGrow( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TAlgorithm >
-void fpa::Base::RegionGrow< _TAlgorithm >::
-_ComputeOutputValue( TNode& n )
-{
- // Do nothing!!!
-}
-
-// -------------------------------------------------------------------------
-template< class _TAlgorithm >
-void fpa::Base::RegionGrow< _TAlgorithm >::
-_UpdateOutputValue( TNode& n )
-{
- TInputValue value = this->_GetInputValue( n.Vertex );
- bool inside = false;
- if( this->m_ValuePredicate.IsNotNull( ) )
- inside = this->m_ValuePredicate->Evaluate( value );
- if( this->m_VertexPredicate.IsNotNull( ) )
- inside &= this->m_VertexPredicate->Evaluate( n.Vertex );
- if( !inside )
- {
- n.Value = this->m_InitValue;
- n.FrontId = 0;
- }
- else
- n.Value = this->m_InsideValue;
- this->Superclass::_UpdateOutputValue( n );
-}
-
-// -------------------------------------------------------------------------
-template< class _TAlgorithm >
-void fpa::Base::RegionGrow< _TAlgorithm >::
-_QueueClear( )
-{
- this->m_Queue.clear( );
-}
-
-// -------------------------------------------------------------------------
-template< class _TAlgorithm >
-typename fpa::Base::RegionGrow< _TAlgorithm >::
-TNode fpa::Base::RegionGrow< _TAlgorithm >::
-_QueuePop( )
-{
- TNode n = this->m_Queue.front( );
- this->m_Queue.pop_front( );
- return( n );
-}
-
-// -------------------------------------------------------------------------
-template< class _TAlgorithm >
-void fpa::Base::RegionGrow< _TAlgorithm >::
-_QueuePush( const TNode& node )
-{
- this->m_Queue.push_back( node );
-}
-
-// -------------------------------------------------------------------------
-template< class _TAlgorithm >
-unsigned long fpa::Base::RegionGrow< _TAlgorithm >::
-_QueueSize( ) const
-{
- return( this->m_Queue.size( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TAlgorithm >
-void fpa::Base::RegionGrow< _TAlgorithm >::
-_PrepareSeeds( TNodes& nodes )
-{
- typename TNodes::iterator nIt = nodes.begin( );
- for( ; nIt != nodes.end( ); ++nIt )
- nIt->Value = this->m_InitValue;
-}
-
-#endif // __fpa__Base__RegionGrow__hxx__
-
-// eof - $RCSfile$