/** * 制作mesh边界的拓扑关系 * * @param bordNodeList :边界Node列表 */ public void makeBorderTopo(List<NodeNew> bordNodeList) { if (bordNodeList.size() == 0) { return; } Collections.sort( bordNodeList, new Comparator<NodeNew>() { @Override public int compare(NodeNew o1, NodeNew o2) { if (o1.point.x > o2.point.x) { return 1; } if (o1.point.x < o2.point.x) { return -1; } if (o1.point.y > o2.point.y) { return 1; } if (o1.point.y < o2.point.y) { return -1; } return 0; } }); // 合并相同边界Node NodeNew bordNode = bordNodeList.get(0); for (int i = 1; i < bordNodeList.size(); i++) { NodeNew node = bordNodeList.get(i); // if("97A062A001F0001382".equals(bordNode.nodeId)){ // System.out.println("test"); // } // 判断合并条件 && // 合并边界点 if (node.point.equals(bordNode.point) && bordNode.mergerBorderNode(node)) { node.delFlag = true; // 合并复杂路口对象 // if(复杂路口) if (node.isIntersectionNode() && bordNode.isIntersectionNode()) { // 在复杂路口内遍历,找到包含bordNode node bordNode.intersection.mergerIntersection(node.intersection); } } else { bordNode = node; } } clearRoadList(); clearNodeList(); clearIntersectionList(); }