public void add(Edge edge) { RoadSegment roadSegment = (RoadSegment) edge; RoadNode startNode = getNode(roadSegment.getLine().getCoordinateN(0)); RoadNode endNode = getNode(roadSegment.getLine().getCoordinateN(roadSegment.getLine().getNumPoints() - 1)); roadSegment.setStartNode(startNode); roadSegment.setEndNode(endNode); DirectedEdge directedEdge0 = new DirectedEdge(startNode, endNode, roadSegment.getLine().getCoordinateN(1), true); DirectedEdge directedEdge1 = new DirectedEdge( endNode, startNode, roadSegment.getLine().getCoordinateN(roadSegment.getLine().getNumPoints() - 2), false); roadSegment.setDirectedEdges(directedEdge0, directedEdge1); super.add(roadSegment); }