Commit Graph

7407 Commits

Author SHA1 Message Date
Dustin Carlino
37404044e3 Avoid crashing in PolyLine::dist_along due to floating point issues.
This was happening when trying to draw pedestrians sometimes.

Regenerate everything. Some maps/scenarios affected, but in tiny
imperceptible ways. No screenshot diff.
2022-01-24 20:47:02 +00:00
Dustin Carlino
2683f32d28 Clarify an error message 2022-01-24 15:42:14 +00:00
Dustin Carlino
7bb8c13270 At last, support splitting neighborhoods while selecting boundaries!!! 2022-01-24 15:33:34 +00:00
Dustin Carlino
e7aeaf39de Remove confusing and redundant state in the select boundary UI. 2022-01-24 15:13:15 +00:00
Dustin Carlino
246d3347ca Don't use a special color for the current neighborhood in the select boundary UI. The red outline accomplishes the same thing, and it's less confusing to jump colors from the browse screen 2022-01-24 13:26:48 +00:00
Dustin Carlino
f777d0ba10 Shift logic from the select boundary UI to the partitioning structure.
That was the original intention, but it wound up being easier to
prototype otherwise.

Should be no behavioral changes.
2022-01-24 13:13:05 +00:00
Dustin Carlino
2c089cf1a3 Refactor select boundary logic, carefully 2022-01-24 10:15:27 +00:00
Dustin Carlino
3b6391f18d Create new neighborhoods when we remove a block from an edge.
It works! But with uncomfortably duplicated code
2022-01-24 09:41:31 +00:00
Dustin Carlino
f91f70f5d4 Improve boundary selection. When removing a block, search the whole
perimeter for another neighborhood to donate to, before concluding we're
near the map boundary.
2022-01-24 09:26:56 +00:00
Dustin Carlino
bc4f59e566 new release 2022-01-23 18:33:39 +00:00
Dustin Carlino
02e1368e0c Update github workflow to build the split-out LTN tool [rebuild] [release] 2022-01-23 10:27:32 +00:00
Dustin Carlino
33332bd12f Be careful with relative count math, avoiding one crash. [rebuild] [release]
But also, just disable the analysis for the release. It eats through all
my GPU memory on larger maps.
2022-01-23 09:37:45 +00:00
Dustin Carlino
b6b69aa886 Be smarter with LTN impact prediction memory usage.
... but this doesn't actually fix the mysterious crash in Camden and
other maps?!
2022-01-23 09:37:45 +00:00
Dustin Carlino
bc97ed2d3a Prototyping Andy's idea for a dataviz to compare traffic counts
before/after. Road width is based on the baseline count, color is based
on the relative difference.

Lots of work needed, but this is probably a good way forward
2022-01-23 09:37:45 +00:00
Dustin Carlino
7a9ad22fd7 Just split impact module, since it's growing so much 2022-01-23 09:37:45 +00:00
Dustin Carlino
e36337a91f Use an enum for a more clear API to handle caching temporary
pathfinders. Should be no behavior changes yet
2022-01-23 09:37:45 +00:00
Dustin Carlino
1a05da2824 Change how pathfinding works when avoiding modal filters.
Before, it was just a large 3 hour penalty for crossing a filter -- so
it shouldn't happen, but it was possible, and so some (but not all!) LTN
code had an extra paranoia step to filter out paths that crossed.

Now, actually make it impossible at the pathfinding layer.

