mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
[libgdx] Fixed bone disable inherit scale/reflection.
This commit is contained in:
parent
50bc71f642
commit
9272327990
@ -99,8 +99,7 @@ public class BonePose extends BoneLocal implements Update {
|
|||||||
d = pc * lb + pd * ld;
|
d = pc * lb + pd * ld;
|
||||||
}
|
}
|
||||||
case noScale, noScaleOrReflection -> {
|
case noScale, noScaleOrReflection -> {
|
||||||
rotation *= degRad;
|
float r = rotation * degRad, cos = cos(r), sin = sin(r);
|
||||||
float cos = cos(rotation), sin = sin(rotation);
|
|
||||||
float za = (pa * cos + pb * sin) / skeleton.scaleX;
|
float za = (pa * cos + pb * sin) / skeleton.scaleX;
|
||||||
float zc = (pc * cos + pd * sin) / skeleton.scaleY;
|
float zc = (pc * cos + pd * sin) / skeleton.scaleY;
|
||||||
float s = (float)Math.sqrt(za * za + zc * zc);
|
float s = (float)Math.sqrt(za * za + zc * zc);
|
||||||
@ -109,15 +108,15 @@ public class BonePose extends BoneLocal implements Update {
|
|||||||
zc *= s;
|
zc *= s;
|
||||||
s = (float)Math.sqrt(za * za + zc * zc);
|
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;
|
if (inherit == Inherit.noScale && (pa * pd - pb * pc < 0) != (skeleton.scaleX < 0 != skeleton.scaleY < 0)) s = -s;
|
||||||
rotation = PI / 2 + atan2(zc, za);
|
r = PI / 2 + atan2(zc, za);
|
||||||
float zb = cos(rotation) * s;
|
float zb = cos(r) * s;
|
||||||
float zd = sin(rotation) * s;
|
float zd = sin(r) * s;
|
||||||
shearX *= degRad;
|
float rx = shearX * degRad;
|
||||||
shearY = (90 + shearY) * degRad;
|
float ry = (90 + shearY) * degRad;
|
||||||
float la = cos(shearX) * scaleX;
|
float la = cos(rx) * scaleX;
|
||||||
float lb = cos(shearY) * scaleY;
|
float lb = cos(ry) * scaleY;
|
||||||
float lc = sin(shearX) * scaleX;
|
float lc = sin(rx) * scaleX;
|
||||||
float ld = sin(shearY) * scaleY;
|
float ld = sin(ry) * scaleY;
|
||||||
a = za * la + zb * lc;
|
a = za * la + zb * lc;
|
||||||
b = za * lb + zb * ld;
|
b = za * lb + zb * ld;
|
||||||
c = zc * la + zd * lc;
|
c = zc * la + zd * lc;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user