pub trait Intersects<Rhs = Self> {
    // Required method
    fn intersects(&self, rhs: &Rhs) -> bool;
}
Expand description

Checks if the geometry Self intersects the geometry Rhs. More formally, either boundary or interior of Self has non-empty (set-theoretic) intersection with the boundary or interior of Rhs. In other words, the DE-9IM intersection matrix for (Self, Rhs) is not FF*FF****.

This predicate is symmetric: a.intersects(b) iff b.intersects(a).

§Examples

use geo::Intersects;
use geo::line_string;

let line_string_a = line_string![
    (x: 3., y: 2.),
    (x: 7., y: 6.),
];

let line_string_b = line_string![
    (x: 3., y: 4.),
    (x: 8., y: 4.),
];

let line_string_c = line_string![
    (x: 9., y: 2.),
    (x: 11., y: 5.),
];

assert!(line_string_a.intersects(&line_string_b));
assert!(!line_string_a.intersects(&line_string_c));

Required Methods§

source

fn intersects(&self, rhs: &Rhs) -> bool

Implementors§

source§

impl<G, T> Intersects<G> for MultiPolygon<T>
where T: GeoNum, Polygon<T>: Intersects<G>, G: BoundingRect<T>,

source§

impl<T> Intersects for Coord<T>
where T: CoordNum,

source§

impl<T> Intersects for Line<T>
where T: GeoNum,

source§

impl<T> Intersects for Polygon<T>
where T: GeoNum,

source§

impl<T> Intersects for Rect<T>
where T: CoordNum,

source§

impl<T> Intersects for Triangle<T>
where T: GeoNum,

source§

impl<T> Intersects<Geometry<T>> for Coord<T>
where Geometry<T>: Intersects<Coord<T>>, T: CoordNum,

source§

impl<T> Intersects<Geometry<T>> for Line<T>
where Geometry<T>: Intersects<Line<T>>, T: CoordNum,

source§

impl<T> Intersects<Geometry<T>> for Polygon<T>
where Geometry<T>: Intersects<Polygon<T>>, T: CoordNum,

source§

impl<T> Intersects<Geometry<T>> for Rect<T>
where Geometry<T>: Intersects<Rect<T>>, T: CoordNum,

source§

impl<T> Intersects<Geometry<T>> for Triangle<T>

source§

impl<T> Intersects<Coord<T>> for Line<T>
where T: GeoNum,

source§

impl<T> Intersects<Coord<T>> for Polygon<T>
where T: GeoNum,

source§

impl<T> Intersects<Coord<T>> for Rect<T>
where T: CoordNum,

source§

impl<T> Intersects<Coord<T>> for Triangle<T>
where T: GeoNum,

source§

impl<T> Intersects<GeometryCollection<T>> for Coord<T>

source§

impl<T> Intersects<GeometryCollection<T>> for Line<T>

source§

impl<T> Intersects<GeometryCollection<T>> for Polygon<T>

source§

impl<T> Intersects<GeometryCollection<T>> for Rect<T>

source§

impl<T> Intersects<GeometryCollection<T>> for Triangle<T>

source§

impl<T> Intersects<Line<T>> for Coord<T>
where Line<T>: Intersects<Coord<T>>, T: CoordNum,

source§

impl<T> Intersects<Line<T>> for Polygon<T>
where T: GeoNum,

source§

impl<T> Intersects<Line<T>> for Rect<T>
where T: GeoNum,

source§

impl<T> Intersects<Line<T>> for Triangle<T>
where Line<T>: Intersects<Triangle<T>>, T: CoordNum,

source§

impl<T> Intersects<LineString<T>> for Coord<T>
where LineString<T>: Intersects<Coord<T>>, T: CoordNum,

source§

impl<T> Intersects<LineString<T>> for Line<T>
where LineString<T>: Intersects<Line<T>>, T: CoordNum,

source§

impl<T> Intersects<LineString<T>> for Polygon<T>

source§

impl<T> Intersects<LineString<T>> for Rect<T>
where LineString<T>: Intersects<Rect<T>>, T: CoordNum,

source§

impl<T> Intersects<LineString<T>> for Triangle<T>

source§

impl<T> Intersects<MultiLineString<T>> for Line<T>

source§

impl<T> Intersects<MultiLineString<T>> for Point<T>

source§

impl<T> Intersects<MultiLineString<T>> for Polygon<T>

source§

