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)
|
if (!translate && !rotate)
|
||||||
return;
|
return;
|
||||||
var data = this.data;
|
var data = this.data;
|
||||||
var spacingMode = data.spacingMode;
|
var percentSpacing = data.spacingMode == spine.SpacingMode.Percent;
|
||||||
var lengthSpacing = spacingMode == spine.SpacingMode.Length;
|
|
||||||
var rotateMode = data.rotateMode;
|
var rotateMode = data.rotateMode;
|
||||||
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
||||||
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
||||||
var bones = this.bones;
|
var bones = this.bones;
|
||||||
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
||||||
var spacing = this.spacing;
|
var spacing = this.spacing;
|
||||||
if (scale || lengthSpacing) {
|
if (scale || !percentSpacing) {
|
||||||
if (scale)
|
if (scale)
|
||||||
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
||||||
|
var lengthSpacing = data.spacingMode == spine.SpacingMode.Length;
|
||||||
for (var i = 0, n = spacesCount - 1; i < n;) {
|
for (var i = 0, n = spacesCount - 1; i < n;) {
|
||||||
var bone = bones[i];
|
var bone = bones[i];
|
||||||
var setupLength = bone.data.length;
|
var setupLength = bone.data.length;
|
||||||
@ -2882,9 +2882,17 @@ var spine;
|
|||||||
lengths[i] = 0;
|
lengths[i] = 0;
|
||||||
spaces[++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 {
|
else {
|
||||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
var x_1 = setupLength * bone.a, y_1 = setupLength * bone.c;
|
||||||
var length_1 = Math.sqrt(x * x + y * y);
|
var length_1 = Math.sqrt(x_1 * x_1 + y_1 * y_1);
|
||||||
if (scale)
|
if (scale)
|
||||||
lengths[i] = length_1;
|
lengths[i] = length_1;
|
||||||
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
||||||
@ -2895,7 +2903,7 @@ var spine;
|
|||||||
for (var i = 1; i < spacesCount; i++)
|
for (var i = 1; i < spacesCount; i++)
|
||||||
spaces[i] = spacing;
|
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 boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
|
||||||
var tip = false;
|
var tip = false;
|
||||||
if (offsetRotation == 0)
|
if (offsetRotation == 0)
|
||||||
@ -2909,7 +2917,7 @@ var spine;
|
|||||||
var bone = bones[i];
|
var bone = bones[i];
|
||||||
bone.worldX += (boneX - bone.worldX) * translateMix;
|
bone.worldX += (boneX - bone.worldX) * translateMix;
|
||||||
bone.worldY += (boneY - bone.worldY) * 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) {
|
if (scale) {
|
||||||
var length_2 = lengths[i];
|
var length_2 = lengths[i];
|
||||||
if (length_2 != 0) {
|
if (length_2 != 0) {
|
||||||
@ -2918,8 +2926,8 @@ var spine;
|
|||||||
bone.c *= s;
|
bone.c *= s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boneX = x;
|
boneX = x_2;
|
||||||
boneY = y;
|
boneY = y_2;
|
||||||
if (rotate) {
|
if (rotate) {
|
||||||
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
||||||
if (tangents)
|
if (tangents)
|
||||||
@ -3073,6 +3081,8 @@ var spine;
|
|||||||
}
|
}
|
||||||
if (percentPosition)
|
if (percentPosition)
|
||||||
position *= pathLength;
|
position *= pathLength;
|
||||||
|
else
|
||||||
|
position *= pathLength / path.lengths[curveCount - 1];
|
||||||
if (percentSpacing) {
|
if (percentSpacing) {
|
||||||
for (var i = 0; i < spacesCount; i++)
|
for (var i = 0; i < spacesCount; i++)
|
||||||
spaces[i] *= pathLength;
|
spaces[i] *= pathLength;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -2863,17 +2863,17 @@ var spine;
|
|||||||
if (!translate && !rotate)
|
if (!translate && !rotate)
|
||||||
return;
|
return;
|
||||||
var data = this.data;
|
var data = this.data;
|
||||||
var spacingMode = data.spacingMode;
|
var percentSpacing = data.spacingMode == spine.SpacingMode.Percent;
|
||||||
var lengthSpacing = spacingMode == spine.SpacingMode.Length;
|
|
||||||
var rotateMode = data.rotateMode;
|
var rotateMode = data.rotateMode;
|
||||||
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
||||||
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
||||||
var bones = this.bones;
|
var bones = this.bones;
|
||||||
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
||||||
var spacing = this.spacing;
|
var spacing = this.spacing;
|
||||||
if (scale || lengthSpacing) {
|
if (scale || !percentSpacing) {
|
||||||
if (scale)
|
if (scale)
|
||||||
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
||||||
|
var lengthSpacing = data.spacingMode == spine.SpacingMode.Length;
|
||||||
for (var i = 0, n = spacesCount - 1; i < n;) {
|
for (var i = 0, n = spacesCount - 1; i < n;) {
|
||||||
var bone = bones[i];
|
var bone = bones[i];
|
||||||
var setupLength = bone.data.length;
|
var setupLength = bone.data.length;
|
||||||
@ -2882,9 +2882,17 @@ var spine;
|
|||||||
lengths[i] = 0;
|
lengths[i] = 0;
|
||||||
spaces[++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 {
|
else {
|
||||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
var x_1 = setupLength * bone.a, y_1 = setupLength * bone.c;
|
||||||
var length_1 = Math.sqrt(x * x + y * y);
|
var length_1 = Math.sqrt(x_1 * x_1 + y_1 * y_1);
|
||||||
if (scale)
|
if (scale)
|
||||||
lengths[i] = length_1;
|
lengths[i] = length_1;
|
||||||
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
||||||
@ -2895,7 +2903,7 @@ var spine;
|
|||||||
for (var i = 1; i < spacesCount; i++)
|
for (var i = 1; i < spacesCount; i++)
|
||||||
spaces[i] = spacing;
|
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 boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
|
||||||
var tip = false;
|
var tip = false;
|
||||||
if (offsetRotation == 0)
|
if (offsetRotation == 0)
|
||||||
@ -2909,7 +2917,7 @@ var spine;
|
|||||||
var bone = bones[i];
|
var bone = bones[i];
|
||||||
bone.worldX += (boneX - bone.worldX) * translateMix;
|
bone.worldX += (boneX - bone.worldX) * translateMix;
|
||||||
bone.worldY += (boneY - bone.worldY) * 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) {
|
if (scale) {
|
||||||
var length_2 = lengths[i];
|
var length_2 = lengths[i];
|
||||||
if (length_2 != 0) {
|
if (length_2 != 0) {
|
||||||
@ -2918,8 +2926,8 @@ var spine;
|
|||||||
bone.c *= s;
|
bone.c *= s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boneX = x;
|
boneX = x_2;
|
||||||
boneY = y;
|
boneY = y_2;
|
||||||
if (rotate) {
|
if (rotate) {
|
||||||
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
||||||
if (tangents)
|
if (tangents)
|
||||||
@ -3073,6 +3081,8 @@ var spine;
|
|||||||
}
|
}
|
||||||
if (percentPosition)
|
if (percentPosition)
|
||||||
position *= pathLength;
|
position *= pathLength;
|
||||||
|
else
|
||||||
|
position *= pathLength / path.lengths[curveCount - 1];
|
||||||
if (percentSpacing) {
|
if (percentSpacing) {
|
||||||
for (var i = 0; i < spacesCount; i++)
|
for (var i = 0; i < spacesCount; i++)
|
||||||
spaces[i] *= pathLength;
|
spaces[i] *= pathLength;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -2863,17 +2863,17 @@ var spine;
|
|||||||
if (!translate && !rotate)
|
if (!translate && !rotate)
|
||||||
return;
|
return;
|
||||||
var data = this.data;
|
var data = this.data;
|
||||||
var spacingMode = data.spacingMode;
|
var percentSpacing = data.spacingMode == spine.SpacingMode.Percent;
|
||||||
var lengthSpacing = spacingMode == spine.SpacingMode.Length;
|
|
||||||
var rotateMode = data.rotateMode;
|
var rotateMode = data.rotateMode;
|
||||||
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
||||||
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
||||||
var bones = this.bones;
|
var bones = this.bones;
|
||||||
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
||||||
var spacing = this.spacing;
|
var spacing = this.spacing;
|
||||||
if (scale || lengthSpacing) {
|
if (scale || !percentSpacing) {
|
||||||
if (scale)
|
if (scale)
|
||||||
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
||||||
|
var lengthSpacing = data.spacingMode == spine.SpacingMode.Length;
|
||||||
for (var i = 0, n = spacesCount - 1; i < n;) {
|
for (var i = 0, n = spacesCount - 1; i < n;) {
|
||||||
var bone = bones[i];
|
var bone = bones[i];
|
||||||
var setupLength = bone.data.length;
|
var setupLength = bone.data.length;
|
||||||
@ -2882,9 +2882,17 @@ var spine;
|
|||||||
lengths[i] = 0;
|
lengths[i] = 0;
|
||||||
spaces[++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 {
|
else {
|
||||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
var x_1 = setupLength * bone.a, y_1 = setupLength * bone.c;
|
||||||
var length_1 = Math.sqrt(x * x + y * y);
|
var length_1 = Math.sqrt(x_1 * x_1 + y_1 * y_1);
|
||||||
if (scale)
|
if (scale)
|
||||||
lengths[i] = length_1;
|
lengths[i] = length_1;
|
||||||
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
||||||
@ -2895,7 +2903,7 @@ var spine;
|
|||||||
for (var i = 1; i < spacesCount; i++)
|
for (var i = 1; i < spacesCount; i++)
|
||||||
spaces[i] = spacing;
|
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 boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
|
||||||
var tip = false;
|
var tip = false;
|
||||||
if (offsetRotation == 0)
|
if (offsetRotation == 0)
|
||||||
@ -2909,7 +2917,7 @@ var spine;
|
|||||||
var bone = bones[i];
|
var bone = bones[i];
|
||||||
bone.worldX += (boneX - bone.worldX) * translateMix;
|
bone.worldX += (boneX - bone.worldX) * translateMix;
|
||||||
bone.worldY += (boneY - bone.worldY) * 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) {
|
if (scale) {
|
||||||
var length_2 = lengths[i];
|
var length_2 = lengths[i];
|
||||||
if (length_2 != 0) {
|
if (length_2 != 0) {
|
||||||
@ -2918,8 +2926,8 @@ var spine;
|
|||||||
bone.c *= s;
|
bone.c *= s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boneX = x;
|
boneX = x_2;
|
||||||
boneY = y;
|
boneY = y_2;
|
||||||
if (rotate) {
|
if (rotate) {
|
||||||
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
||||||
if (tangents)
|
if (tangents)
|
||||||
@ -3073,6 +3081,8 @@ var spine;
|
|||||||
}
|
}
|
||||||
if (percentPosition)
|
if (percentPosition)
|
||||||
position *= pathLength;
|
position *= pathLength;
|
||||||
|
else
|
||||||
|
position *= pathLength / path.lengths[curveCount - 1];
|
||||||
if (percentSpacing) {
|
if (percentSpacing) {
|
||||||
for (var i = 0; i < spacesCount; i++)
|
for (var i = 0; i < spacesCount; i++)
|
||||||
spaces[i] *= pathLength;
|
spaces[i] *= pathLength;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -2863,17 +2863,17 @@ var spine;
|
|||||||
if (!translate && !rotate)
|
if (!translate && !rotate)
|
||||||
return;
|
return;
|
||||||
var data = this.data;
|
var data = this.data;
|
||||||
var spacingMode = data.spacingMode;
|
var percentSpacing = data.spacingMode == spine.SpacingMode.Percent;
|
||||||
var lengthSpacing = spacingMode == spine.SpacingMode.Length;
|
|
||||||
var rotateMode = data.rotateMode;
|
var rotateMode = data.rotateMode;
|
||||||
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
||||||
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
||||||
var bones = this.bones;
|
var bones = this.bones;
|
||||||
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
||||||
var spacing = this.spacing;
|
var spacing = this.spacing;
|
||||||
if (scale || lengthSpacing) {
|
if (scale || !percentSpacing) {
|
||||||
if (scale)
|
if (scale)
|
||||||
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
||||||
|
var lengthSpacing = data.spacingMode == spine.SpacingMode.Length;
|
||||||
for (var i = 0, n = spacesCount - 1; i < n;) {
|
for (var i = 0, n = spacesCount - 1; i < n;) {
|
||||||
var bone = bones[i];
|
var bone = bones[i];
|
||||||
var setupLength = bone.data.length;
|
var setupLength = bone.data.length;
|
||||||
@ -2882,9 +2882,17 @@ var spine;
|
|||||||
lengths[i] = 0;
|
lengths[i] = 0;
|
||||||
spaces[++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 {
|
else {
|
||||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
var x_1 = setupLength * bone.a, y_1 = setupLength * bone.c;
|
||||||
var length_1 = Math.sqrt(x * x + y * y);
|
var length_1 = Math.sqrt(x_1 * x_1 + y_1 * y_1);
|
||||||
if (scale)
|
if (scale)
|
||||||
lengths[i] = length_1;
|
lengths[i] = length_1;
|
||||||
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
||||||
@ -2895,7 +2903,7 @@ var spine;
|
|||||||
for (var i = 1; i < spacesCount; i++)
|
for (var i = 1; i < spacesCount; i++)
|
||||||
spaces[i] = spacing;
|
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 boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
|
||||||
var tip = false;
|
var tip = false;
|
||||||
if (offsetRotation == 0)
|
if (offsetRotation == 0)
|
||||||
@ -2909,7 +2917,7 @@ var spine;
|
|||||||
var bone = bones[i];
|
var bone = bones[i];
|
||||||
bone.worldX += (boneX - bone.worldX) * translateMix;
|
bone.worldX += (boneX - bone.worldX) * translateMix;
|
||||||
bone.worldY += (boneY - bone.worldY) * 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) {
|
if (scale) {
|
||||||
var length_2 = lengths[i];
|
var length_2 = lengths[i];
|
||||||
if (length_2 != 0) {
|
if (length_2 != 0) {
|
||||||
@ -2918,8 +2926,8 @@ var spine;
|
|||||||
bone.c *= s;
|
bone.c *= s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boneX = x;
|
boneX = x_2;
|
||||||
boneY = y;
|
boneY = y_2;
|
||||||
if (rotate) {
|
if (rotate) {
|
||||||
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
||||||
if (tangents)
|
if (tangents)
|
||||||
@ -3073,6 +3081,8 @@ var spine;
|
|||||||
}
|
}
|
||||||
if (percentPosition)
|
if (percentPosition)
|
||||||
position *= pathLength;
|
position *= pathLength;
|
||||||
|
else
|
||||||
|
position *= pathLength / path.lengths[curveCount - 1];
|
||||||
if (percentSpacing) {
|
if (percentSpacing) {
|
||||||
for (var i = 0; i < spacesCount; i++)
|
for (var i = 0; i < spacesCount; i++)
|
||||||
spaces[i] *= pathLength;
|
spaces[i] *= pathLength;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -2863,17 +2863,17 @@ var spine;
|
|||||||
if (!translate && !rotate)
|
if (!translate && !rotate)
|
||||||
return;
|
return;
|
||||||
var data = this.data;
|
var data = this.data;
|
||||||
var spacingMode = data.spacingMode;
|
var percentSpacing = data.spacingMode == spine.SpacingMode.Percent;
|
||||||
var lengthSpacing = spacingMode == spine.SpacingMode.Length;
|
|
||||||
var rotateMode = data.rotateMode;
|
var rotateMode = data.rotateMode;
|
||||||
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
||||||
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
||||||
var bones = this.bones;
|
var bones = this.bones;
|
||||||
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
||||||
var spacing = this.spacing;
|
var spacing = this.spacing;
|
||||||
if (scale || lengthSpacing) {
|
if (scale || !percentSpacing) {
|
||||||
if (scale)
|
if (scale)
|
||||||
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
||||||
|
var lengthSpacing = data.spacingMode == spine.SpacingMode.Length;
|
||||||
for (var i = 0, n = spacesCount - 1; i < n;) {
|
for (var i = 0, n = spacesCount - 1; i < n;) {
|
||||||
var bone = bones[i];
|
var bone = bones[i];
|
||||||
var setupLength = bone.data.length;
|
var setupLength = bone.data.length;
|
||||||
@ -2882,9 +2882,17 @@ var spine;
|
|||||||
lengths[i] = 0;
|
lengths[i] = 0;
|
||||||
spaces[++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 {
|
else {
|
||||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
var x_1 = setupLength * bone.a, y_1 = setupLength * bone.c;
|
||||||
var length_1 = Math.sqrt(x * x + y * y);
|
var length_1 = Math.sqrt(x_1 * x_1 + y_1 * y_1);
|
||||||
if (scale)
|
if (scale)
|
||||||
lengths[i] = length_1;
|
lengths[i] = length_1;
|
||||||
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
||||||
@ -2895,7 +2903,7 @@ var spine;
|
|||||||
for (var i = 1; i < spacesCount; i++)
|
for (var i = 1; i < spacesCount; i++)
|
||||||
spaces[i] = spacing;
|
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 boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
|
||||||
var tip = false;
|
var tip = false;
|
||||||
if (offsetRotation == 0)
|
if (offsetRotation == 0)
|
||||||
@ -2909,7 +2917,7 @@ var spine;
|
|||||||
var bone = bones[i];
|
var bone = bones[i];
|
||||||
bone.worldX += (boneX - bone.worldX) * translateMix;
|
bone.worldX += (boneX - bone.worldX) * translateMix;
|
||||||
bone.worldY += (boneY - bone.worldY) * 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) {
|
if (scale) {
|
||||||
var length_2 = lengths[i];
|
var length_2 = lengths[i];
|
||||||
if (length_2 != 0) {
|
if (length_2 != 0) {
|
||||||
@ -2918,8 +2926,8 @@ var spine;
|
|||||||
bone.c *= s;
|
bone.c *= s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boneX = x;
|
boneX = x_2;
|
||||||
boneY = y;
|
boneY = y_2;
|
||||||
if (rotate) {
|
if (rotate) {
|
||||||
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
||||||
if (tangents)
|
if (tangents)
|
||||||
@ -3073,6 +3081,8 @@ var spine;
|
|||||||
}
|
}
|
||||||
if (percentPosition)
|
if (percentPosition)
|
||||||
position *= pathLength;
|
position *= pathLength;
|
||||||
|
else
|
||||||
|
position *= pathLength / path.lengths[curveCount - 1];
|
||||||
if (percentSpacing) {
|
if (percentSpacing) {
|
||||||
for (var i = 0; i < spacesCount; i++)
|
for (var i = 0; i < spacesCount; i++)
|
||||||
spaces[i] *= pathLength;
|
spaces[i] *= pathLength;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -2863,17 +2863,17 @@ var spine;
|
|||||||
if (!translate && !rotate)
|
if (!translate && !rotate)
|
||||||
return;
|
return;
|
||||||
var data = this.data;
|
var data = this.data;
|
||||||
var spacingMode = data.spacingMode;
|
var percentSpacing = data.spacingMode == spine.SpacingMode.Percent;
|
||||||
var lengthSpacing = spacingMode == spine.SpacingMode.Length;
|
|
||||||
var rotateMode = data.rotateMode;
|
var rotateMode = data.rotateMode;
|
||||||
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale;
|
||||||
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
||||||
var bones = this.bones;
|
var bones = this.bones;
|
||||||
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
|
||||||
var spacing = this.spacing;
|
var spacing = this.spacing;
|
||||||
if (scale || lengthSpacing) {
|
if (scale || !percentSpacing) {
|
||||||
if (scale)
|
if (scale)
|
||||||
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
lengths = spine.Utils.setArraySize(this.lengths, boneCount);
|
||||||
|
var lengthSpacing = data.spacingMode == spine.SpacingMode.Length;
|
||||||
for (var i = 0, n = spacesCount - 1; i < n;) {
|
for (var i = 0, n = spacesCount - 1; i < n;) {
|
||||||
var bone = bones[i];
|
var bone = bones[i];
|
||||||
var setupLength = bone.data.length;
|
var setupLength = bone.data.length;
|
||||||
@ -2882,9 +2882,17 @@ var spine;
|
|||||||
lengths[i] = 0;
|
lengths[i] = 0;
|
||||||
spaces[++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 {
|
else {
|
||||||
var x = setupLength * bone.a, y = setupLength * bone.c;
|
var x_1 = setupLength * bone.a, y_1 = setupLength * bone.c;
|
||||||
var length_1 = Math.sqrt(x * x + y * y);
|
var length_1 = Math.sqrt(x_1 * x_1 + y_1 * y_1);
|
||||||
if (scale)
|
if (scale)
|
||||||
lengths[i] = length_1;
|
lengths[i] = length_1;
|
||||||
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
|
||||||
@ -2895,7 +2903,7 @@ var spine;
|
|||||||
for (var i = 1; i < spacesCount; i++)
|
for (var i = 1; i < spacesCount; i++)
|
||||||
spaces[i] = spacing;
|
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 boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
|
||||||
var tip = false;
|
var tip = false;
|
||||||
if (offsetRotation == 0)
|
if (offsetRotation == 0)
|
||||||
@ -2909,7 +2917,7 @@ var spine;
|
|||||||
var bone = bones[i];
|
var bone = bones[i];
|
||||||
bone.worldX += (boneX - bone.worldX) * translateMix;
|
bone.worldX += (boneX - bone.worldX) * translateMix;
|
||||||
bone.worldY += (boneY - bone.worldY) * 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) {
|
if (scale) {
|
||||||
var length_2 = lengths[i];
|
var length_2 = lengths[i];
|
||||||
if (length_2 != 0) {
|
if (length_2 != 0) {
|
||||||
@ -2918,8 +2926,8 @@ var spine;
|
|||||||
bone.c *= s;
|
bone.c *= s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boneX = x;
|
boneX = x_2;
|
||||||
boneY = y;
|
boneY = y_2;
|
||||||
if (rotate) {
|
if (rotate) {
|
||||||
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
|
||||||
if (tangents)
|
if (tangents)
|
||||||
@ -3073,6 +3081,8 @@ var spine;
|
|||||||
}
|
}
|
||||||
if (percentPosition)
|
if (percentPosition)
|
||||||
position *= pathLength;
|
position *= pathLength;
|
||||||
|
else
|
||||||
|
position *= pathLength / path.lengths[curveCount - 1];
|
||||||
if (percentSpacing) {
|
if (percentSpacing) {
|
||||||
for (var i = 0; i < spacesCount; i++)
|
for (var i = 0; i < spacesCount; i++)
|
||||||
spaces[i] *= pathLength;
|
spaces[i] *= pathLength;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -69,28 +69,35 @@ module spine {
|
|||||||
if (!translate && !rotate) return;
|
if (!translate && !rotate) return;
|
||||||
|
|
||||||
let data = this.data;
|
let data = this.data;
|
||||||
let spacingMode = data.spacingMode;
|
let percentSpacing = data.spacingMode == SpacingMode.Percent;
|
||||||
let lengthSpacing = spacingMode == SpacingMode.Length;
|
|
||||||
let rotateMode = data.rotateMode;
|
let rotateMode = data.rotateMode;
|
||||||
let tangents = rotateMode == RotateMode.Tangent, scale = rotateMode == RotateMode.ChainScale;
|
let tangents = rotateMode == RotateMode.Tangent, scale = rotateMode == RotateMode.ChainScale;
|
||||||
let boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
let boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
|
||||||
let bones = this.bones;
|
let bones = this.bones;
|
||||||
let spaces = Utils.setArraySize(this.spaces, spacesCount), lengths: Array<number> = null;
|
let spaces = Utils.setArraySize(this.spaces, spacesCount), lengths: Array<number> = null;
|
||||||
let spacing = this.spacing;
|
let spacing = this.spacing;
|
||||||
if (scale || lengthSpacing) {
|
if (scale || !percentSpacing) {
|
||||||
if (scale) lengths = Utils.setArraySize(this.lengths, boneCount);
|
if (scale) lengths = Utils.setArraySize(this.lengths, boneCount);
|
||||||
|
var lengthSpacing = data.spacingMode == SpacingMode.Length;
|
||||||
for (let i = 0, n = spacesCount - 1; i < n;) {
|
for (let i = 0, n = spacesCount - 1; i < n;) {
|
||||||
let bone = bones[i];
|
let bone = bones[i];
|
||||||
let setupLength = bone.data.length;
|
let setupLength = bone.data.length;
|
||||||
if (setupLength < PathConstraint.epsilon) {
|
if (setupLength < PathConstraint.epsilon) {
|
||||||
if (scale) lengths[i] = 0;
|
if (scale) lengths[i] = 0;
|
||||||
spaces[++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 {
|
} else {
|
||||||
let x = setupLength * bone.a, y = setupLength * bone.c;
|
let x = setupLength * bone.a, y = setupLength * bone.c;
|
||||||
let length = Math.sqrt(x * x + y * y);
|
let length = Math.sqrt(x * x + y * y);
|
||||||
if (scale) lengths[i] = length;
|
if (scale) lengths[i] = length;
|
||||||
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length / setupLength;
|
spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length / setupLength;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (let i = 1; i < spacesCount; i++)
|
for (let i = 1; i < spacesCount; i++)
|
||||||
@ -98,7 +105,7 @@ module spine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let positions = this.computeWorldPositions(<PathAttachment>attachment, spacesCount, tangents,
|
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 boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
|
||||||
let tip = false;
|
let tip = false;
|
||||||
if (offsetRotation == 0)
|
if (offsetRotation == 0)
|
||||||
@ -277,7 +284,10 @@ module spine {
|
|||||||
x1 = x2;
|
x1 = x2;
|
||||||
y1 = y2;
|
y1 = y2;
|
||||||
}
|
}
|
||||||
if (percentPosition) position *= pathLength;
|
if (percentPosition)
|
||||||
|
position *= pathLength;
|
||||||
|
else
|
||||||
|
position *= pathLength / path.lengths[curveCount - 1];
|
||||||
if (percentSpacing) {
|
if (percentSpacing) {
|
||||||
for (let i = 0; i < spacesCount; i++)
|
for (let i = 0; i < spacesCount; i++)
|
||||||
spaces[i] *= pathLength;
|
spaces[i] *= pathLength;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user