Node nodeB = edge.nodeB(); Node nodeC = otherNode(face,nodeA,nodeB); assert nodeA.isOnBoundary(); assert nodeB.isOnBoundary(); assert nodeC.isOnBoundary(); assert nodeD.isOnBoundary(); assert nodeD.isOnBoundary();
else if (nodeC.isOnBoundary()) {
Node nodeB = edge.nodeB(); Node nodeC = otherNode(face,nodeA,nodeB); assert nodeA.isOnBoundary(); assert nodeB.isOnBoundary(); assert nodeC.isOnBoundary(); Node node1 = nodeC.edgeBefore().nodeA(); assert node1!=nodeA; assert node1!=nodeB; if (node1.isOnBoundary()) { Edge edgeTwin = node1.edgeAfter(); assert nodeC==edgeTwin.nodeB(); assert node2!=nodeA; assert node2!=nodeB; if (node2.isOnBoundary()) { Edge edgeTwin = node2.edgeBefore(); assert nodeC==edgeTwin.nodeA();
/** * Determines whether the specified nodes would form a valid face. * Assumes that nodes A and B are a boundary edge. Node C is the * other node that would form the face in question. */ private boolean validForFace(Node nodeA, Node nodeB, Node nodeC) { return !nodeC.isInSurface() || nodeC.isOnBoundary() && !hasInternalEdge(nodeB,nodeC) && !hasInternalEdge(nodeC,nodeA); }