From 9272327990da54b63ac11d52ee67f5bb683ec9a0 Mon Sep 17 00:00:00 2001 From: Nathan Sweet Date: Tue, 15 Jul 2025 00:23:55 -0400 Subject: [PATCH] [libgdx] Fixed bone disable inherit scale/reflection. --- .../com/esotericsoftware/spine/BonePose.java | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BonePose.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BonePose.java index d49818466..1a1148846 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BonePose.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BonePose.java @@ -99,8 +99,7 @@ public class BonePose extends BoneLocal implements Update { d = pc * lb + pd * ld; } case noScale, noScaleOrReflection -> { - rotation *= degRad; - float cos = cos(rotation), sin = sin(rotation); + float r = rotation * degRad, cos = cos(r), sin = sin(r); float za = (pa * cos + pb * sin) / skeleton.scaleX; float zc = (pc * cos + pd * sin) / skeleton.scaleY; float s = (float)Math.sqrt(za * za + zc * zc); @@ -109,15 +108,15 @@ public class BonePose extends BoneLocal implements Update { zc *= s; s = (float)Math.sqrt(za * za + zc * zc); if (inherit == Inherit.noScale && (pa * pd - pb * pc < 0) != (skeleton.scaleX < 0 != skeleton.scaleY < 0)) s = -s; - rotation = PI / 2 + atan2(zc, za); - float zb = cos(rotation) * s; - float zd = sin(rotation) * s; - shearX *= degRad; - shearY = (90 + shearY) * degRad; - float la = cos(shearX) * scaleX; - float lb = cos(shearY) * scaleY; - float lc = sin(shearX) * scaleX; - float ld = sin(shearY) * scaleY; + r = PI / 2 + atan2(zc, za); + float zb = cos(r) * s; + float zd = sin(r) * s; + float rx = shearX * degRad; + float ry = (90 + shearY) * degRad; + float la = cos(rx) * scaleX; + float lb = cos(ry) * scaleY; + float lc = sin(rx) * scaleX; + float ld = sin(ry) * scaleY; a = za * la + zb * lc; b = za * lb + zb * ld; c = zc * la + zd * lc;