pub fn difference_polygons_pooled(
base: &[Polygon],
subtract: &[Polygon],
) -> Result<PoolGuard<'static, Polygon>>Expand description
Computes difference of base polygons with subtract polygons using object pooling
Subtracts subtract polygons from base polygons. Returns the first result polygon from the pool.
§Arguments
base- Base polygonssubtract- Polygons to subtract
§Returns
A pooled polygon guard representing the difference
§Errors
Returns error if any polygon is invalid
§Example
use oxigdal_algorithms::vector::{difference_polygons_pooled, Coordinate, LineString, Polygon};
let coords = vec![
Coordinate::new_2d(0.0, 0.0),
Coordinate::new_2d(10.0, 0.0),
Coordinate::new_2d(10.0, 10.0),
Coordinate::new_2d(0.0, 10.0),
Coordinate::new_2d(0.0, 0.0),
];
let ext = LineString::new(coords)?;
let base_poly = Polygon::new(ext, vec![])?;
let base = vec![base_poly];
let subtract: Vec<Polygon> = vec![]; // Empty for example
let result = difference_polygons_pooled(&base, &subtract)?;