@@ -25,6 +25,8 @@ def createIntersection(id, builder, point: ControlPoint, firstIncidentId,
2525 laneWidth = 3
2626 roadDefs = []
2727
28+ # point.printAdjacentPointsCW()
29+
2830 nIncidentPoints = len (point .adjacentPointsCWOrder )
2931 # if nIncidentPoints > 3:
3032 # print(f"4 arms")
@@ -189,9 +191,12 @@ def getMinDistance(point: ControlPoint, adjPoint, laneConfigurations = None):
189191 prevPoint = adjPoints [prevIndex ]
190192 nextPoint = adjPoints [nextIndex ]
191193
192- print (f"adjPoint" , adjPoint )
193- print (f"prevPoint" , prevPoint )
194- print (f"nextPoint" , nextPoint )
194+ # print(f"adjPoint", adjPoint)
195+ # print(f"prevPoint", prevPoint)
196+ # print(f"nextPoint", nextPoint)
197+ # print(f"adjHeading", headings[curIndex])
198+ # print(f"prevHeading", headings[prevIndex])
199+ # print(f"nextHeading", headings[nextIndex])
195200
196201 n_left = 1
197202 n_right = 1
@@ -200,45 +205,51 @@ def getMinDistance(point: ControlPoint, adjPoint, laneConfigurations = None):
200205 (n_left , n_right ) = laneConfigurations [point ][adjPoint ]
201206
202207 # min distance based on the difference in headings
203- diffWithPrev = abs (headings [curIndex ] - headings [prevIndex ])
208+ diffWithPrev = abs (headings [curIndex ] - headings [prevIndex ]) % (np .pi * 2 )
209+
210+ if diffWithPrev > np .pi :
211+ diffWithPrev = np .pi * 2 - diffWithPrev
212+
204213 n_left_prev = 1
205214 n_right_prev = 1
206215
207216 if laneConfigurations is not None :
208217 (n_left_prev , n_right_prev ) = laneConfigurations [point ][prevPoint ]
209218
210- totalLaneWidth = (n_left + n_right_prev ) * laneWidth
219+ totalLaneWidth = (n_left + n_right_prev + 1 ) * laneWidth
211220
212221 if diffWithPrev <= np .pi / 2 : # less than 90:
213222 minWithPrev = abs (totalLaneWidth / math .sin (diffWithPrev ))
214223 else :
215224 minWithPrev = totalLaneWidth
216225
217- print (f"minWithPrev" , minWithPrev )
218- print (f"totalLaneWidth" , totalLaneWidth )
219- print (f"diffWithPrev" , diffWithPrev )
226+ # print(f"minWithPrev", minWithPrev)
227+ # print(f"totalLaneWidth", totalLaneWidth)
228+ # print(f"diffWithPrev", diffWithPrev)
220229
221230
222231 if minDistance < minWithPrev :
223232 minDistance = minWithPrev
224233
225- diffWithNext = abs (headings [curIndex ] - headings [nextIndex ])
234+ diffWithNext = abs (headings [curIndex ] - headings [nextIndex ]) % (np .pi * 2 )
235+ if diffWithNext > np .pi :
236+ diffWithNext = np .pi * 2 - diffWithNext
226237 n_left_next = 1
227238 n_right_next = 1
228239
229240 if laneConfigurations is not None :
230241 (n_left_next , n_right_next ) = laneConfigurations [point ][nextPoint ]
231242
232- totalLaneWidth = (n_right + n_left_next ) * laneWidth
243+ totalLaneWidth = (n_right + n_left_next + 1 ) * laneWidth
233244
234245 if diffWithNext <= np .pi / 2 : # less than 90:
235246 minWithNext = abs (totalLaneWidth / math .sin (diffWithNext ))
236247 else :
237248 minWithNext = totalLaneWidth
238249
239- print (f"minWithNext" , minWithNext )
240- print (f"totalLaneWidth" , totalLaneWidth )
241- print (f"diffWithNext" , diffWithNext )
250+ # print(f"minWithNext", minWithNext)
251+ # print(f"totalLaneWidth", totalLaneWidth)
252+ # print(f"diffWithNext", diffWithNext)
242253
243254 if minDistance < minWithNext :
244255 minDistance = minWithNext
0 commit comments