/* <summary> * // Subclasses can call this method to add a triangle to the end of the queue. This is useful for * // initializing the queue to a chosen set of triangles. * // </summary> * // <param name="tri">a triangle</param> * /* * protected void addLast(QuadEdgeTriangle tri) { triQueue.addLast(tri); } */ /// <summary> /// Subclasses call this method to perform the visiting process. /// </summary> public void VisitAll(ITraversalVisitor visitor) { while (_triQueue.Count > 0) { var tri = _triQueue.First.Value; _triQueue.RemoveFirst(); Process(tri, visitor); } }
/* <summary> // Subclasses can call this method to add a triangle to the end of the queue. This is useful for // initializing the queue to a chosen set of triangles. // </summary> // <param name="tri">a triangle</param> /* * protected void addLast(QuadEdgeTriangle tri) { triQueue.addLast(tri); } */ /// <summary> /// Subclasses call this method to perform the visiting process. /// </summary> public void VisitAll(ITraversalVisitor visitor) { while (_triQueue.Count > 0) { QuadEdgeTriangle tri = _triQueue.First.Value; _triQueue.RemoveFirst(); Process(tri, visitor); } }
private void Process(QuadEdgeTriangle currTri, ITraversalVisitor visitor) { currTri.GetNeighbours(); for (int i = 0; i < 3; i++) { QuadEdgeTriangle neighTri = (QuadEdgeTriangle)currTri.GetEdge(i).Sym.Data; if (neighTri == null) continue; if (visitor.Visit(currTri, i, neighTri)) _triQueue.AddLast(neighTri); } }
private void Process(QuadEdgeTriangle currTri, ITraversalVisitor visitor) { currTri.GetNeighbours(); for (int i = 0; i < 3; i++) { var neighTri = (QuadEdgeTriangle)currTri.GetEdge(i).Sym.Data; if (neighTri == null) { continue; } if (visitor.Visit(currTri, i, neighTri)) { _triQueue.AddLast(neighTri); } } }
///------------------------------------------------------------------------------------------------- /// <summary> /// With visitor. /// </summary> /// <param name="visitor"> /// The visitor. /// </param> /// <returns> /// A TraversalBuilder. /// </returns> ///------------------------------------------------------------------------------------------------- public TraversalBuilder WithVisitor(ITraversalVisitor visitor) { Contract.Requires(visitor, "visitor"); _query.Evaluator = visitor; return(this); }