Bladeren bron

Fixed skeleton flip when rotation and scale are disabled.

NathanSweet 9 jaren geleden
bovenliggende
commit
b22669711d
1 gewijzigde bestanden met toevoegingen van 63 en 69 verwijderingen
  1. 63 69
      spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java

+ 63 - 69
spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java

@@ -131,71 +131,70 @@ public class Bone implements Updatable {
 			b = pa * lb + pb * ld;
 			b = pa * lb + pb * ld;
 			c = pc * la + pd * lc;
 			c = pc * la + pd * lc;
 			d = pc * lb + pd * ld;
 			d = pc * lb + pd * ld;
-		} else if (data.inheritRotation) { // No scale inheritance.
-			pa = 1;
-			pb = 0;
-			pc = 0;
-			pd = 1;
-			do {
-				cos = MathUtils.cosDeg(parent.appliedRotation);
-				sin = MathUtils.sinDeg(parent.appliedRotation);
-				float temp = pa * cos + pb * sin;
-				pb = pa * -sin + pb * cos;
-				pa = temp;
-				temp = pc * cos + pd * sin;
-				pd = pc * -sin + pd * cos;
-				pc = temp;
-
-				if (!parent.data.inheritRotation) break;
-				parent = parent.parent;
-			} while (parent != null);
-			a = pa * la + pb * lc;
-			b = pa * lb + pb * ld;
-			c = pc * la + pd * lc;
-			d = pc * lb + pd * ld;
-			if (skeleton.flipX) {
-				a = -a;
-				b = -b;
-			}
-			if (skeleton.flipY) {
-				c = -c;
-				d = -d;
+		} else {
+			if (data.inheritRotation) { // No scale inheritance.
+				pa = 1;
+				pb = 0;
+				pc = 0;
+				pd = 1;
+				do {
+					cos = MathUtils.cosDeg(parent.appliedRotation);
+					sin = MathUtils.sinDeg(parent.appliedRotation);
+					float temp = pa * cos + pb * sin;
+					pb = pa * -sin + pb * cos;
+					pa = temp;
+					temp = pc * cos + pd * sin;
+					pd = pc * -sin + pd * cos;
+					pc = temp;
+
+					if (!parent.data.inheritRotation) break;
+					parent = parent.parent;
+				} while (parent != null);
+				a = pa * la + pb * lc;
+				b = pa * lb + pb * ld;
+				c = pc * la + pd * lc;
+				d = pc * lb + pd * ld;
+			} else if (data.inheritScale) { // No rotation inheritance.
+				pa = 1;
+				pb = 0;
+				pc = 0;
+				pd = 1;
+				do {
+					float r = parent.appliedRotation;
+					cos = MathUtils.cosDeg(r);
+					sin = MathUtils.sinDeg(r);
+					float psx = parent.appliedScaleX, psy = parent.appliedScaleY;
+					float za = cos * psx, zb = -sin * psy, zc = sin * psx, zd = cos * psy;
+					float temp = pa * za + pb * zc;
+					pb = pa * zb + pb * zd;
+					pa = temp;
+					temp = pc * za + pd * zc;
+					pd = pc * zb + pd * zd;
+					pc = temp;
+
+					if (psx < 0) r = -r;
+					cos = MathUtils.cosDeg(-r);
+					sin = MathUtils.sinDeg(-r);
+					temp = pa * cos + pb * sin;
+					pb = pa * -sin + pb * cos;
+					pa = temp;
+					temp = pc * cos + pd * sin;
+					pd = pc * -sin + pd * cos;
+					pc = temp;
+
+					if (!parent.data.inheritScale) break;
+					parent = parent.parent;
+				} while (parent != null);
+				a = pa * la + pb * lc;
+				b = pa * lb + pb * ld;
+				c = pc * la + pd * lc;
+				d = pc * lb + pd * ld;
+			} else {
+				a = la;
+				b = lb;
+				c = lc;
+				d = ld;
 			}
 			}
-		} else if (data.inheritScale) { // No rotation inheritance.
-			pa = 1;
-			pb = 0;
-			pc = 0;
-			pd = 1;
-			do {
-				float r = parent.rotation;
-				cos = MathUtils.cosDeg(r);
-				sin = MathUtils.sinDeg(r);
-				float psx = parent.appliedScaleX, psy = parent.appliedScaleY;
-				float za = cos * psx, zb = -sin * psy, zc = sin * psx, zd = cos * psy;
-				float temp = pa * za + pb * zc;
-				pb = pa * zb + pb * zd;
-				pa = temp;
-				temp = pc * za + pd * zc;
-				pd = pc * zb + pd * zd;
-				pc = temp;
-
-				if (psx < 0) r = -r;
-				cos = MathUtils.cosDeg(-r);
-				sin = MathUtils.sinDeg(-r);
-				temp = pa * cos + pb * sin;
-				pb = pa * -sin + pb * cos;
-				pa = temp;
-				temp = pc * cos + pd * sin;
-				pd = pc * -sin + pd * cos;
-				pc = temp;
-
-				if (!parent.data.inheritScale) break;
-				parent = parent.parent;
-			} while (parent != null);
-			a = pa * la + pb * lc;
-			b = pa * lb + pb * ld;
-			c = pc * la + pd * lc;
-			d = pc * lb + pd * ld;
 			if (skeleton.flipX) {
 			if (skeleton.flipX) {
 				a = -a;
 				a = -a;
 				b = -b;
 				b = -b;
@@ -204,11 +203,6 @@ public class Bone implements Updatable {
 				c = -c;
 				c = -c;
 				d = -d;
 				d = -d;
 			}
 			}
-		} else {
-			a = la;
-			b = lb;
-			c = lc;
-			d = ld;
 		}
 		}
 	}
 	}