Skip to content

Commit 64f062b

Browse files
committed
Implemented ClassicGeneerator
workable version. fixed lane issues
1 parent d160aa9 commit 64f062b

File tree

5 files changed

+222
-2466
lines changed

5 files changed

+222
-2466
lines changed

junctionart/junctions/ConnectionBuilder.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,4 +245,47 @@ def createRoadsForLinkConfig(self, nextRoadId, roadDic, firstRoadId, incomingRoa
245245

246246
logging.debug(f"{self.name}: created connection for link {link}")
247247

248+
return newConnectionRoads
249+
250+
def createRoadsForRoundaboutLinkConfig(self, nextRoadId, roadDic, cp1, cp2, linkConfig):
251+
"""[summary]
252+
253+
Args:
254+
nextRoadId ([type]): [description]
255+
roadDic ([type]): Instead of a list of current roads, supply a dictionary where each road is keyed with its id as a string.
256+
firstRoadId ([type]): [description]
257+
incomingRoad ([type]): [description]
258+
cp1 ([type]): cp of the first road that is connected to the intersection.
259+
linkConfig ([type]): a list of tuples where each tuple defines a unique connection between two lanes. A link is a tuple ('incoming-road-id:lane-id', 'outgoing-road-id:lane-id')
260+
261+
Returns:
262+
[type]: [description]
263+
"""
264+
newConnectionRoads = []
265+
for i in range(len(linkConfig)):
266+
link = linkConfig[i]
267+
268+
fromUniqueLaneId = link[0]
269+
incomingRoadId = int(fromUniqueLaneId.split(':')[0])
270+
incomingLaneId = int(fromUniqueLaneId.split(':')[1])
271+
272+
toUniqueLaneId = link[1]
273+
outgoingRoadId = int(toUniqueLaneId.split(':')[0])
274+
outgoingLaneId = int(toUniqueLaneId.split(':')[1])
275+
276+
incomingRoad = roadDic[incomingRoadId]
277+
outgoingRoad = roadDic[outgoingRoadId]
278+
279+
280+
newConnection = self.createSingleLaneConnectionRoad(nextRoadId, incomingRoad, outgoingRoad, incomingLaneId, outgoingLaneId, cp1, cp2)
281+
282+
# newConnection.updatePredecessorOffset(-1 if i % 2 != 0 else 1)
283+
# if i % 2 != 0:
284+
# newConnection.updatePredecessorOffset(-1)
285+
newConnectionRoads.append(newConnection)
286+
287+
nextRoadId += 1
288+
289+
logging.debug(f"{self.name}: created connection for link {link}")
290+
248291
return newConnectionRoads

0 commit comments

Comments
 (0)