we need to adjust the start position to account for the vehicle's
length.
Also add a very convenient debug tool to understand positions along
lanes.
This probably breaks static blockages; I'll check into that next.
- Adding an internal alt_start to PathRequest
- Using it for contraction hierarchy queries only (the Dijkstra
implementation now diverges!)
- Figuring out which start position was used
TODO:
- Fix the unparking position
- Make sure the simulation inserts static blockages
- Carefully check the same start/end road case
- Evaluate impact on gridlock / cancelled trips
- offstreet_parking_length in importer config
- backwards compatibility for map edits
- fixing up the baked-in proposals
- working around a few PolyLine bugs that happen with the new rounding
- Don't regenerate actdev scenarios yet -- the upstream JSON format is
out of date, will have to fix separately.
I have some fuzzy vision of declaring all importer pieces as a dependency graph, with optional caching of some input, that would express this kind of thing better. But... in the meantime.
Now regenerating everything...
only. It has much simpler logic and produces correct results for these
intersections, but it has degradations in some cases -- so limit where
we use it.
But in the meantime, this makes realistic crosswalks over Aurora,
fixing crazy walking detours there.
Not regenerating yet.
- Allow blocking the box around two complex intersections in Green Lake.
This makes the vehicle behavior much more realistic there, by visual
inspection.
- Amp up offstreet parking to 10 per building. I noticed the simulation
completes easily with --infinite_parking. This is an approximation of
that. We make really bad guesses about carpooling and the amount of
parking available around here, so effectively just remove it from
consideration for now.
Verified working on native. It should also be fine on web -- loading the
unedited map has to be a whole separate state because of web IO in the
first place.
- only triggered when a vehicle becomes Queued
- Only one adjacent lane, no contraflow (crossing the road's center
line)
- Don't return to the original lane after passing
- Using a static blockage in the old lane (so other vehicles will wait
too much)
- Only using the new lane to determine position (so visually a car will
clip a bike as they pass)
Haven't regenerated prebaked data. #382
containing some points. Happens at i524 in Arboretum and in the West
Seattle proposal.
I don't understand yet why this is possible in the first place, but
crashing is pretty bad in the meantime.
- arrays are now iterable directly
- switch to using BTree{Set,Map}::retain!
- a round of clippy
- regenerate scenarios and prebaked data; not sure why, but there's a
diff
distances... #555
Prebaked actually broke with the previous commit in Arboretum, because a
car waits behind a blockage, then suddenly warps ahead. But now we can
fix this...
Vehicles now wait behind blockages, but one more little bug... after the
driveway is clear, the waiting vehicle jumps forward. Need to reset
their crossing state, same as waiting behind a bus.