private void extend(Edge edge, Face face) {
trace("extend: edge="+edge+" face="+face);
trace(" meshEdge A="+edge._meshEdge.nodeA());
trace(" meshEdge B="+edge._meshEdge.nodeB());
trace(" meshFace A="+face._meshFace.nodeA());
trace(" meshFace B="+face._meshFace.nodeB());
trace(" meshFace C="+face._meshFace.nodeC());
assert edge.isOnBoundary();
Node nodeA = edge.nodeA();
Node nodeB = edge.nodeB();
Node nodeC = otherNode(face,nodeA,nodeB);
nodeC.setFace(face);
linkFaces(face,nodeC,edge.faceRight(),edge.nodeRight());
Edge edgeAC = makeEdge(nodeA,nodeC,face);
Edge edgeCB = makeEdge(nodeC,nodeB,face);
nodeA.setEdgeAfter(edgeAC);
nodeB.setEdgeBefore(edgeCB);
nodeC.setEdgeAfter(edgeCB);
nodeC.setEdgeBefore(edgeAC);
removeEdge(edge);
addFace(face);
addEdge(edgeAC);
addEdge(edgeCB);
}