From 9212c742b75a0dfcf6f2d42efa7cedeb695ff139 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Tue, 31 Mar 2020 13:28:55 -0700 Subject: [PATCH] Avoid taking the square root of a negative number in `arc_from_cos()`. --- content/src/segment.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/src/segment.rs b/content/src/segment.rs index 093ad518..c2115cbf 100644 --- a/content/src/segment.rs +++ b/content/src/segment.rs @@ -84,6 +84,10 @@ impl Segment { // approximates a small arc", 2004. // // https://www.tinaja.com/glib/bezcirc2.pdf + if cos_sweep_angle >= 1.0 - EPSILON { + return Segment::line(LineSegment2F::new(vec2f(1.0, 0.0), vec2f(1.0, 0.0))); + } + let term = F32x4::new(cos_sweep_angle, -cos_sweep_angle, cos_sweep_angle, -cos_sweep_angle); let signs = F32x4::new(1.0, -1.0, 1.0, 1.0);