pub mod curve_curve;
pub mod lipschitz;
pub mod point_curve;
pub mod point_surface;
pub mod segment;
pub use curve_curve::{curve_to_curve, line_to_line};
pub use lipschitz::{estimate_curve_curve_lipschitz, nurbs_curve_curve_distance};
pub use point_curve::{point_to_circle, point_to_curve, point_to_line};
pub use point_surface::{
point_to_cone, point_to_cylinder, point_to_nurbs_surface, point_to_plane, point_to_sphere,
point_to_surface, point_to_torus,
};
pub use segment::segment_segment_distance;
use brepkit_math::vec::Point3;
#[derive(Debug, Clone, Copy)]
pub struct ExtremaSolution {
pub distance: f64,
pub point_a: Point3,
pub point_b: Point3,
pub param_a: f64,
pub param_b: f64,
}
#[derive(Debug, Clone, Copy)]
pub struct CurveProjection {
pub distance: f64,
pub point: Point3,
pub parameter: f64,
}
#[derive(Debug, Clone, Copy)]
pub struct SurfaceProjection {
pub distance: f64,
pub point: Point3,
pub u: f64,
pub v: f64,
}