mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-21 01:36:02 +08:00
[ts] port of PathConstraint changes, see #1109.
This commit is contained in:
parent
162977d2f9
commit
2e4d3a1808
@ -2863,17 +2863,17 @@ var spine;
|
||||
if (!translate && !rotate)
|
||||
return;
|
||||
var data = this.data;
|
||||
var spacingMode = data.spacingMode;
|
||||
var lengthSpacing = spacingMode == spine.SpacingMode.Length;
|
||||
var percentSpacing = data.spacingMode == spine.SpacingMode.Percent;
|
||||
var rotateMode = data.rotateMode;
|
||||
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
||||
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
||||
var bones = this.bones;
|
||||
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
||||
var spacing = this.spacing;
|
||||
if (scale || lengthSpacing) {
|
||||
if (scale || !percentSpacing) {
|
||||
if (scale)
|
||||
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
||||
var lengthSpacing = data.spacingMode == spine.SpacingMode.Length;
|
||||
for (var i = 0, n = spacesCount - 1; i < n;) {
|
||||
var bone = bones[i];
|
||||
var setupLength = bone.data.length;
|
||||
@ -2882,9 +2882,17 @@ var spine;
|
||||
lengths[i] = 0;
|
||||
spaces[++i] = 0;
|
||||
}
|
||||
else if (percentSpacing) {
|
||||
if (scale) {
|
||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
||||
var length = Math.sqrt(x * x + y * y);
|
||||
lengths[i] = length;
|
||||
}
|
||||
spaces[++i] = spacing;
|
||||
}
|
||||
else {
|
||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
||||
var length_1 = Math.sqrt(x * x + y * y);
|
||||
var x_1 = setupLength * bone.a, y_1 = setupLength * bone.c;
|
||||
var length_1 = Math.sqrt(x_1 * x_1 + y_1 * y_1);
|
||||
if (scale)
|
||||
lengths[i] = length_1;
|
||||
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
||||
@ -2895,7 +2903,7 @@ var spine;
|
||||
for (var i = 1; i < spacesCount; i++)
|
||||
spaces[i] = spacing;
|
||||
}
|
||||
var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent);
|
||||
var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, percentSpacing);
|
||||
var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
|
||||
var tip = false;
|
||||
if (offsetRotation == 0)
|
||||
@ -2909,7 +2917,7 @@ var spine;
|
||||
var bone = bones[i];
|
||||
bone.worldX += (boneX - bone.worldX) * translateMix;
|
||||
bone.worldY += (boneY - bone.worldY) * translateMix;
|
||||
var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY;
|
||||
var x_2 = positions[p], y_2 = positions[p + 1], dx = x_2 - boneX, dy = y_2 - boneY;
|
||||
if (scale) {
|
||||
var length_2 = lengths[i];
|
||||
if (length_2 != 0) {
|
||||
@ -2918,8 +2926,8 @@ var spine;
|
||||
bone.c *= s;
|
||||
}
|
||||
}
|
||||
boneX = x;
|
||||
boneY = y;
|
||||
boneX = x_2;
|
||||
boneY = y_2;
|
||||
if (rotate) {
|
||||
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
||||
if (tangents)
|
||||
@ -3073,6 +3081,8 @@ var spine;
|
||||
}
|
||||
if (percentPosition)
|
||||
position *= pathLength;
|
||||
else
|
||||
position *= pathLength / path.lengths[curveCount - 1];
|
||||
if (percentSpacing) {
|
||||
for (var i = 0; i < spacesCount; i++)
|
||||
spaces[i] *= pathLength;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -2863,17 +2863,17 @@ var spine;
|
||||
if (!translate && !rotate)
|
||||
return;
|
||||
var data = this.data;
|
||||
var spacingMode = data.spacingMode;
|
||||
var lengthSpacing = spacingMode == spine.SpacingMode.Length;
|
||||
var percentSpacing = data.spacingMode == spine.SpacingMode.Percent;
|
||||
var rotateMode = data.rotateMode;
|
||||
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
||||
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
||||
var bones = this.bones;
|
||||
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
||||
var spacing = this.spacing;
|
||||
if (scale || lengthSpacing) {
|
||||
if (scale || !percentSpacing) {
|
||||
if (scale)
|
||||
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
||||
var lengthSpacing = data.spacingMode == spine.SpacingMode.Length;
|
||||
for (var i = 0, n = spacesCount - 1; i < n;) {
|
||||
var bone = bones[i];
|
||||
var setupLength = bone.data.length;
|
||||
@ -2882,9 +2882,17 @@ var spine;
|
||||
lengths[i] = 0;
|
||||
spaces[++i] = 0;
|
||||
}
|
||||
else if (percentSpacing) {
|
||||
if (scale) {
|
||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
||||
var length = Math.sqrt(x * x + y * y);
|
||||
lengths[i] = length;
|
||||
}
|
||||
spaces[++i] = spacing;
|
||||
}
|
||||
else {
|
||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
||||
var length_1 = Math.sqrt(x * x + y * y);
|
||||
var x_1 = setupLength * bone.a, y_1 = setupLength * bone.c;
|
||||
var length_1 = Math.sqrt(x_1 * x_1 + y_1 * y_1);
|
||||
if (scale)
|
||||
lengths[i] = length_1;
|
||||
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
||||
@ -2895,7 +2903,7 @@ var spine;
|
||||
for (var i = 1; i < spacesCount; i++)
|
||||
spaces[i] = spacing;
|
||||
}
|
||||
var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent);
|
||||
var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, percentSpacing);
|
||||
var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
|
||||
var tip = false;
|
||||
if (offsetRotation == 0)
|
||||
@ -2909,7 +2917,7 @@ var spine;
|
||||
var bone = bones[i];
|
||||
bone.worldX += (boneX - bone.worldX) * translateMix;
|
||||
bone.worldY += (boneY - bone.worldY) * translateMix;
|
||||
var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY;
|
||||
var x_2 = positions[p], y_2 = positions[p + 1], dx = x_2 - boneX, dy = y_2 - boneY;
|
||||
if (scale) {
|
||||
var length_2 = lengths[i];
|
||||
if (length_2 != 0) {
|
||||
@ -2918,8 +2926,8 @@ var spine;
|
||||
bone.c *= s;
|
||||
}
|
||||
}
|
||||
boneX = x;
|
||||
boneY = y;
|
||||
boneX = x_2;
|
||||
boneY = y_2;
|
||||
if (rotate) {
|
||||
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
||||
if (tangents)
|
||||
@ -3073,6 +3081,8 @@ var spine;
|
||||
}
|
||||
if (percentPosition)
|
||||
position *= pathLength;
|
||||
else
|
||||
position *= pathLength / path.lengths[curveCount - 1];
|
||||
if (percentSpacing) {
|
||||
for (var i = 0; i < spacesCount; i++)
|
||||
spaces[i] *= pathLength;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -2863,17 +2863,17 @@ var spine;
|
||||
if (!translate && !rotate)
|
||||
return;
|
||||
var data = this.data;
|
||||
var spacingMode = data.spacingMode;
|
||||
var lengthSpacing = spacingMode == spine.SpacingMode.Length;
|
||||
var percentSpacing = data.spacingMode == spine.SpacingMode.Percent;
|
||||
var rotateMode = data.rotateMode;
|
||||
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
||||
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
||||
var bones = this.bones;
|
||||
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
||||
var spacing = this.spacing;
|
||||
if (scale || lengthSpacing) {
|
||||
if (scale || !percentSpacing) {
|
||||
if (scale)
|
||||
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
||||
var lengthSpacing = data.spacingMode == spine.SpacingMode.Length;
|
||||
for (var i = 0, n = spacesCount - 1; i < n;) {
|
||||
var bone = bones[i];
|
||||
var setupLength = bone.data.length;
|
||||
@ -2882,9 +2882,17 @@ var spine;
|
||||
lengths[i] = 0;
|
||||
spaces[++i] = 0;
|
||||
}
|
||||
else if (percentSpacing) {
|
||||
if (scale) {
|
||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
||||
var length = Math.sqrt(x * x + y * y);
|
||||
lengths[i] = length;
|
||||
}
|
||||
spaces[++i] = spacing;
|
||||
}
|
||||
else {
|
||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
||||
var length_1 = Math.sqrt(x * x + y * y);
|
||||
var x_1 = setupLength * bone.a, y_1 = setupLength * bone.c;
|
||||
var length_1 = Math.sqrt(x_1 * x_1 + y_1 * y_1);
|
||||
if (scale)
|
||||
lengths[i] = length_1;
|
||||
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
||||
@ -2895,7 +2903,7 @@ var spine;
|
||||
for (var i = 1; i < spacesCount; i++)
|
||||
spaces[i] = spacing;
|
||||
}
|
||||
var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent);
|
||||
var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, percentSpacing);
|
||||
var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
|
||||
var tip = false;
|
||||
if (offsetRotation == 0)
|
||||
@ -2909,7 +2917,7 @@ var spine;
|
||||
var bone = bones[i];
|
||||
bone.worldX += (boneX - bone.worldX) * translateMix;
|
||||
bone.worldY += (boneY - bone.worldY) * translateMix;
|
||||
var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY;
|
||||
var x_2 = positions[p], y_2 = positions[p + 1], dx = x_2 - boneX, dy = y_2 - boneY;
|
||||
if (scale) {
|
||||
var length_2 = lengths[i];
|
||||
if (length_2 != 0) {
|
||||
@ -2918,8 +2926,8 @@ var spine;
|
||||
bone.c *= s;
|
||||
}
|
||||
}
|
||||
boneX = x;
|
||||
boneY = y;
|
||||
boneX = x_2;
|
||||
boneY = y_2;
|
||||
if (rotate) {
|
||||
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
||||
if (tangents)
|
||||
@ -3073,6 +3081,8 @@ var spine;
|
||||
}
|
||||
if (percentPosition)
|
||||
position *= pathLength;
|
||||
else
|
||||
position *= pathLength / path.lengths[curveCount - 1];
|
||||
if (percentSpacing) {
|
||||
for (var i = 0; i < spacesCount; i++)
|
||||
spaces[i] *= pathLength;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -2863,17 +2863,17 @@ var spine;
|
||||
if (!translate && !rotate)
|
||||
return;
|
||||
var data = this.data;
|
||||
var spacingMode = data.spacingMode;
|
||||
var lengthSpacing = spacingMode == spine.SpacingMode.Length;
|
||||
var percentSpacing = data.spacingMode == spine.SpacingMode.Percent;
|
||||
var rotateMode = data.rotateMode;
|
||||
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
||||
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
||||
var bones = this.bones;
|
||||
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
||||
var spacing = this.spacing;
|
||||
if (scale || lengthSpacing) {
|
||||
if (scale || !percentSpacing) {
|
||||
if (scale)
|
||||
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
||||
var lengthSpacing = data.spacingMode == spine.SpacingMode.Length;
|
||||
for (var i = 0, n = spacesCount - 1; i < n;) {
|
||||
var bone = bones[i];
|
||||
var setupLength = bone.data.length;
|
||||
@ -2882,9 +2882,17 @@ var spine;
|
||||
lengths[i] = 0;
|
||||
spaces[++i] = 0;
|
||||
}
|
||||
else if (percentSpacing) {
|
||||
if (scale) {
|
||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
||||
var length = Math.sqrt(x * x + y * y);
|
||||
lengths[i] = length;
|
||||
}
|
||||
spaces[++i] = spacing;
|
||||
}
|
||||
else {
|
||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
||||
var length_1 = Math.sqrt(x * x + y * y);
|
||||
var x_1 = setupLength * bone.a, y_1 = setupLength * bone.c;
|
||||
var length_1 = Math.sqrt(x_1 * x_1 + y_1 * y_1);
|
||||
if (scale)
|
||||
lengths[i] = length_1;
|
||||
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
||||
@ -2895,7 +2903,7 @@ var spine;
|
||||
for (var i = 1; i < spacesCount; i++)
|
||||
spaces[i] = spacing;
|
||||
}
|
||||
var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent);
|
||||
var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, percentSpacing);
|
||||
var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
|
||||
var tip = false;
|
||||
if (offsetRotation == 0)
|
||||
@ -2909,7 +2917,7 @@ var spine;
|
||||
var bone = bones[i];
|
||||
bone.worldX += (boneX - bone.worldX) * translateMix;
|
||||
bone.worldY += (boneY - bone.worldY) * translateMix;
|
||||
var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY;
|
||||
var x_2 = positions[p], y_2 = positions[p + 1], dx = x_2 - boneX, dy = y_2 - boneY;
|
||||
if (scale) {
|
||||
var length_2 = lengths[i];
|
||||
if (length_2 != 0) {
|
||||
@ -2918,8 +2926,8 @@ var spine;
|
||||
bone.c *= s;
|
||||
}
|
||||
}
|
||||
boneX = x;
|
||||
boneY = y;
|
||||
boneX = x_2;
|
||||
boneY = y_2;
|
||||
if (rotate) {
|
||||
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
||||
if (tangents)
|
||||
@ -3073,6 +3081,8 @@ var spine;
|
||||
}
|
||||
if (percentPosition)
|
||||
position *= pathLength;
|
||||
else
|
||||
position *= pathLength / path.lengths[curveCount - 1];
|
||||
if (percentSpacing) {
|
||||
for (var i = 0; i < spacesCount; i++)
|
||||
spaces[i] *= pathLength;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -2863,17 +2863,17 @@ var spine;
|
||||
if (!translate && !rotate)
|
||||
return;
|
||||
var data = this.data;
|
||||
var spacingMode = data.spacingMode;
|
||||
var lengthSpacing = spacingMode == spine.SpacingMode.Length;
|
||||
var percentSpacing = data.spacingMode == spine.SpacingMode.Percent;
|
||||
var rotateMode = data.rotateMode;
|
||||
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
||||
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
||||
var bones = this.bones;
|
||||
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
||||
var spacing = this.spacing;
|
||||
if (scale || lengthSpacing) {
|
||||
if (scale || !percentSpacing) {
|
||||
if (scale)
|
||||
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
||||
var lengthSpacing = data.spacingMode == spine.SpacingMode.Length;
|
||||
for (var i = 0, n = spacesCount - 1; i < n;) {
|
||||
var bone = bones[i];
|
||||
var setupLength = bone.data.length;
|
||||
@ -2882,9 +2882,17 @@ var spine;
|
||||
lengths[i] = 0;
|
||||
spaces[++i] = 0;
|
||||
}
|
||||
else if (percentSpacing) {
|
||||
if (scale) {
|
||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
||||
var length = Math.sqrt(x * x + y * y);
|
||||
lengths[i] = length;
|
||||
}
|
||||
spaces[++i] = spacing;
|
||||
}
|
||||
else {
|
||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
||||
var length_1 = Math.sqrt(x * x + y * y);
|
||||
var x_1 = setupLength * bone.a, y_1 = setupLength * bone.c;
|
||||
var length_1 = Math.sqrt(x_1 * x_1 + y_1 * y_1);
|
||||
if (scale)
|
||||
lengths[i] = length_1;
|
||||
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
||||
@ -2895,7 +2903,7 @@ var spine;
|
||||
for (var i = 1; i < spacesCount; i++)
|
||||
spaces[i] = spacing;
|
||||
}
|
||||
var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent);
|
||||
var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, percentSpacing);
|
||||
var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
|
||||
var tip = false;
|
||||
if (offsetRotation == 0)
|
||||
@ -2909,7 +2917,7 @@ var spine;
|
||||
var bone = bones[i];
|
||||
bone.worldX += (boneX - bone.worldX) * translateMix;
|
||||
bone.worldY += (boneY - bone.worldY) * translateMix;
|
||||
var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY;
|
||||
var x_2 = positions[p], y_2 = positions[p + 1], dx = x_2 - boneX, dy = y_2 - boneY;
|
||||
if (scale) {
|
||||
var length_2 = lengths[i];
|
||||
if (length_2 != 0) {
|
||||
@ -2918,8 +2926,8 @@ var spine;
|
||||
bone.c *= s;
|
||||
}
|
||||
}
|
||||
boneX = x;
|
||||
boneY = y;
|
||||
boneX = x_2;
|
||||
boneY = y_2;
|
||||
if (rotate) {
|
||||
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
||||
if (tangents)
|
||||
@ -3073,6 +3081,8 @@ var spine;
|
||||
}
|
||||
if (percentPosition)
|
||||
position *= pathLength;
|
||||
else
|
||||
position *= pathLength / path.lengths[curveCount - 1];
|
||||
if (percentSpacing) {
|
||||
for (var i = 0; i < spacesCount; i++)
|
||||
spaces[i] *= pathLength;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -2863,17 +2863,17 @@ var spine;
|
||||
if (!translate && !rotate)
|
||||
return;
|
||||
var data = this.data;
|
||||
var spacingMode = data.spacingMode;
|
||||
var lengthSpacing = spacingMode == spine.SpacingMode.Length;
|
||||
var percentSpacing = data.spacingMode == spine.SpacingMode.Percent;
|
||||
var rotateMode = data.rotateMode;
|
||||
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
||||
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
||||
var bones = this.bones;
|
||||
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
||||
var spacing = this.spacing;
|
||||
if (scale || lengthSpacing) {
|
||||
if (scale || !percentSpacing) {
|
||||
if (scale)
|
||||
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
||||
var lengthSpacing = data.spacingMode == spine.SpacingMode.Length;
|
||||
for (var i = 0, n = spacesCount - 1; i < n;) {
|
||||
var bone = bones[i];
|
||||
var setupLength = bone.data.length;
|
||||
@ -2882,9 +2882,17 @@ var spine;
|
||||
lengths[i] = 0;
|
||||
spaces[++i] = 0;
|
||||
}
|
||||
else if (percentSpacing) {
|
||||
if (scale) {
|
||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
||||
var length = Math.sqrt(x * x + y * y);
|
||||
lengths[i] = length;
|
||||
}
|
||||
spaces[++i] = spacing;
|
||||
}
|
||||
else {
|
||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
||||
var length_1 = Math.sqrt(x * x + y * y);
|
||||
var x_1 = setupLength * bone.a, y_1 = setupLength * bone.c;
|
||||
var length_1 = Math.sqrt(x_1 * x_1 + y_1 * y_1);
|
||||
if (scale)
|
||||
lengths[i] = length_1;
|
||||
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
||||
@ -2895,7 +2903,7 @@ var spine;
|
||||
for (var i = 1; i < spacesCount; i++)
|
||||
spaces[i] = spacing;
|
||||
}
|
||||
var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent);
|
||||
var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, percentSpacing);
|
||||
var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
|
||||
var tip = false;
|
||||
if (offsetRotation == 0)
|
||||
@ -2909,7 +2917,7 @@ var spine;
|
||||
var bone = bones[i];
|
||||
bone.worldX += (boneX - bone.worldX) * translateMix;
|
||||
bone.worldY += (boneY - bone.worldY) * translateMix;
|
||||
var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY;
|
||||
var x_2 = positions[p], y_2 = positions[p + 1], dx = x_2 - boneX, dy = y_2 - boneY;
|
||||
if (scale) {
|
||||
var length_2 = lengths[i];
|
||||
if (length_2 != 0) {
|
||||
@ -2918,8 +2926,8 @@ var spine;
|
||||
bone.c *= s;
|
||||
}
|
||||
}
|
||||
boneX = x;
|
||||
boneY = y;
|
||||
boneX = x_2;
|
||||
boneY = y_2;
|
||||
if (rotate) {
|
||||
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
||||
if (tangents)
|
||||
@ -3073,6 +3081,8 @@ var spine;
|
||||
}
|
||||
if (percentPosition)
|
||||
position *= pathLength;
|
||||
else
|
||||
position *= pathLength / path.lengths[curveCount - 1];
|
||||
if (percentSpacing) {
|
||||
for (var i = 0; i < spacesCount; i++)
|
||||
spaces[i] *= pathLength;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -69,28 +69,35 @@ module spine {
|
||||
if (!translate && !rotate) return;
|
||||
|
||||
let data = this.data;
|
||||
let spacingMode = data.spacingMode;
|
||||
let lengthSpacing = spacingMode == SpacingMode.Length;
|
||||
let percentSpacing = data.spacingMode == SpacingMode.Percent;
|
||||
let rotateMode = data.rotateMode;
|
||||
let tangents = rotateMode == RotateMode.Tangent, scale = rotateMode == RotateMode.ChainScale;
|
||||
let boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
||||
let bones = this.bones;
|
||||
let spaces = Utils.setArraySize(this.spaces, spacesCount), lengths: Array<number> = null;
|
||||
let spacing = this.spacing;
|
||||
if (scale || lengthSpacing) {
|
||||
if (scale || !percentSpacing) {
|
||||
if (scale) lengths = Utils.setArraySize(this.lengths, boneCount);
|
||||
var lengthSpacing = data.spacingMode == SpacingMode.Length;
|
||||
for (let i = 0, n = spacesCount - 1; i < n;) {
|
||||
let bone = bones[i];
|
||||
let setupLength = bone.data.length;
|
||||
if (setupLength < PathConstraint.epsilon) {
|
||||
if (scale) lengths[i] = 0;
|
||||
spaces[++i] = 0;
|
||||
} else if (percentSpacing) {
|
||||
if (scale) {
|
||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
||||
var length = Math.sqrt(x * x + y * y);
|
||||
lengths[i] = length;
|
||||
}
|
||||
spaces[++i] = spacing;
|
||||
} else {
|
||||
let x = setupLength * bone.a, y = setupLength * bone.c;
|
||||
let length = Math.sqrt(x * x + y * y);
|
||||
if (scale) lengths[i] = length;
|
||||
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length / setupLength;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (let i = 1; i < spacesCount; i++)
|
||||
@ -98,7 +105,7 @@ module spine {
|
||||
}
|
||||
|
||||
let positions = this.computeWorldPositions(<PathAttachment>attachment, spacesCount, tangents,
|
||||
data.positionMode == PositionMode.Percent, spacingMode == SpacingMode.Percent);
|
||||
data.positionMode == PositionMode.Percent, percentSpacing);
|
||||
let boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
|
||||
let tip = false;
|
||||
if (offsetRotation == 0)
|
||||
@ -277,7 +284,10 @@ module spine {
|
||||
x1 = x2;
|
||||
y1 = y2;
|
||||
}
|
||||
if (percentPosition) position *= pathLength;
|
||||
if (percentPosition)
|
||||
position *= pathLength;
|
||||
else
|
||||
position *= pathLength / path.lengths[curveCount - 1];
|
||||
if (percentSpacing) {
|
||||
for (let i = 0; i < spacesCount; i++)
|
||||
spaces[i] *= pathLength;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user