geo_repair_polygon/
lib.rs1mod close_poly;
13mod dedup_poly_point;
14mod fix_intersecting_rings;
15mod fix_point_touching_ring_line;
16mod fix_self_intersecting_ring;
17pub mod join;
18pub mod repair;
19
20use float_next_after::NextAfter;
21use geo_booleanop::boolean::Float;
22use geo_types::Coordinate;
23use std::fmt;
24
25pub trait GeoRepairFloat:
26 Float
27 + NextAfter<Self>
28 + fmt::Display
29 + num_traits::cast::FromPrimitive
30 + std::iter::Sum
31 + num_traits::Signed
32{
33}
34impl<
35 T: Float
36 + NextAfter<T>
37 + fmt::Display
38 + num_traits::cast::FromPrimitive
39 + std::iter::Sum
40 + num_traits::Signed,
41 > GeoRepairFloat for T
42{
43}
44
45fn shift_point<T: GeoRepairFloat>(coord: &Coordinate<T>, x_dir: T, y_dir: T) -> Coordinate<T> {
46 Coordinate {
48 x: coord.x.next_after(x_dir).next_after(x_dir),
49 y: coord.y.next_after(y_dir).next_after(y_dir),
50 }
51}