From 877e705ddb811a03479abdca9fa2f8841844f8fe Mon Sep 17 00:00:00 2001 From: Nathan Sweet Date: Tue, 6 Aug 2024 19:21:45 -1000 Subject: [PATCH] [libgdx] Fix NaN in IKConstraint due to fp precision. 853b5ee165106a57bc18e1e5543c8e16311af62f --- .../src/com/esotericsoftware/spine/IkConstraint.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java index 67f833c96..8e57d91c6 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java @@ -339,8 +339,9 @@ public class IkConstraint implements Updatable { q = -(c1 + q) * 0.5f; float r0 = q / c2, r1 = c / q; float r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; - if (r * r <= dd) { - y = (float)Math.sqrt(dd - r * r) * bendDir; + r0 = dd - r * r; + if (r0 >= 0) { + y = (float)Math.sqrt(r0) * bendDir; a1 = ta - atan2(y, r); a2 = atan2(y / psy, (r - l1) / psx); break outer;