[csharp] Port of commit 853b5ee. Fix NaN in IKConstraint due to fp precision.

dd - r * r might result in a negative value, even if dd == r * r, depending on compiler optimizations and operation order.
This commit is contained in:
Harald Csaszar 2024-08-06 18:22:54 +02:00
parent 853b5ee165
commit b17595db8a
2 changed files with 2 additions and 2 deletions

View File

@ -328,7 +328,7 @@ namespace Spine {
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) {
if (dd - r * r >= 0) {
y = (float)Math.Sqrt(dd - r * r) * bendDir;
a1 = ta - (float)Math.Atan2(y, r);
a2 = (float)Math.Atan2(y / psy, (r - l1) / psx);

View File

@ -2,7 +2,7 @@
"name": "com.esotericsoftware.spine.spine-csharp",
"displayName": "spine-csharp Runtime",
"description": "This plugin provides the spine-csharp core runtime.",
"version": "4.2.28",
"version": "4.2.29",
"unity": "2018.3",
"author": {
"name": "Esoteric Software",