mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-20 17:26:01 +08:00
[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:
parent
853b5ee165
commit
b17595db8a
@ -328,7 +328,7 @@ namespace Spine {
|
|||||||
q = -(c1 + q) * 0.5f;
|
q = -(c1 + q) * 0.5f;
|
||||||
float r0 = q / c2, r1 = c / q;
|
float r0 = q / c2, r1 = c / q;
|
||||||
float r = Math.Abs(r0) < Math.Abs(r1) ? r0 : r1;
|
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;
|
y = (float)Math.Sqrt(dd - r * r) * bendDir;
|
||||||
a1 = ta - (float)Math.Atan2(y, r);
|
a1 = ta - (float)Math.Atan2(y, r);
|
||||||
a2 = (float)Math.Atan2(y / psy, (r - l1) / psx);
|
a2 = (float)Math.Atan2(y / psy, (r - l1) / psx);
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
"name": "com.esotericsoftware.spine.spine-csharp",
|
"name": "com.esotericsoftware.spine.spine-csharp",
|
||||||
"displayName": "spine-csharp Runtime",
|
"displayName": "spine-csharp Runtime",
|
||||||
"description": "This plugin provides the spine-csharp core runtime.",
|
"description": "This plugin provides the spine-csharp core runtime.",
|
||||||
"version": "4.2.28",
|
"version": "4.2.29",
|
||||||
"unity": "2018.3",
|
"unity": "2018.3",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Esoteric Software",
|
"name": "Esoteric Software",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user