impl<T> Intersects<MultiLineString<T>> for Rect<T>

source§

impl<T> Intersects<MultiLineString<T>> for Triangle<T>

source§

impl<T> Intersects<MultiPoint<T>> for Coord<T>
where MultiPoint<T>: Intersects<Coord<T>>, T: CoordNum,

source§

impl<T> Intersects<MultiPoint<T>> for Line<T>
where MultiPoint<T>: Intersects<Line<T>>, T: CoordNum,

source§

impl<T> Intersects<MultiPoint<T>> for Polygon<T>

source§

impl<T> Intersects<MultiPoint<T>> for Rect<T>
where MultiPoint<T>: Intersects<Rect<T>>, T: CoordNum,

source§

impl<T> Intersects<MultiPoint<T>> for Triangle<T>

source§

impl<T> Intersects<MultiPolygon<T>> for Line<T>

source§

impl<T> Intersects<MultiPolygon<T>> for Point<T>

source§

impl<T> Intersects<MultiPolygon<T>> for Polygon<T>

source§

impl<T> Intersects<MultiPolygon<T>> for Rect<T>

source§

impl<T> Intersects<MultiPolygon<T>> for Triangle<T>

source§

impl<T> Intersects<Point<T>> for Coord<T>
where T: CoordNum,

source§

impl<T> Intersects<Point<T>> for Line<T>
where Point<T>: Intersects<Line<T>>, T: CoordNum,

source§

impl<T> Intersects<Point<T>> for Polygon<T>
where Point<T>: Intersects<Polygon<T>>, T: CoordNum,

source§

impl<T> Intersects<Point<T>> for Rect<T>
where Point<T>: Intersects<Rect<T>>, T: CoordNum,

source§

impl<T> Intersects<Point<T>> for Triangle<T>
where Point<T>: Intersects<Triangle<T>>, T: CoordNum,

source§

impl<T> Intersects<Polygon<T>> for Coord<T>
where Polygon<T>: Intersects<Coord<T>>, T: CoordNum,

source§

impl<T> Intersects<Polygon<T>> for Line<T>
where Polygon<T>: Intersects<Line<T>>, T: CoordNum,

source§

impl<T> Intersects<Polygon<T>> for Rect<T>
where Polygon<T>: Intersects<Rect<T>>, T: CoordNum,

source§

impl<T> Intersects<Polygon<T>> for Triangle<T>
where Polygon<T>: Intersects<Triangle<T>>, T: CoordNum,

source§

impl<T> Intersects<Rect<T>> for Coord<T>
where Rect<T>: Intersects<Coord<T>>, T: CoordNum,

source§

impl<T> Intersects<Rect<T>> for Line<T>
where Rect<T>: Intersects<Line<T>>, T: CoordNum,

source§

impl<T> Intersects<Rect<T>> for Polygon<T>
where T: GeoNum,

source§

impl<T> Intersects<Rect<T>> for Triangle<T>
where Rect<T>: Intersects<Triangle<T>>, T: CoordNum,

source§

impl<T> Intersects<Triangle<T>> for Coord<T>
where Triangle<T>: Intersects<Coord<T>>, T: CoordNum,

source§

impl<T> Intersects<Triangle<T>> for Line<T>
where T: GeoNum,

source§

impl<T> Intersects<Triangle<T>> for Polygon<T>
where T: GeoNum,

source§

impl<T> Intersects<Triangle<T>> for Rect<T>
where T: GeoNum,

source§

impl<T, G> Intersects<G> for Geometry<T>

source§

impl<T, G> Intersects<G> for GeometryCollection<T>
where T: CoordNum, Geometry<T>: Intersects<G>, G: BoundingRect<T>,

source§

impl<T, G> Intersects<G> for LineString<T>
where T: CoordNum, Line<T>: Intersects<G>, G: BoundingRect<T>,

source§

impl<T, G> Intersects<G> for MultiLineString<T>
where T: CoordNum, LineString<T>: Intersects<G>, G: BoundingRect<T>,

source§

impl<T, G> Intersects<G> for MultiPoint<T>
where T: CoordNum, Point<T>: Intersects<G>,

source§

impl<T, G> Intersects<G> for Point<T>
where T: CoordNum, Coord<T>: Intersects<G>,

source§

impl<T: GeoNum> Intersects<Coord<T>> for MonoPoly<T>

source§

impl<T: GeoNum> Intersects<Coord<T>> for MonotonicPolygons<T>