Commit Graph

2036 Commits

Author SHA1 Message Date
Dustin Carlino
6a8e01d4cd Remove an unnecessary slider from the polygon debugger, and lock down set_percent, which is causing some scrollabr dragging bugs. 2020-10-27 11:31:37 -07:00
Dustin Carlino
fda4c4da7b Refactor a few utilities, and use convex hull of the city boundaries to simplify them considerably. #326 2020-10-26 14:15:25 -07:00
Dustin Carlino
1cc7982ff7 fix web build and redeploy 2020-10-26 10:23:24 -07:00
Dustin Carlino
47fa997f72 Refactor a proper Amenity struct. Leave room for optional raw OSM tags.
Don't expose the tags in the UI yet. [rebuild]
2020-10-25 11:49:46 -07:00
Dustin Carlino
1a630c6361 Highlight categories of businesses in the osm viewer 2020-10-24 15:19:51 -07:00
Dustin Carlino
34b41a909e Optionally keep building OSM tags. Display in info panels and the new viewer, when present.
Don't keep the tags by default. File size increase from the empty map is
negligible.
2020-10-24 14:19:22 -07:00
Dustin Carlino
ad23da1f6c Workaround widgetry panel bug in the osm viewer, where scrollbars aren't
recomputed when panel contents change size.
2020-10-24 13:41:06 -07:00
Dustin Carlino
614c744dc9 Add a POI search to the new viewer 2020-10-24 13:13:04 -07:00
Dustin Carlino
a538b5cd64 Add the minimap to the OSM viewer, making a variation that hides some features 2020-10-24 12:27:27 -07:00
Dustin Carlino
6fef09fb8d Flesh out the OSM viewer:
- outline around fixed objects
- open OSM keys in the wiki
- info panels for buildings, intersections, and parking lots
- show turns from lanes
2020-10-24 11:38:19 -07:00
Dustin Carlino
8339c893eb Show some OSM key/values for roads in the new viewer 2020-10-23 21:15:09 -07:00
Dustin Carlino
ecabf2436f Experiment with a dedicated OSM viewer, to debut at Connect 2020. For
now, this is still embedded in A/B Street, to take advantage of
everything that already exists. But later, the idea is to split it into
a separate crate, sharing lots of code.
2020-10-23 16:28:47 -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
89977b3b31 Move grey_out_map out of State, in preparation for generalizing state/transition. #253 2020-10-22 16:53:15 -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
83c1c09936 Notify the player how many trips got oofed after live map edits. #312 2020-10-22 11:58:16 -07:00
Dustin Carlino
ad41303e5c After making live map edits, indicate that results aren't finalized. #312 2020-10-22 11:05:07 -07:00
Dustin Carlino
8e6aa08d59 Breakdown agent counts much more in the tooltips. #331 2020-10-21 14:26:59 -07:00
Dustin Carlino
035b8ee96f Fix alpha colors on the web by making the background canvas black instead of white. https://webglfundamentals.org/webgl/lessons/webgl-and-alpha.html has other workarounds, but I can't figure out how to control the webgl context parameters.
Also improve the loading message that appears before wasm has taken
over.
2020-10-21 10:50:40 -07:00
Dustin Carlino
8a1525ddfa Lift parsing of --scenario_modifiers to a more common place, so it can be done in run_scenario too. #368 2020-10-21 08:35:38 -07:00
Dustin Carlino
ead7960112 Collapse one case of possible nested loading screens. Slightly simpler
code, but this doesn't solve the bug of a second squished loading screen
for scenarios.
2020-10-20 18:24:37 -07:00
Dustin Carlino
d8910ad04f Build a quadtree of unzoomed agents while drawing, to later speedup mouseover. This seems to make performance fine in debug mode, so get rid of the flag guarding of this feature! [rebuild] 2020-10-20 11:38:38 -07:00
Dustin Carlino
bc3110ba9d Add sidewalk borders to the new color scheme. Possibly need to rethink
sidewalk geometry again for this.
2020-10-20 11:28:45 -07:00
Dustin Carlino
177484d2b6 A few adjustments to the mapbox-ish color scheme: highway marking color, solid center lines 2020-10-20 10:51:03 -07:00
Dustin Carlino
af70904377 Document as much of geom as I can before my battery dies. And a mechanical API changes, Angle::new_degs -> Angle::degrees 2020-10-19 19:55:05 -05:00
Dustin Carlino
c435d3fce2 Consolidate two scenario modifiers, allowing all walking trips to be cancelled, for #368 2020-10-19 18:03:17 -05:00
Dustin Carlino
21e30aac94 Stop drawing arrows in the trip info panels to show where off-map trips begin/end. These were added way back when modelling remote trips for the pandemic sim, but they're just noisy otherwise. 2020-10-19 14:29:36 -05:00
Dustin Carlino
3f69b76bae Make the 'cancelled' and future trip info panels closer to the others, with buttons to jump to the start/end point 2020-10-19 14:27:58 -05:00
Dustin Carlino
954aab953e Add an "abstract" camera angle to just show buildings as uniform shapes.
A place to play around with showing symbols, not real geometry.
2020-10-19 13:14:44 -05:00
Dustin Carlino
913dd0c4db Try Yuwen's new colors for the 'faded zoom' color scheme 2020-10-19 12:52:02 -05:00
Dustin Carlino
06f088afcc More clearly handle the different strategies for filesystem access. On
native, only look at local files -- so now importing new maps locally
works again. On web, look at statically bundled files AND remote files
declared through the manifest.

