Commit Graph

398 Commits

Author SHA1 Message Date
Dustin Carlino
e542011614 More fluid UI for comparing traffic counts -- hotkeys
Had to change the API of on_click...
2022-01-27 15:13:24 +00:00
Dustin Carlino
5dfb8f26f0 Refactor ColorNetwork to use ToggleZoomed 2022-01-26 11:31:33 +00:00
Dustin Carlino
ec0fd1b94d Stop running out of video memory in the LTN impact prediction tool.
- One batch for all neighborhoods
- One batch for all roads/intersections
- No pre-built tooltips

This all comes at more repetitive code. Need to make World generate some
stuff dynamically (#763)
2022-01-26 11:26:03 +00:00
Dustin Carlino
a14d6b3810 Better errors when core Line stuff breaks.
... and plumbing it everywhere
2022-01-18 10:26:33 +00:00
Dustin Carlino
bd340a1970 Switch from std::fs to fs_err. When files aren't found, the error message actually includes the path! 2022-01-17 17:30:51 +00:00
Dustin Carlino
7d6f133f1c Make the LTN tool handle roads that already ban cars.
- Don't allow filtering them
- Don't cross them when calculating cell connectivity
- Create special green cells for them, and don't count towards the
  disconnected warning
2021-12-31 16:28:51 +00:00
Dustin Carlino
bffa469396 Print LTN pathfinding info in the panel, not a tooltip. The tooltips
clash with clicking on roads to filter them, and probably weren't
terribly discoverable anyway.
2021-12-29 18:23:33 +00:00
Dustin Carlino
f7f23465c1 Edit modal filters from within the pathfinding view too.
Slow implementation, but at least it works
2021-12-29 13:14:44 +00:00
Dustin Carlino
fbc847f48c Share modal filter management between connectivity and rat run states 2021-12-29 12:38:11 +00:00
Dustin Carlino
1e414d0f31 Share the panel style too for pathfinding. (It was a bigger change, easier to separate) 2021-12-29 11:54:12 +00:00
Dustin Carlino
83bf6953d1 Rank each street inside a neighborhood as quiet/busy, based on the number of rat-runs through it.
Show this through a heatmap and tooltips
2021-12-19 12:06:42 +00:00
Dustin Carlino
eb4060b071 Improve LTN tool rendering when zoomed in. Outlines around selected
objects are less thick and opaque, to cover up less of the road.
2021-12-17 11:37:54 +00:00
Dustin Carlino
e77ce12537 Draw custom LTN boundaries, by painting blocks. #794
Still need to think through the UX of how to manage custom boundaries
and incorporate them in the "browse neighborhoods" screen.
2021-12-14 10:33:42 -08:00
Dustin Carlino
331a3674b1 Restore spinner values in replacement panels.
First use case is in the LTN route tool. I audited other UIs using
spinners and panel restore -- there are none.
2021-11-21 11:58:37 -08:00
Dustin Carlino
2f18e4badc Remove broken code for Leaflet-named screenshots. #440
Gave up on Leaflet in favor of Mapbox GL, and the math was always wrong
here anyway.
2021-11-11 09:02:29 -08:00
Dustin Carlino
f751b7d54b Removing the pregame color scheme 2021-11-06 10:33:11 -07:00
Dustin Carlino
401d5fe297 Make it even easier to debug block order 2021-11-02 16:31:29 -07:00
Dustin Carlino
00df96f173
Render A/B Street's lanes and traffic simulation on top of Mapbox GL (#788)
[rebuild] [release]
2021-10-31 13:52:58 -07:00
Dustin Carlino
5e5e411de8
Detect neighborhoods with the new block abstraction (#793) 2021-10-28 10:11:57 -07:00
Dustin Carlino
9f86365cf6 Upgrade to rust 1.56 and cutover to rust edition 2021 2021-10-21 09:38:06 -07:00
Dustin Carlino
48ed3683e5 Fix the thickness math 2021-10-18 17:54:58 -07:00
Dustin Carlino
002b41816d Actually, generalize UnzoomedLines to handle circles too. Make the route sketcher nicer to use at all zoom levels! 2021-10-18 17:54:58 -07:00
Dustin Carlino
749a7384c1 Make the route sketcher tool use UnzoomedLines, making it much easier to see the route on large maps.
Note the draggable waypoint circles are still a fixed size; you can't
easily manipulate the route when unzoomed far.
2021-10-18 17:54:58 -07:00
Dustin Carlino
b5cca3f18c Refactor a helper to draw unzoomed thick lines at a constant width.
To start, just make the bike network use this.
2021-10-18 17:54:58 -07:00
Dustin Carlino
a643c35014 Long overdue round of clippy 2021-10-18 13:52:10 -07:00
Dustin Carlino
7d57deb8ae Move the focus state from Panel up to widgetry in general, so two different panels don't clash 2021-10-14 17:57:03 -07:00
Dustin Carlino
698e26a831 Use Outcome::Focused to match existing semantics better 2021-10-14 17:57:03 -07:00
Dustin Carlino
b024fa958a It's hard to focus...
While dragging a card or using a dropdown or persistent split menu,
prevent other widgets in the same panel from handling events.
2021-10-14 17:57:03 -07:00
Michael Kirk
56323116e1 Don't show details widget until 2+ waypoints
Otherwise there's no route, also this helps focus on the "add waypoint"
instructions.
2021-10-11 19:42:03 -07:00
Michael Kirk
738c4ab865 clean up set_hovering tooltip style 2021-10-11 16:03:05 -07:00
Michael Kirk
476f19142f
Consistent panel width (#772)
* reorder tabs: plan trip before adding lanes

This order of tasks should be more logical for most people.

* Copy tweaks

"trip" is better than "route" since you don't pick the route, only the
start/end points. The route is inferred based on the available roads.

* Smaller elevation plot

it was much wider than any other UI element, meaning the column
dramatically jumps sizes when switching to this tab.

* better align line-plot x-axis

* Avoid jittering UI while switching through tabs.

* fixup! Avoid jittering UI while switching through tabs.

* fixup! Copy tweaks

* fixup! reorder tabs: plan trip before adding lanes

* fixup! Copy tweaks
2021-10-11 15:02:41 -07:00
Dustin Carlino
a8e9a1fd08 Variable rename for more clear code; feedback from #764 2021-10-07 14:51:28 -07:00
Dustin Carlino
ddbadd2da3 Make waypoints and routes coexist in the same World. #763 [rebuild] [release]
The pattern is somewhat similar to how different components share a
Panel. The "outer-most" piece owns the World, calls into InputWaypoints
to fill out the World, and plumbs un-handled events to it.

Also handle a tricky low-level bug with ctx.normal_left_click() and
detecting drags vs clicks.

Now finally there's no buggy conflicts between dragging waypoints and
hovering on the alternate routes!
2021-10-03 14:28:44 -07:00
Dustin Carlino
41465c341b Convert the new bike routing tool to use World. #763
This one is the most complicated, and it's still not done, but it's not
any buggier than the ad-hoc implementation. I still need to figure out
how to merge the two worlds of waypoints and routes.

This one also required a large, but mechanical, refactor to lift
ToggleZoomed and the concept of unzoomed/zoomed from map_gui to
widgetry.
2021-10-03 14:28:44 -07:00
Dustin Carlino
43f8a6d1e7 Convert the signal demand dashboard to World. #763 2021-10-03 14:28:44 -07:00
Dustin Carlino
5a37e223c0 Cut over the story map tool to the brave new World. #763
Figure out how to make objects both clickable and draggable!
2021-10-03 14:28:44 -07:00
Dustin Carlino
8524cfce12 Create a new map-space World abstraction, and change the polygon editor to use it. #763 2021-10-03 14:28:44 -07:00
Dustin Carlino
4ddfe66afd Finally clean up txt.with_bg. The last few uses were actually illegible from the default color! 2021-09-29 13:34:46 -07:00
Dustin Carlino
c4d38ca591 A humble start to showing an alternate, low-stress route. #743 2021-09-27 13:13:11 -07:00
Dustin Carlino
d365213948 Small refactor: {road, lane}.length() 2021-09-26 11:08:44 -07:00
Dustin Carlino
632a527dbc Consolidate the route results panel on the left side, as a first step towards Mara's design. #743 2021-09-21 09:09:34 -07:00
Dustin Carlino
f14b7eb9e7 Calculating and showing network gaps, wiring up filters. #448 2021-09-20 14:42:02 -07:00
Gedalia Kott
d833f82c73 Fix Issue #692:settings for metric VS imperial distance units are repsected for distance 2021-09-18 14:06:32 -07:00
Dustin Carlino
dd49caec4a When dragging the canvas is interrupted, clean up the state properly, cancelling the drag. #754 2021-09-17 14:05:14 -07:00
Dustin Carlino
cca701fb3e Show traffic signals along route. #743 2021-09-17 12:27:00 -07:00
Michael Kirk
83ebc96bb1 drag/drop uses system grabbable/grabbing cursor 2021-09-10 15:17:15 -07:00
Michael Kirk
577192bb89 style row header 2021-09-10 15:17:15 -07:00
Michael Kirk
09fcca8533 left-align vertical drag/drops 2021-09-10 15:17:15 -07:00
Michael Kirk
3b1ed1f82f fix button v alignment,
Also: use standard interaction color when dragging, not the primary
orange color.
2021-09-10 15:17:15 -07:00
Michael Kirk
84b3d87c37 refactor uninted to be builder method, not constructor. it composes better this way 2021-09-10 15:17:15 -07:00