-#ifndef __FPA__BASE__REGIONGROW__HXX__
-#define __FPA__BASE__REGIONGROW__HXX__
+#ifndef __fpa__Base__RegionGrow__hxx__
+#define __fpa__Base__RegionGrow__hxx__
// -------------------------------------------------------------------------
template< class _TSuperclass >
fpa::Base::RegionGrow< _TSuperclass >::
RegionGrow( )
: Superclass( ),
- m_RegionGrowFunction( NULL ),
- m_InsideValue( TScalar( 1 ) ),
- m_OutsideValue( TScalar( 0 ) )
+ m_InsideValue( TOutput( 1 ) ),
+ m_OutsideValue( TOutput( 0 ) )
{
+ this->m_InitResult = TOutput( 0 );
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
template< class _TSuperclass >
bool fpa::Base::RegionGrow< _TSuperclass >::
-_Result( TNode& node, const TNode& parent )
+_UpdateValue( _TQueueNode& v, const _TQueueNode& p )
{
- if( this->m_RegionGrowFunction.IsNotNull( ) )
+ if( this->m_GrowFunction.IsNotNull( ) )
{
- bool res = this->m_RegionGrowFunction->Evaluate( node.Vertex );
- node.Result = ( res )? this->m_InsideValue: this->m_OutsideValue;
- return( res );
+ bool in = this->m_GrowFunction->Evaluate( p.Vertex, v.Vertex );
+ v.Result = ( in )? this->m_InsideValue: this->m_OutsideValue;
+ return( in );
}
else
{
- node.Result = this->m_OutsideValue;
+ v.Result = this->m_InitResult;
return( false );
} // fi
// -------------------------------------------------------------------------
template< class _TSuperclass >
-void fpa::Base::RegionGrow< _TSuperclass >::
-_QueueClear( )
+unsigned long fpa::Base::RegionGrow< _TSuperclass >::
+_QueueSize( ) const
{
- this->m_Queue.clear( );
+ return( this->m_Queue.size( ) );
}
// -------------------------------------------------------------------------
template< class _TSuperclass >
void fpa::Base::RegionGrow< _TSuperclass >::
-_QueuePush( const TNode& node )
+_QueueClear( )
{
- this->m_Queue.push_back( node );
+ while( this->m_Queue.size( ) > 0 )
+ this->m_Queue.pop( );
}
// -------------------------------------------------------------------------
template< class _TSuperclass >
-typename fpa::Base::RegionGrow< _TSuperclass >::
-TNode fpa::Base::RegionGrow< _TSuperclass >::
-_QueuePop( )
+void fpa::Base::RegionGrow< _TSuperclass >::
+_QueuePush( const _TQueueNode& node )
{
- TNode n = this->m_Queue.front( );
- this->m_Queue.pop_front( );
- return( n );
+ this->m_Queue.push( node );
}
// -------------------------------------------------------------------------
template< class _TSuperclass >
-bool fpa::Base::RegionGrow< _TSuperclass >::
-_IsQueueEmpty( ) const
+typename fpa::Base::RegionGrow< _TSuperclass >::
+_TQueueNode fpa::Base::RegionGrow< _TSuperclass >::
+_QueuePop( )
{
- return( this->m_Queue.size( ) == 0 );
+ _TQueueNode f = this->m_Queue.front( );
+ this->m_Queue.pop( );
+ return( f );
}
-#endif // __FPA__BASE__REGIONGROW__HXX__
+#endif // __fpa__Base__RegionGrow__hxx__
// eof - $RCSfile$