#![forbid(unsafe_code)]
#[cfg(feature = "exact")]
pub mod exact;
#[cfg(feature = "exact")]
pub mod exact_distance;
#[cfg(feature = "exact")]
mod exact_domain;
#[cfg(feature = "exact")]
mod exact_face;
pub mod frechet;
pub mod measure;
pub mod mesh;
pub mod mesh_measure;
pub mod mesh_proximity;
pub mod properties;
pub mod proximity;
pub mod winding;
#[cfg(feature = "exact")]
pub use exact::{exact_properties, ExactMeasureError};
#[cfg(feature = "exact")]
pub use exact_distance::{
boundary_clearance, boundary_distance, plan_boundary_clearance, plan_boundary_distance,
plan_overlap, Clearance, DistanceBounds, PlanOverlap,
};
#[cfg(feature = "exact")]
pub use exact_domain::FaceDomain;
pub use frechet::{
discrete_frechet_distance, discrete_frechet_distance_2d, frechet_at_most, frechet_at_most_2d,
frechet_distance, frechet_distance_2d, FrechetError,
};
pub use measure::Measure;
pub use mesh::{
second_moments, surface_properties, volume_properties, MeshMeasureError, SurfaceProperties,
VolumeProperties,
};
pub use mesh_measure::MeshMeasure;
pub use mesh_proximity::{
mesh_distance, proximity_components, MeshDistance, MeshProximityError, ProximityComponent,
};
pub use properties::MassProperties;
pub use proximity::{
closest_point_on_triangle, closest_points_on_segments, closest_points_on_triangles,
ClosestPoints3, ProximityError,
};
pub use winding::{WindingError, WindingMesh, WindingNumber};