Commit Graph

794 Commits

Author SHA1 Message Date
Dustin Carlino
1b21f03464 cant add turn restriction btwn unconnected roads 2019-09-25 11:03:12 -07:00
Dustin Carlino
cfa21d4cc3 cant delete roads involving turn restrictions 2019-09-25 10:50:06 -07:00
Dustin Carlino
23166b1aa8 switch to turn restriction enums, so we can easily use IDs in map_editor 2019-09-24 18:58:06 -07:00
Dustin Carlino
dd9827df72 add/delete turn restrictions, without saving in fixes yet. adding is
buggy.
2019-09-24 18:35:57 -07:00
Dustin Carlino
8046f36936 working on turn restrictions in map_editor 2019-09-24 13:55:41 -07:00
Dustin Carlino
67fb1b39da filling in more validity checks for map_editor... 2019-09-24 13:24:33 -07:00
Dustin Carlino
b108f0cbc0 remove the intermediate HalfMap structure 2019-09-23 16:06:43 -07:00
Dustin Carlino
536df84844 rename raw_data layer of stuff for easier importing, disambiguation 2019-09-23 15:00:55 -07:00
Dustin Carlino
333f976721 remove dead merge code 2019-09-23 14:12:54 -07:00
Dustin Carlino
72d834b332 remove hints. MapFixes took over. 2019-09-23 14:10:50 -07:00
Dustin Carlino
18b5d1ae8f goodbye, fix_map_geom. rename synthetic crate to map_editor 2019-09-23 13:54:09 -07:00
Dustin Carlino
f06db4ecb4 remove the old hacky fix_ramps phase. underlying problem is probably pedestrian islands not being modeled properly. workarounds now possible through synthetic. 2019-09-23 12:48:55 -07:00
Dustin Carlino
1495cc2970 remove redundancy of osm IDs on raw stuff 2019-09-23 12:08:00 -07:00
Dustin Carlino
deaa555565 cutover Original{Road,Intersection} to just use OSM IDs. adjust a few
other places to ensure unique-per-map synthetic OSM IDs
2019-09-23 11:50:04 -07:00
Dustin Carlino
b2fb7e7396 adjust epsilon so huge_seattle imports again 2019-09-21 08:22:28 -07:00
Dustin Carlino
1e73baa078 start remembering osm_node_ids for intersections 2019-09-20 15:17:54 -07:00
Dustin Carlino
a130f876f9 more validations for merging short roads 2019-09-20 14:36:53 -07:00
Dustin Carlino
3a8752d2e9 less dumb raw_data mutation API. take stable IDs, which synthetic model already has and apply_fixes computes anyway 2019-09-20 14:13:08 -07:00
Dustin Carlino
9d077c8081 moving remainder of mutations from model to raw_data 2019-09-20 13:54:51 -07:00
Dustin Carlino
e1988e56e5 recording fixes inside raw map. simplifying model's way of managing all fixes 2019-09-20 13:14:28 -07:00
Dustin Carlino
b9ac8021d0 making first-class mutations on raw map, so synthetic model does less
work. not porting over the mutations not preserved by fixes yet, and
also not actually recording fixes for the moment...
2019-09-20 13:06:29 -07:00
Dustin Carlino
0ae0a88abb actually, serialize MapFixes as json for now. will switch to binary when this is large later, but for now, this is easier to handle schema changes and debug. 2019-09-19 14:39:31 -07:00
Dustin Carlino
9a58136fc1 remove two debuggers (original roads and reattempting intersection geom) from game. not useful, and this could work better in synthetic or fix_map_geom. also lets us stop copying an extra polyline in the final map 2019-09-19 14:16:50 -07:00
Dustin Carlino
1599507934 support for merging short roads in synthetic editor. the fix gets
applied later by very painfully copying logic and doing a slow thing.
2019-09-19 14:03:04 -07:00
Dustin Carlino
3eb9acf0aa plumb parking lane hints around through tags too; simplifies a few places 2019-09-19 13:30:07 -07:00
Dustin Carlino
fd273ae62d woops, i broke fix_map_geom when deferring remove_disconnected_roads.
also update install instructions to prep for hackathon
2019-09-19 11:44:52 -07:00
Dustin Carlino
fac8d4d9ff remember tag overrides for osm roads in fixes 2019-09-18 15:25:52 -07:00
Dustin Carlino
3fd74673cf edit name and speed limit of a synthetic road 2019-09-18 11:15:06 -07:00
Dustin Carlino
d86f4a6e89 separate files for groups of fixes 2019-09-18 10:48:17 -07:00
Dustin Carlino
6f1ac3969e organizing osm keys 2019-09-17 17:14:09 -07:00
Dustin Carlino
e52fa1fc1a recording and applying fixes to create new synthetic intersections and roads 2019-09-17 16:16:19 -07:00
Dustin Carlino
e32b540f54 draw boundary polygon, and deal with matching orig IDs that run right up
against the map boundary
2019-09-17 13:56:15 -07:00
Dustin Carlino
eee5981c14 stable IDs for buildings in raw layer too. stop futzing with ID problems there. 2019-09-17 13:11:08 -07:00
Dustin Carlino
33ab7d4553 a big cutover -- synthetic model is just a thin wrapper on a raw_data map. mostly everything works! 2019-09-17 12:55:33 -07:00
Dustin Carlino
0e406afe0f store name in raw map; simplifies some plumbing elsewhere 2019-09-17 10:27:32 -07:00
Dustin Carlino
18baf7ae49 remove disconnected roads from raw map later, not in convert_osm. that way, if MapFixes disconnect anything, it gets removed later 2019-09-17 09:41:38 -07:00
Dustin Carlino
030191ef31 fixed OriginalRoads, which were pretty much always wrong (not split from
the original OSM way). also handle cul-de-sacs.
2019-09-17 09:29:19 -07:00
Dustin Carlino
572c69175c apply fixes to raw_data in synthetic crate and when creating the full map model. adjusting some LonLat matches to do approx_eq. not stable yet -- sometimes we leave a road connected to something missing. 2019-09-16 12:31:15 -07:00
Dustin Carlino
3e8a825ac1 recording changes from synthetic crate 2019-09-16 10:56:45 -07:00
Dustin Carlino
8d8237a40e making sure we only consider appropriate lane types for parking searches 2019-09-15 10:11:13 -07:00
Dustin Carlino
3a5e9c5a29 make_degenerate_crosswalks broke on huge_seattle, dodge tiny lines 2019-09-14 09:37:30 -07:00
Dustin Carlino
c86c1df21a add ability to move intersections to fix_map_geom... it partly works. 2019-09-10 11:47:11 -07:00
Dustin Carlino
c4b47aeeb5 make other_crosswalk_ids aware of the degenerate intersection quadruple case, and avoid quadruple-rendering 2019-09-09 14:55:53 -07:00
Dustin Carlino
18abb85431 adjust degenerate intersections: only one crosswalk, reduce size of it 2019-09-09 12:28:19 -07:00
Dustin Carlino
68269530fe refactor intersection type checks 2019-09-07 12:34:39 -07:00
Dustin Carlino
edb85da4c4 dont connect driveway to SR-99, yo 2019-09-02 22:57:44 -07:00
Dustin Carlino
528010f308 render cars on driveways a little better 2019-09-02 22:34:01 -07:00
Dustin Carlino
1910d06bc7 infer clipping polygon from entire .osm if no polygon is specified 2019-09-02 12:37:40 -07:00
Dustin Carlino
ba2b5fc831 compute and render driveway lines 2019-08-30 12:38:07 -07:00
Dustin Carlino
ea9d01bcc1 set a modal menu's prompt just once in a few places, where that's more
convenient
2019-08-27 14:56:43 -07:00
Dustin Carlino
0a39f4bd77 get rid of the coordinates_in_world_space hack; synthetic can just directly work in Pt2Ds now 2019-08-26 15:57:28 -07:00
Dustin Carlino
9fac44e28b fix roundabout handling. clearing out hints, because many no longer
apply with the back-and-forth gps/pt2d stuff... reasonable to reset
efforts anyway, now that I'm considering patching in OSM edits instead
2019-08-26 14:40:47 -07:00
Dustin Carlino
c545e5d86e some bug with previous commit messing up roundabout handling... quick detour to only have HashablePt2D for Pt2D, never for LonLat 2019-08-26 14:10:34 -07:00
Dustin Carlino
114a76893a now raw_data::Road 2019-08-26 13:59:10 -07:00
Dustin Carlino
9156cbd434 raw_data::Intersection too 2019-08-26 11:18:39 -07:00
Dustin Carlino
ce4369be27 raw_data::Building too 2019-08-26 10:36:00 -07:00
Dustin Carlino
6af2c5c0e0 raw_data::Area up-front stores a Polygon 2019-08-25 19:28:59 -07:00
Dustin Carlino
29eb463a6f base gps_bounds off of boundary polygon only. temporarily allow some out-of-bound coordinates, and deal with them during clipping. this means the osmosis boundary polygon is required. 2019-08-25 19:07:12 -07:00
Dustin Carlino
2b9ce7fef1 nit: why did FrontPath need a reference to the bldg? never passing it around in isolation. also update map article for parking blackholes 2019-08-25 14:57:04 -07:00
Dustin Carlino
1936f5f75e match offstreet parking KML to buildings 2019-08-25 14:00:25 -07:00
Dustin Carlino
5c0fb90819 recompute parking blackholes after edits 2019-08-23 13:21:45 -07:00
Dustin Carlino
17136509cf the parking redirects dont have to be before the lane... they can also be after. just nearby is the goal. this fixes a few more aborted trips 2019-08-23 12:30:25 -07:00
Dustin Carlino
9f897ef094 removing ezgui inline color parsing. pretty much unused, isn't helping
compile time. also fixing clippy issues
2019-08-22 13:38:16 -07:00
Dustin Carlino
ed0ca15aef make sim layer use parking redirects. lots of aborted trips now fixed! 2019-08-21 15:06:49 -07:00
Dustin Carlino
3b0a228a2c also viz the SCC 2019-08-21 14:34:57 -07:00
Dustin Carlino
d05ec2958d precompute where to start parking instead. dont use yet. 2019-08-21 14:17:11 -07:00
Dustin Carlino
bf7a65770b find the largest SCC of the driving graph, use this to classify parking blackholes 2019-08-21 11:48:33 -07:00
Dustin Carlino
d24543af99 plugin to show all reachable lanes from some start, to diagnose bad turn restrictions and such 2019-08-20 14:08:05 -07:00
Dustin Carlino
bffd1ebe08 really hacky start to classifying driving lanes as parking blackholes.
reveals some turn restriction data issues...
2019-08-19 15:43:35 -07:00
Dustin Carlino
f62965b5e2 small refactor: rename time param -> now. more clear and will help the Duration / Instant split later. 2019-08-19 14:56:07 -07:00
Dustin Carlino
7001139dc0 fix div by 0 bug with percent_dist_crossed for empty paths 2019-08-19 14:41:56 -07:00
Dustin Carlino
df90fc4f50 polylabel for building numbers 2019-08-19 12:01:10 -07:00
Dustin Carlino
a9267c76c7 debug tooltip showing how far an agent has traveled and how much
remains. seems to have small perf impact on initially calculating paths.
:(
2019-08-16 15:43:20 -07:00
Dustin Carlino
4e83f492d8 upgrade rand, get rid of now unneeded serde1 feature, in hopes of fixing feature mismatch between deps 2019-08-15 12:14:35 -07:00
Dustin Carlino
758c5494d8 remove old unused deps 2019-08-09 13:34:40 -07:00
Dustin Carlino
38ea097b26 use WizardState for some more things, making proper use of bundling state with closures! 2019-08-08 11:17:53 -07:00
Dustin Carlino
574e30b3d8 adding a new hint for extra turn restrictions 2019-08-06 14:02:34 -07:00
Dustin Carlino
b5c48fca38 fix traffic signal diagram in sandbox mode after lots of time has passed :) 2019-08-06 11:59:58 -07:00
Dustin Carlino
edfd112459 work around a bug in should_use_transit with disconncted sidewalks 2019-08-05 13:47:38 -07:00
Dustin Carlino
77c01580f1 refactoring path references... 2019-08-04 17:11:33 -07:00
Dustin Carlino
4a9a40c09f cycle indices got out of sync easily. no need to store them at all. 2019-08-02 16:25:22 +02:00
Dustin Carlino
453204129c some instructions to import a new .osm. don't require a clipping
polygon. small tweaks to map construction to make Austin work.
2019-07-15 16:43:57 +02:00
Dustin Carlino
6d559a2a54 remove individual turn fiddling from stop sign editor, for simplified gameplay for now 2019-07-14 11:37:23 +01:00
Dustin Carlino
ff0a6b7240 pick bus route to explore from possible ones at a stop, and without
using a stop at all
2019-07-07 20:30:01 -07:00
Dustin Carlino
9600fefd2b woops, should_use_transit was returning too-greedy answers, never more than 1 stop 2019-07-07 20:09:32 -07:00
Dustin Carlino
463ad7292b remove bus stops with no routes 2019-07-07 19:35:44 -07:00
Dustin Carlino
2e41b2284e use the turn restriction data to filter more turns 2019-07-04 19:57:07 -05:00
Dustin Carlino
90236c3afb filter OSM restrictions only to roads where they really apply 2019-07-04 18:47:59 -05:00
Dustin Carlino
9f9db35c38 capture raw turn restriction data from OSM, hacky way to debug them 2019-07-03 17:16:00 -05:00
Dustin Carlino
57425c170c actually use OSM turn restrictions 2019-07-03 09:44:50 -05:00
Dustin Carlino
5fa824f504 preps for interpreting turn:lanes from OSM 2019-07-02 15:03:18 -05:00
Dustin Carlino
142c34af4e interpret lanes:forward and lanes:backward from OSM 2019-07-02 14:00:54 -05:00
Dustin Carlino
6bb5ed4407 parking lane overrides in hints. removing parking from much of 23rd.
more involved than I anticipated, because the override changes road
width and forces us to recalc intersection polygons
2019-07-01 14:14:18 -05:00
Dustin Carlino
218082140f don't use a bimap for NodeMap. less dependencies, marginal speed boost 2019-06-27 10:30:56 -07:00
Dustin Carlino
5e1a7238e8 preserve OSM tags when merging degenerate intersections. this lets 24th and lake washington be fixed without messing up the z-layering 2019-06-26 17:33:31 -07:00
Dustin Carlino
0711056d89 save and restore savestates for entire a/b tests. launching from scratch
takes 33s in debug, this takes 19s
2019-06-21 12:47:00 -07:00
Dustin Carlino
91cc74a30c dramatically slash the one-time preparation time for the 3 VehiclePathfinders by using the node ordering from one for the other two. this actually also exposed a bug that would eventually muck with recalculating after edits (node IDs depending on the original state of the map) 2019-06-18 16:21:35 -07:00
Dustin Carlino
7a49c585cf remove building_type and stop reading the residential permit shapefile 2019-06-18 14:58:57 -07:00
Dustin Carlino
04021f9fd1 print more complete and robust building names. adjust intersection and
building colors -- stop coloring buildings based on type (adds visual
noise, data is very bad)
2019-06-18 14:47:24 -07:00
Dustin Carlino
1835155a47 dont recalculate pathfinder after every map edit; just once at the end 2019-06-18 14:28:14 -07:00
Dustin Carlino
c2576b9ad7 disable path validation. 2.8s down to an even 2s. 2019-06-18 10:53:45 -07:00
Dustin Carlino
cdda463ee4 speed up pathfinding queries even more by reusing the PathCalculator
each thread
2019-06-18 10:25:35 -07:00
Dustin Carlino
a6aa46dd61 cutover driving pathfinding to fastpaths, using a full lane graph for driving instead of falling back when path stitching fails. handle edits by preparing the CH again, using the existing node ordering. one-time prep time is reasonable, recalculating works for live edit mode, and queries are FAST! :O 2019-06-17 19:16:04 -07:00
Dustin Carlino
cdacaef1a6 refactor menu text for all ItemSliders 2019-06-17 17:22:20 -07:00
Dustin Carlino
22db36c0f4 use a sparser, more obvious representation for walking_with_transit.
cuts prep time down to reasonable levels for everything.
2019-06-17 16:08:31 -07:00
Dustin Carlino
b4de820f56 make interactively spawned peds use transit if possible, to figure out
why the walking-with-transit graph is not working... argh which is
because map initialization order has so many funky dependencies
2019-06-17 15:32:49 -07:00
Dustin Carlino
4951eea644 cutover walking (with and without transit) pathfinding to fast_paths! 2019-06-17 14:14:30 -07:00
Dustin Carlino
ace3f0d285 remove Debug trait from Map and pathfinder -- not used in a long time 2019-06-17 12:14:16 -07:00
Dustin Carlino
58d056cdbc remove paranoia panic for an anticipated case with hints 2019-06-17 10:45:54 -07:00
Dustin Carlino
ecaa8bea53 use slider to browse hints 2019-06-16 14:31:19 -07:00
Dustin Carlino
ec50a277ea switch to one set of hints for all maps, put it under version control. seed with a few easy ones. :) 2019-06-12 15:16:38 -07:00
Dustin Carlino
da85927d03 change Hints to store based on gps points, so hints are universal, not per map 2019-06-12 14:55:48 -07:00
Dustin Carlino
0adeac1d53 remove the single point associated with intersections, now that we're
actually going to be mucking with geometry. it wasnt doing anything
useful anyway. also a round of clippy.
2019-06-12 10:10:04 -07:00
Dustin Carlino
e0c1d0b85d operation to merge degenerate intersection 2019-06-12 08:58:59 -07:00
Dustin Carlino
35b7c18df9 remove elevation from map model. never been used, no anticipated need for it 2019-06-12 07:25:31 -07:00
Dustin Carlino
55f9589d15 preserve intersection type more intelligently when merging InitialMap stuff 2019-06-12 07:08:52 -07:00
Dustin Carlino
64b1cebb95 operation to delete a road completely 2019-06-11 19:04:00 -07:00
Dustin Carlino
98e073d8be save hints from debug_initialmap, use them when constructing the real
map
2019-06-11 17:41:47 -07:00
Dustin Carlino
290c274661 debug_initialmap loads from raw_data. remove the complicated serialization stuff from InitialMap. 2019-06-11 17:21:28 -07:00
Dustin Carlino
d9474494e7 debug_initialmap: highlight short roads, expose a way to manually merge
a short road
2019-06-11 17:00:49 -07:00
Dustin Carlino
b1463cf020 construct Pathfinder before finalizing bus routes. dont manually call pathfind_slow for buses. this is a step towards removing the slow fallback entirely. 2019-06-11 14:52:01 -07:00
Dustin Carlino
4e2d16af29 consistently using file extensions of .json and .bin, merging duplicate abstutil io functions accordingly 2019-06-11 14:30:11 -07:00
Dustin Carlino
e1a6532a84 handle border intersections touching edited lanes 2019-06-09 18:10:37 -07:00
Dustin Carlino
c76738a678 upgraded to rustc 1.35, fixing a few cases of https://github.com/rust-lang/rust/issues/59159 2019-06-09 14:09:27 -07:00
Dustin Carlino
8eb03b81c3 remove edits_name from SimFlags and refactor loading MapEdits by name. fixes bug where quitting an a/b test breaks loading other maps by retaining edits_name 2019-06-08 16:32:10 -07:00
Dustin Carlino
2d0a53c2d6 improving turn type classification for driving/bus/bike lane interactions; this in turn improves the default intersection policies 2019-06-07 16:32:42 -07:00
Dustin Carlino
2d638eb94b tool to bulk edit lane types 2019-06-07 15:41:39 -07:00
Dustin Carlino
57de773101 fix bus stop order... my MultiMap impl uses BTreeSet 2019-06-06 16:50:22 -07:00
Dustin Carlino
e3e032cb2e argh, bus route IDs were totally out of sync with reality 2019-06-06 15:36:36 -07:00
Dustin Carlino
c29769a6b4 print bus stops and routes nicely in OSD 2019-06-06 15:31:59 -07:00
Dustin Carlino
88f6516f79 recalculate bus stop driving_pos when editing 2019-06-06 14:52:53 -07:00
Dustin Carlino
d7e639b5f3 dont allow orphaning a bus stop 2019-06-06 14:43:53 -07:00
Dustin Carlino
322176dded detect when edits are equivalent to original 2019-06-06 13:56:42 -07:00
Dustin Carlino
b47069811e TRY to adjust departure time and such for trips starting/ending at the border 2019-05-31 15:41:38 -07:00
Dustin Carlino
a9319dbe6a capture PSRC trips that start/end out-of-bounds, matching them to a border. slow and buggy start! 2019-05-31 11:37:25 -07:00
Dustin Carlino
ea49fe63ba match PSRC trips to OSM building IDs up-front, trimming down filesize and speeding up clipping later 2019-05-28 13:04:31 -07:00
Dustin Carlino
83f62631e9 fix cases where path.trace doubles back on itself a bit due to slightly
weird walking geometry
2019-05-28 10:19:49 -07:00
Dustin Carlino
40efcc7b05 generalize a parallelize method for timers, use for all trip viz 2019-05-25 19:35:35 -07:00
Dustin Carlino
bc69a6b4d4 spawn as many trips from PSRC as possible 2019-05-25 18:34:50 -07:00
Dustin Carlino
01a4abb64a work around path traces that're breaking PolyLine 2019-05-25 13:33:41 -07:00
Dustin Carlino
1cdbe0ea81 refactor parallelized pathfinding and use it in trip viz too 2019-05-24 12:50:01 -07:00
Dustin Carlino
f674527ef2 interpolate along route for trip viz 2019-05-24 12:28:57 -07:00
Dustin Carlino
416d0b0d7d building PathRequest for trip visualization, and slightly refactoring bldg->Position for it. also forced to extend the equiv_pos fix for bus stops to all equiv_pos queries. 2019-05-24 11:47:01 -07:00
Dustin Carlino
92a0d38978 deal with bus stops on the wrong side of the road 2019-05-21 16:18:39 -07:00
Dustin Carlino
aac9c41d8a fix missing sidewalks on non-residential one-ways downtown. luckily, there's an explicit OSM tag to help. WIP this breaks bus stops on one-ways! fix coming soon 2019-05-21 14:33:32 -07:00
Dustin Carlino
9cc23c6ab1 remove unnecessary stop-signs at degenerates with crosswalks 2019-05-21 14:02:49 -07:00
Dustin Carlino
219a7b3236 refactoring list of signal policies 2019-05-21 13:26:39 -07:00
Dustin Carlino
6b5945aade put traffic signal box in the true middle of the intersection; it was in a bad spot for one-ways 2019-05-21 13:13:24 -07:00
Dustin Carlino
4c1e9b41c1 experimentally try finding intersection polygon by naively intersecting thick road polygons. 2019-05-17 15:48:21 -07:00
Dustin Carlino
c29039c499 policies for four-ways all one-ways 2019-05-17 12:00:29 -07:00