mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
Merge branch 'spine-ts-3.5' into spine-3.5
This commit is contained in:
commit
74f239e5b8
@ -1899,32 +1899,27 @@ var spine;
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case spine.TransformMode.NoRotationOrReflection: {
|
case spine.TransformMode.NoRotationOrReflection: {
|
||||||
var psx = Math.sqrt(pa * pa + pc * pc);
|
var s = pa * pa + pc * pc;
|
||||||
var psy = 0;
|
|
||||||
var prx = 0;
|
var prx = 0;
|
||||||
if (psx > 0.0001) {
|
if (s > 0.0001) {
|
||||||
psy = Math.abs((pa * pd - pb * pc) / psx);
|
s = Math.abs(pa * pd - pb * pc) / s;
|
||||||
|
pb = pc * s;
|
||||||
|
pd = pa * s;
|
||||||
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
psx = 0;
|
pa = 0;
|
||||||
psy = Math.sqrt(pb * pb + pd * pd);
|
pc = 0;
|
||||||
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
||||||
}
|
}
|
||||||
var cos = spine.MathUtils.cosDeg(prx);
|
|
||||||
var sin = spine.MathUtils.sinDeg(prx);
|
|
||||||
pa = cos * psx;
|
|
||||||
pb = -sin * psy;
|
|
||||||
pc = sin * psx;
|
|
||||||
pd = cos * psy;
|
|
||||||
var rx = rotation + shearX - prx;
|
var rx = rotation + shearX - prx;
|
||||||
var ry = rotation + shearY - prx + 90;
|
var ry = rotation + shearY - prx + 90;
|
||||||
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
||||||
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
||||||
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
||||||
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
||||||
this.a = pa * la + pb * lc;
|
this.a = pa * la - pb * lc;
|
||||||
this.b = pa * lb + pb * ld;
|
this.b = pa * lb - pb * ld;
|
||||||
this.c = pc * la + pd * lc;
|
this.c = pc * la + pd * lc;
|
||||||
this.d = pc * lb + pd * ld;
|
this.d = pc * lb + pd * ld;
|
||||||
break;
|
break;
|
||||||
@ -2164,6 +2159,8 @@ var spine;
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
|
IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
|
||||||
|
if (!bone.appliedValid)
|
||||||
|
bone.updateAppliedTransform();
|
||||||
var p = bone.parent;
|
var p = bone.parent;
|
||||||
var id = 1 / (p.a * p.d - p.b * p.c);
|
var id = 1 / (p.a * p.d - p.b * p.c);
|
||||||
var x = targetX - p.worldX, y = targetY - p.worldY;
|
var x = targetX - p.worldX, y = targetY - p.worldY;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -1899,32 +1899,27 @@ var spine;
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case spine.TransformMode.NoRotationOrReflection: {
|
case spine.TransformMode.NoRotationOrReflection: {
|
||||||
var psx = Math.sqrt(pa * pa + pc * pc);
|
var s = pa * pa + pc * pc;
|
||||||
var psy = 0;
|
|
||||||
var prx = 0;
|
var prx = 0;
|
||||||
if (psx > 0.0001) {
|
if (s > 0.0001) {
|
||||||
psy = Math.abs((pa * pd - pb * pc) / psx);
|
s = Math.abs(pa * pd - pb * pc) / s;
|
||||||
|
pb = pc * s;
|
||||||
|
pd = pa * s;
|
||||||
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
psx = 0;
|
pa = 0;
|
||||||
psy = Math.sqrt(pb * pb + pd * pd);
|
pc = 0;
|
||||||
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
||||||
}
|
}
|
||||||
var cos = spine.MathUtils.cosDeg(prx);
|
|
||||||
var sin = spine.MathUtils.sinDeg(prx);
|
|
||||||
pa = cos * psx;
|
|
||||||
pb = -sin * psy;
|
|
||||||
pc = sin * psx;
|
|
||||||
pd = cos * psy;
|
|
||||||
var rx = rotation + shearX - prx;
|
var rx = rotation + shearX - prx;
|
||||||
var ry = rotation + shearY - prx + 90;
|
var ry = rotation + shearY - prx + 90;
|
||||||
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
||||||
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
||||||
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
||||||
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
||||||
this.a = pa * la + pb * lc;
|
this.a = pa * la - pb * lc;
|
||||||
this.b = pa * lb + pb * ld;
|
this.b = pa * lb - pb * ld;
|
||||||
this.c = pc * la + pd * lc;
|
this.c = pc * la + pd * lc;
|
||||||
this.d = pc * lb + pd * ld;
|
this.d = pc * lb + pd * ld;
|
||||||
break;
|
break;
|
||||||
@ -2164,6 +2159,8 @@ var spine;
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
|
IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
|
||||||
|
if (!bone.appliedValid)
|
||||||
|
bone.updateAppliedTransform();
|
||||||
var p = bone.parent;
|
var p = bone.parent;
|
||||||
var id = 1 / (p.a * p.d - p.b * p.c);
|
var id = 1 / (p.a * p.d - p.b * p.c);
|
||||||
var x = targetX - p.worldX, y = targetY - p.worldY;
|
var x = targetX - p.worldX, y = targetY - p.worldY;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -1656,32 +1656,27 @@ var spine;
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case spine.TransformMode.NoRotationOrReflection: {
|
case spine.TransformMode.NoRotationOrReflection: {
|
||||||
var psx = Math.sqrt(pa * pa + pc * pc);
|
var s = pa * pa + pc * pc;
|
||||||
var psy = 0;
|
|
||||||
var prx = 0;
|
var prx = 0;
|
||||||
if (psx > 0.0001) {
|
if (s > 0.0001) {
|
||||||
psy = Math.abs((pa * pd - pb * pc) / psx);
|
s = Math.abs(pa * pd - pb * pc) / s;
|
||||||
|
pb = pc * s;
|
||||||
|
pd = pa * s;
|
||||||
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
psx = 0;
|
pa = 0;
|
||||||
psy = Math.sqrt(pb * pb + pd * pd);
|
pc = 0;
|
||||||
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
||||||
}
|
}
|
||||||
var cos = spine.MathUtils.cosDeg(prx);
|
|
||||||
var sin = spine.MathUtils.sinDeg(prx);
|
|
||||||
pa = cos * psx;
|
|
||||||
pb = -sin * psy;
|
|
||||||
pc = sin * psx;
|
|
||||||
pd = cos * psy;
|
|
||||||
var rx = rotation + shearX - prx;
|
var rx = rotation + shearX - prx;
|
||||||
var ry = rotation + shearY - prx + 90;
|
var ry = rotation + shearY - prx + 90;
|
||||||
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
||||||
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
||||||
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
||||||
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
||||||
this.a = pa * la + pb * lc;
|
this.a = pa * la - pb * lc;
|
||||||
this.b = pa * lb + pb * ld;
|
this.b = pa * lb - pb * ld;
|
||||||
this.c = pc * la + pd * lc;
|
this.c = pc * la + pd * lc;
|
||||||
this.d = pc * lb + pd * ld;
|
this.d = pc * lb + pd * ld;
|
||||||
break;
|
break;
|
||||||
@ -1921,6 +1916,8 @@ var spine;
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
|
IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
|
||||||
|
if (!bone.appliedValid)
|
||||||
|
bone.updateAppliedTransform();
|
||||||
var p = bone.parent;
|
var p = bone.parent;
|
||||||
var id = 1 / (p.a * p.d - p.b * p.c);
|
var id = 1 / (p.a * p.d - p.b * p.c);
|
||||||
var x = targetX - p.worldX, y = targetY - p.worldY;
|
var x = targetX - p.worldX, y = targetY - p.worldY;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -1656,32 +1656,27 @@ var spine;
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case spine.TransformMode.NoRotationOrReflection: {
|
case spine.TransformMode.NoRotationOrReflection: {
|
||||||
var psx = Math.sqrt(pa * pa + pc * pc);
|
var s = pa * pa + pc * pc;
|
||||||
var psy = 0;
|
|
||||||
var prx = 0;
|
var prx = 0;
|
||||||
if (psx > 0.0001) {
|
if (s > 0.0001) {
|
||||||
psy = Math.abs((pa * pd - pb * pc) / psx);
|
s = Math.abs(pa * pd - pb * pc) / s;
|
||||||
|
pb = pc * s;
|
||||||
|
pd = pa * s;
|
||||||
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
psx = 0;
|
pa = 0;
|
||||||
psy = Math.sqrt(pb * pb + pd * pd);
|
pc = 0;
|
||||||
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
||||||
}
|
}
|
||||||
var cos = spine.MathUtils.cosDeg(prx);
|
|
||||||
var sin = spine.MathUtils.sinDeg(prx);
|
|
||||||
pa = cos * psx;
|
|
||||||
pb = -sin * psy;
|
|
||||||
pc = sin * psx;
|
|
||||||
pd = cos * psy;
|
|
||||||
var rx = rotation + shearX - prx;
|
var rx = rotation + shearX - prx;
|
||||||
var ry = rotation + shearY - prx + 90;
|
var ry = rotation + shearY - prx + 90;
|
||||||
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
||||||
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
||||||
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
||||||
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
||||||
this.a = pa * la + pb * lc;
|
this.a = pa * la - pb * lc;
|
||||||
this.b = pa * lb + pb * ld;
|
this.b = pa * lb - pb * ld;
|
||||||
this.c = pc * la + pd * lc;
|
this.c = pc * la + pd * lc;
|
||||||
this.d = pc * lb + pd * ld;
|
this.d = pc * lb + pd * ld;
|
||||||
break;
|
break;
|
||||||
@ -1921,6 +1916,8 @@ var spine;
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
|
IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
|
||||||
|
if (!bone.appliedValid)
|
||||||
|
bone.updateAppliedTransform();
|
||||||
var p = bone.parent;
|
var p = bone.parent;
|
||||||
var id = 1 / (p.a * p.d - p.b * p.c);
|
var id = 1 / (p.a * p.d - p.b * p.c);
|
||||||
var x = targetX - p.worldX, y = targetY - p.worldY;
|
var x = targetX - p.worldX, y = targetY - p.worldY;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -1656,32 +1656,27 @@ var spine;
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case spine.TransformMode.NoRotationOrReflection: {
|
case spine.TransformMode.NoRotationOrReflection: {
|
||||||
var psx = Math.sqrt(pa * pa + pc * pc);
|
var s = pa * pa + pc * pc;
|
||||||
var psy = 0;
|
|
||||||
var prx = 0;
|
var prx = 0;
|
||||||
if (psx > 0.0001) {
|
if (s > 0.0001) {
|
||||||
psy = Math.abs((pa * pd - pb * pc) / psx);
|
s = Math.abs(pa * pd - pb * pc) / s;
|
||||||
|
pb = pc * s;
|
||||||
|
pd = pa * s;
|
||||||
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
psx = 0;
|
pa = 0;
|
||||||
psy = Math.sqrt(pb * pb + pd * pd);
|
pc = 0;
|
||||||
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
||||||
}
|
}
|
||||||
var cos = spine.MathUtils.cosDeg(prx);
|
|
||||||
var sin = spine.MathUtils.sinDeg(prx);
|
|
||||||
pa = cos * psx;
|
|
||||||
pb = -sin * psy;
|
|
||||||
pc = sin * psx;
|
|
||||||
pd = cos * psy;
|
|
||||||
var rx = rotation + shearX - prx;
|
var rx = rotation + shearX - prx;
|
||||||
var ry = rotation + shearY - prx + 90;
|
var ry = rotation + shearY - prx + 90;
|
||||||
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
||||||
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
||||||
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
||||||
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
||||||
this.a = pa * la + pb * lc;
|
this.a = pa * la - pb * lc;
|
||||||
this.b = pa * lb + pb * ld;
|
this.b = pa * lb - pb * ld;
|
||||||
this.c = pc * la + pd * lc;
|
this.c = pc * la + pd * lc;
|
||||||
this.d = pc * lb + pd * ld;
|
this.d = pc * lb + pd * ld;
|
||||||
break;
|
break;
|
||||||
@ -1921,6 +1916,8 @@ var spine;
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
|
IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
|
||||||
|
if (!bone.appliedValid)
|
||||||
|
bone.updateAppliedTransform();
|
||||||
var p = bone.parent;
|
var p = bone.parent;
|
||||||
var id = 1 / (p.a * p.d - p.b * p.c);
|
var id = 1 / (p.a * p.d - p.b * p.c);
|
||||||
var x = targetX - p.worldX, y = targetY - p.worldY;
|
var x = targetX - p.worldX, y = targetY - p.worldY;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -1656,32 +1656,27 @@ var spine;
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case spine.TransformMode.NoRotationOrReflection: {
|
case spine.TransformMode.NoRotationOrReflection: {
|
||||||
var psx = Math.sqrt(pa * pa + pc * pc);
|
var s = pa * pa + pc * pc;
|
||||||
var psy = 0;
|
|
||||||
var prx = 0;
|
var prx = 0;
|
||||||
if (psx > 0.0001) {
|
if (s > 0.0001) {
|
||||||
psy = Math.abs((pa * pd - pb * pc) / psx);
|
s = Math.abs(pa * pd - pb * pc) / s;
|
||||||
|
pb = pc * s;
|
||||||
|
pd = pa * s;
|
||||||
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
psx = 0;
|
pa = 0;
|
||||||
psy = Math.sqrt(pb * pb + pd * pd);
|
pc = 0;
|
||||||
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg;
|
||||||
}
|
}
|
||||||
var cos = spine.MathUtils.cosDeg(prx);
|
|
||||||
var sin = spine.MathUtils.sinDeg(prx);
|
|
||||||
pa = cos * psx;
|
|
||||||
pb = -sin * psy;
|
|
||||||
pc = sin * psx;
|
|
||||||
pd = cos * psy;
|
|
||||||
var rx = rotation + shearX - prx;
|
var rx = rotation + shearX - prx;
|
||||||
var ry = rotation + shearY - prx + 90;
|
var ry = rotation + shearY - prx + 90;
|
||||||
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
var la = spine.MathUtils.cosDeg(rx) * scaleX;
|
||||||
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
var lb = spine.MathUtils.cosDeg(ry) * scaleY;
|
||||||
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
var lc = spine.MathUtils.sinDeg(rx) * scaleX;
|
||||||
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
var ld = spine.MathUtils.sinDeg(ry) * scaleY;
|
||||||
this.a = pa * la + pb * lc;
|
this.a = pa * la - pb * lc;
|
||||||
this.b = pa * lb + pb * ld;
|
this.b = pa * lb - pb * ld;
|
||||||
this.c = pc * la + pd * lc;
|
this.c = pc * la + pd * lc;
|
||||||
this.d = pc * lb + pd * ld;
|
this.d = pc * lb + pd * ld;
|
||||||
break;
|
break;
|
||||||
@ -1921,6 +1916,8 @@ var spine;
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
|
IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
|
||||||
|
if (!bone.appliedValid)
|
||||||
|
bone.updateAppliedTransform();
|
||||||
var p = bone.parent;
|
var p = bone.parent;
|
||||||
var id = 1 / (p.a * p.d - p.b * p.c);
|
var id = 1 / (p.a * p.d - p.b * p.c);
|
||||||
var x = targetX - p.worldX, y = targetY - p.worldY;
|
var x = targetX - p.worldX, y = targetY - p.worldY;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -127,31 +127,26 @@ module spine {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TransformMode.NoRotationOrReflection: {
|
case TransformMode.NoRotationOrReflection: {
|
||||||
let psx = Math.sqrt(pa * pa + pc * pc)
|
let s = pa * pa + pc * pc;
|
||||||
let psy = 0;
|
|
||||||
let prx = 0;
|
let prx = 0;
|
||||||
if (psx > 0.0001) {
|
if (s > 0.0001) {
|
||||||
psy = Math.abs((pa * pd - pb * pc) / psx);
|
s = Math.abs(pa * pd - pb * pc) / s;
|
||||||
|
pb = pc * s;
|
||||||
|
pd = pa * s;
|
||||||
prx = Math.atan2(pc, pa) * MathUtils.radDeg;
|
prx = Math.atan2(pc, pa) * MathUtils.radDeg;
|
||||||
} else {
|
} else {
|
||||||
psx = 0;
|
pa = 0;
|
||||||
psy = Math.sqrt(pb * pb + pd * pd);
|
pc = 0;
|
||||||
prx = 90 - Math.atan2(pd, pb) * MathUtils.radDeg;
|
prx = 90 - Math.atan2(pd, pb) * MathUtils.radDeg;
|
||||||
}
|
}
|
||||||
let cos = MathUtils.cosDeg(prx);
|
|
||||||
let sin = MathUtils.sinDeg(prx);
|
|
||||||
pa = cos * psx;
|
|
||||||
pb = -sin * psy;
|
|
||||||
pc = sin * psx;
|
|
||||||
pd = cos * psy;
|
|
||||||
let rx = rotation + shearX - prx;
|
let rx = rotation + shearX - prx;
|
||||||
let ry = rotation + shearY - prx + 90;
|
let ry = rotation + shearY - prx + 90;
|
||||||
let la = MathUtils.cosDeg(rx) * scaleX;
|
let la = MathUtils.cosDeg(rx) * scaleX;
|
||||||
let lb = MathUtils.cosDeg(ry) * scaleY;
|
let lb = MathUtils.cosDeg(ry) * scaleY;
|
||||||
let lc = MathUtils.sinDeg(rx) * scaleX;
|
let lc = MathUtils.sinDeg(rx) * scaleX;
|
||||||
let ld = MathUtils.sinDeg(ry) * scaleY;
|
let ld = MathUtils.sinDeg(ry) * scaleY;
|
||||||
this.a = pa * la + pb * lc;
|
this.a = pa * la - pb * lc;
|
||||||
this.b = pa * lb + pb * ld;
|
this.b = pa * lb - pb * ld;
|
||||||
this.c = pc * la + pd * lc;
|
this.c = pc * la + pd * lc;
|
||||||
this.d = pc * lb + pd * ld;
|
this.d = pc * lb + pd * ld;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -73,6 +73,7 @@ module spine {
|
|||||||
/** Adjusts the bone rotation so the tip is as close to the target position as possible. The target is specified in the world
|
/** Adjusts the bone rotation so the tip is as close to the target position as possible. The target is specified in the world
|
||||||
* coordinate system. */
|
* coordinate system. */
|
||||||
apply1 (bone: Bone, targetX: number, targetY: number, alpha: number) {
|
apply1 (bone: Bone, targetX: number, targetY: number, alpha: number) {
|
||||||
|
if (!bone.appliedValid) bone.updateAppliedTransform();
|
||||||
let p = bone.parent;
|
let p = bone.parent;
|
||||||
let id = 1 / (p.a * p.d - p.b * p.c);
|
let id = 1 / (p.a * p.d - p.b * p.c);
|
||||||
let x = targetX - p.worldX, y = targetY - p.worldY;
|
let x = targetX - p.worldX, y = targetY - p.worldY;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user