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
Dustin Carlino
5f3bb8897d
Draw disconnected cells as red, to shout 'problem'
2022-01-11 10:05:16 +00:00
Dustin Carlino
c3b74d1358
Stop using red as a cell color; it really shouts 'problem'
2022-01-11 10:02:48 +00:00
Dustin Carlino
b28093f2a8
Draw all filters in the browse neighborhood screen
2022-01-11 09:58:23 +00:00
Dustin Carlino
afc9846c1c
Try a brute-force search for the best single filter placement. Also not
...
great.
2022-01-11 09:40:54 +00:00
Dustin Carlino
65899f3a79
First tentative experiments in automatic filter placement -- the greedy
...
approach
2022-01-11 08:40:56 +00:00
Dustin Carlino
8ff4c41ea1
Some useful debugging / correctness steps towards more robust blockfinding. [rebuild] [release]
...
I have another branch that handles roads without sidewalks on one side
-- it helps in some cases, but regresses in others, so not merging it
yet. But taking a smaller step and bringing in some stricter common
endpoint logic from there.
Bringing in some useful intermediate changes
2022-01-09 11:07:10 +00:00
Dustin Carlino
e1d88f10ad
Detect bad intersection polygons
2022-01-06 11:08:22 +00:00