Commit Graph

2958 Commits

Author SHA1 Message Date
Dustin Carlino
e5704f4a6d Prevent many cases of blocks with overlapping geometry or that extend
too far, by not trying to trace near railways or cycle-only
bridges/tunnels. This is an imperfect heuristic, but it makes
significant progress in most maps.
2022-01-31 16:03:21 +00:00
Dustin Carlino
0058f99da2 Mechanical rename of TripEndpoint::Bldg to ::Building, mostly to kick off a [rebuild] [release] 2022-01-30 18:27:36 +00:00
Dustin Carlino
638e93c36a Stop re-exporting stuff from synthpop in sim 2022-01-28 13:13:43 +00:00
Dustin Carlino
f171ddcb73 Get everything to build again... 2022-01-28 13:13:43 +00:00
Dustin Carlino
fefe8f5be2 Swap the traffic counts in the UI 2022-01-27 15:21:21 +00:00
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
edfd320908 A new generic UI to compare counts from two files.
Also moving some of the counts stuff to map_gui, accordingly
2022-01-27 14:26:36 +00:00
Dustin Carlino
be57975a91 Start to shape the LTN impact tool into something more general to plug a
demand model into routing and compare throughput before/after some
change.

Add in a bunch of filters for trips. (Most even work!)
2022-01-26 14:17:24 +00:00
Dustin Carlino
cabffc7f47 Similar refactor for ColorDiscrete. Anywhere separately managed a zoomed
and unzoomed batch should just migrate to this.
2022-01-26 11:35:40 +00:00
Dustin Carlino
5dfb8f26f0 Refactor ColorNetwork to use ToggleZoomed 2022-01-26 11:31:33 +00:00
Dustin Carlino
dfbd9785f3 While merging adjacent perimeters for the LTN tool, don't proceed if
intermediate results can't be turned into a polygon. It'll break
something later. #841

There's a particular bug where a perimeter can be turned into a polygon,
but after collapsing internal dead-ends, it can't.

If we don't do this, the LTN select boundary UI crashes, and reasoning
about block -> neighborhood mappings gets very hairy. I'd like to
address all the root causes of failing to make a polygon, but until
then...

TRADE-OFF: it _really_ slows down the select boundary UI.
2022-01-25 18:12:15 +00:00
Dustin Carlino
9192c6364b Avoid crash in the blockfinder when merging partitions manually 2022-01-25 14:01:24 +00:00
Dustin Carlino
847ca07bc6 Add the quick-select feature to the blockfinder debugging too 2022-01-25 13:54:30 +00:00
Dustin Carlino
deb775b409 Debug block partitioning by color, to sanity check why some blocks are vanishing when merged 2022-01-25 13:39:40 +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
e0965db22b Switch LTN impact to World 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
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
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
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
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
Dustin Carlino
b5e540d588 Fix state management in the LTN tool. Previously, changing maps, then going back to home screen from browse was broken 2022-01-15 15:42:01 +00:00
Dustin Carlino
f82ee8e1fa Show how many streets in a neighborhood allow through-traffic 2022-01-15 15:32:17 +00:00
Dustin Carlino
2a154bd679 Avoid crashign when drawing cells. Bridges and tunnels can leak out of
boundary polygons.
2022-01-14 17:03:19 +00:00
Dustin Carlino
3cf846f870 Include LTN cells in the geojson export. Very slow, but working,
implementation
2022-01-13 17:52:56 +00:00
Dustin Carlino
509217b024 Start a simple GeoJSON export for LTNs. Cells are missing. 2022-01-13 15:37:47 +00:00
Dustin Carlino
412e0d585d Refactor cells -> grid, in preparation to generate cell outlines 2022-01-13 12:56:51 +00:00
Dustin Carlino
c6ec390d0e Pass around NeighborhoodID when switching between states. This
1) will support modifying boundaries and not getting state out-of-sync
2) vastly simplifies switching tabs
2022-01-12 14:55:56 +00:00
Dustin Carlino
cb501933fd Implement LTN undo/redo... and actually just handle undo, for
simplicity, and because repeating an undid (??) action is easy
2022-01-12 14:34:10 +00:00
Dustin Carlino
e0b18d6d07 Organize modal filter code before big changes 2022-01-12 13:55:50 +00:00
Dustin Carlino
6826145de2 Stub out a UI for undo/redo in LTN
(Rebuilding panels at the right time is the bulk of the change here)
2022-01-12 13:47:49 +00:00
Dustin Carlino
7d4a377173 Draw cell borders in different styles -- kind of necessary with the only-one-border schemes. 2022-01-12 13:07:35 +00:00
Dustin Carlino
c6787f0a80 Fix an edge case in the only-one-border LTN heuristic 2022-01-12 12:33:55 +00:00
Dustin Carlino
c024a484e3 Fix too-quick push on last commit, and restore the draw streets toggle broken a few commits ago 2022-01-12 12:25:36 +00:00
Dustin Carlino
30fc96bdd0 An automatic LTN heuristic that closes all but one border 2022-01-12 12:23:20 +00:00
Dustin Carlino
47930e714f Emphasize boundary roads in the browse neighborhood view 2022-01-11 10:35:59 +00:00