/** * Returns a directed edge AB that references the specified nodes. * @param nodeA a node. * @param nodeB a node. * @return a directed edge that references the specified nodes; * or null, if nodes A and B are not adjacent in the surface. */ public synchronized Edge findEdge(Node nodeA, Node nodeB) { TetMesh.Edge meshEdge = findMeshEdge(nodeA,nodeB); Edge edge = getEdge(meshEdge); if (meshEdge!=null && edge==null) { Face face = findFace(nodeA,nodeB); if (face!=null) { Node nodeC = otherNode(face,nodeA,nodeB); if (nodesInOrder(face,nodeA,nodeB,nodeC)) edge = new Edge(meshEdge,face); } } return edge; }
double gradeTwin = edgeFaceTwin.grade; if (faceTwin!=null && nodesInOrder(faceTwin,node1,nodeC,nodeB) && gradeTwin>grade) return edgeFaceTwin; double gradeTwin = edgeFaceTwin.grade; if (faceTwin!=null && nodesInOrder(faceTwin,node2,nodeA,nodeC) && gradeTwin>grade) return edgeFaceTwin;