Commit Graph

143 Commits

Author SHA1 Message Date
Dustin Carlino
e3b9c42506 Refactor: panel.replace() will set the same name on the new element 2020-11-10 11:49:55 -08:00
Dustin Carlino
ac6eff31ef Rename some maps to remove the now-redundant city. #326 2020-11-05 15:24:02 -08:00
Dustin Carlino
3d84defb71 Also organize screenshots by city. #326 2020-11-05 14:42:40 -08:00
Dustin Carlino
67530bec07 Future-proof file organization by changing map_name from a string to a
struct. Whatever choices we make next about naming cities hierarchially
or not can be managed in just one place. #326

This is a pretty huge change, but the compiler gives reasonable
confidence it's correct. More bugs are likely to crop up in the next
step, when filenames start being namespaced by the city too.
2020-11-04 17:26:32 -08:00
Dustin Carlino
0167b4be31 A tiny start to the great UI button refactor: make the "X" button
consistent. #331
2020-10-28 12:04:36 -07:00
Dustin Carlino
c2b6c917ae Generalize the State/Transition GUI structure, moving it into widgetry.
Nothing about it is specific to A/B Street, and other apps built with
widgetry could organize themselves as a stack of states. This is also a
first step towards sharing more common code between A/B Street and a
future OSM viewer.

Mostly mechanical change. Some more cleanup / documentation coming up
next.
2020-10-22 17:34:59 -07:00
Dustin Carlino
4a3ea8b5c7 Add a tool to export a road to streetmix. Untested, because still having trouble making manual API calls. 2020-10-22 16:29:42 -07:00
Dustin Carlino
81dae1e39c Slightly simplify some plumbing of variables through nested closures, by
remembering that FnOnce exists
2020-10-14 15:36:08 -05:00
Dustin Carlino
1906fb0913 Remove the GetDrawAgents indirection. Originally the UI could pull the
set of agents to draw either from the simulation or from this
"time-traveler" plugin, which would let you rewind sim time. That plugin
is long gone, and it never worked well, because much of the UI would use
the GetDrawAgents to select something, then query the live sim for lots
of details anyway. The plugin never served all of those calls, so the
results would be kind of out-of-sync anyway.

