소스 검색

Merge branch 'spine-ts-3.5' into spine-3.5

badlogic 9 년 전
부모
커밋
74f239e5b8

+ 11 - 14
spine-ts/build/spine-all.js

@@ -1899,32 +1899,27 @@ var spine;
 					break;
 				}
 				case spine.TransformMode.NoRotationOrReflection: {
-					var psx = Math.sqrt(pa * pa + pc * pc);
-					var psy = 0;
+					var s = pa * pa + pc * pc;
 					var prx = 0;
-					if (psx > 0.0001) {
-						psy = Math.abs((pa * pd - pb * pc) / psx);
+					if (s > 0.0001) {
+						s = Math.abs(pa * pd - pb * pc) / s;
+						pb = pc * s;
+						pd = pa * s;
 						prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
 					}
 					else {
-						psx = 0;
-						psy = Math.sqrt(pb * pb + pd * pd);
+						pa = 0;
+						pc = 0;
 						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 ry = rotation + shearY - prx + 90;
 					var la = spine.MathUtils.cosDeg(rx) * scaleX;
 					var lb = spine.MathUtils.cosDeg(ry) * scaleY;
 					var lc = spine.MathUtils.sinDeg(rx) * scaleX;
 					var ld = spine.MathUtils.sinDeg(ry) * scaleY;
-					this.a = pa * la + pb * lc;
-					this.b = pa * lb + pb * ld;
+					this.a = pa * la - pb * lc;
+					this.b = pa * lb - pb * ld;
 					this.c = pc * la + pd * lc;
 					this.d = pc * lb + pd * ld;
 					break;
@@ -2164,6 +2159,8 @@ var spine;
 			}
 		};
 		IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
+			if (!bone.appliedValid)
+				bone.updateAppliedTransform();
 			var p = bone.parent;
 			var id = 1 / (p.a * p.d - p.b * p.c);
 			var x = targetX - p.worldX, y = targetY - p.worldY;

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
spine-ts/build/spine-all.js.map


+ 11 - 14
spine-ts/build/spine-canvas.js

@@ -1899,32 +1899,27 @@ var spine;
 					break;
 				}
 				case spine.TransformMode.NoRotationOrReflection: {
-					var psx = Math.sqrt(pa * pa + pc * pc);
-					var psy = 0;
+					var s = pa * pa + pc * pc;
 					var prx = 0;
-					if (psx > 0.0001) {
-						psy = Math.abs((pa * pd - pb * pc) / psx);
+					if (s > 0.0001) {
+						s = Math.abs(pa * pd - pb * pc) / s;
+						pb = pc * s;
+						pd = pa * s;
 						prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
 					}
 					else {
-						psx = 0;
-						psy = Math.sqrt(pb * pb + pd * pd);
+						pa = 0;
+						pc = 0;
 						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 ry = rotation + shearY - prx + 90;
 					var la = spine.MathUtils.cosDeg(rx) * scaleX;
 					var lb = spine.MathUtils.cosDeg(ry) * scaleY;
 					var lc = spine.MathUtils.sinDeg(rx) * scaleX;
 					var ld = spine.MathUtils.sinDeg(ry) * scaleY;
-					this.a = pa * la + pb * lc;
-					this.b = pa * lb + pb * ld;
+					this.a = pa * la - pb * lc;
+					this.b = pa * lb - pb * ld;
 					this.c = pc * la + pd * lc;
 					this.d = pc * lb + pd * ld;
 					break;
@@ -2164,6 +2159,8 @@ var spine;
 			}
 		};
 		IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
+			if (!bone.appliedValid)
+				bone.updateAppliedTransform();
 			var p = bone.parent;
 			var id = 1 / (p.a * p.d - p.b * p.c);
 			var x = targetX - p.worldX, y = targetY - p.worldY;

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
spine-ts/build/spine-canvas.js.map


+ 11 - 14
spine-ts/build/spine-core.js

@@ -1656,32 +1656,27 @@ var spine;
 					break;
 				}
 				case spine.TransformMode.NoRotationOrReflection: {
-					var psx = Math.sqrt(pa * pa + pc * pc);
-					var psy = 0;
+					var s = pa * pa + pc * pc;
 					var prx = 0;
-					if (psx > 0.0001) {
-						psy = Math.abs((pa * pd - pb * pc) / psx);
+					if (s > 0.0001) {
+						s = Math.abs(pa * pd - pb * pc) / s;
+						pb = pc * s;
+						pd = pa * s;
 						prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
 					}
 					else {
-						psx = 0;
-						psy = Math.sqrt(pb * pb + pd * pd);
+						pa = 0;
+						pc = 0;
 						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 ry = rotation + shearY - prx + 90;
 					var la = spine.MathUtils.cosDeg(rx) * scaleX;
 					var lb = spine.MathUtils.cosDeg(ry) * scaleY;
 					var lc = spine.MathUtils.sinDeg(rx) * scaleX;
 					var ld = spine.MathUtils.sinDeg(ry) * scaleY;
-					this.a = pa * la + pb * lc;
-					this.b = pa * lb + pb * ld;
+					this.a = pa * la - pb * lc;
+					this.b = pa * lb - pb * ld;
 					this.c = pc * la + pd * lc;
 					this.d = pc * lb + pd * ld;
 					break;
@@ -1921,6 +1916,8 @@ var spine;
 			}
 		};
 		IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
+			if (!bone.appliedValid)
+				bone.updateAppliedTransform();
 			var p = bone.parent;
 			var id = 1 / (p.a * p.d - p.b * p.c);
 			var x = targetX - p.worldX, y = targetY - p.worldY;

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
spine-ts/build/spine-core.js.map


+ 11 - 14
spine-ts/build/spine-threejs.js

@@ -1656,32 +1656,27 @@ var spine;
 					break;
 				}
 				case spine.TransformMode.NoRotationOrReflection: {
-					var psx = Math.sqrt(pa * pa + pc * pc);
-					var psy = 0;
+					var s = pa * pa + pc * pc;
 					var prx = 0;
-					if (psx > 0.0001) {
-						psy = Math.abs((pa * pd - pb * pc) / psx);
+					if (s > 0.0001) {
+						s = Math.abs(pa * pd - pb * pc) / s;
+						pb = pc * s;
+						pd = pa * s;
 						prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
 					}
 					else {
-						psx = 0;
-						psy = Math.sqrt(pb * pb + pd * pd);
+						pa = 0;
+						pc = 0;
 						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 ry = rotation + shearY - prx + 90;
 					var la = spine.MathUtils.cosDeg(rx) * scaleX;
 					var lb = spine.MathUtils.cosDeg(ry) * scaleY;
 					var lc = spine.MathUtils.sinDeg(rx) * scaleX;
 					var ld = spine.MathUtils.sinDeg(ry) * scaleY;
-					this.a = pa * la + pb * lc;
-					this.b = pa * lb + pb * ld;
+					this.a = pa * la - pb * lc;
+					this.b = pa * lb - pb * ld;
 					this.c = pc * la + pd * lc;
 					this.d = pc * lb + pd * ld;
 					break;
@@ -1921,6 +1916,8 @@ var spine;
 			}
 		};
 		IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
+			if (!bone.appliedValid)
+				bone.updateAppliedTransform();
 			var p = bone.parent;
 			var id = 1 / (p.a * p.d - p.b * p.c);
 			var x = targetX - p.worldX, y = targetY - p.worldY;

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
spine-ts/build/spine-threejs.js.map


+ 11 - 14
spine-ts/build/spine-webgl.js

@@ -1656,32 +1656,27 @@ var spine;
 					break;
 				}
 				case spine.TransformMode.NoRotationOrReflection: {
-					var psx = Math.sqrt(pa * pa + pc * pc);
-					var psy = 0;
+					var s = pa * pa + pc * pc;
 					var prx = 0;
-					if (psx > 0.0001) {
-						psy = Math.abs((pa * pd - pb * pc) / psx);
+					if (s > 0.0001) {
+						s = Math.abs(pa * pd - pb * pc) / s;
+						pb = pc * s;
+						pd = pa * s;
 						prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
 					}
 					else {
-						psx = 0;
-						psy = Math.sqrt(pb * pb + pd * pd);
+						pa = 0;
+						pc = 0;
 						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 ry = rotation + shearY - prx + 90;
 					var la = spine.MathUtils.cosDeg(rx) * scaleX;
 					var lb = spine.MathUtils.cosDeg(ry) * scaleY;
 					var lc = spine.MathUtils.sinDeg(rx) * scaleX;
 					var ld = spine.MathUtils.sinDeg(ry) * scaleY;
-					this.a = pa * la + pb * lc;
-					this.b = pa * lb + pb * ld;
+					this.a = pa * la - pb * lc;
+					this.b = pa * lb - pb * ld;
 					this.c = pc * la + pd * lc;
 					this.d = pc * lb + pd * ld;
 					break;
@@ -1921,6 +1916,8 @@ var spine;
 			}
 		};
 		IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
+			if (!bone.appliedValid)
+				bone.updateAppliedTransform();
 			var p = bone.parent;
 			var id = 1 / (p.a * p.d - p.b * p.c);
 			var x = targetX - p.worldX, y = targetY - p.worldY;

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
spine-ts/build/spine-webgl.js.map


+ 11 - 14
spine-ts/build/spine-widget.js

@@ -1656,32 +1656,27 @@ var spine;
 					break;
 				}
 				case spine.TransformMode.NoRotationOrReflection: {
-					var psx = Math.sqrt(pa * pa + pc * pc);
-					var psy = 0;
+					var s = pa * pa + pc * pc;
 					var prx = 0;
-					if (psx > 0.0001) {
-						psy = Math.abs((pa * pd - pb * pc) / psx);
+					if (s > 0.0001) {
+						s = Math.abs(pa * pd - pb * pc) / s;
+						pb = pc * s;
+						pd = pa * s;
 						prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg;
 					}
 					else {
-						psx = 0;
-						psy = Math.sqrt(pb * pb + pd * pd);
+						pa = 0;
+						pc = 0;
 						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 ry = rotation + shearY - prx + 90;
 					var la = spine.MathUtils.cosDeg(rx) * scaleX;
 					var lb = spine.MathUtils.cosDeg(ry) * scaleY;
 					var lc = spine.MathUtils.sinDeg(rx) * scaleX;
 					var ld = spine.MathUtils.sinDeg(ry) * scaleY;
-					this.a = pa * la + pb * lc;
-					this.b = pa * lb + pb * ld;
+					this.a = pa * la - pb * lc;
+					this.b = pa * lb - pb * ld;
 					this.c = pc * la + pd * lc;
 					this.d = pc * lb + pd * ld;
 					break;
@@ -1921,6 +1916,8 @@ var spine;
 			}
 		};
 		IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
+			if (!bone.appliedValid)
+				bone.updateAppliedTransform();
 			var p = bone.parent;
 			var id = 1 / (p.a * p.d - p.b * p.c);
 			var x = targetX - p.worldX, y = targetY - p.worldY;

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
spine-ts/build/spine-widget.js.map


+ 9 - 14
spine-ts/core/src/Bone.ts

@@ -127,31 +127,26 @@ module spine {
 				break;
 			}
 			case TransformMode.NoRotationOrReflection: {
-				let psx = Math.sqrt(pa * pa + pc * pc)
-				let psy = 0;
+				let s = pa * pa + pc * pc;
 				let prx = 0;
-				if (psx > 0.0001) {
-					psy = Math.abs((pa * pd - pb * pc) / psx);
+				if (s > 0.0001) {
+					s = Math.abs(pa * pd - pb * pc) / s;
+					pb = pc * s;
+					pd = pa * s;
 					prx = Math.atan2(pc, pa) * MathUtils.radDeg;
 				} else {
-					psx = 0;
-					psy = Math.sqrt(pb * pb + pd * pd);
+					pa = 0;
+					pc = 0;
 					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 ry = rotation + shearY - prx + 90;
 				let la = MathUtils.cosDeg(rx) * scaleX;
 				let lb = MathUtils.cosDeg(ry) * scaleY;
 				let lc = MathUtils.sinDeg(rx) * scaleX;
 				let ld = MathUtils.sinDeg(ry) * scaleY;
-				this.a = pa * la + pb * lc;
-				this.b = pa * lb + pb * ld;
+				this.a = pa * la - pb * lc;
+				this.b = pa * lb - pb * ld;
 				this.c = pc * la + pd * lc;
 				this.d = pc * lb + pd * ld;
 				break;

+ 1 - 0
spine-ts/core/src/IkConstraint.ts

@@ -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
 		 * coordinate system. */
 		apply1 (bone: Bone, targetX: number, targetY: number, alpha: number) {
+			if (!bone.appliedValid) bone.updateAppliedTransform();
 			let p = bone.parent;
 			let id = 1 / (p.a * p.d - p.b * p.c);
 			let x = targetX - p.worldX, y = targetY - p.worldY;

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.