#[derive(Debug, Clone, Copy, PartialEq)]
pub struct CurveProjection {
pub parameter: f64,
pub distance: f64,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct SurfaceProjection {
pub u: f64,
pub v: f64,
pub distance: f64,
}
pub(crate) fn snap_distance(distance: f64, confusion: f64) -> f64 {
if distance <= confusion { 0.0 } else { distance }
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_snap_distance() {
assert_eq!(snap_distance(1e-9, 1e-7), 0.0);
assert_eq!(snap_distance(1e-7, 1e-7), 0.0);
assert_eq!(snap_distance(1e-6, 1e-7), 1e-6);
}
}