There are some parts of the UI that need to temporarily not draw agents.
Use the same suspended_sim trick that edit mode does.
2020-10-12 11:52:05 -05:00
Dustin Carlino
3feb9d6dbe Make the proposals picker use the new map loading mechanism 2020-10-09 15:57:20 -07:00
Dustin Carlino
03eac377d6 Convert ScreenshotTest away from app.switch_map 2020-10-09 15:07:35 -07:00
Dustin Carlino
f258c50595 Organize import blocks using https://github.com/dabreegster/organize_rust_imports 2020-10-05 20:29:22 -07:00
Dustin Carlino
27d94945c6 Manually move mod block after the use block, to match what CLion does. 2020-10-05 20:29:22 -07:00
Dustin Carlino
8e49aac42f Make traffic seitan close roads that agents are about to use, causing a
crash. And start to figure out the debugging story.
2020-10-05 08:49:16 -07:00
Dustin Carlino
98d26d8979 Refactor calls to calculate_current_selection 2020-10-03 16:37:56 -07:00
Dustin Carlino
49f4d3e3dc
Add a tool to see where people blocked on a traffic signal are trying to go (#354) 2020-09-29 15:22:05 -07:00
Dustin Carlino
84891f8b96 Some map fixes to prepare for alleyways:
- Temporarily workaround snap_cycleways crash in Xi'an
- Fix interpretation of blank turn restrictions. https://www.openstreetmap.org/way/739621435 was missing a right turn, which was causing vehicles to do this crazy loop to go from Madison EB to Lake Wash SB.
- Ignore turn restrictions when they don't match the number of lanes. https://www.openstreetmap.org/way/428090702 and similar need some updating.

Regenerate all data, but give up on lakeslice running fully. Going to
sacrifice that one for a bit to get new roads imported.
2020-09-27 11:21:35 -07:00
Dustin Carlino
83ff6db16c Improve the signal demand dash with keys to change hour. And slightly
refactor styled keys in text.
2020-09-19 10:18:23 -07:00
Dustin Carlino
d9e50a7e38 Use .into() for specifying keys to widgetry more ergonomically. #253 2020-09-18 09:26:14 -07:00
Dustin Carlino
ec28132286 Implement Yuwen's split jump to time/delay UI [rebuild] 2020-09-14 10:28:25 -07:00
Dustin Carlino
d8011a90f4 Handle live edits by just aborting any current trips that cross an
edited road or closed intersection. #312

Along the way, refactor more context plumbing in DrivingSimState.
2020-09-09 15:03:14 -07:00
Dustin Carlino
5c6e781016 Collapse a few more of the Transitions 2020-09-07 10:49:20 -07:00
Dustin Carlino
38ba8d55f3 Produce proper lanes for left-hand driving by intervening at the LaneSpec layer for #311. Since London looks reasonable, opt it into the screenshot tests 2020-09-04 10:01:06 -07:00
Dustin Carlino
de6a12e472 After much deliberation, rename Composite -> Panel (#253) 2020-08-27 12:12:44 -07:00
Dustin Carlino
2935d2379b Mechanical rename of ezgui -> widgetry, a much better name to enchant the Rust community. #253 [rebuild] 2020-08-27 10:37:04 -07:00
Dustin Carlino
8c1686c25f Add a tool to screenshot all of the maps currently under diff testing. This tiny bit of automation saves me some manual labor. 2020-08-26 09:41:03 -07:00
Dustin Carlino
aa3bd5073b Make some new methods on Road to handle child lanes from left-to-right,
not split by direction. Update many callers, and lock down the
visibility of the old methods.

Tested a few maps manually to make sure there's no behavioral diff. Only
problem right now is the z-order of adjacent lanes covering up half of
the white stripe sometimes. Have some ideas to fix that later, and not
_super_ important in the meantime.
2020-08-25 12:08:54 -07:00
Dustin Carlino
b41b52d7bd fix crash in debug mode when opening info panels 2020-08-24 09:01:27 -07:00
Dustin Carlino
66151e8aa4 Dump route goldenfiles during the smoke-test, so that it's run when all
data is regenerated. (Ideally screenshots would also be automated, but
that's a little trickier.)

_NOW_ regenerate all data! The only diff anywhere is the binary map
format, so there's confidence the last few commits haven't changed
anything.
2020-08-22 10:53:05 -07:00
Dustin Carlino
0749a2ac7b start keeping goldenfiles for bus routes, similar to the screenshot diff test. this will make it much easier to finish up bus matching without accidentally regressing somewhere 2020-08-10 16:03:04 -07:00
Dustin Carlino
b881fa605b convert the last caller away from wizard... 2020-08-07 13:52:27 -07:00
Dustin Carlino
f61881f6fa move more UIs away from wizards. editing signal offset broke, because
the perma format doesn't encode offset yet
2020-08-07 13:33:58 -07:00
Dustin Carlino
480156c7c6 convert more Wizards to ChooseSomethings 2020-08-06 10:21:01 -07:00
Dustin Carlino
e68df0ed1a and make tool_panel normal, ending the strange reign of WrappedComposite 2020-08-04 12:34:58 -07:00
Dustin Carlino
225abcd112 clean up old UserInput APIs from long, long ago 2020-08-04 12:00:07 -07:00
Dustin Carlino
5fe3cc5f8a slowly whittle down public surface of ezgui
- stop referencing Prerender when easy
- default_font_size hasn't been used since the great typography refactor

some of this harms the usability of map_editor, but that's fine, because
the UX is awful anyway, and nobody should be using this except for me
very occasionally. long-term fate of it is to go away.
2020-08-04 11:36:47 -07:00
Dustin Carlino
a9998a0735 tool to find huge intersections, usually where lane count is way off 2020-08-03 18:12:18 -07:00
Dustin Carlino
f0ecd914b5 emit Outcome::Changed for dropdowns, checkboxes, spinners. simplify client code 2020-08-03 14:27:44 -07:00
Dustin Carlino
41f4cfff6d tool-assisted refactor of ezgui Outcome 2020-08-03 13:42:59 -07:00
Michael Kirk
3879753cd2
revert some switches back to checkboxes (#252)
* revert some switches back to checkboxes

partial revert of 90bb4ac0

In many ways switches and checkboxes seem interchangeable, but in certain
contexts one may be more appropriate.

For an overview that I mostly agree with:
https://uxplanet.org/checkbox-vs-toggle-switch-7fc6e83f10b8
2020-07-28 13:58:20 -07:00
Dustin Carlino
328cbcd1f1 stop melting my laptop when generating scenarios 2020-07-23 09:15:25 -07:00
Dustin Carlino
f1ef02b907 store Tags in map_model objects, to reap its benefits anywhere in the codebase. serialization format doesnt change! 2020-07-23 07:43:50 -07:00
Dustin Carlino
4f8f659dfb widget replacement keeps margins from the old 2020-07-19 11:28:12 -07:00
Dustin Carlino
ccf213ded9 fix pioneer square station snapping. rust-geo's FindClosest has a bug.
>_<
2020-07-16 13:22:05 -07:00
Dustin Carlino
98b9115f88 better tool to explore degenerate roads 2020-07-14 21:02:33 -07:00
Dustin Carlino
b68e233125 trying to handle gridlock near tiny roads for #114. treat the entire
sequence as one thing to lock -- don't start it until it's clear, and
prevent new conflicting turns once started. disable block-the-box
protection inside.

I'm not sure this is helping at all yet. maybe it's just more complex.
2020-07-13 12:30:24 -07:00
Dustin Carlino
187c8ad4c5 consider again the possibility of merging some degenerate roads 2020-07-07 21:39:42 -07:00
Dustin Carlino
4aaa41dd13 zip screenshots in dropbox, because managing individual files keeps crashing the daemon 2020-07-07 16:31:52 -07:00
Dustin Carlino
3eb8db3f75 interpret OSM center lines as the physical center of the road (excluding
sidewalks), not as the divider between the two directions. this
dramatically changes geometry everywhere for the better.

thanks to
https://wiki.openstreetmap.org/wiki/Proposed_features/placement for
clear explanations. will be looking next at interpreting this tag.

also temporarily removing screenshots, because uploading individual
files and waiting for dropbox to sync isn't sustainable
2020-07-07 15:52:51 -07:00
Dustin Carlino
c3858b9cdd mark construction lanes appropriately. this broke when adapting to the new tagging on the west seattle bridge, but there are some roads tagged this way in krakow.
(not regenerating all the maps yet, expecting to do more work on this
today)
2020-07-06 07:43:42 -07:00