Also, fix colors in the LTN pathfinding tool that were backwards
2022-01-23 09:37:45 +00:00
Dustin Carlino
d2ace68366 Don't recalculate counts before LTN changes 2022-01-23 09:37:45 +00:00
Dustin Carlino
e2d32e15a4 Reset LTN state when switching maps, much more carefully 2022-01-23 09:37:45 +00:00
Dustin Carlino
fc2817670a Recalculate LTN impact when something changes; don't make the user figure it out 2022-01-23 09:37:45 +00:00
Dustin Carlino
ba02ead72b Also predict what intersections become more/less busy due to LTNs
... by blindly copying code
2022-01-23 09:37:45 +00:00
Dustin Carlino
3d8b7ca965 Still show LTN neighborhood 2022-01-23 09:37:45 +00:00
Dustin Carlino
e0965db22b Switch LTN impact to World 2022-01-23 09:37:45 +00:00
Dustin Carlino
e33c6996d6 Add the LTN impact heatmap showing both better/worse 2022-01-23 09:37:45 +00:00
Dustin Carlino
c6e26e5e20 Flesh out the LTN impact tool -- calculate impact after, add tooltips 2022-01-23 09:37:45 +00:00
Dustin Carlino
fc705318a9 Start a simple prediction of how vehicle traffic will be affected by an LTN scheme, based on a travel demand model. Super similar to Ungap's equivalent. 2022-01-23 09:37:45 +00:00
Dustin Carlino
0367a7238c Handle LTN geojson export in the web version too 2022-01-22 17:22:17 +00:00
Dustin Carlino
7f098825e1 And now we can clean up cell polygon 'leaks' out of the neighborhood boundary! 2022-01-22 16:51:08 +00:00
Dustin Carlino
f7e8bca517 Instead of drawing LTN cells as a grid, post-process the grid into a
simple polygon using contouring. This vastly speeds up the GeoJSON
export feature.
2022-01-22 16:42:13 +00:00
Dustin Carlino
2271924d2d Fix build break from the refactor a moment ago 2022-01-21 14:19:53 +00:00
Dustin Carlino
9c1e04de0c Refactor Ungap's trip file management, use it in the LTN tool. Now you
don't constantly lose the example routes you're trying out
2022-01-21 14:05:48 +00:00
Dustin Carlino
913c4874fe Fix Ungap's label for unprotected turns -- depends on the driving side 2022-01-21 09:41:36 +00:00
Dustin Carlino
d3fa826dbf LTN UX: don't constantly override the user's settings on different pages 2022-01-19 09:56:11 +00:00
Dustin Carlino
778ffc6be3 Fix default color scheme for the LTN tool 2022-01-18 17:33:04 +00:00
Dustin Carlino
a6cd58346f Move some misc stuff from game/common to map_gui, so LTN can use it
LTN crate builds, and appears to work!
2022-01-18 17:33:04 +00:00
Dustin Carlino
8dc2c68760 Move LTN code from game to its own crate. game crate builds, ltn doesn't
quite...

Changes along the way:
- take away the convenient jump to debug mode
2022-01-18 17:33:04 +00:00
Dustin Carlino
a22a38051f Set up the boilerplate for splitting the LTN tool into its crate 2022-01-18 17:33:04 +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
518d8fe22e Import Newcastle 2022-01-18 10:00:49 +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
fd111c2973 new release 2022-01-16 16:48:02 +00:00
Dustin Carlino
cfddc5be1b Properly clear LTN state when switching maps, even from different apps. [rebuild] [release] 2022-01-16 09:41:50 +00:00
Dustin Carlino
215ca3438d Color neighborhoods based on quietness (same metric shown in the rat run tab) 2022-01-15 19:04:20 +00:00
Dustin Carlino
973f733d36 Preview cell connectivity from the browse neighborhoods screen 2022-01-15 18:23:13 +00:00
Dustin Carlino
6b79201d21 Fix an edge case for cell connectivity 2022-01-15 18:00:11 +00:00
Dustin Carlino
3a60a465e0 Remove blocks from the current neighborhood, possibly creating a new one
The code is quite a mess, but it works...
2022-01-15 17:52:38 +00:00
Dustin Carlino
78a32f28f7 Fix neighborhood colors after adjusting boundaries 2022-01-15 17:15:34 +00:00
Dustin Carlino
e2621c40f4 Speed up the select boundary UI by caching single blocks 2022-01-15 17:04:31 +00:00
Dustin Carlino
c18cc762bb Finally make the select boundary UI properly update the partitioning as
we make changes! So far, just handling "stealing" a block from another
neighborhood. The other neighborhood can wind up being totally deleted.
2022-01-15 16:57:59 +00:00
Dustin Carlino
6376a74c7a Initially draw the red outline in the LTN select boundary mode 2022-01-15 15:58:45 +00:00