Quellcode durchsuchen

[haxe] Port of commit 877e705dd. Fix NaN in IKConstraint due to fp precision.

Davide Tantillo vor 1 Jahr
Ursprung
Commit
ec52a4fc1a
1 geänderte Dateien mit 3 neuen und 2 gelöschten Zeilen
  1. 3 2
      spine-haxe/spine-haxe/spine/IkConstraint.hx

+ 3 - 2
spine-haxe/spine-haxe/spine/IkConstraint.hx

@@ -288,8 +288,9 @@ class IkConstraint implements Updatable {
 				q = -(c1 + q) / 2;
 				q = -(c1 + q) / 2;
 				var r0:Float = q / c2, r1:Float = c / q;
 				var r0:Float = q / c2, r1:Float = c / q;
 				var r:Float = Math.abs(r0) < Math.abs(r1) ? r0 : r1;
 				var r:Float = Math.abs(r0) < Math.abs(r1) ? r0 : r1;
-				if (r * r <= dd) {
-					y = Math.sqrt(dd - r * r) * bendDir;
+				r0 = dd - r * r;
+				if (r0 >= 0) {
+					y = Math.sqrt(r0) * bendDir;
 					a1 = ta - Math.atan2(y, r);
 					a1 = ta - Math.atan2(y, r);
 					a2 = Math.atan2(y / psy, (r - l1) / psx);
 					a2 = Math.atan2(y / psy, (r - l1) / psx);
 					breakOuter = true;
 					breakOuter = true;