From 40377d657aaff537a9869698690779111d564716 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Tue, 31 Mar 2020 13:32:00 -0700 Subject: [PATCH] Prevent taking the square root of a negative number in the half-angle formula --- geometry/src/unit_vector.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/geometry/src/unit_vector.rs b/geometry/src/unit_vector.rs index e06202dd..5a36d1d1 100644 --- a/geometry/src/unit_vector.rs +++ b/geometry/src/unit_vector.rs @@ -41,6 +41,7 @@ impl UnitVector { pub fn halve_angle(&self) -> UnitVector { let x = self.0.x(); let term = F32x2::new(x, -x); - UnitVector(Vector2F((F32x2::splat(0.5) * (F32x2::splat(1.0) + term)).sqrt())) + UnitVector(Vector2F((F32x2::splat(0.5) * (F32x2::splat(1.0) + term)).max(F32x2::default()) + .sqrt())) } }