17 #ifndef __itkQuadEdgeMeshFrontIterator_txx
18 #define __itkQuadEdgeMeshFrontIterator_txx
26 template<
class TMesh,
class TQE >
31 : m_Mesh( mesh ), m_Seed( seed ), m_Start( start )
58 template<
class TMesh,
class TQE >
69 template<
class TMesh,
class TQE >
81 if( m_Front->empty( ) )
91 QEType* edge = fit->m_Edge;
94 typedef typename QEType::IteratorGeom QEIterator;
95 for( QEIterator qit = edge->BeginGeomOnext( );
96 qit != edge->EndGeomOnext( );
99 QEType* oEdge = qit.Value( );
105 if( ( m_IsPointVisited->IndexExists( oEdge->GetDestination() ) )
106 || ( ! oEdge->IsDestinationSet() ) )
113 m_IsPointVisited->SetElement( oEdge->GetDestination( ), true );
116 CoordRepType oCost = this->GetCost( oEdge ) + fit->m_Cost;
119 m_Front->push_back(
FrontAtom( oEdge->GetSym( ), oCost ) );
122 m_CurrentEdge = oEdge;
129 m_Front->pop_front( );
130 m_CurrentEdge = (
QEType*)0;
131 return( this->
operator++() );
138 template<
class TMesh,
class TQE >
143 if(
QEType* edge = dynamic_cast< QEType* >( m_Mesh->GetEdge( ) ) )
147 typedef typename QEType::DualType QEDual;
148 if( QEDual* edge = dynamic_cast< QEDual* >( m_Mesh->GetEdge( ) ) )
150 return edge->GetRot( );