Commit Graph

343 Commits

Author SHA1 Message Date
Dustin Carlino
6354a09293 using interval intersection to correctly find the time and position of a
hit!
2019-02-07 10:18:20 -08:00
Dustin Carlino
f6a53797f0 manually glueing together some fixed intervals 2019-02-06 22:53:43 -08:00
Dustin Carlino
3bf4807364 thoughts on a different simulation model and a plugin skeleton to play
with it
2019-02-06 19:14:19 -08:00
Dustin Carlino
3ee73668f2 just trying to detect the weirdness that is O253. pretty much works. 2019-02-06 15:48:33 -08:00
Dustin Carlino
6b29a2a38d fixing issues with bikes spawning close to intersections, by making the
bound be really conservative
2019-02-05 09:56:07 -08:00
Dustin Carlino
7b045146da ah, there are speeds low enough to round off to zero distance when applied with the timestep. systematically get rid of EPSILON_SPEED. 2019-02-03 18:10:29 -08:00
Dustin Carlino
f9ccecad26 fix spawning of vehicles on borders 2019-02-02 14:25:50 -08:00
Dustin Carlino
d08751fb64 preupload pedestrian geometry 2019-02-02 13:44:27 -08:00
Dustin Carlino
92134f9125 get halloween working with small lines. refactor a Line::maybe_new. 2019-02-01 12:12:40 -08:00
Dustin Carlino
142bd57aa0 refactoring some approx_eq EPSILON_DIST checks 2019-01-31 15:10:33 -08:00
Dustin Carlino
2282c5658d make geom types Ord now 2019-01-31 14:29:47 -08:00
Dustin Carlino
b9e96618da stop abusing max distance for path tracing. disable some newly brokenish stuff 2019-01-31 13:09:15 -08:00
Dustin Carlino
88af2a74d2 seeing if everything is solid... 2019-01-31 12:31:01 -08:00
Dustin Carlino
23db7cc646 try really dumb trimming... it works :O 2019-01-31 08:53:30 -08:00
Dustin Carlino
7519fdf584 using strong Distance types in many more places 2019-01-30 15:54:54 -08:00
Dustin Carlino
ac2b8f5a9a switch to new units in sim... and editor, darnit, accidentally ammended
commit
2019-01-30 14:19:48 -08:00
Dustin Carlino
133ec037c9 switching to new units in map_model 2019-01-30 13:07:53 -08:00
Dustin Carlino
976369e7e8 switching to new units in geom crate only 2019-01-30 12:40:52 -08:00
Dustin Carlino
32b6c35c80 just defining, but not using, the new units 2019-01-30 12:11:42 -08:00
Dustin Carlino
3804e1b36c much more trustable algorithm for dist_along_of_point and contains_pt.
confirmed no interesting differences. couldn't quite get rid of the
clockwise check yet...
2019-01-30 11:16:07 -08:00
Dustin Carlino
7ce2242cb2 forgot to make 'cant trim' thing a panic, and tiny refactoring before trying to make pt2d be integers 2019-01-30 09:27:23 -08:00
Dustin Carlino
1491d80da2 stop EVER representing a polyline with dupe pts 2019-01-29 19:05:20 -08:00
Dustin Carlino
2a70efde5f simplify: slice can fail. all the callers dont have to check for EPSILON_DIST
(also, disable not-so-useful geom unit tests that use randomness)
2019-01-29 18:53:04 -08:00
Dustin Carlino
ca058331e5 fixing path trace cases that wind up with points too squished together 2019-01-29 16:23:01 -08:00
Dustin Carlino
a98383db8f dealt with cases where a pair of intersections has two roads between them 2019-01-29 15:34:53 -08:00
Dustin Carlino
103a4ca053 ensuring no tiny Lines exist in most cases 2019-01-29 13:23:54 -08:00
Dustin Carlino
7495d29288 handle a case when drawing shared sidewalk corners 2019-01-28 23:57:39 -08:00
Dustin Carlino
a27ab279b6 just a new line intersection algorithm... that fixes a few small issues
:)
2019-01-28 23:19:08 -08:00
Dustin Carlino
2e982ec827 making an infinite line type, to be less confusing 2019-01-28 18:28:05 -08:00
Dustin Carlino
191b87f148 dealing with geom bugs occurring on bigger maps 2019-01-28 15:11:13 -08:00
Dustin Carlino
9fc41078c2 fixed the funky polyline gluing... angle comparisons are hard, so change
the API for them.
2019-01-27 14:27:40 -08:00
Dustin Carlino
76be0c1ad4 trying to restore original road geometry without polyline bugs, but...
only fixed one bug. :)
2019-01-26 16:59:01 -08:00
Dustin Carlino
f2d8e77759 figured out the source of a weird polyline bug, adding checks to avoid
it in the future
2019-01-26 16:27:11 -08:00
Dustin Carlino
07397c642a rephrase trim_to_pt way more understandably 2019-01-26 15:05:34 -08:00
Dustin Carlino
ab6796d56c make intersection actually be a polygon now 2019-01-26 13:31:29 -08:00
Dustin Carlino
8afe83162b collapsing all lane markings into a single Drawable 2019-01-25 11:21:46 -08:00
Dustin Carlino
b21852875e batch lots more easy things... down from 760 calls for a scene to 158 2019-01-25 08:39:45 -08:00
Dustin Carlino
a065c63ad7 batching sidewalk lines. fix the very silly batching bug 2019-01-25 08:10:09 -08:00
Dustin Carlino
49f0c64ef4 use the pts/indices for rendering 2019-01-24 15:32:46 -08:00
Dustin Carlino
559d568acd make Polygon store points and indices. don't use this fact for rendering
just yet.
2019-01-24 15:13:27 -08:00
Dustin Carlino
fad89ddffa include more pts in the intersection polygon to only cover area from the original road bands. also fix a bug deduping points in the polygon. 2019-01-19 20:56:03 -08:00
Dustin Carlino
dfe50dcee4 reasonable support for roundabouts... collapse it to a single
intersection, which usually gets treated like a stop sign, and has
reasonable geometry
2019-01-16 15:05:44 -08:00
Dustin Carlino
e8e119dbbf remove all the polyline shifting/polygon variants that might fail 2019-01-15 15:25:00 -08:00
Dustin Carlino
57665c9325 enable the polyline angle-fixing... it improves lots of problems and only makes one intersection look worse. still needs more work later. 2019-01-15 14:14:48 -08:00
Dustin Carlino
aae021f478 oops, gigantic change trying to handle bad lane geometry
- debug points and triangles of lanes
- disabled fixes for polylines with points that change angles by 180 and can be fixed by swapping them
- organize intersection polygon code in different methods for the degenerate cases
- try something new for degenerate-two's... fix road centers, then calculate intersection corners. it fixed a few spots!
2019-01-15 13:48:15 -08:00
Dustin Carlino
930107793b dedupe pts from intersection polygons without making all Pt2Ds have careful resolution yet. sidewalk corners now need work... 2019-01-12 23:17:05 -08:00
Dustin Carlino
9590ee7e78 preps for Pt2D with 1cm resolution... immutable PolyLine, helper for
pt-pt distance
2019-01-12 19:13:16 -08:00
Dustin Carlino
daa55026ae making shift left/right for polyline too 2019-01-12 14:13:15 -08:00
Dustin Carlino
caf4006837 explicitly making shift right/left for Line 2019-01-12 13:48:14 -08:00
Dustin Carlino
bc6a61fc74 WIP: better sidewalk corner geometry. it's a start. 2019-01-12 13:40:06 -08:00
Dustin Carlino
47b5d2e4aa upgrade all other deps, except for piston/winit stuff 2019-01-11 12:36:20 -08:00
Dustin Carlino
c09fa98f57 upgrade a few dependencies 2019-01-11 10:55:58 -08:00
Dustin Carlino
60aebe6d74 woops, without_last_line was wrong 2019-01-10 15:04:10 -08:00
Dustin Carlino
c70057d46e finding an intersection pt, then going back to find the angle, sometimes
fails due to floating point nonsense, so combo the query to fix a few
more cases
2019-01-10 12:03:14 -08:00
Dustin Carlino
7960601ff9 WIP trying to get perpendiculars on the road center... 2019-01-10 09:48:47 -08:00
Dustin Carlino
0522829d9a draw my own arrows, which don't exceed distance too much... except they
dont work in all cases, so disable
2019-01-09 14:59:46 -08:00
Dustin Carlino
b7dfa3effc make neighborhood editor work with synthetic maps, so i stop thinking the plugin is broken 2018-12-22 16:53:50 -08:00
Dustin Carlino
0aece4944d prep for disabling mouseover by changing canvas API. fix neighborhood
plugin to handle out-of-bounds points while we're there.
2018-12-22 16:49:47 -08:00
Dustin Carlino
1d9f3320fa implementing draw_line and draw_rounded_line directly 2018-12-22 13:58:45 -08:00
Dustin Carlino
0c2a389f96 dont draw complicated stop sign depiction when hovering. simplify lots of the rendering hints, also fixing up traffic signal crosswalk depiction. 2018-12-20 11:28:42 -08:00
Dustin Carlino
4805892acd caching polyline length, even though it doesn't seem to affect total
performance
2018-12-10 14:59:52 -08:00
Dustin Carlino
f48757c5e7 clippy pt2 2018-12-08 19:56:54 -08:00
Dustin Carlino
ab86835611 initially playing with clippy... pt1 2018-12-08 18:21:56 -08:00
Dustin Carlino
b7edc07580 moving a few inlined unit tests to my test framework. didnt spot these before. 2018-12-06 12:59:08 -08:00
Dustin Carlino
91b2b07fbd remove more extern crate's; import macros directly 2018-12-06 11:22:12 -08:00
Dustin Carlino
375a923a9d try removing most extern crate's 2018-12-06 11:00:13 -08:00
Dustin Carlino
f64f411093 upgrade all crates to 2018 in Cargo.toml. this requires switching to
crate:: paths everywhere. not yet fiddling with 'extern crate's
2018-12-06 10:57:31 -08:00
Dustin Carlino
6a0cd7f71e rust 2018: run the new fmt, delete the unneeded script 2018-12-06 10:05:50 -08:00
Dustin Carlino
7c53e9bb4a dashed polylines for yielding turns 2018-12-03 13:45:06 -08:00
Dustin Carlino
5bc9992fc0 using blockface kml in convert_osm to prescribe parking lanes 2018-11-21 22:43:14 -08:00
Dustin Carlino
bd67d88bab adjust the blockface<->road matching 2018-11-21 15:39:49 -08:00
Dustin Carlino
044a25fce2 give up on Sim being Eq; settle for PartialEq, get rid of all of the annoying 'ignore this field' hacks. also getting rid of unnecessary PartialEq impls in map_model 2018-11-18 16:28:43 -08:00
Dustin Carlino
7b6f1c4624 refactoring a proper way to draw/use rectangles 2018-11-14 09:57:58 -08:00
Dustin Carlino
7ddbd753f4 storing neighborhoods as GPS 2018-11-09 14:12:20 -08:00
Dustin Carlino
cda4a9ad81 improve lane trimming by picking the closest collision of a polyline to a polygon 2018-11-07 14:01:58 -08:00
Dustin Carlino
4bede29429 make trim_to_pt panic 2018-11-07 13:54:39 -08:00
Dustin Carlino
0008712c9a revamping driving turns to handle multi-lane cases better. seems to work
well!
2018-11-07 10:53:48 -08:00
Dustin Carlino
db34ddb2b7 changing the activity plugin to show a heatmap of what's currently in view 2018-11-01 16:07:48 -07:00
Dustin Carlino
ab1254870a fixing some of the 3-way cases... others arent even detected, seemingly 2018-10-31 12:02:18 -07:00
Dustin Carlino
c22ec98259 get_bounds for PolyLine 2018-10-31 08:31:16 -07:00
Dustin Carlino
27406a5a5c rotating stop signs (really an excuse to start using the geo crate in geom...) 2018-10-30 16:04:46 -07:00
Dustin Carlino
f8f2ea3f95 switching to a simpler GPS<->Pt2D scheme that's bijective 2018-10-29 15:01:15 -07:00
Dustin Carlino
bb9c98b54e splitting into two Bounds types 2018-10-29 14:16:30 -07:00
Dustin Carlino
cc9f0289ab exporting polygons in the osmosis format... wait, may need to change the
coordinate system first. let's first refactor bounds to be more careful
about existing code.
2018-10-29 12:29:11 -07:00
Dustin Carlino
ab38836c70 debug offsets in weird polylines, remove unused polyline methods 2018-10-29 10:38:48 -07:00
Dustin Carlino
3a62ed8695 refactor get_bbox 2018-10-28 18:43:36 -07:00
Dustin Carlino
9c1ae28bf8 ped trace_routes were wrong for contraflow steps 2018-10-22 13:16:30 -07:00
Dustin Carlino
ec49d2dd20 fix problem with trace_route requesting invalid start dist 2018-10-17 15:27:38 -07:00
Dustin Carlino
d02c5004f9 clean up Pt2D::from_gps API 2018-10-17 13:14:10 -07:00
Dustin Carlino
d0f88f8d52 use new Trace for show_route plugin. handle 0-length turns 2018-10-09 14:36:53 -07:00
Dustin Carlino
d7a36889b2 some of the pieces to render smart arrows in front of agents 2018-10-09 12:56:58 -07:00
Dustin Carlino
7ca7f08ef7 refactoring focus pt per object 2018-10-08 16:20:45 -07:00
Dustin Carlino
403ef7d0ec also move the buildings 2018-10-07 12:51:27 -07:00
Dustin Carlino
94ac54d7e8 stop using Color and Vec2d types from piston, to slowly move away from dependence on piston 2018-10-05 14:58:48 -07:00
Dustin Carlino
20a1bb7923 dispersing the remainders of map_model::geometry 2018-09-18 14:35:10 -07:00
Dustin Carlino
1050d86e67 making a proper Circle type in geom 2018-09-18 14:00:55 -07:00
Dustin Carlino
e8ef4545fb remove to_vec from Pt2D; only need it in one triangulation-specific place 2018-09-18 13:44:14 -07:00
Dustin Carlino
49ebe97c21 small refactor in ezgui and polyline 2018-09-18 13:39:55 -07:00
Dustin Carlino
7dc192b0c9 refactoring helpers to draw lines 2018-09-18 13:29:30 -07:00
Dustin Carlino
e65f3aecc7 update to rust 1.29, re-run format 2018-09-15 16:54:00 -07:00
Dustin Carlino
0876315d50 make large.abst load, damnit!
- deal with loop lanes screwing up trim_lines
- give up when trim_lines fails and just keep the full geometry
- tune some epsilons
- delete duplicate turns instead of panicking
2018-09-08 21:16:58 -07:00
Dustin Carlino
f386278343 tuning EPSILON_DIST to make large.abst closer to loading 2018-09-08 19:48:11 -07:00
Dustin Carlino
f3982282de speed up building creation by doing sidewalk finding in bulk 2018-09-08 13:28:09 -07:00
Dustin Carlino
ba9fe54c2a trying to make medium map load!
- new polyline shifting that keeps a constant width, even at sharp
  corners. it breaks and is slow when shifting just to make thick
  polygons, so keep the old version around for that. actually, disable
  it always. :(

- deal with bus stops on sidewalks with no associated driving lane

- more hacks to make dist_along_of_pt work for horiz/vertical lines

- handling bus stops close to the end of a sidewalk
2018-09-08 12:48:25 -07:00
Dustin Carlino
87a33a6c78 replaced parts of the polygon ear clipping and seemingly fixed all the
problems!
2018-09-07 15:03:28 -07:00
Dustin Carlino
c3d7595fc3 (slightly) smarter stop sign assignment 2018-08-24 12:46:09 -07:00
Dustin Carlino
f36c94c730 render individual points from extra KML, and refactor some circle helpers 2018-08-23 15:17:37 -07:00
Dustin Carlino
2a12c338cf fixing up the parking test... had to deal with horizontal/vertical lines
for the building front path stuff
2018-08-23 10:37:17 -07:00
Dustin Carlino
82952ef198 remembering where the front path hits the sidewalk 2018-08-22 12:21:58 -07:00
Dustin Carlino
a2399f6613 trimming front paths to building edges 2018-08-22 11:54:18 -07:00
Dustin Carlino
bf52822e37 wrote a few tests of parking 2018-08-19 18:07:28 -07:00
Dustin Carlino
f45bc525d5 fix a few epsilon issues that made restoring from a savestate break 2018-08-15 15:37:07 -07:00
Dustin Carlino
6693147a99 WIP making driving cars park at a specific spot 2018-08-15 15:29:49 -07:00
Dustin Carlino
bf2bd09a54 WIP converting lanes and draw car to new polygon 2018-08-09 10:36:29 -07:00
Dustin Carlino
1b610aa708 making a proper polygon type, finally. using it in a few places, not all
yet
2018-08-08 18:00:10 -07:00
Dustin Carlino
5d2a4f3ac4 trying an ear clipping algorithm for buildings and parcels. works great,
lots of cleanup needed now!
2018-08-08 14:39:08 -07:00
Dustin Carlino
d0744083fc stop right BEFORE intersections 2018-08-07 14:06:31 -07:00
Dustin Carlino
4c0a8f588a still debugging various breakages. drawing lane IDs 2018-08-07 12:23:00 -07:00
Dustin Carlino
5ad6f53607 use new dimensioned version, letting us serialize maps and clean up
hacks elsewhere
2018-08-01 14:05:38 -07:00
Dustin Carlino
7ee8ef0d8d cleaning up after polyline trimming 2018-07-23 10:05:20 -07:00
Dustin Carlino
272620119f WIP working on polyline trimming, but nice and slowly this time 2018-07-23 09:41:51 -07:00
Dustin Carlino
a52b966b03 make some more pedestrian paths possible by forcing turns even when line trimming fails 2018-07-23 08:39:58 -07:00
Dustin Carlino
82fb302ddd fixing nondeterministic map conversion 2018-07-22 17:14:07 -07:00
Dustin Carlino
5b018fdf06 adding tests for map conversion determinism 2018-07-22 17:09:12 -07:00
Dustin Carlino
1c85188a64 WIP removing disconnected chunks of map. leaves orphaned intersections
still, so disabled.
2018-07-22 16:31:31 -07:00
Dustin Carlino
e5de791fa7 starting to model pedestrians. spawn and draw them. 2018-07-11 15:06:31 -07:00
Dustin Carlino
0e4ff75286 setting up an intersection test in experimental 2018-07-07 10:48:46 -07:00
Dustin Carlino
f9c1b3b526 WIP representing polyline shifting failure 2018-06-29 11:17:39 -07:00
Dustin Carlino
fe53536024 prototyping crosswalks 2018-06-29 10:30:36 -07:00
Dustin Carlino
a082fbb511 moving stuff to geom crate 2018-06-28 20:35:00 -07:00
Dustin Carlino
ba310cbd45 removing geom crate, using just map model 2018-06-25 09:00:43 -07:00
Dustin Carlino
3838a1c4ac extra lanes on one-ways 2018-06-19 13:39:10 -07:00
Dustin Carlino
4da2136dee mostly fix curved roads, needed a different quad to fill in the gap 2018-06-19 12:14:53 -07:00
Dustin Carlino
592f284be3 fix center lines for two-ways 2018-06-19 10:28:08 -07:00
Dustin Carlino
52b8570e6c sidewalks for two-ways 2018-06-19 10:10:30 -07:00
Dustin Carlino
854eee4fd0 rendering parking lanes for two-ways... 2018-06-19 09:54:21 -07:00
Dustin Carlino
55fea2d5a7 moving to new way of generating lanes from osm ways 2018-06-19 09:29:58 -07:00
Dustin Carlino
ef78902f9a slowly moving away from depending on other_side in Road, and declaring LaneType stuff 2018-06-19 09:03:26 -07:00
Dustin Carlino
6a695740bd paving the way for offsets 2018-06-18 15:25:17 -07:00
Dustin Carlino
91920c3e1d dont reach into DrawRoad's polygon directly from DrawIntersection 2018-06-18 14:46:11 -07:00
Dustin Carlino
40ec99592d making DrawRoad use pts from GeomRoad 2018-06-18 12:46:25 -07:00
Dustin Carlino
923883883b updating README and trimming license declarations 2018-06-03 17:56:53 -07:00
Dustin Carlino
065c2ce9ba Importing everything since the initial import 2018-04-10 17:51:37 -07:00