Crate geo_clipper[−][src]
Expand description
This crate allows to perform boolean and offset operations on polygons.
It makes use of clipper-sys which is a binding to the C++ version of Clipper.
Example
The following example shows how to compute the intersection of two polygons.
The intersection
method (as well as difference
, union
and xor
) is provided by the Clipper
trait which is implemented for some geo-types.
use geo_types::{Coordinate, LineString, Polygon};
use geo_clipper::Clipper;
let subject = Polygon::new(
LineString(vec![
Coordinate { x: 180.0, y: 200.0 },
Coordinate { x: 260.0, y: 200.0 },
Coordinate { x: 260.0, y: 150.0 },
Coordinate { x: 180.0, y: 150.0 },
]),
vec![LineString(vec![
Coordinate { x: 215.0, y: 160.0 },
Coordinate { x: 230.0, y: 190.0 },
Coordinate { x: 200.0, y: 190.0 },
])],
);
let clip = Polygon::new(
LineString(vec![
Coordinate { x: 190.0, y: 210.0 },
Coordinate { x: 240.0, y: 210.0 },
Coordinate { x: 240.0, y: 130.0 },
Coordinate { x: 190.0, y: 130.0 },
]),
vec![],
);
let result = subject.intersection(&clip, 1.0);
Enums
Traits
This trait defines the boolean and offset operations on polygons
This trait defines the boolean and offset operations on polygons, for integer coordinate types
This trait defines the boolean and offset operations between open paths and polygons It is a subset of the operations for polygons
This trait defines the boolean and offset operations between open paths and polygons, for integer coordinate types It is a subset of the operations for polygons
Marker trait to signify a type as an closed polygon type
Marker trait to signify a type as an open path type