pub mod kernels;
pub use kernels::{Kernel, Orientation};
pub mod ball_tree;
pub use ball_tree::{BallTree, BallTreeBuilder, BallTreePoint, PointWithData};
pub mod area;
pub use area::Area;
pub mod bool_ops;
pub use bool_ops::{BooleanOps, OpType, unary_union};
pub mod bounding_rect;
pub use bounding_rect::BoundingRect;
pub mod buffer;
pub use buffer::Buffer;
pub mod minimum_rotated_rect;
pub use minimum_rotated_rect::MinimumRotatedRect;
pub mod centroid;
pub use centroid::Centroid;
pub mod chaikin_smoothing;
pub use chaikin_smoothing::ChaikinSmoothing;
pub mod chamberlain_duquette_area;
pub use chamberlain_duquette_area::ChamberlainDuquetteArea;
pub mod closest_point;
pub use closest_point::ClosestPoint;
pub mod concave_hull;
pub use concave_hull::ConcaveHull;
pub mod contains;
pub use contains::Contains;
pub mod contains_properly;
pub use contains_properly::ContainsProperly;
pub mod covers;
pub use covers::Covers;
pub mod convert;
pub use convert::{Convert, TryConvert};
pub mod convert_angle_unit;
pub use convert_angle_unit::{ToDegrees, ToRadians};
pub mod convex_hull;
pub use convex_hull::ConvexHull;
pub mod cross_track_distance;
pub use cross_track_distance::CrossTrackDistance;
pub mod coordinate_position;
pub use coordinate_position::CoordinatePosition;
pub mod coords_iter;
pub use coords_iter::CoordsIter;
pub mod densify_haversine;
#[allow(deprecated)]
pub use densify_haversine::DensifyHaversine;
pub mod dimensions;
pub use dimensions::HasDimensions;
pub mod euclidean_distance;
#[allow(deprecated)]
pub use euclidean_distance::EuclideanDistance;
pub mod euclidean_length;
#[allow(deprecated)]
pub use euclidean_length::EuclideanLength;
pub mod extremes;
pub use extremes::Extremes;
pub mod frechet_distance;
#[allow(deprecated)]
pub use frechet_distance::FrechetDistance;
pub mod geodesic_bearing;
pub use geodesic_bearing::GeodesicBearing;
pub mod geodesic_destination;
#[allow(deprecated)]
pub use geodesic_destination::GeodesicDestination;
pub mod geodesic_distance;
#[allow(deprecated)]
pub use geodesic_distance::GeodesicDistance;
pub mod geodesic_area;
pub use geodesic_area::GeodesicArea;
pub mod geodesic_intermediate;
#[allow(deprecated)]
pub use geodesic_intermediate::GeodesicIntermediate;
pub mod geodesic_length;
#[allow(deprecated)]
pub use geodesic_length::GeodesicLength;
pub mod hausdorff_distance;
pub use hausdorff_distance::HausdorffDistance;
pub mod haversine_bearing;
#[allow(deprecated)]
pub use haversine_bearing::HaversineBearing;
pub mod haversine_destination;
#[allow(deprecated)]
pub use haversine_destination::HaversineDestination;
pub mod haversine_distance;
#[allow(deprecated)]
pub use haversine_distance::HaversineDistance;
pub mod haversine_intermediate;
#[allow(deprecated)]
pub use haversine_intermediate::HaversineIntermediate;
pub mod haversine_length;
#[allow(deprecated)]
pub use haversine_length::HaversineLength;
pub mod haversine_closest_point;
pub use haversine_closest_point::HaversineClosestPoint;
pub mod indexed;
pub use indexed::PreparedGeometry;
pub mod interior_point;
pub use interior_point::InteriorPoint;
pub mod intersects;
pub use intersects::Intersects;
pub mod is_convex;
pub use is_convex::IsConvex;
pub mod k_nearest_concave_hull;
pub use k_nearest_concave_hull::KNearestConcaveHull;
pub mod line_interpolate_point;
#[allow(deprecated)]
pub use line_interpolate_point::LineInterpolatePoint;
pub mod line_intersection;
pub use line_intersection::LineIntersection;
pub mod line_locate_point;
pub use line_locate_point::LineLocatePoint;
pub mod lines_iter;
pub use lines_iter::LinesIter;
pub mod line_measures;
pub use line_measures::metric_spaces::{
Euclidean, Geodesic, GeodesicMeasure, Haversine, HaversineMeasure, Rhumb,
};
pub use line_measures::{
Bearing, Densify, Destination, Distance, InterpolatableLine, InterpolateLine, InterpolatePoint,
Length,
};
pub mod linestring_segment;
pub use linestring_segment::{LineStringSegmentize, LineStringSegmentizeHaversine};
pub mod map_coords;
pub use map_coords::{MapCoords, MapCoordsInPlace};
pub mod orient;
pub use orient::Orient;
#[cfg(feature = "proj")]
pub mod proj;
pub mod relate;
pub use relate::Relate;
pub mod remove_repeated_points;
pub use remove_repeated_points::RemoveRepeatedPoints;
pub mod rotate;
pub use rotate::Rotate;
pub mod scale;
pub use scale::Scale;
pub mod skew;
pub use skew::Skew;
pub mod affine_ops;
pub use affine_ops::{AffineOps, AffineTransform};
pub mod simplify;
pub use simplify::{Simplify, SimplifyIdx};
pub mod simplify_vw;
pub use simplify_vw::{SimplifyVw, SimplifyVwIdx, SimplifyVwPreserve};
#[allow(dead_code)]
pub(crate) mod stitch;
#[allow(deprecated)]
pub use stitch::StitchTriangles;
#[cfg(feature = "proj")]
pub mod transform;
#[cfg(feature = "proj")]
pub use transform::Transform;
pub mod translate;
pub use translate::Translate;
#[cfg(feature = "earcut")]
pub mod triangulate_earcut;
#[cfg(feature = "earcut")]
pub use triangulate_earcut::TriangulateEarcut;
#[cfg(feature = "spade")]
pub mod triangulate_delaunay;
#[cfg(feature = "spade")]
pub use triangulate_delaunay::{TriangulateDelaunay, TriangulateDelaunayUnconstrained};
#[cfg(feature = "spade")]
pub mod repair_polygon;
#[cfg(feature = "spade")]
pub use repair_polygon::MakeValid;
#[cfg(feature = "spade")]
#[deprecated(
since = "0.29.4",
note = "please use the `triangulate_delaunay` module instead"
)]
pub mod triangulate_spade;
#[cfg(feature = "spade")]
#[deprecated(since = "0.29.4", note = "please use `TriangulateDelaunay` instead")]
#[allow(deprecated)]
pub use triangulate_spade::TriangulateSpade;
mod vector_ops;
pub use vector_ops::Vector2DOps;
pub mod vincenty_distance;
pub use vincenty_distance::VincentyDistance;
pub mod vincenty_length;
pub use vincenty_length::VincentyLength;
#[cfg(feature = "spade")]
pub mod voronoi;
#[cfg(feature = "spade")]
pub use voronoi::{Voronoi, VoronoiClip, VoronoiError, VoronoiParams};
pub mod winding_order;
pub use winding_order::Winding;
pub mod within;
pub use within::Within;
pub(crate) mod old_sweep;
pub mod sweep;
pub mod outlier_detection;
pub use outlier_detection::OutlierDetection;
pub mod dbscan;
pub use dbscan::Dbscan;
pub mod kmeans;
pub use kmeans::{KMeans, KMeansError, KMeansParams};
pub mod monotone;
pub use monotone::{MonoPoly, MonotonicPolygons, monotone_subdivision};
pub mod monotone_chain;
pub use monotone_chain::{
MonotoneChain, MonotoneChainGeometry, MonotoneChainLineString, MonotoneChainMultiLineString,
MonotoneChainMultiPolygon, MonotoneChainPolygon, MonotoneChains,
};
pub mod rhumb;
#[allow(deprecated)]
pub use rhumb::{RhumbBearing, RhumbDestination, RhumbDistance, RhumbIntermediate, RhumbLength};
pub mod validation;
pub use validation::Validation;