geometry_algorithm/
lib.rs1#![cfg_attr(not(feature = "std"), no_std)]
15#![forbid(unsafe_code)]
16
17extern crate alloc;
18
19pub mod append;
20pub mod area;
21pub mod assign;
22pub mod azimuth;
23pub mod centroid;
24pub mod chaikin_smoothing;
25pub mod clear;
26pub mod closest_points;
27pub mod concave_hull;
28pub mod convert;
29pub mod convex_hull;
30pub mod coordinate_position;
31pub mod correct;
32pub mod densify;
33pub mod destination;
34pub mod discrete_frechet;
35pub mod discrete_hausdorff;
36pub mod disjoint;
37pub mod distance;
38pub mod envelope;
39pub mod equals;
40pub mod expand;
41pub mod for_each;
42pub mod intersects;
43pub mod is_convex;
44pub mod is_empty;
45pub mod is_simple;
46pub mod length;
47pub mod line_interpolate;
48pub mod line_locate_point;
49pub mod linestring_segmentize;
50pub mod make;
51pub mod map_coords;
52pub mod minimum_rotated_rect;
53pub mod monotone_subdivision;
54pub mod num_geometries;
55pub mod num_interior_rings;
56pub mod num_points;
57pub mod num_segments;
58pub mod remove_spikes;
59pub mod reverse;
60pub mod rhumb;
61pub mod simplify;
62pub mod transform;
63pub mod triangulate_earcut;
64pub mod unique;
65pub mod within;
66
67mod dyn_area;
68mod dyn_distance;
69mod dyn_envelope;
70mod dyn_error;
71mod dyn_length;
72mod dyn_within;
73
74pub use append::{append, append_to_ring};
77pub use area::{area, area_with, box_area, multi_polygon_area, ring_area};
80pub use assign::assign_values;
82pub use azimuth::{azimuth, azimuth_with};
84pub use centroid::{centroid, centroid_with};
86pub use chaikin_smoothing::{ChaikinSmoothing, chaikin_smoothing};
89pub use clear::clear;
91pub use closest_points::{closest_points, closest_points_with};
93pub use concave_hull::{
95 ConcaveHullParams, concave_hull, concave_hull_with, k_nearest_concave_hull,
96};
97pub use convert::convert;
99pub use convex_hull::convex_hull;
101pub use coordinate_position::{CoordinatePosition, coordinate_position};
104pub use correct::{correct, correct_closure};
106pub use densify::densify;
108pub use destination::{destination, destination_with};
110pub use discrete_frechet::{discrete_frechet_distance, discrete_frechet_distance_with};
112pub use discrete_hausdorff::{discrete_hausdorff_distance, discrete_hausdorff_distance_with};
114pub use disjoint::{disjoint, disjoint_box_box};
116pub use distance::{comparable_distance, comparable_distance_with, distance, distance_with};
118pub use envelope::envelope;
120pub use equals::equals;
122pub use expand::{expand, expand_with};
124pub use for_each::{for_each_point, for_each_segment};
127pub use intersects::{intersects, intersects_reversed};
129pub use is_convex::is_convex;
131pub use is_empty::is_empty;
133pub use is_simple::is_simple;
135pub use length::{
137 length, length_with, perimeter, perimeter_with, ring_perimeter, ring_perimeter_with,
138};
139pub use line_interpolate::line_interpolate;
141pub use line_locate_point::line_locate_point;
143pub use linestring_segmentize::{linestring_segmentize, linestring_segmentize_with};
145pub use make::{make_box, make_point, make_segment};
147pub use map_coords::{MapCoords, MapCoordsInPlace, map_coords, map_coords_in_place};
149pub use minimum_rotated_rect::minimum_rotated_rect;
151pub use monotone_subdivision::monotone_subdivision;
153pub use num_geometries::num_geometries;
155pub use num_interior_rings::num_interior_rings;
157pub use num_points::num_points;
159pub use num_segments::num_segments;
161pub use remove_spikes::remove_spikes;
163pub use reverse::reverse;
165pub use rhumb::{
167 rhumb_azimuth, rhumb_azimuth_with, rhumb_destination, rhumb_destination_with, rhumb_distance,
168 rhumb_distance_with, rhumb_length, rhumb_length_with,
169};
170pub use simplify::{simplify, simplify_with};
172pub use transform::transform;
174pub use triangulate_earcut::triangulate_earcut;
176pub use unique::unique;
178pub use within::{covered_by, within};
180
181pub use dyn_area::area_dyn;
183pub use dyn_distance::distance_dyn;
185pub use dyn_envelope::envelope_dyn;
187pub use dyn_error::DynKindMismatch;
188pub use dyn_length::length_dyn;
190pub use dyn_within::within_dyn;