nodeB.setEdgeAfter(null); nodeC.setEdgeAfter(null); removeEdge(edgeAB); removeEdge(edgeBC); removeEdge(edgeCA); addFace(face);
nodeA.setEdgeAfter(null); nodeA.setEdgeBefore(null); removeEdge(edge); removeEdge(edge2); addFace(face); addEdge(edgeCB); nodeB.setEdgeAfter(null); nodeB.setEdgeBefore(null); removeEdge(edge); removeEdge(edge1); addFace(face); addEdge(edgeAC);
Edge edgeTwin = node1.edgeAfter(); assert nodeC==edgeTwin.nodeB(); removeEdge(edgeTwin); EdgeFace edgeFaceTwin = addEdge(edgeTwin); Face faceTwin = edgeFaceTwin.face; Edge edgeTwin = node2.edgeBefore(); assert nodeC==edgeTwin.nodeA(); removeEdge(edgeTwin); EdgeFace edgeFaceTwin = addEdge(edgeTwin); Face faceTwin = edgeFaceTwin.face;
removeEdge(edge); addEdge(edge); return true;
removeEdge(edge); removeEdge(edgeTwin); addFace(face); addFace(faceTwin); nodeA.setEdgeAfter(null); nodeD.setEdgeAfter(null); removeEdge(edgeDA); nodeB.setEdgeAfter(null); nodeD.setEdgeAfter(null); removeEdge(edgeBD);
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); }