/***************************************************************************** * Visitors ****************************************************************************/ public void visitTriangles(TriangleVisitor triVisitor, boolean includeFrame) { visitedKey++; // visited flag is used to record visited edges of triangles // setVisitedAll(false); Stack edgeStack = new Stack(); edgeStack.push(startingEdge); Set visitedEdges = new HashSet(); while (!edgeStack.empty()) { QuadEdge edge = (QuadEdge) edgeStack.pop(); if (! visitedEdges.contains(edge)) { QuadEdge[] triEdges = fetchTriangleToVisit(edge, edgeStack, includeFrame, visitedEdges); if (triEdges != null) triVisitor.visit(triEdges); } } }
/***************************************************************************** * Visitors ****************************************************************************/ public void visitTriangles(TriangleVisitor triVisitor, boolean includeFrame) { visitedKey++; // visited flag is used to record visited edges of triangles // setVisitedAll(false); Stack edgeStack = new Stack(); edgeStack.push(startingEdge); Set visitedEdges = new HashSet(); while (!edgeStack.empty()) { QuadEdge edge = (QuadEdge) edgeStack.pop(); if (! visitedEdges.contains(edge)) { QuadEdge[] triEdges = fetchTriangleToVisit(edge, edgeStack, includeFrame, visitedEdges); if (triEdges != null) triVisitor.visit(triEdges); } } }