int _MarkPathAlongBicompExtFace(graphP theGraph, int startVert, int endVert) { int Z, ZPrevLink, ZPrevArc; /* Mark the start vertex (and if it is a root copy, mark the parent copy too. */ theGraph->G[startVert].visited = 1; /* For each vertex visited after the start vertex, mark the vertex and the edge used to get there. Stop after marking the ending vertex. */ Z = startVert; ZPrevLink = 1; do { Z = _GetNextVertexOnExternalFace(theGraph, Z, &ZPrevLink); ZPrevArc = gp_GetArc(theGraph, Z, ZPrevLink); theGraph->G[ZPrevArc].visited = 1; theGraph->G[gp_GetTwinArc(theGraph, ZPrevArc)].visited = 1; theGraph->G[Z].visited = 1; } while (Z != endVert); return OK; }
int _MarkPathAlongBicompExtFace(graphP theGraph, int startVert, int endVert) { int Z, ZPrevLink, ZPrevArc; /* Mark the start vertex (and if it is a root copy, mark the parent copy too. */ gp_SetVertexVisited(theGraph, startVert); /* For each vertex visited after the start vertex, mark the vertex and the edge used to get there. Stop after marking the ending vertex. */ Z = startVert; ZPrevLink = 1; do { Z = _GetNeighborOnExtFace(theGraph, Z, &ZPrevLink); ZPrevArc = gp_GetArc(theGraph, Z, ZPrevLink); gp_SetEdgeVisited(theGraph, ZPrevArc); gp_SetEdgeVisited(theGraph, gp_GetTwinArc(theGraph, ZPrevArc)); gp_SetVertexVisited(theGraph, Z); } while (Z != endVert); return OK; }