combinedGraph.addEdgeWithNodes(edge);
}
}
} catch (AddEdgeException e) {
throw new AlgorithmException("Failed to make combined graph");
}
List<Node> resultNodes = new ArrayList<Node>();
List<Node> nearNodes;
for (Node node : combinedGraph.getNodeList()) {
nearNodes = combinedGraph.getNearNodes(node);
if (nearNodes.size() == 2) {
resultNodes.add(node);
}
}
if (resultNodes.size() != 2) {
throw new AlgorithmException("Found more or less edges than needed");
}
Edge resultEdge = new Edge(resultNodes.get(0), resultNodes.get(1));
BigDecimal weight = getEdgeLength(resultEdge);