diff --git a/src/main/org/insa/graph/Node.java b/src/main/org/insa/graph/Node.java index 8aadf84..966fdc8 100644 --- a/src/main/org/insa/graph/Node.java +++ b/src/main/org/insa/graph/Node.java @@ -33,10 +33,23 @@ public class Node implements Comparable { */ public static Arc linkNodes(Node origin, Node destination, float length, RoadInformation roadInformation, ArrayList points) { - ArcForward arc = new ArcForward(origin, destination, length, roadInformation, points); - origin.addSuccessor(arc); - if (!roadInformation.isOneWay()) { - destination.addSuccessor(new ArcBackward(arc)); + Arc arc = null; + if (roadInformation.isOneWay()) { + arc = new ArcForward(origin, destination, length, roadInformation, points); + origin.addSuccessor(arc); + } + else { + Arc d2o; + if (origin.getId() < destination.getId()) { + arc = new ArcForward(origin, destination, length, roadInformation, points); + d2o = new ArcBackward(arc); + } + else { + d2o = new ArcForward(destination, origin, length, roadInformation, points); + arc = new ArcBackward(d2o); + } + origin.addSuccessor(arc); + destination.addSuccessor(d2o); } return arc; }