From 44c7b9120a0c7538ccfe34e5f8b6e31a705f9b92 Mon Sep 17 00:00:00 2001 From: Davide Tantillo Date: Mon, 9 Sep 2024 11:16:29 +0200 Subject: [PATCH] [haxe] Port of commit d769c1a: Fixed noRotationOrReflection with skeleton scale. --- spine-haxe/spine-haxe/spine/Bone.hx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/spine-haxe/spine-haxe/spine/Bone.hx b/spine-haxe/spine-haxe/spine/Bone.hx index bc0428228..1b0d326a0 100644 --- a/spine-haxe/spine-haxe/spine/Bone.hx +++ b/spine-haxe/spine-haxe/spine/Bone.hx @@ -173,10 +173,14 @@ class Bone implements Updatable { c = Math.sin(rx) * scaleX; d = Math.sin(ry) * scaleY; case Inherit.noRotationOrReflection: + var sx:Float = 1 / skeleton.scaleX; + var sy:Float = 1 / skeleton.scaleY; + pa *= sx; + pc *= sy; s = pa * pa + pc * pc; var prx:Float = 0; if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; + s = Math.abs(pa * pd * sy - pb * sx * pc) / s; pb = pc * s; pd = pa * s; prx = Math.atan2(pc, pa) * MathUtils.radDeg; @@ -280,10 +284,8 @@ class Bone implements Updatable { switch (inherit) { case Inherit.noRotationOrReflection: var s:Float = Math.abs(pa * pd - pb * pc) / (pa * pa + pc * pc); - var sa:Float = pa / skeleton.scaleX; - var sc:Float = pc / skeleton.scaleY; - pb = -sc * s * skeleton.scaleX; - pd = sa * s * skeleton.scaleY; + pb = -pc * skeleton.scaleX * s / skeleton.scaleY; + pd = pa * skeleton.scaleY * s / skeleton.scaleX; pid = 1 / (pa * pd - pb * pc); ia = pd * pid; ib = pb * pid;