TetMesh.Node meshNodeA = meshEdge.nodeA(); TetMesh.Node meshNodeB = meshEdge.nodeB();
Node ea = edge.nodeA(); Node eb = edge.nodeB();
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()); trace(" meshEdgeTwin A="+edgeTwin._meshEdge.nodeA()); trace(" meshEdgeTwin B="+edgeTwin._meshEdge.nodeB()); trace(" meshFaceTwin A="+faceTwin._meshFace.nodeA());
private void fillEar(Edge edge, Face face) { trace("fillEar: edge="+edge+" face="+face); trace(" meshEdge A="+edge._meshEdge.nodeA()); trace(" meshEdge B="+edge._meshEdge.nodeB()); trace(" meshFace A="+face._meshFace.nodeA());
private void fillHole(Edge edge, Face face) { trace("fillHole: edge="+edge+" face="+face); trace(" meshEdge A="+edge._meshEdge.nodeA()); trace(" meshEdge B="+edge._meshEdge.nodeB()); trace(" meshFace A="+face._meshFace.nodeA());
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); }
/** * Determines whether the specified edge is an inner edge. * @param edge an edge. * @return true, if inner; false, otherwise. */ public boolean isInner(Edge edge) { Tet tet = edge.tet(); if (tet==null) tet = findTet(edge.nodeA(),edge.nodeB()); if (tet==null) return false; if (tet.isInner()) return true; Tet[] tets = getTetNabors(edge); int ntet = tets.length; for (int itet=0; itet<ntet; ++itet) { if (isInner(tets[itet])) return true; } return false; }
private Edge(TetMesh.Edge meshEdge, Face face) { _meshEdge = meshEdge; Node nodeA = (Node)meshEdge.nodeA().data; Node nodeB = (Node)meshEdge.nodeB().data; Node nodeC = (face!=null)?otherNode(face,nodeA,nodeB):null; Check.argument(face==null || nodeC!=null,"face references edge"); if (nodeC!=null) { if (nodesInOrder(face,nodeA,nodeB,nodeC)) { _faceLeft = face; _faceRight = face.faceNabor(nodeC); } else { _faceLeft = face.faceNabor(nodeC); _faceRight = face; } } } }
/** * Appends the tet nabors of the specified edge to the specified list. * @param edge the edge for which to get nabors. * @param nabors the list to which nabors are appended. */ public synchronized void getTetNabors(Edge edge, TetList nabors) { Node na = edge.nodeA(); Node nb = edge.nodeB(); Tet tet = edge.tet(); if (tet==null) tet = findTet(na,nb); if (tet==null) return; clearTetMarks(); getTetNabors(na,nb,tet,nabors); }
private TetMesh.Edge findMeshEdge(Node nodeA, Node nodeB) { TetMesh.Node meshNodeA = nodeA._meshNode; TetMesh.Node meshNodeB = nodeB._meshNode; TetMesh.Edge meshEdge = _mesh.findEdge(meshNodeA,meshNodeB); if (meshEdge!=null && meshNodeA!=meshEdge.nodeA()) meshEdge = meshEdge.mate(); return meshEdge; }
public Node nodeA() { return (Node)_meshEdge.nodeA().data; } public Node nodeB() {