while ( curRow < rowList.getDepth() ) {
final List<BaseVertex> rowVertices = rowList.get( curRow ).getVertices();
for ( final Iterator<BaseVertex> rowNodeIter = rowVertices.iterator(); rowNodeIter.hasNext(); ) {
final BaseVertex rowNode = rowNodeIter.next();
final List<Connection> edges = rowNode.getSourceConnections();
for ( final Iterator<Connection> edgeIter = edges.iterator(); edgeIter.hasNext(); ) {
final Connection edge = edgeIter.next();
final BaseVertex destNode = edge.getOpposite( rowNode );
if ( !seenVertices.contains( destNode ) ) {
rowList.add( curRow + 1,
destNode );
seenVertices.add( destNode );