In the future for native, we will also want to sometimes show remote
files available and integrate part of the updater, but only in a
specific view, not in general for all files.
2020-10-16 13:44:05 -05:00
Dustin Carlino
a18f494416 Don't crash on the web when loading a nonexistent file. This now happens, because we try to load prebaked results for synthetic scenarios. 2020-10-16 13:38:39 -05:00
Dustin Carlino
422882c03b Ditch cpuprofiler in favor of cargo flamegraph. Add a tool that just
runs a scenario headlessly, since that's easier than sending a few curl
commands to the API. #368
2020-10-15 17:12:38 -05:00
Dustin Carlino
4a197fa13d Until there's a faster implementation, just flag-guard selecting unzoomed agents 2020-10-15 14:58:07 -05:00
Dustin Carlino
38394c4a08 Comment some code to clarify things in #365, and switch the color for
selecting unzoomed agents
2020-10-15 14:58:07 -05:00
Dustin Carlino
028d1df62c Allow selecting and clicking unzoomed agents. [rebuild] 2020-10-15 14:58:07 -05:00
Dustin Carlino
1e0d8536a4 Fix #367 by making all constructors of SandboxMode appropriately defer
work that must happen after the map/scenario are loaded.
2020-10-14 17:43:28 -05:00
Dustin Carlino
e7fb9b1a4a Handle the info panel rewind-sim case for #367. I'm increasingly happier
with how the async reactions to loading SandboxMode are.
2020-10-14 17:24:39 -05: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
5ef48a5d1c Express the SandboxMode constructor as a full state machine, with the
ability to defer things like pushing the time warp state onto the stack
of states. This fixes the edit mode case of #367, but other callers of
SandboxMode::new still need updating.
2020-10-14 15:13:10 -05:00
Dustin Carlino
84a65c293b Make it easier to test scenario modifiers by specifying them on the CLI 2020-10-14 12:16:38 -05:00
Dustin Carlino
bc856a4c2b Fix the signal demand dash, broken by 1906fb0913. And enable warp to ID for non-dev mode too. 2020-10-13 10:22:19 -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
b9efdaef20 Refactor the trip timeline code, fixing the icon spacing. Temporarily
take out the delays from the timeline -- they complicate the code. Will
add back in later, once the code's a little more clear.
2020-10-11 11:35:00 -07:00
Dustin Carlino
a1c53d5e1c Humble start to adjusting how distances and durations are printed in the UI. #331
Also trimmed out a few old UI settings; they kind of started as
experiments, but now the alternative feels useless to maintain.
2020-10-11 10:45:13 -07:00
Dustin Carlino
a2d36274a2 Prep for release [rebuild] 2020-10-10 13:11:11 -07:00
Dustin Carlino
1791ef70a5 More cleanup of https://github.com/dabreegster/abstreet/pull/363: fix the build break in info/trip 2020-10-10 12:31:52 -07:00
Dustin Carlino
e38858129b Cleanups after https://github.com/dabreegster/abstreet/pull/363:
- cargo +nightly fmt
- upload new prebaked data
2020-10-10 12:24:42 -07:00
Sam
4c5a858238
Delay highlighting (#363)
* Initial storing of intersection delays

* Initial highlighting of delays on route

* Added label of delay

* Info overlay works

* Added supoprt for pedestrian delays (only intersection delay currently)
Bike also works, but is treated as a car, so the avg speed is flagged as very slow (Needs fix)

* Capitalised describe trip phase
Now uses min of (speed limit and vehicle max speed) for the maximum speed check
Added trip blocked time query
Lots of work on tool tips
Icons are broke

* Nearly complete, just fmting and a crash to fix
Color assertion?

* Fixed text font colour crash
Added new custom TextSpan size function

* Cargo +nightly fmt

* Cargo +nightly fmt

* Clion auto import formatting
Doesn't quite match the existing "changes"

* Fixing merge issues

* Fixing icon placement issues

* Requested changes (Part 1)

* Requested changes (Part 2)

Co-authored-by: Sam <a>
Co-authored-by: Dustin Carlino <dabreegster@gmail.com>
2020-10-10 12:23:02 -07:00
Dustin Carlino
94449e49e0 Launch the web version! #21 2020-10-09 22:55:13 -07:00
Dustin Carlino
34e95dd861 WIP load scenarios 2020-10-09 22:31:31 -07:00
Dustin Carlino
d4358586d6 Refactor the MapLoader into a more generic file loader... 2020-10-09 17:26:11 -07:00
Dustin Carlino
fbf651f1c2 Give up on generic_prebake_all, an unused method that would very generically crawl all challenges, calculate their scenario, and prebake results for them. It forces GameplayMode -> Scenario to have a certain form, which seemingly blocks transitioning to an asyncish loading screen. 2020-10-09 16:36:31 -07:00
Dustin Carlino
be3b2e8abb Finally, cut over the last app.switch_map caller 2020-10-09 16:27:28 -07:00
Dustin Carlino
2cd59ead37 Remove the special handling for synthetic maps, which were JSON RawMaps
that could directly be loaded. The few examples have been long broken
and unused. They complicate map loading, because they have a weird path.
2020-10-09 16:08:11 -07: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
2ad832d01a Whittle down callers of app.switch_map: changing color scheme. (As a
bonus, now this doesn't reset the sim and everything!)
2020-10-09 14:51:35 -07:00
Dustin Carlino
a8b41370bc Refactor the CityPicker HTTP trick into a native/web loading screen
state for switching maps. Use it just from the CityPicker for the
moment...
2020-10-09 14:35:02 -07:00
Dustin Carlino
e4707ca223 Ehem, fix build break in web from last commit. Hard to test a single commit against both native/web, because switching targets clears the entire build cache... 2020-10-09 14:04:56 -07:00
Dustin Carlino
1ae4c6e41f Make the web CityPicker do all of the same stuff that app.switch_map does 2020-10-09 14:02:08 -07:00
Dustin Carlino
1de7065562 Move a few things from App down to PerMap: layer, suspended_sim,
prebaked
2020-10-09 13:50:30 -07:00
Dustin Carlino
906dc0a8e5 Rearrange responsibilities of App::new and PerMap::new, to prepare for
cleaning up switch_map
2020-10-09 13:35:51 -07:00
Dustin Carlino
dd0df29571 Suppress the trip summaries tab if we have no prebaked data to compare to 2020-10-09 13:04:36 -07:00
Dustin Carlino
b9d3052c87 Show the elapsed time in the web loading screen, to kind of reassure people things aren't frozen 2020-10-09 09:14:24 -07:00
Dustin Carlino
7236fa558f Fix clicking on regions in citypicker. #21 2020-10-08 17:02:08 -07:00
Dustin Carlino
17416d9fd6 Start deploying the web build to s3... #21 2020-10-08 16:29:06 -07:00
Dustin Carlino
31854344ec Proper loading screen for web. #21 2020-10-08 15:07:23 -07:00
Dustin Carlino
62b3af324b Bundle data/MANIFEST.json in wasm. Now loading all maps from HTTP works! #21 2020-10-08 14:41:02 -07:00
Dustin Carlino
4d66e4e91d Make the city picker list maps from the manifest, not local files. #21 2020-10-08 14:26:35 -07:00
Dustin Carlino
d1d1d1532c Silence warnings when compiling wasm 2020-10-08 12:26:54 -07:00
Dustin Carlino
64bc4ee318
On the web, load different maps by making asynchronous HTTP calls. #21 (#364)
* On the web, load different maps by making asynchronous HTTP calls. #21

This is a very strange, specializd approach; it's unclear how it'll
generalize to reading scenarios and prebaked results. Ideally we could
call abstutil::read_binary as we currently do and somehow hide this async
trickery underneath, but I'm not sure how yet. In the meantime, this
moves us forward with the hack well-contained.

Next steps for web: stop bundling in all of data/system in the .wasm,
now that we can load from HTTP.
2020-10-08 10:51:13 -07:00
Dustin Carlino
69c8ce4cbe Before the .wasm loads, display "Loading" 2020-10-07 23:02:10 -07:00
Dustin Carlino
79e313da24 When crashing, dump edits to a file instead of STDOUT. They take too much space and sometimes overflow the terminal's buffer. 2020-10-07 15:53:27 -07:00
Michael Kirk
2ed916e89f
show parking intent (#362) 2020-10-07 14:16:58 -07:00
Dustin Carlino
a3b7ed18cd Cache the unedited map, for #361 2020-10-06 16:58:48 -07:00
Dustin Carlino
84e50d561d Workaround one case of #361 in an expensive way: temporarily revert
map edits when viewing the "before" version of a trip.
2020-10-06 15:35:11 -07:00
Dustin Carlino
24c20e1599 Add a layer to visualize congestion caps. #325 2020-10-06 13:47:53 -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
b9eda7305a Fix the web canvas size. I was mixing examples improperly; our code appends a canvas to the DOM dynamically, so we don't need to hardcode one. 2020-10-05 19:50:52 -07:00
Dustin Carlino
982b0bc194 Support opening new browser tabs on web. The webbrowser crate claims it's experimental, but works fine for me, and the impl is pretty much what I'd try anyway. 2020-10-05 19:50:52 -07:00
Dustin Carlino
bb6dbb0731 Switch from stdweb to websys for #21.
When I added web support in February, it was easier to get started with
stdweb, since it has the nice cargo web tool. However, stdweb is
unmaintained, winit is deprecating support for it, and the next steps
for web (downloading maps dynamically) have better support for web-sys.

With Alvin's guidance, I got
https://github.com/dabreegster/minimal_websys_winit_glow_demo working
first. This PR cuts A/B Street over too.

I tested abst and the widgetry demo in both native and web. The only
major regression from stdweb is the canvas placement and size. I
attempted some fixes, but at this point, I'll leave it as a smaller
followup instead.
2020-10-05 19:50:52 -07:00
Dustin Carlino
e5365254e9 Make load_all_objects IO-backend (native/web) agnostic 2020-10-05 14:48:34 -07:00
Dustin Carlino
a5cf5877e6 Experiment with focusing on negative space 2020-10-05 10:13:28 -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
50e8a94946 Use an absolute color scale for throughput, instead of the weird ranked thing. If a few roads have a ridiculously high throughput compared to others, we actually care about those outliers. And don't show counts in the legend after all; it just climbs over the whole day, and confusingly mixes roads/intersections, which're actually colored independently. 2020-10-03 16:44:36 -07:00
Dustin Carlino
98d26d8979 Refactor calls to calculate_current_selection 2020-10-03 16:37:56 -07:00
Dustin Carlino
acaf7eb587 Split compare throughput into separate State 2020-10-03 16:13:58 -07:00
Dustin Carlino
5354d1ba2b Show counts in throughput layer tooltips 2020-10-03 16:04:58 -07:00
Dustin Carlino
b7818a52be Capture the reason for cancelled trips, for #312 2020-10-03 15:35:29 -07:00
Dustin Carlino
9ccbf40dba Merge the concept of cancelled and aborted trips, in preparation for storing the reason for cancellation, for #312 2020-10-03 10:41:53 -07:00
Dustin Carlino
5aee85f19d Allow colorschemes to optionally color zoomed-in lanes based on OSM road rank. Most schemes don't do this, but one needs to, and maintaining a separate git branch has become annoying.
Should have no behavioral change to existing color schemes.
2020-10-02 08:06:35 -07:00
Dustin Carlino
f73d9da080 Conjure Traffic Seitan, a tool to make byzantine live map edits, to cause chaos and flush out bugs... 2020-10-01 18:24:35 -07:00
Dustin Carlino
afa27e0903 Just adjusting dark colorscheme 2020-10-01 16:36:00 -07:00
Dustin Carlino
c2ef091fb4 Try some greyscale color schemes, from Mapbox 2020-10-01 13:49:03 -07:00
Dustin Carlino
fd460a2f43 Fix blackholed buildings with --infinite_parking. Before, they were just
skipped outright. Now they redirect to a reasonably close building that
isn't blackholed. #329

(For context, https://dabreegster.github.io/abstreet/map/index.html#connectivity
explains "blackhole")

I'm increasingly convinced I made the wrong decision to split the
normal/infinite parking implementation. It's low-priority, but I'll try
consolidating them later.
2020-10-01 11:57:30 -07:00
Dustin Carlino
778b33bd55 Confirm export of roads to shared-row with a popup 2020-09-30 12:40:36 -07:00
Dustin Carlino
2b87736dd4 Pull in fresh OSM, with fixed turn lanes near the notorious Madison / Lake Wash Blvd. NOW it runs without gridlock again! 2020-09-30 10:30:01 -07:00
Dustin Carlino
c36f8026f0 Remove the old per-lane delay layer in favor of the new per-agent one 2020-09-30 09:19:24 -07:00
Dustin Carlino
2c63a485cc Undo some uses of impl trait. Originally added for performance in a big
refactor, they complicate the function signatures significantly and have
no observable perf impact, since all of the methods just happen in map
importing.
2020-09-29 15:53:08 -07:00
Dustin Carlino
a64fe01c3a Actually, absolute scale for the debug destinations tool makes more sense than ranked 2020-09-29 15:30:24 -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
9ca7ea6cc2 Improve the experiment to draw area names by fixing z-ordering. But
leave disabled; sizing is still way off.
2020-09-29 14:51:07 -07:00
Dustin Carlino
de4f5c7768
Add a layer to color unzoomed agents based on their current delay, to help debug gridlock. Something like this used to exist as a first-class way to change unzoomed color schemes, but until we have more ideas about showing agent intent on the minimap, just implementing this as a separate layer. (#353) 2020-09-29 11:51:37 -07:00
Dustin Carlino
e7e3a30a25 Fix crash on Windows when minimizing window 2020-09-28 19:23:54 -07:00
Dustin Carlino
823297b71e See unzoomed routes for trips better. #331 2020-09-28 18:26:41 -07:00
Dustin Carlino
371d26f707
Bring in alleyways from OSM! [rebuild] (#351) 2020-09-27 12:20:27 -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
4916b10190 Small style cleanups after #346 (Import grouping, simplify Spinner logic) 2020-09-27 10:26:38 -07:00
NoSuchThingAsRandom
0921a4aae5
Pedestrian crossing time (#346)
* Fixed ui being able to select traffic light times that are shorter than the time it takes to walk across the crosswalk

* Fixing operands and renaming

* Fixed spinner out of bounds issue
Traffic light generation now, ensures that there is enough time to cross the crosswalk
And enforces the minimum time duration

* Cargo +nightly fmt

* Request fixes: https://github.com/dabreegster/abstreet/pull/346
Still need some things to clarify:
    Spinner checks on increment/decrement
    Calling enforce_minimum_crosswalk_time inside get_possible_policies, requires the removal or modification of the validation function

* Moved enforce_minimum_crosswalk_time inside get_possible_policies
Now runs stage_time_validation at the end of get_possible_policies and removes invalid policies
Could do the same with the validation function as well?

* Fixing import order

* Fixed ui being able to select traffic light times that are shorter than the time it takes to walk across the crosswalk

* Fixing operands and renaming

* Fixed spinner out of bounds issue
Traffic light generation now, ensures that there is enough time to cross the crosswalk
And enforces the minimum time duration

* Cargo +nightly fmt

* Request fixes: https://github.com/dabreegster/abstreet/pull/346
Still need some things to clarify:
    Spinner checks on increment/decrement
    Calling enforce_minimum_crosswalk_time inside get_possible_policies, requires the removal or modification of the validation function

* Moved enforce_minimum_crosswalk_time inside get_possible_policies
Now runs stage_time_validation at the end of get_possible_policies and removes invalid policies
Could do the same with the validation function as well?

* Fixing import order

* Moving stage validation inside validation function

Co-authored-by: Sam <a>
2020-09-27 10:21:30 -07:00
Dustin Carlino
2ddd9a62ff Cleanups for #346:
- Add Distance::min()/max()
- Bring in log crate everywhere
- Consolidate traffic signal validation
2020-09-26 10:11:08 -07:00
Dustin Carlino
5a3bee0264
A first attempt to snap separately mapped cycleways to main roads. Emit (#348)
an extra KML file during importing to debug; don't bring into the main
map yet. #330

Not regenerating yet
2020-09-25 15:22:47 -07:00
Michael Kirk
f0be8dc0f0
Coalesce render flavors (#349) 2020-09-25 15:09:18 -07:00
Michael Kirk
e19bb42492
Clean up "trips" (info/person.rs) (#347)
* center pill

* padding insets

* use disclosure glyph instead of unicode arrows
2020-09-25 13:05:32 -07:00
Dustin Carlino
0f78920aeb Start overhauling th trip summary page. #331 2020-09-25 11:55:07 -07:00
Michael Kirk
241d2faad3 Apply a few more pop_up buttons
...rather than formatting text w/ unicode arrows

Addendum to 452fb06ae
2020-09-25 09:47:08 -07:00
Michael Kirk
00fb0ef8cd Cleanup dropdown - stop using unicode "down arrow"
We were drawing "pop-up" style buttons in several places, using
copy/pasted logic - which was simple enough when using a unicode glyph.

But we want to use a different glyph which isn't in our font. Further,
using an svg like this gives us finer grained control around the layout
around the button "handle" than we could get with just space characters.
2020-09-24 19:12:39 -07:00
Dustin Carlino
119e887425 New dashboard picker. #331 2020-09-24 10:40:18 -07:00
Dustin Carlino
597ef473f2 Upgrade most dependencies 2020-09-24 09:36:26 -07:00
Dustin Carlino
de86258402 Inch towards new trip table design: hover color, move pagination controls. #331 2020-09-23 14:03:08 -07:00
Dustin Carlino
d77271f9d8 Export trip times to CSV [rebuild] 2020-09-23 13:06:22 -07:00
Dustin Carlino
fa0c5ee02c Multiple lane type transformations in bulk edit. #331 2020-09-23 11:55:19 -07:00
Dustin Carlino
6f110d9e7f Add unfinished trips table. #331 2020-09-22 16:18:03 -07:00
Dustin Carlino
530a9ee4e4 Add a dashboard showing cancelled trips. Further refactor trip table
states along the way. #331
2020-09-22 14:16:51 -07:00
Dustin Carlino
f57bd57ac3 Avoid crashing for underground isometric buildings 2020-09-22 12:35:57 -07:00
Dustin Carlino
023bee5954 Simplify the parking table using the new API. Closes #53 2020-09-22 12:13:06 -07:00
Dustin Carlino
6a13ec0841 Refactor the trip table and parking overhead table into a generic table
API, with sorting, filtering, and pagination. This will be invaluable
when implementing more tables and the new table style (see Figma for
both). #53
2020-09-22 12:13:06 -07:00
Michael Kirk
848251fca4
use osm data for actual building height (#340) 2020-09-22 11:59:50 -07:00
Michael Kirk
59fec852a8
fix "don't draw" option for jump-to-delay (#339) 2020-09-21 13:42:01 -07:00
Dustin Carlino
31d888024b Display the 3 categories of trips in the table differently. Not
clickable yet. #331
2020-09-21 12:57:10 -07:00
Michael Kirk
8042ad414f
fix building overlap for isometric view (mostly) (#338) 2020-09-21 11:54:39 -07:00
Dustin Carlino
8e32314979 Style the loading screen and add tips/news. Closes #180 [rebuild] 2020-09-20 13:02:27 -07:00
Dustin Carlino
990aa74d03 More ways to find signal demand dash. #331 2020-09-20 10:18:18 -07:00
Dustin Carlino
4a07164394 Add the concept of trip purpose. Seed it from Soundcast data, or assign
it for the prolet robot model. Expose it in the trip info panel.

Total scenario size from 385MB to 412MB, but that's not so bad, and this
seems worth it.
2020-09-19 13:02:36 -07:00
Dustin Carlino
bb3342de27 Individual hitboxes for multiple signals in the sidebar. #331 2020-09-19 11:52:15 -07:00
Dustin Carlino
3c11dca9ba Remove the selection outline on the side panel when hovering on the map. About to flip the direction of this. #331 2020-09-19 11:17:25 -07:00
Dustin Carlino
3cc6a8ce12 And finally, a UI to tune offset between two signals! [rebuild] 2020-09-19 11:10:45 -07:00
Dustin Carlino
8170faa03c Start a UI to display absolute signal offsets and offsets relative to one chosen intersection 2020-09-19 11:10:45 -07:00
Dustin Carlino
08805f6a32 Rip out the old signal offset UI first. 2020-09-19 11:10:45 -07:00
Dustin Carlino
57e5183c2c Make signal demand explorer much nicer, with selectable movements. #331 2020-09-19 10:51:27 -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
94eaa7010d Slightly improve current demand panel by adding outlines to all unselected arrows 2020-09-18 23:06:48 -07:00
Dustin Carlino
15af3846b1 Round driving costs for pathfinding more carefully. When we create
uber-turns (sequences of turns through a few intersections) due to OSM
turn restrictions, we have to be a little careful how we sum up the cost
for the entire sequence, only rounding at the end.
2020-09-18 15:39:35 -07:00
Dustin Carlino
66ee865ad1 Debug uber-turns by showing their cost in the viewer 2020-09-18 14:13:11 -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
2f66a714d8 Adjust file naming dialog. Don't allow overwriting files at all. #331 2020-09-18 08:50:52 -07:00
Dustin Carlino
987f76ebdb Adjust signal editor arrow colors. #331 2020-09-18 08:30:25 -07:00
Michael Kirk
2b36b9f03a
add textured theme (#335) 2020-09-18 07:43:05 -07:00
Michael Kirk
cb84b729f6
FancyColor -> Fill (#334) 2020-09-17 23:34:25 -07:00
Dustin Carlino
16ed4ca457 Use crosswalk icons in the editor. #331 2020-09-17 18:42:20 -07:00
Dustin Carlino
69622bb86d Overhaul traffic signal editor. Movements can be directly clicked now;
the turn icons (now circles) are just for currently banned turns. #331
[rebuild]

Still a little work left (tuning arrow styles and using special icons
for crosswalks), but this mostly seems to match Yuwen's design.
2020-09-17 17:21:36 -07:00
Dustin Carlino
60cb96bc91 Just detangling code in draw_signal_stage... 2020-09-17 15:31:28 -07:00
Dustin Carlino
f59b738692 Simplify traffic signal rendering before big turn icon overhaul by
removing some older styles.
2020-09-17 15:06:35 -07:00
Dustin Carlino
ddb933d682 Fix active traffic crash, due to the polygon being too detailed [rebuild] 2020-09-17 10:58:01 -07:00
Michael Kirk
08f330cfad track worker capacity of commercial buildings 2020-09-16 16:43:11 -07:00
Dustin Carlino
2e6e338b98 New bulk lane edit UI. #331 2020-09-16 16:07:48 -07:00
Dustin Carlino
6e10f40801 Overhaul lane editor UI. #331 2020-09-16 12:32:11 -07:00
Dustin Carlino
da287ae68f Discard changes from traffic signal editor. #331 2020-09-16 11:50:57 -07:00
Dustin Carlino
3dcdb9ec02 Update OSM data (and fix the stage icon) 2020-09-16 10:29:51 -07:00
Dustin Carlino
1331b629aa Track how long cars have been parked in one spot 2020-09-16 09:42:02 -07:00
Dustin Carlino
4beff2b7bf Fix some zero-length paths in the parking efficiency layer. #329 2020-09-16 08:47:40 -07:00
Dustin Carlino
5ca884eedd Filling out the UI 2020-09-15 13:27:56 -07:00
Dustin Carlino
fcc05afda7 Add a flag to use the infinite parking sim. Start to test for real... 2020-09-15 13:27:56 -07:00
Dustin Carlino
7bd1d937f9 Some of Yuwen's cosmetic traffic signal editor changes 2020-09-15 09:32:46 -07:00
Dustin Carlino
4d6fc18c26 Woops, fix edit mode crash from previous commit 2020-09-14 18:06:25 -07:00
Dustin Carlino
ac3bc51af2 Restore the traffic signal stage indicator 2020-09-14 18:02:53 -07:00
Dustin Carlino
fff75fa5ba Yuwen's new changelist UI (except for describing some of the changes in detail) 2020-09-14 17:40:04 -07:00
Dustin Carlino
d68273086b Autosave even the untitled edits!
Possibly when the player explicitly says "discard proposal", we should
actually delete the file.
2020-09-14 14:25:09 -07:00
Dustin Carlino
0a3479a3d0 Implement the new file management part of Yuwen's edit mode sidebar UI.
Some bugs introduced when working with the default untitled proposal.
About to change the behavior of that in the next commit.
2020-09-14 13:58:12 -07:00
Dustin Carlino
ce4e429648 Rename edits -> proposals, at least in the UI layer. 2020-09-14 12:52:06 -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
8b7cb7a601 Split code for speed / time warp controls 2020-09-14 09:40:43 -07:00
Dustin Carlino
faf1379062 Add a new experimental layer to show the distance between every parked car and its owner 2020-09-14 09:18:24 -07:00
Dustin Carlino
f3a04b4d96 Add 4 configurable isometric camera views for buildings, disabled by default. 2020-09-13 21:36:45 -07:00
Dustin Carlino
e5bb98511a Few adjustments to KML viewer to make it easier to deal with huge .kml files 2020-09-12 10:06:04 -07:00
Dustin Carlino
037e22e69e Cleanup last few things for left-hand maps. Fixes #311! 2020-09-11 14:17:31 -07:00
Dustin Carlino
033b20f004 Fix parking rendering for left-hand maps. Tested by temporarily forcing
some onstreet parking in London. #311
2020-09-11 14:09:45 -07:00
Dustin Carlino
d88ccf98b7 Make pedestrians walk on the left side of the sidewalk in the UK. #311 2020-09-11 13:55:26 -07:00
Dustin Carlino
d56d1fd0e3 Show trips affected by congestion capping in the trip table and info
panels
2020-09-11 11:21:39 -07:00
Dustin Carlino
2895d50a1e
Add tooltips to the agent meters, and stop showing both buses and passengers. Fixes #239 (#323) 2020-09-11 11:08:26 -07:00
Dustin Carlino
edbc674970 Fix stop sign placement for left-handed maps. #311 2020-09-11 11:03:59 -07:00
Dustin Carlino
bee5890212
Remove the purple parking agents from the unzoomed view. Instead, add them to the parking layer, so supply and demand can be seen in the same place. (#322) 2020-09-11 10:04:10 -07:00
Dustin Carlino
e1270a1338 Make trip timeline phases hoverable with a tooltip, but not be a clickable button 2020-09-10 16:54:30 -07:00
Dustin Carlino
0cc1c654d1 Allow selecting multiple traffic signals when unzoomed, and show the
number of signals selected.
2020-09-10 16:15:42 -07:00
Dustin Carlino
1388694eec Flag off the live map edits, since it's going to take lots more work to stabilize this, but git branches are scary to maintain for more than a few days. #312 2020-09-09 15:03:14 -07:00
Dustin Carlino
220f33e2ec Abort cars bound to park on edited lanes. #312 2020-09-09 15:03:14 -07:00
Dustin Carlino
39290f899c Handle some of the live changes to parking by deleting parked cars on
edited lanes. #312
2020-09-09 15:03:14 -07:00
Dustin Carlino
61acf25b8e Initialize intersections converted live to traffic signals. #312 2020-09-09 15:03:14 -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
39ab06df7d Prepare for editing the map live in all cases by making the UI changes. #312 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
0b9b7e1a65 Fix a crash opening challenge modes. If somebody hits this in the latest
release, will put out a new build
2020-09-07 10:26:57 -07:00
Dustin Carlino
5be4c2ca84 Add an API to add a new trip in the middle of the simulation. Fixes #313
[rebuild]
2020-09-06 13:53:31 -07:00
Dustin Carlino
65e07d9cc7 Read/write scenarios in JSON, so people can manipulate them in any language. #313 2020-09-04 10:57:52 -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
f610c66572 Remove the weird shifting/angle inversions from DrivingSide. First step
of #311. Tested to not break righthand maps.
2020-09-04 10:01:06 -07:00
Dustin Carlino
787b6046b6 Remove the RAM measurement utility. Only work on Linux, I'm not convinced it's correct, and the information isn't useful to see 2020-09-03 17:19:40 -07:00
Dustin Carlino
574bf99e17 WIP 2020-09-03 16:36:47 -07:00
Dustin Carlino
fbd3a603dc Dodge a traffic signal rendering crash encountered near Trafalgar Square 2020-09-03 16:12:52 -07:00