From a97dbab053ab6c5fcbb22209dd0a8c512b145ac7 Mon Sep 17 00:00:00 2001 From: dabreegster Date: Tue, 5 Jan 2021 21:03:40 +0000 Subject: [PATCH] deploy: 6f5f0014063e99470811cee41b8dd272f4a6522c --- dev/index.html | 1 + print.html | 1 + .../built_info/constant.BUILT_TIME_UTC.html | 2 +- rustdoc/geom/polyline/fn.fix_angles.html | 2 +- .../geom/polyline/fn.pts_to_line_string.html | 2 +- rustdoc/geom/polyline/fn.to_set.html | 2 +- rustdoc/geom/polyline/index.html | 2 +- rustdoc/geom/polyline/struct.PolyLine.html | 32 +- rustdoc/geom/struct.PolyLine.html | 32 +- .../implementors/core/clone/trait.Clone.js | 1 + rustdoc/implementors/core/cmp/trait.Eq.js | 1 + rustdoc/implementors/core/cmp/trait.Ord.js | 1 + .../implementors/core/cmp/trait.PartialEq.js | 1 + .../implementors/core/cmp/trait.PartialOrd.js | 1 + .../core/default/trait.Default.js | 1 + .../implementors/core/marker/trait.Freeze.js | 1 + .../implementors/core/marker/trait.Send.js | 1 + .../core/marker/trait.StructuralEq.js | 1 + .../core/marker/trait.StructuralPartialEq.js | 1 + .../implementors/core/marker/trait.Sync.js | 1 + .../implementors/core/marker/trait.Unpin.js | 1 + .../serde/de/trait.Deserialize.js | 1 + .../std/panic/trait.RefUnwindSafe.js | 1 + .../std/panic/trait.UnwindSafe.js | 1 + .../make/fn.match_points_to_lanes.html | 2 +- rustdoc/map_model/make/index.html | 2 +- rustdoc/map_model/objects/road/index.html | 2 +- .../map_model/objects/road/struct.Road.html | 22 +- rustdoc/map_model/struct.Map.html | 5 +- rustdoc/map_model/struct.Road.html | 22 +- rustdoc/search-index.js | 27 +- rustdoc/source-files.js | 1 + rustdoc/src/game/app.rs.html | 2 +- .../game-b5501e76eef510ad/out/built.rs.html | 2 +- rustdoc/src/geom/polyline.rs.html | 10 +- rustdoc/src/map_model/make/mod.rs.html | 88 ++- rustdoc/src/map_model/objects/road.rs.html | 4 +- rustdoc/src/sumo/lib.rs.html | 176 +++++ rustdoc/src/sumo/normalize.rs.html | 312 +++++++++ rustdoc/src/sumo/raw.rs.html | 606 ++++++++++++++++++ rustdoc/sumo/all.html | 6 + rustdoc/sumo/enum.Direction.html | 25 + rustdoc/sumo/enum.VehicleClass.html | 24 + rustdoc/sumo/index.html | 16 + rustdoc/sumo/normalize/index.html | 5 + rustdoc/sumo/normalize/sidebar-items.js | 1 + rustdoc/sumo/raw/enum.Direction.html | 25 + rustdoc/sumo/raw/enum.Function.html | 24 + rustdoc/sumo/raw/enum.SpreadType.html | 22 + rustdoc/sumo/raw/fn.must_parse_pl.html | 4 + rustdoc/sumo/raw/fn.parse_bounds.html | 4 + rustdoc/sumo/raw/fn.parse_f64s.html | 4 + rustdoc/sumo/raw/fn.parse_gps_bounds.html | 4 + .../raw/fn.parse_list_internal_lanes.html | 4 + rustdoc/sumo/raw/fn.parse_list_lanes.html | 4 + rustdoc/sumo/raw/fn.parse_list_vehicles.html | 4 + rustdoc/sumo/raw/fn.parse_pl.html | 4 + rustdoc/sumo/raw/fn.parse_polygon.html | 4 + rustdoc/sumo/raw/fn.parse_pt.html | 4 + rustdoc/sumo/raw/fn.parse_pts.html | 4 + rustdoc/sumo/raw/index.html | 10 + rustdoc/sumo/raw/sidebar-items.js | 1 + rustdoc/sumo/raw/struct.Connection.html | 23 + rustdoc/sumo/raw/struct.Edge.html | 27 + rustdoc/sumo/raw/struct.EdgeID.html | 36 ++ rustdoc/sumo/raw/struct.InternalLaneID.html | 36 ++ rustdoc/sumo/raw/struct.Junction.html | 24 + rustdoc/sumo/raw/struct.Lane.html | 26 + rustdoc/sumo/raw/struct.LaneID.html | 36 ++ rustdoc/sumo/raw/struct.Location.html | 19 + rustdoc/sumo/raw/struct.Network.html | 22 + rustdoc/sumo/raw/struct.NodeID.html | 36 ++ rustdoc/sumo/raw/struct.Type.html | 23 + rustdoc/sumo/sidebar-items.js | 1 + rustdoc/sumo/struct.Connection.html | 23 + rustdoc/sumo/struct.Edge.html | 24 + rustdoc/sumo/struct.EdgeID.html | 36 ++ rustdoc/sumo/struct.InternalEdge.html | 19 + rustdoc/sumo/struct.InternalLane.html | 22 + rustdoc/sumo/struct.InternalLaneID.html | 36 ++ rustdoc/sumo/struct.Junction.html | 22 + rustdoc/sumo/struct.Lane.html | 24 + rustdoc/sumo/struct.LaneID.html | 36 ++ rustdoc/sumo/struct.Network.html | 32 + rustdoc/sumo/struct.NodeID.html | 36 ++ searchindex.js | 2 +- searchindex.json | 2 +- 87 files changed, 2115 insertions(+), 85 deletions(-) create mode 100644 rustdoc/src/sumo/lib.rs.html create mode 100644 rustdoc/src/sumo/normalize.rs.html create mode 100644 rustdoc/src/sumo/raw.rs.html create mode 100644 rustdoc/sumo/all.html create mode 100644 rustdoc/sumo/enum.Direction.html create mode 100644 rustdoc/sumo/enum.VehicleClass.html create mode 100644 rustdoc/sumo/index.html create mode 100644 rustdoc/sumo/normalize/index.html create mode 100644 rustdoc/sumo/normalize/sidebar-items.js create mode 100644 rustdoc/sumo/raw/enum.Direction.html create mode 100644 rustdoc/sumo/raw/enum.Function.html create mode 100644 rustdoc/sumo/raw/enum.SpreadType.html create mode 100644 rustdoc/sumo/raw/fn.must_parse_pl.html create mode 100644 rustdoc/sumo/raw/fn.parse_bounds.html create mode 100644 rustdoc/sumo/raw/fn.parse_f64s.html create mode 100644 rustdoc/sumo/raw/fn.parse_gps_bounds.html create mode 100644 rustdoc/sumo/raw/fn.parse_list_internal_lanes.html create mode 100644 rustdoc/sumo/raw/fn.parse_list_lanes.html create mode 100644 rustdoc/sumo/raw/fn.parse_list_vehicles.html create mode 100644 rustdoc/sumo/raw/fn.parse_pl.html create mode 100644 rustdoc/sumo/raw/fn.parse_polygon.html create mode 100644 rustdoc/sumo/raw/fn.parse_pt.html create mode 100644 rustdoc/sumo/raw/fn.parse_pts.html create mode 100644 rustdoc/sumo/raw/index.html create mode 100644 rustdoc/sumo/raw/sidebar-items.js create mode 100644 rustdoc/sumo/raw/struct.Connection.html create mode 100644 rustdoc/sumo/raw/struct.Edge.html create mode 100644 rustdoc/sumo/raw/struct.EdgeID.html create mode 100644 rustdoc/sumo/raw/struct.InternalLaneID.html create mode 100644 rustdoc/sumo/raw/struct.Junction.html create mode 100644 rustdoc/sumo/raw/struct.Lane.html create mode 100644 rustdoc/sumo/raw/struct.LaneID.html create mode 100644 rustdoc/sumo/raw/struct.Location.html create mode 100644 rustdoc/sumo/raw/struct.Network.html create mode 100644 rustdoc/sumo/raw/struct.NodeID.html create mode 100644 rustdoc/sumo/raw/struct.Type.html create mode 100644 rustdoc/sumo/sidebar-items.js create mode 100644 rustdoc/sumo/struct.Connection.html create mode 100644 rustdoc/sumo/struct.Edge.html create mode 100644 rustdoc/sumo/struct.EdgeID.html create mode 100644 rustdoc/sumo/struct.InternalEdge.html create mode 100644 rustdoc/sumo/struct.InternalLane.html create mode 100644 rustdoc/sumo/struct.InternalLaneID.html create mode 100644 rustdoc/sumo/struct.Junction.html create mode 100644 rustdoc/sumo/struct.Lane.html create mode 100644 rustdoc/sumo/struct.LaneID.html create mode 100644 rustdoc/sumo/struct.Network.html create mode 100644 rustdoc/sumo/struct.NodeID.html diff --git a/dev/index.html b/dev/index.html index fd9cbbf811..25e416abaf 100644 --- a/dev/index.html +++ b/dev/index.html @@ -300,6 +300,7 @@ polygons, circles, durations, speeds
  • fifteen_min: a standalone tool to explore 15-minute neighborhoods
  • popdat: use census data to produce traffic simulation input
  • traffic_signal_data: manual timing overrides for some traffic signals
  • +
  • sumo: interoperability with SUMO
  • Code conventions

    All code is automatically formatted using diff --git a/print.html b/print.html index e23d4af400..a5ddfd3516 100644 --- a/print.html +++ b/print.html @@ -880,6 +880,7 @@ polygons, circles, durations, speeds

  • fifteen_min: a standalone tool to explore 15-minute neighborhoods
  • popdat: use census data to produce traffic simulation input
  • traffic_signal_data: manual timing overrides for some traffic signals
  • +
  • sumo: interoperability with SUMO
  • Code conventions

    All code is automatically formatted using diff --git a/rustdoc/game/pregame/built_info/constant.BUILT_TIME_UTC.html b/rustdoc/game/pregame/built_info/constant.BUILT_TIME_UTC.html index 7399231d52..c19ddca638 100644 --- a/rustdoc/game/pregame/built_info/constant.BUILT_TIME_UTC.html +++ b/rustdoc/game/pregame/built_info/constant.BUILT_TIME_UTC.html @@ -1,5 +1,5 @@ game::pregame::built_info::BUILT_TIME_UTC - Rust

    [][src]Constant game::pregame::built_info::BUILT_TIME_UTC

    pub const BUILT_TIME_UTC: &str = "Tue, 05 Jan 2021 19:53:41 +0000";

    The built-time in RFC2822, UTC

    + Change settings

    [][src]Constant game::pregame::built_info::BUILT_TIME_UTC

    pub const BUILT_TIME_UTC: &str = "Tue, 05 Jan 2021 21:00:59 +0000";

    The built-time in RFC2822, UTC

    \ No newline at end of file diff --git a/rustdoc/geom/polyline/fn.fix_angles.html b/rustdoc/geom/polyline/fn.fix_angles.html index ba42dbd701..76b0f4d0e4 100644 --- a/rustdoc/geom/polyline/fn.fix_angles.html +++ b/rustdoc/geom/polyline/fn.fix_angles.html @@ -1,4 +1,4 @@ geom::polyline::fix_angles - Rust

    [][src]Function geom::polyline::fix_angles

    fn fix_angles(orig: &PolyLine, result: PolyLine) -> Result<PolyLine>
    \ No newline at end of file + Change settings

    [][src]Function geom::polyline::fix_angles

    fn fix_angles(orig: &PolyLine, result: PolyLine) -> Result<PolyLine>
    \ No newline at end of file diff --git a/rustdoc/geom/polyline/fn.pts_to_line_string.html b/rustdoc/geom/polyline/fn.pts_to_line_string.html index 61607e07de..ab772f3ca0 100644 --- a/rustdoc/geom/polyline/fn.pts_to_line_string.html +++ b/rustdoc/geom/polyline/fn.pts_to_line_string.html @@ -1,4 +1,4 @@ geom::polyline::pts_to_line_string - Rust

    [][src]Function geom::polyline::pts_to_line_string

    fn pts_to_line_string(raw_pts: &Vec<Pt2D>) -> LineString<f64>
    \ No newline at end of file + Change settings

    [][src]Function geom::polyline::pts_to_line_string

    fn pts_to_line_string(raw_pts: &Vec<Pt2D>) -> LineString<f64>
    \ No newline at end of file diff --git a/rustdoc/geom/polyline/fn.to_set.html b/rustdoc/geom/polyline/fn.to_set.html index 16086f7dee..0146b8fb85 100644 --- a/rustdoc/geom/polyline/fn.to_set.html +++ b/rustdoc/geom/polyline/fn.to_set.html @@ -1,4 +1,4 @@ geom::polyline::to_set - Rust

    [][src]Function geom::polyline::to_set

    fn to_set(pts: &[Pt2D]) -> (HashSet<HashablePt2D>, HashSet<HashablePt2D>)
    \ No newline at end of file + Change settings

    [][src]Function geom::polyline::to_set

    fn to_set(pts: &[Pt2D]) -> (HashSet<HashablePt2D>, HashSet<HashablePt2D>)
    \ No newline at end of file diff --git a/rustdoc/geom/polyline/index.html b/rustdoc/geom/polyline/index.html index bc2215d4f7..4b5b3e1f55 100644 --- a/rustdoc/geom/polyline/index.html +++ b/rustdoc/geom/polyline/index.html @@ -1,7 +1,7 @@ geom::polyline - Rust

    [][src]Module geom::polyline

    Structs

    + Change settings

    [][src]Module geom::polyline

    Structs

    PolyLine

    Enums

    ArrowCap

    Constants

    MITER_THRESHOLD

    Functions

    diff --git a/rustdoc/geom/polyline/struct.PolyLine.html b/rustdoc/geom/polyline/struct.PolyLine.html index 5e05562c62..9e5e80948c 100644 --- a/rustdoc/geom/polyline/struct.PolyLine.html +++ b/rustdoc/geom/polyline/struct.PolyLine.html @@ -5,32 +5,32 @@ pts: Vec<Pt2D>, length: Distance, }

    - Fields

    pts: Vec<Pt2D>length: Distance

    Implementations

    impl PolyLine[src]

    pub fn new(pts: Vec<Pt2D>) -> Result<PolyLine>[src]

    pub fn must_new(pts: Vec<Pt2D>) -> PolyLine[src]

    pub fn unchecked_new(pts: Vec<Pt2D>) -> PolyLine[src]

    Doesn't check for duplicates. Use at your own risk.

    + Fieldspts: Vec<Pt2D>length: Distance

    Implementations

    impl PolyLine[src]

    pub fn new(pts: Vec<Pt2D>) -> Result<PolyLine>[src]

    pub fn must_new(pts: Vec<Pt2D>) -> PolyLine[src]

    pub fn unchecked_new(pts: Vec<Pt2D>) -> PolyLine[src]

    Doesn't check for duplicates. Use at your own risk.

    pub fn deduping_new(pts: Vec<Pt2D>) -> Result<PolyLine>[src]

    First dedupes adjacent points

    pub fn to_thick_ring(&self, width: Distance) -> Ring[src]

    Like make_polygons, but make sure the points actually form a ring.

    -

    pub fn to_thick_boundary(
        &self,
        self_width: Distance,
        boundary_width: Distance
    ) -> Option<Polygon>
    [src]

    pub fn reversed(&self) -> PolyLine[src]

    pub fn extend(self, other: PolyLine) -> Result<PolyLine>[src]

    pub fn must_extend(self, other: PolyLine) -> PolyLine[src]

    pub fn must_push(self, pt: Pt2D) -> PolyLine[src]

    pub fn append(first: Vec<Pt2D>, second: Vec<Pt2D>) -> Result<Vec<Pt2D>>[src]

    One or both args might be empty.

    -

    pub fn points(&self) -> &Vec<Pt2D>[src]

    pub fn into_points(self) -> Vec<Pt2D>[src]

    pub fn lines(&self) -> impl Iterator<Item = Line> + '_[src]

    pub fn length(&self) -> Distance[src]

    pub fn slice(
        &self,
        start: Distance,
        end: Distance
    ) -> Result<(PolyLine, Distance)>
    [src]

    Returns the excess distance left over from the end

    -

    pub fn exact_slice(&self, start: Distance, end: Distance) -> PolyLine[src]

    No excess leftover distance allowed.

    -

    pub fn maybe_exact_slice(
        &self,
        start: Distance,
        end: Distance
    ) -> Result<PolyLine>
    [src]

    pub fn first_half(&self) -> PolyLine[src]

    pub fn second_half(&self) -> PolyLine[src]

    pub fn dist_along(&self, dist_along: Distance) -> Result<(Pt2D, Angle)>[src]

    pub fn must_dist_along(&self, dist_along: Distance) -> (Pt2D, Angle)[src]

    pub fn middle(&self) -> Pt2D[src]

    pub fn first_pt(&self) -> Pt2D[src]

    pub fn last_pt(&self) -> Pt2D[src]

    pub fn first_line(&self) -> Line[src]

    pub fn last_line(&self) -> Line[src]

    pub fn shift_right(&self, width: Distance) -> Result<PolyLine>[src]

    pub fn must_shift_right(&self, width: Distance) -> PolyLine[src]

    pub fn shift_left(&self, width: Distance) -> Result<PolyLine>[src]

    pub fn must_shift_left(&self, width: Distance) -> PolyLine[src]

    fn shift_with_corrections(&self, width: Distance) -> Result<PolyLine>[src]

    fn shift_with_sharp_angles(
        &self,
        width: Distance,
        miter_threshold: f64
    ) -> Vec<Pt2D>
    [src]

    pub fn make_polygons(&self, width: Distance) -> Polygon[src]

    The resulting polygon is manually triangulated and may not have a valid outer Ring (but it +

    pub fn to_thick_boundary(
        &self,
        self_width: Distance,
        boundary_width: Distance
    ) -> Option<Polygon>
    [src]

    pub fn reversed(&self) -> PolyLine[src]

    pub fn extend(self, other: PolyLine) -> Result<PolyLine>[src]

    pub fn must_extend(self, other: PolyLine) -> PolyLine[src]

    pub fn must_push(self, pt: Pt2D) -> PolyLine[src]

    pub fn append(first: Vec<Pt2D>, second: Vec<Pt2D>) -> Result<Vec<Pt2D>>[src]

    One or both args might be empty.

    +

    pub fn points(&self) -> &Vec<Pt2D>[src]

    pub fn into_points(self) -> Vec<Pt2D>[src]

    pub fn lines(&self) -> impl Iterator<Item = Line> + '_[src]

    pub fn length(&self) -> Distance[src]

    pub fn slice(
        &self,
        start: Distance,
        end: Distance
    ) -> Result<(PolyLine, Distance)>
    [src]

    Returns the excess distance left over from the end

    +

    pub fn exact_slice(&self, start: Distance, end: Distance) -> PolyLine[src]

    No excess leftover distance allowed.

    +

    pub fn maybe_exact_slice(
        &self,
        start: Distance,
        end: Distance
    ) -> Result<PolyLine>
    [src]

    pub fn first_half(&self) -> PolyLine[src]

    pub fn second_half(&self) -> PolyLine[src]

    pub fn dist_along(&self, dist_along: Distance) -> Result<(Pt2D, Angle)>[src]

    pub fn must_dist_along(&self, dist_along: Distance) -> (Pt2D, Angle)[src]

    pub fn middle(&self) -> Pt2D[src]

    pub fn first_pt(&self) -> Pt2D[src]

    pub fn last_pt(&self) -> Pt2D[src]

    pub fn first_line(&self) -> Line[src]

    pub fn last_line(&self) -> Line[src]

    pub fn shift_right(&self, width: Distance) -> Result<PolyLine>[src]

    pub fn must_shift_right(&self, width: Distance) -> PolyLine[src]

    pub fn shift_left(&self, width: Distance) -> Result<PolyLine>[src]

    pub fn must_shift_left(&self, width: Distance) -> PolyLine[src]

    fn shift_with_corrections(&self, width: Distance) -> Result<PolyLine>[src]

    fn shift_with_sharp_angles(
        &self,
        width: Distance,
        miter_threshold: f64
    ) -> Vec<Pt2D>
    [src]

    pub fn make_polygons(&self, width: Distance) -> Polygon[src]

    The resulting polygon is manually triangulated and may not have a valid outer Ring (but it usually does).

    -

    pub fn make_polygons_with_miter_threshold(
        &self,
        width: Distance,
        miter_threshold: f64
    ) -> Polygon
    [src]

    The resulting polygon is manually triangulated and may not have a valid outer Ring (but it +

    pub fn make_polygons_with_miter_threshold(
        &self,
        width: Distance,
        miter_threshold: f64
    ) -> Polygon
    [src]

    The resulting polygon is manually triangulated and may not have a valid outer Ring (but it usually does).

    -

    pub fn exact_dashed_polygons(
        &self,
        width: Distance,
        dash_len: Distance,
        dash_separation: Distance
    ) -> Vec<Polygon>
    [src]

    pub fn dashed_lines(
        &self,
        width: Distance,
        dash_len: Distance,
        dash_separation: Distance
    ) -> Vec<Polygon>
    [src]

    Don't draw the dashes too close to the ends.

    -

    pub fn maybe_make_arrow(
        &self,
        thickness: Distance,
        cap: ArrowCap
    ) -> Option<Polygon>
    [src]

    Fail if the length is too short.

    -

    pub fn make_arrow(&self, thickness: Distance, cap: ArrowCap) -> Polygon[src]

    If the length is too short, just give up and make the thick line

    -

    pub fn make_double_arrow(&self, thickness: Distance, cap: ArrowCap) -> Polygon[src]

    pub fn dashed_arrow(
        &self,
        width: Distance,
        dash_len: Distance,
        dash_separation: Distance,
        cap: ArrowCap
    ) -> Vec<Polygon>
    [src]

    pub fn intersection(&self, other: &PolyLine) -> Option<(Pt2D, Angle)>[src]

    Also return the angle of the line where the hit was found

    -

    pub fn intersection_infinite(&self, other: &InfiniteLine) -> Option<Pt2D>[src]

    pub fn get_slice_ending_at(&self, pt: Pt2D) -> Option<PolyLine>[src]

    Panics if the pt is not on the polyline. Returns None if the point is the first point +

    pub fn exact_dashed_polygons(
        &self,
        width: Distance,
        dash_len: Distance,
        dash_separation: Distance
    ) -> Vec<Polygon>
    [src]

    pub fn dashed_lines(
        &self,
        width: Distance,
        dash_len: Distance,
        dash_separation: Distance
    ) -> Vec<Polygon>
    [src]

    Don't draw the dashes too close to the ends.

    +

    pub fn maybe_make_arrow(
        &self,
        thickness: Distance,
        cap: ArrowCap
    ) -> Option<Polygon>
    [src]

    Fail if the length is too short.

    +

    pub fn make_arrow(&self, thickness: Distance, cap: ArrowCap) -> Polygon[src]

    If the length is too short, just give up and make the thick line

    +

    pub fn make_double_arrow(&self, thickness: Distance, cap: ArrowCap) -> Polygon[src]

    pub fn dashed_arrow(
        &self,
        width: Distance,
        dash_len: Distance,
        dash_separation: Distance,
        cap: ArrowCap
    ) -> Vec<Polygon>
    [src]

    pub fn intersection(&self, other: &PolyLine) -> Option<(Pt2D, Angle)>[src]

    Also return the angle of the line where the hit was found

    +

    pub fn intersection_infinite(&self, other: &InfiniteLine) -> Option<Pt2D>[src]

    pub fn get_slice_ending_at(&self, pt: Pt2D) -> Option<PolyLine>[src]

    Panics if the pt is not on the polyline. Returns None if the point is the first point (meaning the slice is empty).

    -

    pub fn get_slice_starting_at(&self, pt: Pt2D) -> Option<PolyLine>[src]

    Returns None if the point is the last point.

    -

    pub fn dist_along_of_point(&self, pt: Pt2D) -> Option<(Distance, Angle)>[src]

    pub fn trim_to_endpts(&self, pt1: Pt2D, pt2: Pt2D) -> PolyLine[src]

    pub fn get_bounds(&self) -> Bounds[src]

    pub fn extend_to_length(&self, min_len: Distance) -> PolyLine[src]

    If the current line is at least this long, return it. Otherwise, extend the end of it, +

    pub fn get_slice_starting_at(&self, pt: Pt2D) -> Option<PolyLine>[src]

    Returns None if the point is the last point.

    +

    pub fn dist_along_of_point(&self, pt: Pt2D) -> Option<(Distance, Angle)>[src]

    pub fn trim_to_endpts(&self, pt1: Pt2D, pt2: Pt2D) -> PolyLine[src]

    pub fn get_bounds(&self) -> Bounds[src]

    pub fn extend_to_length(&self, min_len: Distance) -> PolyLine[src]

    If the current line is at least this long, return it. Otherwise, extend the end of it, following the angle of the last line.

    -

    pub fn to_geojson(&self, gps: Option<&GPSBounds>) -> Geometry[src]

    Produces a GeoJSON linestring, optionally mapping the world-space points back to GPS.

    -

    pub fn project_pt(&self, query: Pt2D) -> Pt2D[src]

    Returns the point on the polyline closest to the query.

    +

    pub fn to_geojson(&self, gps: Option<&GPSBounds>) -> Geometry[src]

    Produces a GeoJSON linestring, optionally mapping the world-space points back to GPS.

    +

    pub fn project_pt(&self, query: Pt2D) -> Pt2D[src]

    Returns the point on the polyline closest to the query.

    Trait Implementations

    impl Clone for PolyLine[src]

    impl Debug for PolyLine[src]

    impl<'de> Deserialize<'de> for PolyLine[src]

    impl Display for PolyLine[src]

    impl Display for PolyLine[src]

    impl PartialEq<PolyLine> for PolyLine[src]

    - Fields

    pts: Vec<Pt2D>length: Distance

    Implementations

    impl PolyLine[src]

    pub fn new(pts: Vec<Pt2D>) -> Result<PolyLine>[src]

    pub fn must_new(pts: Vec<Pt2D>) -> PolyLine[src]

    pub fn unchecked_new(pts: Vec<Pt2D>) -> PolyLine[src]

    Doesn't check for duplicates. Use at your own risk.

    + Fieldspts: Vec<Pt2D>length: Distance

    Implementations

    impl PolyLine[src]

    pub fn new(pts: Vec<Pt2D>) -> Result<PolyLine>[src]

    pub fn must_new(pts: Vec<Pt2D>) -> PolyLine[src]

    pub fn unchecked_new(pts: Vec<Pt2D>) -> PolyLine[src]

    Doesn't check for duplicates. Use at your own risk.

    pub fn deduping_new(pts: Vec<Pt2D>) -> Result<PolyLine>[src]

    First dedupes adjacent points

    pub fn to_thick_ring(&self, width: Distance) -> Ring[src]

    Like make_polygons, but make sure the points actually form a ring.

    -

    pub fn to_thick_boundary(
        &self,
        self_width: Distance,
        boundary_width: Distance
    ) -> Option<Polygon>
    [src]

    pub fn reversed(&self) -> PolyLine[src]

    pub fn extend(self, other: PolyLine) -> Result<PolyLine>[src]

    pub fn must_extend(self, other: PolyLine) -> PolyLine[src]

    pub fn must_push(self, pt: Pt2D) -> PolyLine[src]

    pub fn append(first: Vec<Pt2D>, second: Vec<Pt2D>) -> Result<Vec<Pt2D>>[src]

    One or both args might be empty.

    -

    pub fn points(&self) -> &Vec<Pt2D>[src]

    pub fn into_points(self) -> Vec<Pt2D>[src]

    pub fn lines(&self) -> impl Iterator<Item = Line> + '_[src]

    pub fn length(&self) -> Distance[src]

    pub fn slice(
        &self,
        start: Distance,
        end: Distance
    ) -> Result<(PolyLine, Distance)>
    [src]

    Returns the excess distance left over from the end

    -

    pub fn exact_slice(&self, start: Distance, end: Distance) -> PolyLine[src]

    No excess leftover distance allowed.

    -

    pub fn maybe_exact_slice(
        &self,
        start: Distance,
        end: Distance
    ) -> Result<PolyLine>
    [src]

    pub fn first_half(&self) -> PolyLine[src]

    pub fn second_half(&self) -> PolyLine[src]

    pub fn dist_along(&self, dist_along: Distance) -> Result<(Pt2D, Angle)>[src]

    pub fn must_dist_along(&self, dist_along: Distance) -> (Pt2D, Angle)[src]

    pub fn middle(&self) -> Pt2D[src]

    pub fn first_pt(&self) -> Pt2D[src]

    pub fn last_pt(&self) -> Pt2D[src]

    pub fn first_line(&self) -> Line[src]

    pub fn last_line(&self) -> Line[src]

    pub fn shift_right(&self, width: Distance) -> Result<PolyLine>[src]

    pub fn must_shift_right(&self, width: Distance) -> PolyLine[src]

    pub fn shift_left(&self, width: Distance) -> Result<PolyLine>[src]

    pub fn must_shift_left(&self, width: Distance) -> PolyLine[src]

    fn shift_with_corrections(&self, width: Distance) -> Result<PolyLine>[src]

    fn shift_with_sharp_angles(
        &self,
        width: Distance,
        miter_threshold: f64
    ) -> Vec<Pt2D>
    [src]

    pub fn make_polygons(&self, width: Distance) -> Polygon[src]

    The resulting polygon is manually triangulated and may not have a valid outer Ring (but it +

    pub fn to_thick_boundary(
        &self,
        self_width: Distance,
        boundary_width: Distance
    ) -> Option<Polygon>
    [src]

    pub fn reversed(&self) -> PolyLine[src]

    pub fn extend(self, other: PolyLine) -> Result<PolyLine>[src]

    pub fn must_extend(self, other: PolyLine) -> PolyLine[src]

    pub fn must_push(self, pt: Pt2D) -> PolyLine[src]

    pub fn append(first: Vec<Pt2D>, second: Vec<Pt2D>) -> Result<Vec<Pt2D>>[src]

    One or both args might be empty.

    +

    pub fn points(&self) -> &Vec<Pt2D>[src]

    pub fn into_points(self) -> Vec<Pt2D>[src]

    pub fn lines(&self) -> impl Iterator<Item = Line> + '_[src]

    pub fn length(&self) -> Distance[src]

    pub fn slice(
        &self,
        start: Distance,
        end: Distance
    ) -> Result<(PolyLine, Distance)>
    [src]

    Returns the excess distance left over from the end

    +

    pub fn exact_slice(&self, start: Distance, end: Distance) -> PolyLine[src]

    No excess leftover distance allowed.

    +

    pub fn maybe_exact_slice(
        &self,
        start: Distance,
        end: Distance
    ) -> Result<PolyLine>
    [src]

    pub fn first_half(&self) -> PolyLine[src]

    pub fn second_half(&self) -> PolyLine[src]

    pub fn dist_along(&self, dist_along: Distance) -> Result<(Pt2D, Angle)>[src]

    pub fn must_dist_along(&self, dist_along: Distance) -> (Pt2D, Angle)[src]

    pub fn middle(&self) -> Pt2D[src]

    pub fn first_pt(&self) -> Pt2D[src]

    pub fn last_pt(&self) -> Pt2D[src]

    pub fn first_line(&self) -> Line[src]

    pub fn last_line(&self) -> Line[src]

    pub fn shift_right(&self, width: Distance) -> Result<PolyLine>[src]

    pub fn must_shift_right(&self, width: Distance) -> PolyLine[src]

    pub fn shift_left(&self, width: Distance) -> Result<PolyLine>[src]

    pub fn must_shift_left(&self, width: Distance) -> PolyLine[src]

    fn shift_with_corrections(&self, width: Distance) -> Result<PolyLine>[src]

    fn shift_with_sharp_angles(
        &self,
        width: Distance,
        miter_threshold: f64
    ) -> Vec<Pt2D>
    [src]

    pub fn make_polygons(&self, width: Distance) -> Polygon[src]

    The resulting polygon is manually triangulated and may not have a valid outer Ring (but it usually does).

    -

    pub fn make_polygons_with_miter_threshold(
        &self,
        width: Distance,
        miter_threshold: f64
    ) -> Polygon
    [src]

    The resulting polygon is manually triangulated and may not have a valid outer Ring (but it +

    pub fn make_polygons_with_miter_threshold(
        &self,
        width: Distance,
        miter_threshold: f64
    ) -> Polygon
    [src]

    The resulting polygon is manually triangulated and may not have a valid outer Ring (but it usually does).

    -

    pub fn exact_dashed_polygons(
        &self,
        width: Distance,
        dash_len: Distance,
        dash_separation: Distance
    ) -> Vec<Polygon>
    [src]

    pub fn dashed_lines(
        &self,
        width: Distance,
        dash_len: Distance,
        dash_separation: Distance
    ) -> Vec<Polygon>
    [src]

    Don't draw the dashes too close to the ends.

    -

    pub fn maybe_make_arrow(
        &self,
        thickness: Distance,
        cap: ArrowCap
    ) -> Option<Polygon>
    [src]

    Fail if the length is too short.

    -

    pub fn make_arrow(&self, thickness: Distance, cap: ArrowCap) -> Polygon[src]

    If the length is too short, just give up and make the thick line

    -

    pub fn make_double_arrow(&self, thickness: Distance, cap: ArrowCap) -> Polygon[src]

    pub fn dashed_arrow(
        &self,
        width: Distance,
        dash_len: Distance,
        dash_separation: Distance,
        cap: ArrowCap
    ) -> Vec<Polygon>
    [src]

    pub fn intersection(&self, other: &PolyLine) -> Option<(Pt2D, Angle)>[src]

    Also return the angle of the line where the hit was found

    -

    pub fn intersection_infinite(&self, other: &InfiniteLine) -> Option<Pt2D>[src]

    pub fn get_slice_ending_at(&self, pt: Pt2D) -> Option<PolyLine>[src]

    Panics if the pt is not on the polyline. Returns None if the point is the first point +

    pub fn exact_dashed_polygons(
        &self,
        width: Distance,
        dash_len: Distance,
        dash_separation: Distance
    ) -> Vec<Polygon>
    [src]

    pub fn dashed_lines(
        &self,
        width: Distance,
        dash_len: Distance,
        dash_separation: Distance
    ) -> Vec<Polygon>
    [src]

    Don't draw the dashes too close to the ends.

    +

    pub fn maybe_make_arrow(
        &self,
        thickness: Distance,
        cap: ArrowCap
    ) -> Option<Polygon>
    [src]

    Fail if the length is too short.

    +

    pub fn make_arrow(&self, thickness: Distance, cap: ArrowCap) -> Polygon[src]

    If the length is too short, just give up and make the thick line

    +

    pub fn make_double_arrow(&self, thickness: Distance, cap: ArrowCap) -> Polygon[src]

    pub fn dashed_arrow(
        &self,
        width: Distance,
        dash_len: Distance,
        dash_separation: Distance,
        cap: ArrowCap
    ) -> Vec<Polygon>
    [src]

    pub fn intersection(&self, other: &PolyLine) -> Option<(Pt2D, Angle)>[src]

    Also return the angle of the line where the hit was found

    +

    pub fn intersection_infinite(&self, other: &InfiniteLine) -> Option<Pt2D>[src]

    pub fn get_slice_ending_at(&self, pt: Pt2D) -> Option<PolyLine>[src]

    Panics if the pt is not on the polyline. Returns None if the point is the first point (meaning the slice is empty).

    -

    pub fn get_slice_starting_at(&self, pt: Pt2D) -> Option<PolyLine>[src]

    Returns None if the point is the last point.

    -

    pub fn dist_along_of_point(&self, pt: Pt2D) -> Option<(Distance, Angle)>[src]

    pub fn trim_to_endpts(&self, pt1: Pt2D, pt2: Pt2D) -> PolyLine[src]

    pub fn get_bounds(&self) -> Bounds[src]

    pub fn extend_to_length(&self, min_len: Distance) -> PolyLine[src]

    If the current line is at least this long, return it. Otherwise, extend the end of it, +

    pub fn get_slice_starting_at(&self, pt: Pt2D) -> Option<PolyLine>[src]

    Returns None if the point is the last point.

    +

    pub fn dist_along_of_point(&self, pt: Pt2D) -> Option<(Distance, Angle)>[src]

    pub fn trim_to_endpts(&self, pt1: Pt2D, pt2: Pt2D) -> PolyLine[src]

    pub fn get_bounds(&self) -> Bounds[src]

    pub fn extend_to_length(&self, min_len: Distance) -> PolyLine[src]

    If the current line is at least this long, return it. Otherwise, extend the end of it, following the angle of the last line.

    -

    pub fn to_geojson(&self, gps: Option<&GPSBounds>) -> Geometry[src]

    Produces a GeoJSON linestring, optionally mapping the world-space points back to GPS.

    -

    pub fn project_pt(&self, query: Pt2D) -> Pt2D[src]

    Returns the point on the polyline closest to the query.

    +

    pub fn to_geojson(&self, gps: Option<&GPSBounds>) -> Geometry[src]

    Produces a GeoJSON linestring, optionally mapping the world-space points back to GPS.

    +

    pub fn project_pt(&self, query: Pt2D) -> Pt2D[src]

    Returns the point on the polyline closest to the query.

    Trait Implementations

    impl Clone for PolyLine[src]

    impl Debug for PolyLine[src]

    impl<'de> Deserialize<'de> for PolyLine[src]

    impl Display for PolyLine[src]

    impl Display for PolyLine[src]

    impl PartialEq<PolyLine> for PolyLine[src]