1) If a car is blocked by a conflicting turn and is part of a cycle,
wake up the car blocking it. In some cases, this wakes it up faster
and unsticks things. Otherwise, it just wastes a little bit of time.
2) If a car is part of a cycle, allow blocking-the-box.
3) Continue sorting people at a stop sign by the time they've been
waiting. But for cars "overflowing" their current lane, move them to
the front of this ordering. It unsticks one particular situation.
4) Fix wakeup_waiting entirely. Before, it was waking up protected turns
before permitted, but otherwise the ordering was arbitrary. Now actually
respect stop sign ordering. I expect this to improve many other
situations than the one I was checking.
This was all motivated by one particular roundabout in Poundbury. It
doesn't solve gridlock there, but it gets past a major blockage.
The main button API only allows re-writing one color of the image.
Since we need to rewrite multiple colors for the switch, I introduced a
`image_batch` for buttons which lets you do all kinds of manual
fanciness, and pass the result into the button API.
- Stop alerting when slow pedestrians can't make it through the minimum
crosswalk time
- Simpler iteration style in lagging_green.rs
- Totally delete the old brute force signal config code; it never worked
well, and the improved heuristics eliminate the need for it anyway
- Make a Duration::max function and use it in one case
And write the result as geojson. This process could become a map
importer phase, but I like checking the intermediate results, and it's
not clear yet how often we'd be using this.
* introduce "pill" to be explicit about fully rounded, vs a "None" radius
* no-op transition to CornerRadii
* popup button to spec
* restore "fully rounded" layout behavior
* use plain light to better show highlight
* persistent split to spec (for day theme anyway)
* remove night-theme colors for speed panel
* fixup docs for pill
* CR: remove unnecessary `row`
* CR: remove outdated doc
* import order
originally I was going to implement std::fmt::Debug, but since these are
private members I just renamed them. Not sure why they had a baroque
name - it's ok for fields to have the same name as methods.
This will make it easier to visually track the progress improving the
import. Originally London was added to have one left-hand driving map
under the test, but Cambridge works for that too, and it also includes
separate cycleways.
Also fix a crash when trying to draw very very tiny arrows.
result is usually a Ring. This gets lanes to render in the GeoJSON
export. #440
Ideally all Polygons would be expressed as an outer Ring and some
optional inner Rings. There are a few cases where this is hard, and we
instead just rely on the triangulation for rendering and point
containment and give up on GeoJSON export.
Not regenerating all maps yet -- zero screenshot diff, the map file does
change, but not sure how.
- point to the driveway, not the building center
- scale arrow length so it doesn't overshoot where we're supposed to go
- explicitly say to go refill from a store
intersection polygon in Krakow that has really bad geometry, and this
improves it. The extra check absolutely shouldn't be necessary, but of
course, all the core line intersection code is quite suspect! #161