mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-10 17:18:44 +08:00
Merge branch '3.6' into 3.7-beta
This commit is contained in:
commit
a3e4bdd3d8
Binary file not shown.
@ -36,6 +36,7 @@ package spine.animation {
|
||||
import spine.Slot;
|
||||
|
||||
public class DeformTimeline extends CurveTimeline {
|
||||
private static var zeros : Vector.<Number> = new Vector.<Number>(64);
|
||||
public var slotIndex : int;
|
||||
public var frames : Vector.<Number>;
|
||||
public var frameVertices : Vector.<Vector.<Number>>;
|
||||
@ -58,35 +59,54 @@ package spine.animation {
|
||||
}
|
||||
|
||||
override public function apply(skeleton : Skeleton, lastTime : Number, time : Number, firedEvents : Vector.<Event>, alpha : Number, pose : MixPose, direction : MixDirection) : void {
|
||||
var vertexAttachment : VertexAttachment;
|
||||
var setupVertices : Vector.<Number>;
|
||||
var slot : Slot = skeleton.slots[slotIndex];
|
||||
var slotAttachment : Attachment = slot.attachment;
|
||||
if (!(slotAttachment is VertexAttachment) || !(VertexAttachment(slotAttachment)).applyDeform(attachment)) return;
|
||||
|
||||
var verticesArray : Vector.<Number> = slot.attachmentVertices;
|
||||
var frameVertices : Vector.<Vector.<Number>> = this.frameVertices;
|
||||
var vertexCount : int = frameVertices[0].length;
|
||||
if (verticesArray.length != vertexCount && pose != MixPose.setup) alpha = 1; // Don't mix from uninitialized slot vertices.
|
||||
var vertexCount : int = frameVertices[0].length;
|
||||
verticesArray.length = vertexCount;
|
||||
var vertices : Vector.<Number> = verticesArray;
|
||||
|
||||
var frames : Vector.<Number> = this.frames;
|
||||
var i : int;
|
||||
if (time < frames[0]) {
|
||||
vertexAttachment = VertexAttachment(slotAttachment);
|
||||
switch (pose) {
|
||||
case MixPose.setup:
|
||||
verticesArray.length = 0;
|
||||
var zeroVertices : Vector.<Number>;
|
||||
if (vertexAttachment.bones == null) {
|
||||
// Unweighted vertex positions (setup pose).
|
||||
zeroVertices = vertexAttachment.vertices;
|
||||
} else {
|
||||
// Weighted deform offsets (zeros).
|
||||
zeroVertices = zeros;
|
||||
if (zeroVertices.length < vertexCount) zeros = zeroVertices = new Vector.<Number>(vertexCount);
|
||||
}
|
||||
for (i = 0; i < vertexCount; i++)
|
||||
vertices[i] = zeroVertices[i];
|
||||
return;
|
||||
case MixPose.current:
|
||||
alpha = 1 - alpha;
|
||||
for (i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
if (alpha == 1) break;
|
||||
if (vertexAttachment.bones == null) {
|
||||
// Unweighted vertex positions.
|
||||
setupVertices = vertexAttachment.vertices;
|
||||
for (i = 0; i < vertexCount; i++)
|
||||
vertices[i] += (setupVertices[i] - vertices[i]) * alpha;
|
||||
} else {
|
||||
// Weighted deform offsets.
|
||||
alpha = 1 - alpha;
|
||||
for (i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
var n : int;
|
||||
var vertexAttachment : VertexAttachment;
|
||||
var setupVertices : Vector.<Number>;
|
||||
var n : int;
|
||||
var setup : Number, prev : Number;
|
||||
if (time >= frames[frames.length - 1]) { // Time is after last frame.
|
||||
var lastVertices : Vector.<Number> = frameVertices[frames.length - 1];
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -628,12 +628,15 @@ var spine;
|
||||
return AttachmentTimeline;
|
||||
}());
|
||||
spine.AttachmentTimeline = AttachmentTimeline;
|
||||
var zeros = null;
|
||||
var DeformTimeline = (function (_super) {
|
||||
__extends(DeformTimeline, _super);
|
||||
function DeformTimeline(frameCount) {
|
||||
var _this = _super.call(this, frameCount) || this;
|
||||
_this.frames = spine.Utils.newFloatArray(frameCount);
|
||||
_this.frameVertices = new Array(frameCount);
|
||||
if (zeros == null)
|
||||
zeros = spine.Utils.newFloatArray(64);
|
||||
return _this;
|
||||
}
|
||||
DeformTimeline.prototype.getPropertyId = function () {
|
||||
@ -651,19 +654,36 @@ var spine;
|
||||
var verticesArray = slot.attachmentVertices;
|
||||
var frameVertices = this.frameVertices;
|
||||
var vertexCount = frameVertices[0].length;
|
||||
if (verticesArray.length != vertexCount && pose != MixPose.setup)
|
||||
alpha = 1;
|
||||
var vertices = spine.Utils.setArraySize(verticesArray, vertexCount);
|
||||
var frames = this.frames;
|
||||
if (time < frames[0]) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
switch (pose) {
|
||||
case MixPose.setup:
|
||||
verticesArray.length = 0;
|
||||
var zeroVertices;
|
||||
if (vertexAttachment.bones == null) {
|
||||
zeroVertices = vertexAttachment.vertices;
|
||||
}
|
||||
else {
|
||||
zeroVertices = zeros;
|
||||
if (zeroVertices.length < vertexCount)
|
||||
zeros = zeroVertices = spine.Utils.newFloatArray(vertexCount);
|
||||
}
|
||||
spine.Utils.arrayCopy(zeroVertices, 0, vertices, 0, vertexCount);
|
||||
return;
|
||||
case MixPose.current:
|
||||
alpha = 1 - alpha;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
if (alpha == 1)
|
||||
break;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] += (setupVertices[i] - vertices[i]) * alpha;
|
||||
}
|
||||
else {
|
||||
alpha = 1 - alpha;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -675,20 +695,20 @@ var spine;
|
||||
else if (pose == MixPose.setup) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var setup = setupVertices[i];
|
||||
vertices[i] = setup + (lastVertices[i] - setup) * alpha;
|
||||
var setupVertices_1 = vertexAttachment.vertices;
|
||||
for (var i_1 = 0; i_1 < vertexCount; i_1++) {
|
||||
var setup = setupVertices_1[i_1];
|
||||
vertices[i_1] = setup + (lastVertices[i_1] - setup) * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] = lastVertices[i] * alpha;
|
||||
for (var i_2 = 0; i_2 < vertexCount; i_2++)
|
||||
vertices[i_2] = lastVertices[i_2] * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] += (lastVertices[i] - vertices[i]) * alpha;
|
||||
for (var i_3 = 0; i_3 < vertexCount; i_3++)
|
||||
vertices[i_3] += (lastVertices[i_3] - vertices[i_3]) * alpha;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -698,31 +718,31 @@ var spine;
|
||||
var frameTime = frames[frame];
|
||||
var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime));
|
||||
if (alpha == 1) {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] = prev + (nextVertices[i] - prev) * percent;
|
||||
for (var i_4 = 0; i_4 < vertexCount; i_4++) {
|
||||
var prev = prevVertices[i_4];
|
||||
vertices[i_4] = prev + (nextVertices[i_4] - prev) * percent;
|
||||
}
|
||||
}
|
||||
else if (pose == MixPose.setup) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i], setup = setupVertices[i];
|
||||
vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha;
|
||||
var setupVertices_2 = vertexAttachment.vertices;
|
||||
for (var i_5 = 0; i_5 < vertexCount; i_5++) {
|
||||
var prev = prevVertices[i_5], setup = setupVertices_2[i_5];
|
||||
vertices[i_5] = setup + (prev + (nextVertices[i_5] - prev) * percent - setup) * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha;
|
||||
for (var i_6 = 0; i_6 < vertexCount; i_6++) {
|
||||
var prev = prevVertices[i_6];
|
||||
vertices[i_6] = (prev + (nextVertices[i_6] - prev) * percent) * alpha;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha;
|
||||
for (var i_7 = 0; i_7 < vertexCount; i_7++) {
|
||||
var prev = prevVertices[i_7];
|
||||
vertices[i_7] += (prev + (nextVertices[i_7] - prev) * percent - vertices[i_7]) * alpha;
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -6892,8 +6912,8 @@ var spine;
|
||||
break;
|
||||
}
|
||||
var listeners = _this.listeners;
|
||||
for (var i_1 = 0; i_1 < listeners.length; i_1++) {
|
||||
listeners[i_1].down(_this.currTouch.x, _this.currTouch.y);
|
||||
for (var i_8 = 0; i_8 < listeners.length; i_8++) {
|
||||
listeners[i_8].down(_this.currTouch.x, _this.currTouch.y);
|
||||
}
|
||||
console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y);
|
||||
_this.lastX = _this.currTouch.x;
|
||||
@ -6911,8 +6931,8 @@ var spine;
|
||||
var y = _this.currTouch.y = touch.clientY - rect.top;
|
||||
_this.touchesPool.free(_this.currTouch);
|
||||
var listeners = _this.listeners;
|
||||
for (var i_2 = 0; i_2 < listeners.length; i_2++) {
|
||||
listeners[i_2].up(x, y);
|
||||
for (var i_9 = 0; i_9 < listeners.length; i_9++) {
|
||||
listeners[i_9].up(x, y);
|
||||
}
|
||||
console.log("End " + x + ", " + y);
|
||||
_this.lastX = x;
|
||||
@ -6934,8 +6954,8 @@ var spine;
|
||||
var y = _this.currTouch.y = touch.clientY - rect.top;
|
||||
_this.touchesPool.free(_this.currTouch);
|
||||
var listeners = _this.listeners;
|
||||
for (var i_3 = 0; i_3 < listeners.length; i_3++) {
|
||||
listeners[i_3].up(x, y);
|
||||
for (var i_10 = 0; i_10 < listeners.length; i_10++) {
|
||||
listeners[i_10].up(x, y);
|
||||
}
|
||||
console.log("End " + x + ", " + y);
|
||||
_this.lastX = x;
|
||||
@ -6958,8 +6978,8 @@ var spine;
|
||||
var x = touch.clientX - rect.left;
|
||||
var y = touch.clientY - rect.top;
|
||||
var listeners = _this.listeners;
|
||||
for (var i_4 = 0; i_4 < listeners.length; i_4++) {
|
||||
listeners[i_4].dragged(x, y);
|
||||
for (var i_11 = 0; i_11 < listeners.length; i_11++) {
|
||||
listeners[i_11].dragged(x, y);
|
||||
}
|
||||
console.log("Drag " + x + ", " + y);
|
||||
_this.lastX = _this.currTouch.x = x;
|
||||
@ -8738,11 +8758,11 @@ var spine;
|
||||
var nn = clip.worldVerticesLength;
|
||||
var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0);
|
||||
clip.computeWorldVertices(slot, 0, nn, world, 0, 2);
|
||||
for (var i_5 = 0, n_2 = world.length; i_5 < n_2; i_5 += 2) {
|
||||
var x = world[i_5];
|
||||
var y = world[i_5 + 1];
|
||||
var x2 = world[(i_5 + 2) % world.length];
|
||||
var y2 = world[(i_5 + 3) % world.length];
|
||||
for (var i_12 = 0, n_2 = world.length; i_12 < n_2; i_12 += 2) {
|
||||
var x = world[i_12];
|
||||
var y = world[i_12 + 1];
|
||||
var x2 = world[(i_12 + 2) % world.length];
|
||||
var y2 = world[(i_12 + 3) % world.length];
|
||||
shapes.line(x, y, x2, y2);
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -628,12 +628,15 @@ var spine;
|
||||
return AttachmentTimeline;
|
||||
}());
|
||||
spine.AttachmentTimeline = AttachmentTimeline;
|
||||
var zeros = null;
|
||||
var DeformTimeline = (function (_super) {
|
||||
__extends(DeformTimeline, _super);
|
||||
function DeformTimeline(frameCount) {
|
||||
var _this = _super.call(this, frameCount) || this;
|
||||
_this.frames = spine.Utils.newFloatArray(frameCount);
|
||||
_this.frameVertices = new Array(frameCount);
|
||||
if (zeros == null)
|
||||
zeros = spine.Utils.newFloatArray(64);
|
||||
return _this;
|
||||
}
|
||||
DeformTimeline.prototype.getPropertyId = function () {
|
||||
@ -651,19 +654,36 @@ var spine;
|
||||
var verticesArray = slot.attachmentVertices;
|
||||
var frameVertices = this.frameVertices;
|
||||
var vertexCount = frameVertices[0].length;
|
||||
if (verticesArray.length != vertexCount && pose != MixPose.setup)
|
||||
alpha = 1;
|
||||
var vertices = spine.Utils.setArraySize(verticesArray, vertexCount);
|
||||
var frames = this.frames;
|
||||
if (time < frames[0]) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
switch (pose) {
|
||||
case MixPose.setup:
|
||||
verticesArray.length = 0;
|
||||
var zeroVertices;
|
||||
if (vertexAttachment.bones == null) {
|
||||
zeroVertices = vertexAttachment.vertices;
|
||||
}
|
||||
else {
|
||||
zeroVertices = zeros;
|
||||
if (zeroVertices.length < vertexCount)
|
||||
zeros = zeroVertices = spine.Utils.newFloatArray(vertexCount);
|
||||
}
|
||||
spine.Utils.arrayCopy(zeroVertices, 0, vertices, 0, vertexCount);
|
||||
return;
|
||||
case MixPose.current:
|
||||
alpha = 1 - alpha;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
if (alpha == 1)
|
||||
break;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] += (setupVertices[i] - vertices[i]) * alpha;
|
||||
}
|
||||
else {
|
||||
alpha = 1 - alpha;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -675,20 +695,20 @@ var spine;
|
||||
else if (pose == MixPose.setup) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var setup = setupVertices[i];
|
||||
vertices[i] = setup + (lastVertices[i] - setup) * alpha;
|
||||
var setupVertices_1 = vertexAttachment.vertices;
|
||||
for (var i_1 = 0; i_1 < vertexCount; i_1++) {
|
||||
var setup = setupVertices_1[i_1];
|
||||
vertices[i_1] = setup + (lastVertices[i_1] - setup) * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] = lastVertices[i] * alpha;
|
||||
for (var i_2 = 0; i_2 < vertexCount; i_2++)
|
||||
vertices[i_2] = lastVertices[i_2] * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] += (lastVertices[i] - vertices[i]) * alpha;
|
||||
for (var i_3 = 0; i_3 < vertexCount; i_3++)
|
||||
vertices[i_3] += (lastVertices[i_3] - vertices[i_3]) * alpha;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -698,31 +718,31 @@ var spine;
|
||||
var frameTime = frames[frame];
|
||||
var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime));
|
||||
if (alpha == 1) {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] = prev + (nextVertices[i] - prev) * percent;
|
||||
for (var i_4 = 0; i_4 < vertexCount; i_4++) {
|
||||
var prev = prevVertices[i_4];
|
||||
vertices[i_4] = prev + (nextVertices[i_4] - prev) * percent;
|
||||
}
|
||||
}
|
||||
else if (pose == MixPose.setup) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i], setup = setupVertices[i];
|
||||
vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha;
|
||||
var setupVertices_2 = vertexAttachment.vertices;
|
||||
for (var i_5 = 0; i_5 < vertexCount; i_5++) {
|
||||
var prev = prevVertices[i_5], setup = setupVertices_2[i_5];
|
||||
vertices[i_5] = setup + (prev + (nextVertices[i_5] - prev) * percent - setup) * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha;
|
||||
for (var i_6 = 0; i_6 < vertexCount; i_6++) {
|
||||
var prev = prevVertices[i_6];
|
||||
vertices[i_6] = (prev + (nextVertices[i_6] - prev) * percent) * alpha;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha;
|
||||
for (var i_7 = 0; i_7 < vertexCount; i_7++) {
|
||||
var prev = prevVertices[i_7];
|
||||
vertices[i_7] += (prev + (nextVertices[i_7] - prev) * percent - vertices[i_7]) * alpha;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -628,12 +628,15 @@ var spine;
|
||||
return AttachmentTimeline;
|
||||
}());
|
||||
spine.AttachmentTimeline = AttachmentTimeline;
|
||||
var zeros = null;
|
||||
var DeformTimeline = (function (_super) {
|
||||
__extends(DeformTimeline, _super);
|
||||
function DeformTimeline(frameCount) {
|
||||
var _this = _super.call(this, frameCount) || this;
|
||||
_this.frames = spine.Utils.newFloatArray(frameCount);
|
||||
_this.frameVertices = new Array(frameCount);
|
||||
if (zeros == null)
|
||||
zeros = spine.Utils.newFloatArray(64);
|
||||
return _this;
|
||||
}
|
||||
DeformTimeline.prototype.getPropertyId = function () {
|
||||
@ -651,19 +654,36 @@ var spine;
|
||||
var verticesArray = slot.attachmentVertices;
|
||||
var frameVertices = this.frameVertices;
|
||||
var vertexCount = frameVertices[0].length;
|
||||
if (verticesArray.length != vertexCount && pose != MixPose.setup)
|
||||
alpha = 1;
|
||||
var vertices = spine.Utils.setArraySize(verticesArray, vertexCount);
|
||||
var frames = this.frames;
|
||||
if (time < frames[0]) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
switch (pose) {
|
||||
case MixPose.setup:
|
||||
verticesArray.length = 0;
|
||||
var zeroVertices;
|
||||
if (vertexAttachment.bones == null) {
|
||||
zeroVertices = vertexAttachment.vertices;
|
||||
}
|
||||
else {
|
||||
zeroVertices = zeros;
|
||||
if (zeroVertices.length < vertexCount)
|
||||
zeros = zeroVertices = spine.Utils.newFloatArray(vertexCount);
|
||||
}
|
||||
spine.Utils.arrayCopy(zeroVertices, 0, vertices, 0, vertexCount);
|
||||
return;
|
||||
case MixPose.current:
|
||||
alpha = 1 - alpha;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
if (alpha == 1)
|
||||
break;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] += (setupVertices[i] - vertices[i]) * alpha;
|
||||
}
|
||||
else {
|
||||
alpha = 1 - alpha;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -675,20 +695,20 @@ var spine;
|
||||
else if (pose == MixPose.setup) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var setup = setupVertices[i];
|
||||
vertices[i] = setup + (lastVertices[i] - setup) * alpha;
|
||||
var setupVertices_1 = vertexAttachment.vertices;
|
||||
for (var i_1 = 0; i_1 < vertexCount; i_1++) {
|
||||
var setup = setupVertices_1[i_1];
|
||||
vertices[i_1] = setup + (lastVertices[i_1] - setup) * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] = lastVertices[i] * alpha;
|
||||
for (var i_2 = 0; i_2 < vertexCount; i_2++)
|
||||
vertices[i_2] = lastVertices[i_2] * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] += (lastVertices[i] - vertices[i]) * alpha;
|
||||
for (var i_3 = 0; i_3 < vertexCount; i_3++)
|
||||
vertices[i_3] += (lastVertices[i_3] - vertices[i_3]) * alpha;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -698,31 +718,31 @@ var spine;
|
||||
var frameTime = frames[frame];
|
||||
var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime));
|
||||
if (alpha == 1) {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] = prev + (nextVertices[i] - prev) * percent;
|
||||
for (var i_4 = 0; i_4 < vertexCount; i_4++) {
|
||||
var prev = prevVertices[i_4];
|
||||
vertices[i_4] = prev + (nextVertices[i_4] - prev) * percent;
|
||||
}
|
||||
}
|
||||
else if (pose == MixPose.setup) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i], setup = setupVertices[i];
|
||||
vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha;
|
||||
var setupVertices_2 = vertexAttachment.vertices;
|
||||
for (var i_5 = 0; i_5 < vertexCount; i_5++) {
|
||||
var prev = prevVertices[i_5], setup = setupVertices_2[i_5];
|
||||
vertices[i_5] = setup + (prev + (nextVertices[i_5] - prev) * percent - setup) * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha;
|
||||
for (var i_6 = 0; i_6 < vertexCount; i_6++) {
|
||||
var prev = prevVertices[i_6];
|
||||
vertices[i_6] = (prev + (nextVertices[i_6] - prev) * percent) * alpha;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha;
|
||||
for (var i_7 = 0; i_7 < vertexCount; i_7++) {
|
||||
var prev = prevVertices[i_7];
|
||||
vertices[i_7] += (prev + (nextVertices[i_7] - prev) * percent - vertices[i_7]) * alpha;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -628,12 +628,15 @@ var spine;
|
||||
return AttachmentTimeline;
|
||||
}());
|
||||
spine.AttachmentTimeline = AttachmentTimeline;
|
||||
var zeros = null;
|
||||
var DeformTimeline = (function (_super) {
|
||||
__extends(DeformTimeline, _super);
|
||||
function DeformTimeline(frameCount) {
|
||||
var _this = _super.call(this, frameCount) || this;
|
||||
_this.frames = spine.Utils.newFloatArray(frameCount);
|
||||
_this.frameVertices = new Array(frameCount);
|
||||
if (zeros == null)
|
||||
zeros = spine.Utils.newFloatArray(64);
|
||||
return _this;
|
||||
}
|
||||
DeformTimeline.prototype.getPropertyId = function () {
|
||||
@ -651,19 +654,36 @@ var spine;
|
||||
var verticesArray = slot.attachmentVertices;
|
||||
var frameVertices = this.frameVertices;
|
||||
var vertexCount = frameVertices[0].length;
|
||||
if (verticesArray.length != vertexCount && pose != MixPose.setup)
|
||||
alpha = 1;
|
||||
var vertices = spine.Utils.setArraySize(verticesArray, vertexCount);
|
||||
var frames = this.frames;
|
||||
if (time < frames[0]) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
switch (pose) {
|
||||
case MixPose.setup:
|
||||
verticesArray.length = 0;
|
||||
var zeroVertices;
|
||||
if (vertexAttachment.bones == null) {
|
||||
zeroVertices = vertexAttachment.vertices;
|
||||
}
|
||||
else {
|
||||
zeroVertices = zeros;
|
||||
if (zeroVertices.length < vertexCount)
|
||||
zeros = zeroVertices = spine.Utils.newFloatArray(vertexCount);
|
||||
}
|
||||
spine.Utils.arrayCopy(zeroVertices, 0, vertices, 0, vertexCount);
|
||||
return;
|
||||
case MixPose.current:
|
||||
alpha = 1 - alpha;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
if (alpha == 1)
|
||||
break;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] += (setupVertices[i] - vertices[i]) * alpha;
|
||||
}
|
||||
else {
|
||||
alpha = 1 - alpha;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -675,20 +695,20 @@ var spine;
|
||||
else if (pose == MixPose.setup) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var setup = setupVertices[i];
|
||||
vertices[i] = setup + (lastVertices[i] - setup) * alpha;
|
||||
var setupVertices_1 = vertexAttachment.vertices;
|
||||
for (var i_1 = 0; i_1 < vertexCount; i_1++) {
|
||||
var setup = setupVertices_1[i_1];
|
||||
vertices[i_1] = setup + (lastVertices[i_1] - setup) * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] = lastVertices[i] * alpha;
|
||||
for (var i_2 = 0; i_2 < vertexCount; i_2++)
|
||||
vertices[i_2] = lastVertices[i_2] * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] += (lastVertices[i] - vertices[i]) * alpha;
|
||||
for (var i_3 = 0; i_3 < vertexCount; i_3++)
|
||||
vertices[i_3] += (lastVertices[i_3] - vertices[i_3]) * alpha;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -698,31 +718,31 @@ var spine;
|
||||
var frameTime = frames[frame];
|
||||
var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime));
|
||||
if (alpha == 1) {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] = prev + (nextVertices[i] - prev) * percent;
|
||||
for (var i_4 = 0; i_4 < vertexCount; i_4++) {
|
||||
var prev = prevVertices[i_4];
|
||||
vertices[i_4] = prev + (nextVertices[i_4] - prev) * percent;
|
||||
}
|
||||
}
|
||||
else if (pose == MixPose.setup) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i], setup = setupVertices[i];
|
||||
vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha;
|
||||
var setupVertices_2 = vertexAttachment.vertices;
|
||||
for (var i_5 = 0; i_5 < vertexCount; i_5++) {
|
||||
var prev = prevVertices[i_5], setup = setupVertices_2[i_5];
|
||||
vertices[i_5] = setup + (prev + (nextVertices[i_5] - prev) * percent - setup) * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha;
|
||||
for (var i_6 = 0; i_6 < vertexCount; i_6++) {
|
||||
var prev = prevVertices[i_6];
|
||||
vertices[i_6] = (prev + (nextVertices[i_6] - prev) * percent) * alpha;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha;
|
||||
for (var i_7 = 0; i_7 < vertexCount; i_7++) {
|
||||
var prev = prevVertices[i_7];
|
||||
vertices[i_7] += (prev + (nextVertices[i_7] - prev) * percent - vertices[i_7]) * alpha;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -628,12 +628,15 @@ var spine;
|
||||
return AttachmentTimeline;
|
||||
}());
|
||||
spine.AttachmentTimeline = AttachmentTimeline;
|
||||
var zeros = null;
|
||||
var DeformTimeline = (function (_super) {
|
||||
__extends(DeformTimeline, _super);
|
||||
function DeformTimeline(frameCount) {
|
||||
var _this = _super.call(this, frameCount) || this;
|
||||
_this.frames = spine.Utils.newFloatArray(frameCount);
|
||||
_this.frameVertices = new Array(frameCount);
|
||||
if (zeros == null)
|
||||
zeros = spine.Utils.newFloatArray(64);
|
||||
return _this;
|
||||
}
|
||||
DeformTimeline.prototype.getPropertyId = function () {
|
||||
@ -651,19 +654,36 @@ var spine;
|
||||
var verticesArray = slot.attachmentVertices;
|
||||
var frameVertices = this.frameVertices;
|
||||
var vertexCount = frameVertices[0].length;
|
||||
if (verticesArray.length != vertexCount && pose != MixPose.setup)
|
||||
alpha = 1;
|
||||
var vertices = spine.Utils.setArraySize(verticesArray, vertexCount);
|
||||
var frames = this.frames;
|
||||
if (time < frames[0]) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
switch (pose) {
|
||||
case MixPose.setup:
|
||||
verticesArray.length = 0;
|
||||
var zeroVertices;
|
||||
if (vertexAttachment.bones == null) {
|
||||
zeroVertices = vertexAttachment.vertices;
|
||||
}
|
||||
else {
|
||||
zeroVertices = zeros;
|
||||
if (zeroVertices.length < vertexCount)
|
||||
zeros = zeroVertices = spine.Utils.newFloatArray(vertexCount);
|
||||
}
|
||||
spine.Utils.arrayCopy(zeroVertices, 0, vertices, 0, vertexCount);
|
||||
return;
|
||||
case MixPose.current:
|
||||
alpha = 1 - alpha;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
if (alpha == 1)
|
||||
break;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] += (setupVertices[i] - vertices[i]) * alpha;
|
||||
}
|
||||
else {
|
||||
alpha = 1 - alpha;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -675,20 +695,20 @@ var spine;
|
||||
else if (pose == MixPose.setup) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var setup = setupVertices[i];
|
||||
vertices[i] = setup + (lastVertices[i] - setup) * alpha;
|
||||
var setupVertices_1 = vertexAttachment.vertices;
|
||||
for (var i_1 = 0; i_1 < vertexCount; i_1++) {
|
||||
var setup = setupVertices_1[i_1];
|
||||
vertices[i_1] = setup + (lastVertices[i_1] - setup) * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] = lastVertices[i] * alpha;
|
||||
for (var i_2 = 0; i_2 < vertexCount; i_2++)
|
||||
vertices[i_2] = lastVertices[i_2] * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] += (lastVertices[i] - vertices[i]) * alpha;
|
||||
for (var i_3 = 0; i_3 < vertexCount; i_3++)
|
||||
vertices[i_3] += (lastVertices[i_3] - vertices[i_3]) * alpha;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -698,31 +718,31 @@ var spine;
|
||||
var frameTime = frames[frame];
|
||||
var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime));
|
||||
if (alpha == 1) {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] = prev + (nextVertices[i] - prev) * percent;
|
||||
for (var i_4 = 0; i_4 < vertexCount; i_4++) {
|
||||
var prev = prevVertices[i_4];
|
||||
vertices[i_4] = prev + (nextVertices[i_4] - prev) * percent;
|
||||
}
|
||||
}
|
||||
else if (pose == MixPose.setup) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i], setup = setupVertices[i];
|
||||
vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha;
|
||||
var setupVertices_2 = vertexAttachment.vertices;
|
||||
for (var i_5 = 0; i_5 < vertexCount; i_5++) {
|
||||
var prev = prevVertices[i_5], setup = setupVertices_2[i_5];
|
||||
vertices[i_5] = setup + (prev + (nextVertices[i_5] - prev) * percent - setup) * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha;
|
||||
for (var i_6 = 0; i_6 < vertexCount; i_6++) {
|
||||
var prev = prevVertices[i_6];
|
||||
vertices[i_6] = (prev + (nextVertices[i_6] - prev) * percent) * alpha;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha;
|
||||
for (var i_7 = 0; i_7 < vertexCount; i_7++) {
|
||||
var prev = prevVertices[i_7];
|
||||
vertices[i_7] += (prev + (nextVertices[i_7] - prev) * percent - vertices[i_7]) * alpha;
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -6638,8 +6658,8 @@ var spine;
|
||||
break;
|
||||
}
|
||||
var listeners = _this.listeners;
|
||||
for (var i_1 = 0; i_1 < listeners.length; i_1++) {
|
||||
listeners[i_1].down(_this.currTouch.x, _this.currTouch.y);
|
||||
for (var i_8 = 0; i_8 < listeners.length; i_8++) {
|
||||
listeners[i_8].down(_this.currTouch.x, _this.currTouch.y);
|
||||
}
|
||||
console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y);
|
||||
_this.lastX = _this.currTouch.x;
|
||||
@ -6657,8 +6677,8 @@ var spine;
|
||||
var y = _this.currTouch.y = touch.clientY - rect.top;
|
||||
_this.touchesPool.free(_this.currTouch);
|
||||
var listeners = _this.listeners;
|
||||
for (var i_2 = 0; i_2 < listeners.length; i_2++) {
|
||||
listeners[i_2].up(x, y);
|
||||
for (var i_9 = 0; i_9 < listeners.length; i_9++) {
|
||||
listeners[i_9].up(x, y);
|
||||
}
|
||||
console.log("End " + x + ", " + y);
|
||||
_this.lastX = x;
|
||||
@ -6680,8 +6700,8 @@ var spine;
|
||||
var y = _this.currTouch.y = touch.clientY - rect.top;
|
||||
_this.touchesPool.free(_this.currTouch);
|
||||
var listeners = _this.listeners;
|
||||
for (var i_3 = 0; i_3 < listeners.length; i_3++) {
|
||||
listeners[i_3].up(x, y);
|
||||
for (var i_10 = 0; i_10 < listeners.length; i_10++) {
|
||||
listeners[i_10].up(x, y);
|
||||
}
|
||||
console.log("End " + x + ", " + y);
|
||||
_this.lastX = x;
|
||||
@ -6704,8 +6724,8 @@ var spine;
|
||||
var x = touch.clientX - rect.left;
|
||||
var y = touch.clientY - rect.top;
|
||||
var listeners = _this.listeners;
|
||||
for (var i_4 = 0; i_4 < listeners.length; i_4++) {
|
||||
listeners[i_4].dragged(x, y);
|
||||
for (var i_11 = 0; i_11 < listeners.length; i_11++) {
|
||||
listeners[i_11].dragged(x, y);
|
||||
}
|
||||
console.log("Drag " + x + ", " + y);
|
||||
_this.lastX = _this.currTouch.x = x;
|
||||
@ -8484,11 +8504,11 @@ var spine;
|
||||
var nn = clip.worldVerticesLength;
|
||||
var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0);
|
||||
clip.computeWorldVertices(slot, 0, nn, world, 0, 2);
|
||||
for (var i_5 = 0, n_2 = world.length; i_5 < n_2; i_5 += 2) {
|
||||
var x = world[i_5];
|
||||
var y = world[i_5 + 1];
|
||||
var x2 = world[(i_5 + 2) % world.length];
|
||||
var y2 = world[(i_5 + 3) % world.length];
|
||||
for (var i_12 = 0, n_2 = world.length; i_12 < n_2; i_12 += 2) {
|
||||
var x = world[i_12];
|
||||
var y = world[i_12 + 1];
|
||||
var x2 = world[(i_12 + 2) % world.length];
|
||||
var y2 = world[(i_12 + 3) % world.length];
|
||||
shapes.line(x, y, x2, y2);
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -628,12 +628,15 @@ var spine;
|
||||
return AttachmentTimeline;
|
||||
}());
|
||||
spine.AttachmentTimeline = AttachmentTimeline;
|
||||
var zeros = null;
|
||||
var DeformTimeline = (function (_super) {
|
||||
__extends(DeformTimeline, _super);
|
||||
function DeformTimeline(frameCount) {
|
||||
var _this = _super.call(this, frameCount) || this;
|
||||
_this.frames = spine.Utils.newFloatArray(frameCount);
|
||||
_this.frameVertices = new Array(frameCount);
|
||||
if (zeros == null)
|
||||
zeros = spine.Utils.newFloatArray(64);
|
||||
return _this;
|
||||
}
|
||||
DeformTimeline.prototype.getPropertyId = function () {
|
||||
@ -651,19 +654,36 @@ var spine;
|
||||
var verticesArray = slot.attachmentVertices;
|
||||
var frameVertices = this.frameVertices;
|
||||
var vertexCount = frameVertices[0].length;
|
||||
if (verticesArray.length != vertexCount && pose != MixPose.setup)
|
||||
alpha = 1;
|
||||
var vertices = spine.Utils.setArraySize(verticesArray, vertexCount);
|
||||
var frames = this.frames;
|
||||
if (time < frames[0]) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
switch (pose) {
|
||||
case MixPose.setup:
|
||||
verticesArray.length = 0;
|
||||
var zeroVertices;
|
||||
if (vertexAttachment.bones == null) {
|
||||
zeroVertices = vertexAttachment.vertices;
|
||||
}
|
||||
else {
|
||||
zeroVertices = zeros;
|
||||
if (zeroVertices.length < vertexCount)
|
||||
zeros = zeroVertices = spine.Utils.newFloatArray(vertexCount);
|
||||
}
|
||||
spine.Utils.arrayCopy(zeroVertices, 0, vertices, 0, vertexCount);
|
||||
return;
|
||||
case MixPose.current:
|
||||
alpha = 1 - alpha;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
if (alpha == 1)
|
||||
break;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] += (setupVertices[i] - vertices[i]) * alpha;
|
||||
}
|
||||
else {
|
||||
alpha = 1 - alpha;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -675,20 +695,20 @@ var spine;
|
||||
else if (pose == MixPose.setup) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var setup = setupVertices[i];
|
||||
vertices[i] = setup + (lastVertices[i] - setup) * alpha;
|
||||
var setupVertices_1 = vertexAttachment.vertices;
|
||||
for (var i_1 = 0; i_1 < vertexCount; i_1++) {
|
||||
var setup = setupVertices_1[i_1];
|
||||
vertices[i_1] = setup + (lastVertices[i_1] - setup) * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] = lastVertices[i] * alpha;
|
||||
for (var i_2 = 0; i_2 < vertexCount; i_2++)
|
||||
vertices[i_2] = lastVertices[i_2] * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] += (lastVertices[i] - vertices[i]) * alpha;
|
||||
for (var i_3 = 0; i_3 < vertexCount; i_3++)
|
||||
vertices[i_3] += (lastVertices[i_3] - vertices[i_3]) * alpha;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -698,31 +718,31 @@ var spine;
|
||||
var frameTime = frames[frame];
|
||||
var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime));
|
||||
if (alpha == 1) {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] = prev + (nextVertices[i] - prev) * percent;
|
||||
for (var i_4 = 0; i_4 < vertexCount; i_4++) {
|
||||
var prev = prevVertices[i_4];
|
||||
vertices[i_4] = prev + (nextVertices[i_4] - prev) * percent;
|
||||
}
|
||||
}
|
||||
else if (pose == MixPose.setup) {
|
||||
var vertexAttachment = slotAttachment;
|
||||
if (vertexAttachment.bones == null) {
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i], setup = setupVertices[i];
|
||||
vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha;
|
||||
var setupVertices_2 = vertexAttachment.vertices;
|
||||
for (var i_5 = 0; i_5 < vertexCount; i_5++) {
|
||||
var prev = prevVertices[i_5], setup = setupVertices_2[i_5];
|
||||
vertices[i_5] = setup + (prev + (nextVertices[i_5] - prev) * percent - setup) * alpha;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha;
|
||||
for (var i_6 = 0; i_6 < vertexCount; i_6++) {
|
||||
var prev = prevVertices[i_6];
|
||||
vertices[i_6] = (prev + (nextVertices[i_6] - prev) * percent) * alpha;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < vertexCount; i++) {
|
||||
var prev = prevVertices[i];
|
||||
vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha;
|
||||
for (var i_7 = 0; i_7 < vertexCount; i_7++) {
|
||||
var prev = prevVertices[i_7];
|
||||
vertices[i_7] += (prev + (nextVertices[i_7] - prev) * percent - vertices[i_7]) * alpha;
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -6638,8 +6658,8 @@ var spine;
|
||||
break;
|
||||
}
|
||||
var listeners = _this.listeners;
|
||||
for (var i_1 = 0; i_1 < listeners.length; i_1++) {
|
||||
listeners[i_1].down(_this.currTouch.x, _this.currTouch.y);
|
||||
for (var i_8 = 0; i_8 < listeners.length; i_8++) {
|
||||
listeners[i_8].down(_this.currTouch.x, _this.currTouch.y);
|
||||
}
|
||||
console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y);
|
||||
_this.lastX = _this.currTouch.x;
|
||||
@ -6657,8 +6677,8 @@ var spine;
|
||||
var y = _this.currTouch.y = touch.clientY - rect.top;
|
||||
_this.touchesPool.free(_this.currTouch);
|
||||
var listeners = _this.listeners;
|
||||
for (var i_2 = 0; i_2 < listeners.length; i_2++) {
|
||||
listeners[i_2].up(x, y);
|
||||
for (var i_9 = 0; i_9 < listeners.length; i_9++) {
|
||||
listeners[i_9].up(x, y);
|
||||
}
|
||||
console.log("End " + x + ", " + y);
|
||||
_this.lastX = x;
|
||||
@ -6680,8 +6700,8 @@ var spine;
|
||||
var y = _this.currTouch.y = touch.clientY - rect.top;
|
||||
_this.touchesPool.free(_this.currTouch);
|
||||
var listeners = _this.listeners;
|
||||
for (var i_3 = 0; i_3 < listeners.length; i_3++) {
|
||||
listeners[i_3].up(x, y);
|
||||
for (var i_10 = 0; i_10 < listeners.length; i_10++) {
|
||||
listeners[i_10].up(x, y);
|
||||
}
|
||||
console.log("End " + x + ", " + y);
|
||||
_this.lastX = x;
|
||||
@ -6704,8 +6724,8 @@ var spine;
|
||||
var x = touch.clientX - rect.left;
|
||||
var y = touch.clientY - rect.top;
|
||||
var listeners = _this.listeners;
|
||||
for (var i_4 = 0; i_4 < listeners.length; i_4++) {
|
||||
listeners[i_4].dragged(x, y);
|
||||
for (var i_11 = 0; i_11 < listeners.length; i_11++) {
|
||||
listeners[i_11].dragged(x, y);
|
||||
}
|
||||
console.log("Drag " + x + ", " + y);
|
||||
_this.lastX = _this.currTouch.x = x;
|
||||
@ -8484,11 +8504,11 @@ var spine;
|
||||
var nn = clip.worldVerticesLength;
|
||||
var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0);
|
||||
clip.computeWorldVertices(slot, 0, nn, world, 0, 2);
|
||||
for (var i_5 = 0, n_2 = world.length; i_5 < n_2; i_5 += 2) {
|
||||
var x = world[i_5];
|
||||
var y = world[i_5 + 1];
|
||||
var x2 = world[(i_5 + 2) % world.length];
|
||||
var y2 = world[(i_5 + 3) % world.length];
|
||||
for (var i_12 = 0, n_2 = world.length; i_12 < n_2; i_12 += 2) {
|
||||
var x = world[i_12];
|
||||
var y = world[i_12 + 1];
|
||||
var x2 = world[(i_12 + 2) % world.length];
|
||||
var y2 = world[(i_12 + 3) % world.length];
|
||||
shapes.line(x, y, x2, y2);
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -677,6 +677,8 @@ module spine {
|
||||
}
|
||||
}
|
||||
|
||||
var zeros : ArrayLike<number> = null;
|
||||
|
||||
export class DeformTimeline extends CurveTimeline {
|
||||
slotIndex: number;
|
||||
attachment: VertexAttachment;
|
||||
@ -687,6 +689,7 @@ module spine {
|
||||
super(frameCount);
|
||||
this.frames = Utils.newFloatArray(frameCount);
|
||||
this.frameVertices = new Array<ArrayLike<number>>(frameCount);
|
||||
if (zeros == null) zeros = Utils.newFloatArray(64);
|
||||
}
|
||||
|
||||
getPropertyId () {
|
||||
@ -703,26 +706,44 @@ module spine {
|
||||
let slot: Slot = skeleton.slots[this.slotIndex];
|
||||
let slotAttachment: Attachment = slot.getAttachment();
|
||||
if (!(slotAttachment instanceof VertexAttachment) || !(<VertexAttachment>slotAttachment).applyDeform(this.attachment)) return;
|
||||
|
||||
|
||||
let verticesArray: Array<number> = slot.attachmentVertices;
|
||||
let frameVertices = this.frameVertices;
|
||||
let vertexCount = frameVertices[0].length;
|
||||
if (verticesArray.length != vertexCount && pose != MixPose.setup) alpha = 1; // Don't mix from uninitialized slot vertices.
|
||||
let frameVertices = this.frameVertices;
|
||||
let vertexCount = frameVertices[0].length;
|
||||
let vertices: Array<number> = Utils.setArraySize(verticesArray, vertexCount);
|
||||
|
||||
let frames = this.frames;
|
||||
if (time < frames[0]) {
|
||||
let vertexAttachment = <VertexAttachment>slotAttachment;
|
||||
switch (pose) {
|
||||
case MixPose.setup:
|
||||
verticesArray.length = 0;
|
||||
var zeroVertices: ArrayLike<number>;
|
||||
if (vertexAttachment.bones == null) {
|
||||
// Unweighted vertex positions (setup pose).
|
||||
zeroVertices = vertexAttachment.vertices;
|
||||
} else {
|
||||
// Weighted deform offsets (zeros).
|
||||
zeroVertices = zeros;
|
||||
if (zeroVertices.length < vertexCount) zeros = zeroVertices = Utils.newFloatArray(vertexCount);
|
||||
}
|
||||
Utils.arrayCopy(zeroVertices, 0, vertices, 0, vertexCount);
|
||||
return;
|
||||
case MixPose.current:
|
||||
alpha = 1 - alpha;
|
||||
for (let i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
if (alpha == 1) break;
|
||||
if (vertexAttachment.bones == null) {
|
||||
// Unweighted vertex positions.
|
||||
var setupVertices = vertexAttachment.vertices;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] += (setupVertices[i] - vertices[i]) * alpha;
|
||||
} else {
|
||||
// Weighted deform offsets.
|
||||
alpha = 1 - alpha;
|
||||
for (var i = 0; i < vertexCount; i++)
|
||||
vertices[i] *= alpha;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (time >= frames[frames.length - 1]) { // Time is after last frame.
|
||||
let lastVertices = frameVertices[frames.length - 1];
|
||||
|
||||
@ -40,7 +40,7 @@ namespace Spine.Unity.Editor {
|
||||
|
||||
protected override void OnEnable () {
|
||||
base.OnEnable();
|
||||
mecanimTranslator = serializedObject.FindProperty("mecanimTranslator");
|
||||
mecanimTranslator = serializedObject.FindProperty("translator");
|
||||
}
|
||||
|
||||
protected override void DrawInspectorGUI (bool multi) {
|
||||
|
||||
@ -228,12 +228,10 @@ namespace Spine.Unity.Editor {
|
||||
EditorApplication.hierarchyWindowItemOnGUI += HierarchyDragAndDrop;
|
||||
|
||||
// Hierarchy Icons
|
||||
EditorApplication.hierarchyWindowChanged -= HierarchyIconsOnChanged;
|
||||
EditorApplication.hierarchyWindowChanged += HierarchyIconsOnChanged;
|
||||
EditorApplication.hierarchyWindowItemOnGUI -= HierarchyIconsOnGUI;
|
||||
EditorApplication.hierarchyWindowItemOnGUI += HierarchyIconsOnGUI;
|
||||
EditorApplication.playmodeStateChanged -= HierarchyIconsOnPlaymodeStateChanged;
|
||||
EditorApplication.playmodeStateChanged += HierarchyIconsOnPlaymodeStateChanged;
|
||||
HierarchyIconsOnPlaymodeStateChanged();
|
||||
|
||||
HierarchyIconsOnChanged();
|
||||
initialized = true;
|
||||
}
|
||||
|
||||
@ -255,7 +253,7 @@ namespace Spine.Unity.Editor {
|
||||
showHierarchyIcons = EditorGUILayout.Toggle(new GUIContent("Show Hierarchy Icons", "Show relevant icons on GameObjects with Spine Components on them. Disable this if you have large, complex scenes."), showHierarchyIcons);
|
||||
if (EditorGUI.EndChangeCheck()) {
|
||||
EditorPrefs.SetBool(SHOW_HIERARCHY_ICONS_KEY, showHierarchyIcons);
|
||||
HierarchyIconsOnChanged();
|
||||
HierarchyIconsOnPlaymodeStateChanged();
|
||||
}
|
||||
|
||||
EditorGUILayout.Separator();
|
||||
@ -496,58 +494,68 @@ namespace Spine.Unity.Editor {
|
||||
#endregion
|
||||
|
||||
#region Hierarchy
|
||||
static void HierarchyIconsOnChanged () {
|
||||
if (showHierarchyIcons) {
|
||||
skeletonRendererTable.Clear();
|
||||
skeletonUtilityBoneTable.Clear();
|
||||
boundingBoxFollowerTable.Clear();
|
||||
static void HierarchyIconsOnPlaymodeStateChanged () {
|
||||
skeletonRendererTable.Clear();
|
||||
skeletonUtilityBoneTable.Clear();
|
||||
boundingBoxFollowerTable.Clear();
|
||||
|
||||
SkeletonRenderer[] arr = Object.FindObjectsOfType<SkeletonRenderer>();
|
||||
foreach (SkeletonRenderer r in arr)
|
||||
skeletonRendererTable.Add(r.gameObject.GetInstanceID(), r.gameObject);
|
||||
EditorApplication.hierarchyWindowChanged -= HierarchyIconsOnChanged;
|
||||
EditorApplication.hierarchyWindowItemOnGUI -= HierarchyIconsOnGUI;
|
||||
|
||||
SkeletonUtilityBone[] boneArr = Object.FindObjectsOfType<SkeletonUtilityBone>();
|
||||
foreach (SkeletonUtilityBone b in boneArr)
|
||||
skeletonUtilityBoneTable.Add(b.gameObject.GetInstanceID(), b);
|
||||
|
||||
BoundingBoxFollower[] bbfArr = Object.FindObjectsOfType<BoundingBoxFollower>();
|
||||
foreach (BoundingBoxFollower bbf in bbfArr)
|
||||
boundingBoxFollowerTable.Add(bbf.gameObject.GetInstanceID(), bbf);
|
||||
if (!Application.isPlaying && showHierarchyIcons) {
|
||||
EditorApplication.hierarchyWindowChanged += HierarchyIconsOnChanged;
|
||||
EditorApplication.hierarchyWindowItemOnGUI += HierarchyIconsOnGUI;
|
||||
HierarchyIconsOnChanged();
|
||||
}
|
||||
}
|
||||
|
||||
static void HierarchyIconsOnGUI (int instanceId, Rect selectionRect) {
|
||||
if (showHierarchyIcons) {
|
||||
Rect r = new Rect(selectionRect);
|
||||
if (skeletonRendererTable.ContainsKey(instanceId)) {
|
||||
r.x = r.width - 15;
|
||||
r.width = 15;
|
||||
GUI.Label(r, Icons.spine);
|
||||
} else if (skeletonUtilityBoneTable.ContainsKey(instanceId)) {
|
||||
r.x -= 26;
|
||||
if (skeletonUtilityBoneTable[instanceId] != null) {
|
||||
if (skeletonUtilityBoneTable[instanceId].transform.childCount == 0)
|
||||
r.x += 13;
|
||||
r.y += 2;
|
||||
r.width = 13;
|
||||
r.height = 13;
|
||||
if (skeletonUtilityBoneTable[instanceId].mode == SkeletonUtilityBone.Mode.Follow)
|
||||
GUI.DrawTexture(r, Icons.bone);
|
||||
else
|
||||
GUI.DrawTexture(r, Icons.poseBones);
|
||||
}
|
||||
} else if (boundingBoxFollowerTable.ContainsKey(instanceId)) {
|
||||
r.x -= 26;
|
||||
if (boundingBoxFollowerTable[instanceId] != null) {
|
||||
if (boundingBoxFollowerTable[instanceId].transform.childCount == 0)
|
||||
r.x += 13;
|
||||
r.y += 2;
|
||||
r.width = 13;
|
||||
r.height = 13;
|
||||
GUI.DrawTexture(r, Icons.boundingBox);
|
||||
}
|
||||
}
|
||||
static void HierarchyIconsOnChanged () {
|
||||
skeletonRendererTable.Clear();
|
||||
skeletonUtilityBoneTable.Clear();
|
||||
boundingBoxFollowerTable.Clear();
|
||||
|
||||
SkeletonRenderer[] arr = Object.FindObjectsOfType<SkeletonRenderer>();
|
||||
foreach (SkeletonRenderer r in arr)
|
||||
skeletonRendererTable.Add(r.gameObject.GetInstanceID(), r.gameObject);
|
||||
|
||||
SkeletonUtilityBone[] boneArr = Object.FindObjectsOfType<SkeletonUtilityBone>();
|
||||
foreach (SkeletonUtilityBone b in boneArr)
|
||||
skeletonUtilityBoneTable.Add(b.gameObject.GetInstanceID(), b);
|
||||
|
||||
BoundingBoxFollower[] bbfArr = Object.FindObjectsOfType<BoundingBoxFollower>();
|
||||
foreach (BoundingBoxFollower bbf in bbfArr)
|
||||
boundingBoxFollowerTable.Add(bbf.gameObject.GetInstanceID(), bbf);
|
||||
}
|
||||
|
||||
static void HierarchyIconsOnGUI (int instanceId, Rect selectionRect) {
|
||||
Rect r = new Rect(selectionRect);
|
||||
if (skeletonRendererTable.ContainsKey(instanceId)) {
|
||||
r.x = r.width - 15;
|
||||
r.width = 15;
|
||||
GUI.Label(r, Icons.spine);
|
||||
} else if (skeletonUtilityBoneTable.ContainsKey(instanceId)) {
|
||||
r.x -= 26;
|
||||
if (skeletonUtilityBoneTable[instanceId] != null) {
|
||||
if (skeletonUtilityBoneTable[instanceId].transform.childCount == 0)
|
||||
r.x += 13;
|
||||
r.y += 2;
|
||||
r.width = 13;
|
||||
r.height = 13;
|
||||
if (skeletonUtilityBoneTable[instanceId].mode == SkeletonUtilityBone.Mode.Follow)
|
||||
GUI.DrawTexture(r, Icons.bone);
|
||||
else
|
||||
GUI.DrawTexture(r, Icons.poseBones);
|
||||
}
|
||||
} else if (boundingBoxFollowerTable.ContainsKey(instanceId)) {
|
||||
r.x -= 26;
|
||||
if (boundingBoxFollowerTable[instanceId] != null) {
|
||||
if (boundingBoxFollowerTable[instanceId].transform.childCount == 0)
|
||||
r.x += 13;
|
||||
r.y += 2;
|
||||
r.width = 13;
|
||||
r.height = 13;
|
||||
GUI.DrawTexture(r, Icons.boundingBox);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
@ -288,7 +288,7 @@ namespace Spine.Unity.Modules {
|
||||
t.localScale = new Vector3(b.WorldScaleX, b.WorldScaleY, 0);
|
||||
|
||||
// MITCH: You left "todo: proper ragdoll branching"
|
||||
var colliders = AttachBoundingBoxRagdollColliders(b, boneGameObject, skeleton);
|
||||
var colliders = AttachBoundingBoxRagdollColliders(b, boneGameObject, skeleton, this.gravityScale);
|
||||
if (colliders.Count == 0) {
|
||||
float length = b.data.length;
|
||||
if (length == 0) {
|
||||
@ -300,7 +300,9 @@ namespace Spine.Unity.Modules {
|
||||
box.offset = new Vector2(length * 0.5f, 0); // box.center in UNITY_4
|
||||
}
|
||||
}
|
||||
var rb = boneGameObject.AddComponent<Rigidbody2D>();
|
||||
|
||||
var rb = boneGameObject.GetComponent<Rigidbody2D>();
|
||||
if (rb == null) rb = boneGameObject.AddComponent<Rigidbody2D>();
|
||||
rb.gravityScale = this.gravityScale;
|
||||
|
||||
foreach (Bone child in b.Children)
|
||||
@ -354,7 +356,7 @@ namespace Spine.Unity.Modules {
|
||||
}
|
||||
}
|
||||
|
||||
static List<Collider2D> AttachBoundingBoxRagdollColliders (Bone b, GameObject go, Skeleton skeleton) {
|
||||
static List<Collider2D> AttachBoundingBoxRagdollColliders (Bone b, GameObject go, Skeleton skeleton, float gravityScale) {
|
||||
const string AttachmentNameMarker = "ragdoll";
|
||||
var colliders = new List<Collider2D>();
|
||||
var skin = skeleton.Skin ?? skeleton.Data.DefaultSkin;
|
||||
@ -369,7 +371,7 @@ namespace Spine.Unity.Modules {
|
||||
if (!a.Name.ToLower().Contains(AttachmentNameMarker))
|
||||
continue;
|
||||
|
||||
var bbCollider = SkeletonUtility.AddBoundingBoxAsComponent(bbAttachment, s, go, false);
|
||||
var bbCollider = SkeletonUtility.AddBoundingBoxAsComponent(bbAttachment, s, go, isTrigger: false, isKinematic: false, gravityScale: gravityScale);
|
||||
colliders.Add(bbCollider);
|
||||
}
|
||||
}
|
||||
|
||||
@ -73,15 +73,15 @@ namespace Spine.Unity {
|
||||
return AddBoundingBoxAsComponent(box, slot, go, isTrigger);
|
||||
}
|
||||
|
||||
public static PolygonCollider2D AddBoundingBoxAsComponent (BoundingBoxAttachment box, Slot slot, GameObject gameObject, bool isTrigger = true) {
|
||||
public static PolygonCollider2D AddBoundingBoxAsComponent (BoundingBoxAttachment box, Slot slot, GameObject gameObject, bool isTrigger = true, bool isKinematic = true, float gravityScale = 0f) {
|
||||
if (box == null) return null;
|
||||
|
||||
if (slot.bone != slot.Skeleton.RootBone) {
|
||||
var rb = gameObject.GetComponent<Rigidbody2D>();
|
||||
if (rb == null) {
|
||||
rb = gameObject.AddComponent<Rigidbody2D>();
|
||||
rb.isKinematic = true;
|
||||
rb.gravityScale = 0;
|
||||
rb.isKinematic = isKinematic;
|
||||
rb.gravityScale = gravityScale;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user