Merge branch '3.6' into 3.7-beta

This commit is contained in:
pharan 2017-06-28 22:44:36 +08:00
commit a3e4bdd3d8
21 changed files with 456 additions and 285 deletions

View File

@ -36,6 +36,7 @@ package spine.animation {
import spine.Slot; import spine.Slot;
public class DeformTimeline extends CurveTimeline { public class DeformTimeline extends CurveTimeline {
private static var zeros : Vector.<Number> = new Vector.<Number>(64);
public var slotIndex : int; public var slotIndex : int;
public var frames : Vector.<Number>; public var frames : Vector.<Number>;
public var frameVertices : Vector.<Vector.<Number>>; public var frameVertices : Vector.<Vector.<Number>>;
@ -58,6 +59,8 @@ package spine.animation {
} }
override public function apply(skeleton : Skeleton, lastTime : Number, time : Number, firedEvents : Vector.<Event>, alpha : Number, pose : MixPose, direction : MixDirection) : void { 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 slot : Slot = skeleton.slots[slotIndex];
var slotAttachment : Attachment = slot.attachment; var slotAttachment : Attachment = slot.attachment;
if (!(slotAttachment is VertexAttachment) || !(VertexAttachment(slotAttachment)).applyDeform(attachment)) return; if (!(slotAttachment is VertexAttachment) || !(VertexAttachment(slotAttachment)).applyDeform(attachment)) return;
@ -65,28 +68,45 @@ package spine.animation {
var verticesArray : Vector.<Number> = slot.attachmentVertices; var verticesArray : Vector.<Number> = slot.attachmentVertices;
var frameVertices : Vector.<Vector.<Number>> = this.frameVertices; var frameVertices : Vector.<Vector.<Number>> = this.frameVertices;
var vertexCount : int = frameVertices[0].length; var vertexCount : int = frameVertices[0].length;
if (verticesArray.length != vertexCount && pose != MixPose.setup) alpha = 1; // Don't mix from uninitialized slot vertices.
verticesArray.length = vertexCount; verticesArray.length = vertexCount;
var vertices : Vector.<Number> = verticesArray; var vertices : Vector.<Number> = verticesArray;
var frames : Vector.<Number> = this.frames; var frames : Vector.<Number> = this.frames;
var i : int; var i : int;
if (time < frames[0]) { if (time < frames[0]) {
vertexAttachment = VertexAttachment(slotAttachment);
switch (pose) { switch (pose) {
case MixPose.setup: 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; return;
case MixPose.current: case MixPose.current:
alpha = 1 - alpha; if (alpha == 1) break;
for (i = 0; i < vertexCount; i++) if (vertexAttachment.bones == null) {
vertices[i] *= alpha; // 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; return;
} }
var n : int; var n : int;
var vertexAttachment : VertexAttachment;
var setupVertices : Vector.<Number>;
var setup : Number, prev : Number; var setup : Number, prev : Number;
if (time >= frames[frames.length - 1]) { // Time is after last frame. if (time >= frames[frames.length - 1]) { // Time is after last frame.
var lastVertices : Vector.<Number> = frameVertices[frames.length - 1]; var lastVertices : Vector.<Number> = frameVertices[frames.length - 1];

View File

@ -628,12 +628,15 @@ var spine;
return AttachmentTimeline; return AttachmentTimeline;
}()); }());
spine.AttachmentTimeline = AttachmentTimeline; spine.AttachmentTimeline = AttachmentTimeline;
var zeros = null;
var DeformTimeline = (function (_super) { var DeformTimeline = (function (_super) {
__extends(DeformTimeline, _super); __extends(DeformTimeline, _super);
function DeformTimeline(frameCount) { function DeformTimeline(frameCount) {
var _this = _super.call(this, frameCount) || this; var _this = _super.call(this, frameCount) || this;
_this.frames = spine.Utils.newFloatArray(frameCount); _this.frames = spine.Utils.newFloatArray(frameCount);
_this.frameVertices = new Array(frameCount); _this.frameVertices = new Array(frameCount);
if (zeros == null)
zeros = spine.Utils.newFloatArray(64);
return _this; return _this;
} }
DeformTimeline.prototype.getPropertyId = function () { DeformTimeline.prototype.getPropertyId = function () {
@ -651,19 +654,36 @@ var spine;
var verticesArray = slot.attachmentVertices; var verticesArray = slot.attachmentVertices;
var frameVertices = this.frameVertices; var frameVertices = this.frameVertices;
var vertexCount = frameVertices[0].length; var vertexCount = frameVertices[0].length;
if (verticesArray.length != vertexCount && pose != MixPose.setup)
alpha = 1;
var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); var vertices = spine.Utils.setArraySize(verticesArray, vertexCount);
var frames = this.frames; var frames = this.frames;
if (time < frames[0]) { if (time < frames[0]) {
var vertexAttachment = slotAttachment;
switch (pose) { switch (pose) {
case MixPose.setup: 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; return;
case MixPose.current: case MixPose.current:
alpha = 1 - alpha; if (alpha == 1)
for (var i = 0; i < vertexCount; i++) break;
vertices[i] *= alpha; 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; return;
} }
@ -675,20 +695,20 @@ var spine;
else if (pose == MixPose.setup) { else if (pose == MixPose.setup) {
var vertexAttachment = slotAttachment; var vertexAttachment = slotAttachment;
if (vertexAttachment.bones == null) { if (vertexAttachment.bones == null) {
var setupVertices = vertexAttachment.vertices; var setupVertices_1 = vertexAttachment.vertices;
for (var i = 0; i < vertexCount; i++) { for (var i_1 = 0; i_1 < vertexCount; i_1++) {
var setup = setupVertices[i]; var setup = setupVertices_1[i_1];
vertices[i] = setup + (lastVertices[i] - setup) * alpha; vertices[i_1] = setup + (lastVertices[i_1] - setup) * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) for (var i_2 = 0; i_2 < vertexCount; i_2++)
vertices[i] = lastVertices[i] * alpha; vertices[i_2] = lastVertices[i_2] * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) for (var i_3 = 0; i_3 < vertexCount; i_3++)
vertices[i] += (lastVertices[i] - vertices[i]) * alpha; vertices[i_3] += (lastVertices[i_3] - vertices[i_3]) * alpha;
} }
return; return;
} }
@ -698,31 +718,31 @@ var spine;
var frameTime = frames[frame]; var frameTime = frames[frame];
var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime));
if (alpha == 1) { if (alpha == 1) {
for (var i = 0; i < vertexCount; i++) { for (var i_4 = 0; i_4 < vertexCount; i_4++) {
var prev = prevVertices[i]; var prev = prevVertices[i_4];
vertices[i] = prev + (nextVertices[i] - prev) * percent; vertices[i_4] = prev + (nextVertices[i_4] - prev) * percent;
} }
} }
else if (pose == MixPose.setup) { else if (pose == MixPose.setup) {
var vertexAttachment = slotAttachment; var vertexAttachment = slotAttachment;
if (vertexAttachment.bones == null) { if (vertexAttachment.bones == null) {
var setupVertices = vertexAttachment.vertices; var setupVertices_2 = vertexAttachment.vertices;
for (var i = 0; i < vertexCount; i++) { for (var i_5 = 0; i_5 < vertexCount; i_5++) {
var prev = prevVertices[i], setup = setupVertices[i]; var prev = prevVertices[i_5], setup = setupVertices_2[i_5];
vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; vertices[i_5] = setup + (prev + (nextVertices[i_5] - prev) * percent - setup) * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) { for (var i_6 = 0; i_6 < vertexCount; i_6++) {
var prev = prevVertices[i]; var prev = prevVertices[i_6];
vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; vertices[i_6] = (prev + (nextVertices[i_6] - prev) * percent) * alpha;
} }
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) { for (var i_7 = 0; i_7 < vertexCount; i_7++) {
var prev = prevVertices[i]; var prev = prevVertices[i_7];
vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; vertices[i_7] += (prev + (nextVertices[i_7] - prev) * percent - vertices[i_7]) * alpha;
} }
} }
}; };
@ -6892,8 +6912,8 @@ var spine;
break; break;
} }
var listeners = _this.listeners; var listeners = _this.listeners;
for (var i_1 = 0; i_1 < listeners.length; i_1++) { for (var i_8 = 0; i_8 < listeners.length; i_8++) {
listeners[i_1].down(_this.currTouch.x, _this.currTouch.y); listeners[i_8].down(_this.currTouch.x, _this.currTouch.y);
} }
console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y); console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y);
_this.lastX = _this.currTouch.x; _this.lastX = _this.currTouch.x;
@ -6911,8 +6931,8 @@ var spine;
var y = _this.currTouch.y = touch.clientY - rect.top; var y = _this.currTouch.y = touch.clientY - rect.top;
_this.touchesPool.free(_this.currTouch); _this.touchesPool.free(_this.currTouch);
var listeners = _this.listeners; var listeners = _this.listeners;
for (var i_2 = 0; i_2 < listeners.length; i_2++) { for (var i_9 = 0; i_9 < listeners.length; i_9++) {
listeners[i_2].up(x, y); listeners[i_9].up(x, y);
} }
console.log("End " + x + ", " + y); console.log("End " + x + ", " + y);
_this.lastX = x; _this.lastX = x;
@ -6934,8 +6954,8 @@ var spine;
var y = _this.currTouch.y = touch.clientY - rect.top; var y = _this.currTouch.y = touch.clientY - rect.top;
_this.touchesPool.free(_this.currTouch); _this.touchesPool.free(_this.currTouch);
var listeners = _this.listeners; var listeners = _this.listeners;
for (var i_3 = 0; i_3 < listeners.length; i_3++) { for (var i_10 = 0; i_10 < listeners.length; i_10++) {
listeners[i_3].up(x, y); listeners[i_10].up(x, y);
} }
console.log("End " + x + ", " + y); console.log("End " + x + ", " + y);
_this.lastX = x; _this.lastX = x;
@ -6958,8 +6978,8 @@ var spine;
var x = touch.clientX - rect.left; var x = touch.clientX - rect.left;
var y = touch.clientY - rect.top; var y = touch.clientY - rect.top;
var listeners = _this.listeners; var listeners = _this.listeners;
for (var i_4 = 0; i_4 < listeners.length; i_4++) { for (var i_11 = 0; i_11 < listeners.length; i_11++) {
listeners[i_4].dragged(x, y); listeners[i_11].dragged(x, y);
} }
console.log("Drag " + x + ", " + y); console.log("Drag " + x + ", " + y);
_this.lastX = _this.currTouch.x = x; _this.lastX = _this.currTouch.x = x;
@ -8738,11 +8758,11 @@ var spine;
var nn = clip.worldVerticesLength; var nn = clip.worldVerticesLength;
var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0);
clip.computeWorldVertices(slot, 0, nn, world, 0, 2); clip.computeWorldVertices(slot, 0, nn, world, 0, 2);
for (var i_5 = 0, n_2 = world.length; i_5 < n_2; i_5 += 2) { for (var i_12 = 0, n_2 = world.length; i_12 < n_2; i_12 += 2) {
var x = world[i_5]; var x = world[i_12];
var y = world[i_5 + 1]; var y = world[i_12 + 1];
var x2 = world[(i_5 + 2) % world.length]; var x2 = world[(i_12 + 2) % world.length];
var y2 = world[(i_5 + 3) % world.length]; var y2 = world[(i_12 + 3) % world.length];
shapes.line(x, y, x2, y2); shapes.line(x, y, x2, y2);
} }
} }

File diff suppressed because one or more lines are too long

View File

@ -628,12 +628,15 @@ var spine;
return AttachmentTimeline; return AttachmentTimeline;
}()); }());
spine.AttachmentTimeline = AttachmentTimeline; spine.AttachmentTimeline = AttachmentTimeline;
var zeros = null;
var DeformTimeline = (function (_super) { var DeformTimeline = (function (_super) {
__extends(DeformTimeline, _super); __extends(DeformTimeline, _super);
function DeformTimeline(frameCount) { function DeformTimeline(frameCount) {
var _this = _super.call(this, frameCount) || this; var _this = _super.call(this, frameCount) || this;
_this.frames = spine.Utils.newFloatArray(frameCount); _this.frames = spine.Utils.newFloatArray(frameCount);
_this.frameVertices = new Array(frameCount); _this.frameVertices = new Array(frameCount);
if (zeros == null)
zeros = spine.Utils.newFloatArray(64);
return _this; return _this;
} }
DeformTimeline.prototype.getPropertyId = function () { DeformTimeline.prototype.getPropertyId = function () {
@ -651,19 +654,36 @@ var spine;
var verticesArray = slot.attachmentVertices; var verticesArray = slot.attachmentVertices;
var frameVertices = this.frameVertices; var frameVertices = this.frameVertices;
var vertexCount = frameVertices[0].length; var vertexCount = frameVertices[0].length;
if (verticesArray.length != vertexCount && pose != MixPose.setup)
alpha = 1;
var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); var vertices = spine.Utils.setArraySize(verticesArray, vertexCount);
var frames = this.frames; var frames = this.frames;
if (time < frames[0]) { if (time < frames[0]) {
var vertexAttachment = slotAttachment;
switch (pose) { switch (pose) {
case MixPose.setup: 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; return;
case MixPose.current: case MixPose.current:
alpha = 1 - alpha; if (alpha == 1)
for (var i = 0; i < vertexCount; i++) break;
vertices[i] *= alpha; 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; return;
} }
@ -675,20 +695,20 @@ var spine;
else if (pose == MixPose.setup) { else if (pose == MixPose.setup) {
var vertexAttachment = slotAttachment; var vertexAttachment = slotAttachment;
if (vertexAttachment.bones == null) { if (vertexAttachment.bones == null) {
var setupVertices = vertexAttachment.vertices; var setupVertices_1 = vertexAttachment.vertices;
for (var i = 0; i < vertexCount; i++) { for (var i_1 = 0; i_1 < vertexCount; i_1++) {
var setup = setupVertices[i]; var setup = setupVertices_1[i_1];
vertices[i] = setup + (lastVertices[i] - setup) * alpha; vertices[i_1] = setup + (lastVertices[i_1] - setup) * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) for (var i_2 = 0; i_2 < vertexCount; i_2++)
vertices[i] = lastVertices[i] * alpha; vertices[i_2] = lastVertices[i_2] * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) for (var i_3 = 0; i_3 < vertexCount; i_3++)
vertices[i] += (lastVertices[i] - vertices[i]) * alpha; vertices[i_3] += (lastVertices[i_3] - vertices[i_3]) * alpha;
} }
return; return;
} }
@ -698,31 +718,31 @@ var spine;
var frameTime = frames[frame]; var frameTime = frames[frame];
var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime));
if (alpha == 1) { if (alpha == 1) {
for (var i = 0; i < vertexCount; i++) { for (var i_4 = 0; i_4 < vertexCount; i_4++) {
var prev = prevVertices[i]; var prev = prevVertices[i_4];
vertices[i] = prev + (nextVertices[i] - prev) * percent; vertices[i_4] = prev + (nextVertices[i_4] - prev) * percent;
} }
} }
else if (pose == MixPose.setup) { else if (pose == MixPose.setup) {
var vertexAttachment = slotAttachment; var vertexAttachment = slotAttachment;
if (vertexAttachment.bones == null) { if (vertexAttachment.bones == null) {
var setupVertices = vertexAttachment.vertices; var setupVertices_2 = vertexAttachment.vertices;
for (var i = 0; i < vertexCount; i++) { for (var i_5 = 0; i_5 < vertexCount; i_5++) {
var prev = prevVertices[i], setup = setupVertices[i]; var prev = prevVertices[i_5], setup = setupVertices_2[i_5];
vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; vertices[i_5] = setup + (prev + (nextVertices[i_5] - prev) * percent - setup) * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) { for (var i_6 = 0; i_6 < vertexCount; i_6++) {
var prev = prevVertices[i]; var prev = prevVertices[i_6];
vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; vertices[i_6] = (prev + (nextVertices[i_6] - prev) * percent) * alpha;
} }
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) { for (var i_7 = 0; i_7 < vertexCount; i_7++) {
var prev = prevVertices[i]; var prev = prevVertices[i_7];
vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; vertices[i_7] += (prev + (nextVertices[i_7] - prev) * percent - vertices[i_7]) * alpha;
} }
} }
}; };

File diff suppressed because one or more lines are too long

View File

@ -628,12 +628,15 @@ var spine;
return AttachmentTimeline; return AttachmentTimeline;
}()); }());
spine.AttachmentTimeline = AttachmentTimeline; spine.AttachmentTimeline = AttachmentTimeline;
var zeros = null;
var DeformTimeline = (function (_super) { var DeformTimeline = (function (_super) {
__extends(DeformTimeline, _super); __extends(DeformTimeline, _super);
function DeformTimeline(frameCount) { function DeformTimeline(frameCount) {
var _this = _super.call(this, frameCount) || this; var _this = _super.call(this, frameCount) || this;
_this.frames = spine.Utils.newFloatArray(frameCount); _this.frames = spine.Utils.newFloatArray(frameCount);
_this.frameVertices = new Array(frameCount); _this.frameVertices = new Array(frameCount);
if (zeros == null)
zeros = spine.Utils.newFloatArray(64);
return _this; return _this;
} }
DeformTimeline.prototype.getPropertyId = function () { DeformTimeline.prototype.getPropertyId = function () {
@ -651,19 +654,36 @@ var spine;
var verticesArray = slot.attachmentVertices; var verticesArray = slot.attachmentVertices;
var frameVertices = this.frameVertices; var frameVertices = this.frameVertices;
var vertexCount = frameVertices[0].length; var vertexCount = frameVertices[0].length;
if (verticesArray.length != vertexCount && pose != MixPose.setup)
alpha = 1;
var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); var vertices = spine.Utils.setArraySize(verticesArray, vertexCount);
var frames = this.frames; var frames = this.frames;
if (time < frames[0]) { if (time < frames[0]) {
var vertexAttachment = slotAttachment;
switch (pose) { switch (pose) {
case MixPose.setup: 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; return;
case MixPose.current: case MixPose.current:
alpha = 1 - alpha; if (alpha == 1)
for (var i = 0; i < vertexCount; i++) break;
vertices[i] *= alpha; 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; return;
} }
@ -675,20 +695,20 @@ var spine;
else if (pose == MixPose.setup) { else if (pose == MixPose.setup) {
var vertexAttachment = slotAttachment; var vertexAttachment = slotAttachment;
if (vertexAttachment.bones == null) { if (vertexAttachment.bones == null) {
var setupVertices = vertexAttachment.vertices; var setupVertices_1 = vertexAttachment.vertices;
for (var i = 0; i < vertexCount; i++) { for (var i_1 = 0; i_1 < vertexCount; i_1++) {
var setup = setupVertices[i]; var setup = setupVertices_1[i_1];
vertices[i] = setup + (lastVertices[i] - setup) * alpha; vertices[i_1] = setup + (lastVertices[i_1] - setup) * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) for (var i_2 = 0; i_2 < vertexCount; i_2++)
vertices[i] = lastVertices[i] * alpha; vertices[i_2] = lastVertices[i_2] * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) for (var i_3 = 0; i_3 < vertexCount; i_3++)
vertices[i] += (lastVertices[i] - vertices[i]) * alpha; vertices[i_3] += (lastVertices[i_3] - vertices[i_3]) * alpha;
} }
return; return;
} }
@ -698,31 +718,31 @@ var spine;
var frameTime = frames[frame]; var frameTime = frames[frame];
var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime));
if (alpha == 1) { if (alpha == 1) {
for (var i = 0; i < vertexCount; i++) { for (var i_4 = 0; i_4 < vertexCount; i_4++) {
var prev = prevVertices[i]; var prev = prevVertices[i_4];
vertices[i] = prev + (nextVertices[i] - prev) * percent; vertices[i_4] = prev + (nextVertices[i_4] - prev) * percent;
} }
} }
else if (pose == MixPose.setup) { else if (pose == MixPose.setup) {
var vertexAttachment = slotAttachment; var vertexAttachment = slotAttachment;
if (vertexAttachment.bones == null) { if (vertexAttachment.bones == null) {
var setupVertices = vertexAttachment.vertices; var setupVertices_2 = vertexAttachment.vertices;
for (var i = 0; i < vertexCount; i++) { for (var i_5 = 0; i_5 < vertexCount; i_5++) {
var prev = prevVertices[i], setup = setupVertices[i]; var prev = prevVertices[i_5], setup = setupVertices_2[i_5];
vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; vertices[i_5] = setup + (prev + (nextVertices[i_5] - prev) * percent - setup) * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) { for (var i_6 = 0; i_6 < vertexCount; i_6++) {
var prev = prevVertices[i]; var prev = prevVertices[i_6];
vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; vertices[i_6] = (prev + (nextVertices[i_6] - prev) * percent) * alpha;
} }
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) { for (var i_7 = 0; i_7 < vertexCount; i_7++) {
var prev = prevVertices[i]; var prev = prevVertices[i_7];
vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; vertices[i_7] += (prev + (nextVertices[i_7] - prev) * percent - vertices[i_7]) * alpha;
} }
} }
}; };

File diff suppressed because one or more lines are too long

View File

@ -628,12 +628,15 @@ var spine;
return AttachmentTimeline; return AttachmentTimeline;
}()); }());
spine.AttachmentTimeline = AttachmentTimeline; spine.AttachmentTimeline = AttachmentTimeline;
var zeros = null;
var DeformTimeline = (function (_super) { var DeformTimeline = (function (_super) {
__extends(DeformTimeline, _super); __extends(DeformTimeline, _super);
function DeformTimeline(frameCount) { function DeformTimeline(frameCount) {
var _this = _super.call(this, frameCount) || this; var _this = _super.call(this, frameCount) || this;
_this.frames = spine.Utils.newFloatArray(frameCount); _this.frames = spine.Utils.newFloatArray(frameCount);
_this.frameVertices = new Array(frameCount); _this.frameVertices = new Array(frameCount);
if (zeros == null)
zeros = spine.Utils.newFloatArray(64);
return _this; return _this;
} }
DeformTimeline.prototype.getPropertyId = function () { DeformTimeline.prototype.getPropertyId = function () {
@ -651,19 +654,36 @@ var spine;
var verticesArray = slot.attachmentVertices; var verticesArray = slot.attachmentVertices;
var frameVertices = this.frameVertices; var frameVertices = this.frameVertices;
var vertexCount = frameVertices[0].length; var vertexCount = frameVertices[0].length;
if (verticesArray.length != vertexCount && pose != MixPose.setup)
alpha = 1;
var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); var vertices = spine.Utils.setArraySize(verticesArray, vertexCount);
var frames = this.frames; var frames = this.frames;
if (time < frames[0]) { if (time < frames[0]) {
var vertexAttachment = slotAttachment;
switch (pose) { switch (pose) {
case MixPose.setup: 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; return;
case MixPose.current: case MixPose.current:
alpha = 1 - alpha; if (alpha == 1)
for (var i = 0; i < vertexCount; i++) break;
vertices[i] *= alpha; 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; return;
} }
@ -675,20 +695,20 @@ var spine;
else if (pose == MixPose.setup) { else if (pose == MixPose.setup) {
var vertexAttachment = slotAttachment; var vertexAttachment = slotAttachment;
if (vertexAttachment.bones == null) { if (vertexAttachment.bones == null) {
var setupVertices = vertexAttachment.vertices; var setupVertices_1 = vertexAttachment.vertices;
for (var i = 0; i < vertexCount; i++) { for (var i_1 = 0; i_1 < vertexCount; i_1++) {
var setup = setupVertices[i]; var setup = setupVertices_1[i_1];
vertices[i] = setup + (lastVertices[i] - setup) * alpha; vertices[i_1] = setup + (lastVertices[i_1] - setup) * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) for (var i_2 = 0; i_2 < vertexCount; i_2++)
vertices[i] = lastVertices[i] * alpha; vertices[i_2] = lastVertices[i_2] * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) for (var i_3 = 0; i_3 < vertexCount; i_3++)
vertices[i] += (lastVertices[i] - vertices[i]) * alpha; vertices[i_3] += (lastVertices[i_3] - vertices[i_3]) * alpha;
} }
return; return;
} }
@ -698,31 +718,31 @@ var spine;
var frameTime = frames[frame]; var frameTime = frames[frame];
var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime));
if (alpha == 1) { if (alpha == 1) {
for (var i = 0; i < vertexCount; i++) { for (var i_4 = 0; i_4 < vertexCount; i_4++) {
var prev = prevVertices[i]; var prev = prevVertices[i_4];
vertices[i] = prev + (nextVertices[i] - prev) * percent; vertices[i_4] = prev + (nextVertices[i_4] - prev) * percent;
} }
} }
else if (pose == MixPose.setup) { else if (pose == MixPose.setup) {
var vertexAttachment = slotAttachment; var vertexAttachment = slotAttachment;
if (vertexAttachment.bones == null) { if (vertexAttachment.bones == null) {
var setupVertices = vertexAttachment.vertices; var setupVertices_2 = vertexAttachment.vertices;
for (var i = 0; i < vertexCount; i++) { for (var i_5 = 0; i_5 < vertexCount; i_5++) {
var prev = prevVertices[i], setup = setupVertices[i]; var prev = prevVertices[i_5], setup = setupVertices_2[i_5];
vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; vertices[i_5] = setup + (prev + (nextVertices[i_5] - prev) * percent - setup) * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) { for (var i_6 = 0; i_6 < vertexCount; i_6++) {
var prev = prevVertices[i]; var prev = prevVertices[i_6];
vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; vertices[i_6] = (prev + (nextVertices[i_6] - prev) * percent) * alpha;
} }
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) { for (var i_7 = 0; i_7 < vertexCount; i_7++) {
var prev = prevVertices[i]; var prev = prevVertices[i_7];
vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; vertices[i_7] += (prev + (nextVertices[i_7] - prev) * percent - vertices[i_7]) * alpha;
} }
} }
}; };

File diff suppressed because one or more lines are too long

View File

@ -628,12 +628,15 @@ var spine;
return AttachmentTimeline; return AttachmentTimeline;
}()); }());
spine.AttachmentTimeline = AttachmentTimeline; spine.AttachmentTimeline = AttachmentTimeline;
var zeros = null;
var DeformTimeline = (function (_super) { var DeformTimeline = (function (_super) {
__extends(DeformTimeline, _super); __extends(DeformTimeline, _super);
function DeformTimeline(frameCount) { function DeformTimeline(frameCount) {
var _this = _super.call(this, frameCount) || this; var _this = _super.call(this, frameCount) || this;
_this.frames = spine.Utils.newFloatArray(frameCount); _this.frames = spine.Utils.newFloatArray(frameCount);
_this.frameVertices = new Array(frameCount); _this.frameVertices = new Array(frameCount);
if (zeros == null)
zeros = spine.Utils.newFloatArray(64);
return _this; return _this;
} }
DeformTimeline.prototype.getPropertyId = function () { DeformTimeline.prototype.getPropertyId = function () {
@ -651,19 +654,36 @@ var spine;
var verticesArray = slot.attachmentVertices; var verticesArray = slot.attachmentVertices;
var frameVertices = this.frameVertices; var frameVertices = this.frameVertices;
var vertexCount = frameVertices[0].length; var vertexCount = frameVertices[0].length;
if (verticesArray.length != vertexCount && pose != MixPose.setup)
alpha = 1;
var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); var vertices = spine.Utils.setArraySize(verticesArray, vertexCount);
var frames = this.frames; var frames = this.frames;
if (time < frames[0]) { if (time < frames[0]) {
var vertexAttachment = slotAttachment;
switch (pose) { switch (pose) {
case MixPose.setup: 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; return;
case MixPose.current: case MixPose.current:
alpha = 1 - alpha; if (alpha == 1)
for (var i = 0; i < vertexCount; i++) break;
vertices[i] *= alpha; 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; return;
} }
@ -675,20 +695,20 @@ var spine;
else if (pose == MixPose.setup) { else if (pose == MixPose.setup) {
var vertexAttachment = slotAttachment; var vertexAttachment = slotAttachment;
if (vertexAttachment.bones == null) { if (vertexAttachment.bones == null) {
var setupVertices = vertexAttachment.vertices; var setupVertices_1 = vertexAttachment.vertices;
for (var i = 0; i < vertexCount; i++) { for (var i_1 = 0; i_1 < vertexCount; i_1++) {
var setup = setupVertices[i]; var setup = setupVertices_1[i_1];
vertices[i] = setup + (lastVertices[i] - setup) * alpha; vertices[i_1] = setup + (lastVertices[i_1] - setup) * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) for (var i_2 = 0; i_2 < vertexCount; i_2++)
vertices[i] = lastVertices[i] * alpha; vertices[i_2] = lastVertices[i_2] * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) for (var i_3 = 0; i_3 < vertexCount; i_3++)
vertices[i] += (lastVertices[i] - vertices[i]) * alpha; vertices[i_3] += (lastVertices[i_3] - vertices[i_3]) * alpha;
} }
return; return;
} }
@ -698,31 +718,31 @@ var spine;
var frameTime = frames[frame]; var frameTime = frames[frame];
var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime));
if (alpha == 1) { if (alpha == 1) {
for (var i = 0; i < vertexCount; i++) { for (var i_4 = 0; i_4 < vertexCount; i_4++) {
var prev = prevVertices[i]; var prev = prevVertices[i_4];
vertices[i] = prev + (nextVertices[i] - prev) * percent; vertices[i_4] = prev + (nextVertices[i_4] - prev) * percent;
} }
} }
else if (pose == MixPose.setup) { else if (pose == MixPose.setup) {
var vertexAttachment = slotAttachment; var vertexAttachment = slotAttachment;
if (vertexAttachment.bones == null) { if (vertexAttachment.bones == null) {
var setupVertices = vertexAttachment.vertices; var setupVertices_2 = vertexAttachment.vertices;
for (var i = 0; i < vertexCount; i++) { for (var i_5 = 0; i_5 < vertexCount; i_5++) {
var prev = prevVertices[i], setup = setupVertices[i]; var prev = prevVertices[i_5], setup = setupVertices_2[i_5];
vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; vertices[i_5] = setup + (prev + (nextVertices[i_5] - prev) * percent - setup) * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) { for (var i_6 = 0; i_6 < vertexCount; i_6++) {
var prev = prevVertices[i]; var prev = prevVertices[i_6];
vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; vertices[i_6] = (prev + (nextVertices[i_6] - prev) * percent) * alpha;
} }
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) { for (var i_7 = 0; i_7 < vertexCount; i_7++) {
var prev = prevVertices[i]; var prev = prevVertices[i_7];
vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; vertices[i_7] += (prev + (nextVertices[i_7] - prev) * percent - vertices[i_7]) * alpha;
} }
} }
}; };
@ -6638,8 +6658,8 @@ var spine;
break; break;
} }
var listeners = _this.listeners; var listeners = _this.listeners;
for (var i_1 = 0; i_1 < listeners.length; i_1++) { for (var i_8 = 0; i_8 < listeners.length; i_8++) {
listeners[i_1].down(_this.currTouch.x, _this.currTouch.y); listeners[i_8].down(_this.currTouch.x, _this.currTouch.y);
} }
console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y); console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y);
_this.lastX = _this.currTouch.x; _this.lastX = _this.currTouch.x;
@ -6657,8 +6677,8 @@ var spine;
var y = _this.currTouch.y = touch.clientY - rect.top; var y = _this.currTouch.y = touch.clientY - rect.top;
_this.touchesPool.free(_this.currTouch); _this.touchesPool.free(_this.currTouch);
var listeners = _this.listeners; var listeners = _this.listeners;
for (var i_2 = 0; i_2 < listeners.length; i_2++) { for (var i_9 = 0; i_9 < listeners.length; i_9++) {
listeners[i_2].up(x, y); listeners[i_9].up(x, y);
} }
console.log("End " + x + ", " + y); console.log("End " + x + ", " + y);
_this.lastX = x; _this.lastX = x;
@ -6680,8 +6700,8 @@ var spine;
var y = _this.currTouch.y = touch.clientY - rect.top; var y = _this.currTouch.y = touch.clientY - rect.top;
_this.touchesPool.free(_this.currTouch); _this.touchesPool.free(_this.currTouch);
var listeners = _this.listeners; var listeners = _this.listeners;
for (var i_3 = 0; i_3 < listeners.length; i_3++) { for (var i_10 = 0; i_10 < listeners.length; i_10++) {
listeners[i_3].up(x, y); listeners[i_10].up(x, y);
} }
console.log("End " + x + ", " + y); console.log("End " + x + ", " + y);
_this.lastX = x; _this.lastX = x;
@ -6704,8 +6724,8 @@ var spine;
var x = touch.clientX - rect.left; var x = touch.clientX - rect.left;
var y = touch.clientY - rect.top; var y = touch.clientY - rect.top;
var listeners = _this.listeners; var listeners = _this.listeners;
for (var i_4 = 0; i_4 < listeners.length; i_4++) { for (var i_11 = 0; i_11 < listeners.length; i_11++) {
listeners[i_4].dragged(x, y); listeners[i_11].dragged(x, y);
} }
console.log("Drag " + x + ", " + y); console.log("Drag " + x + ", " + y);
_this.lastX = _this.currTouch.x = x; _this.lastX = _this.currTouch.x = x;
@ -8484,11 +8504,11 @@ var spine;
var nn = clip.worldVerticesLength; var nn = clip.worldVerticesLength;
var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0);
clip.computeWorldVertices(slot, 0, nn, world, 0, 2); clip.computeWorldVertices(slot, 0, nn, world, 0, 2);
for (var i_5 = 0, n_2 = world.length; i_5 < n_2; i_5 += 2) { for (var i_12 = 0, n_2 = world.length; i_12 < n_2; i_12 += 2) {
var x = world[i_5]; var x = world[i_12];
var y = world[i_5 + 1]; var y = world[i_12 + 1];
var x2 = world[(i_5 + 2) % world.length]; var x2 = world[(i_12 + 2) % world.length];
var y2 = world[(i_5 + 3) % world.length]; var y2 = world[(i_12 + 3) % world.length];
shapes.line(x, y, x2, y2); shapes.line(x, y, x2, y2);
} }
} }

File diff suppressed because one or more lines are too long

View File

@ -628,12 +628,15 @@ var spine;
return AttachmentTimeline; return AttachmentTimeline;
}()); }());
spine.AttachmentTimeline = AttachmentTimeline; spine.AttachmentTimeline = AttachmentTimeline;
var zeros = null;
var DeformTimeline = (function (_super) { var DeformTimeline = (function (_super) {
__extends(DeformTimeline, _super); __extends(DeformTimeline, _super);
function DeformTimeline(frameCount) { function DeformTimeline(frameCount) {
var _this = _super.call(this, frameCount) || this; var _this = _super.call(this, frameCount) || this;
_this.frames = spine.Utils.newFloatArray(frameCount); _this.frames = spine.Utils.newFloatArray(frameCount);
_this.frameVertices = new Array(frameCount); _this.frameVertices = new Array(frameCount);
if (zeros == null)
zeros = spine.Utils.newFloatArray(64);
return _this; return _this;
} }
DeformTimeline.prototype.getPropertyId = function () { DeformTimeline.prototype.getPropertyId = function () {
@ -651,19 +654,36 @@ var spine;
var verticesArray = slot.attachmentVertices; var verticesArray = slot.attachmentVertices;
var frameVertices = this.frameVertices; var frameVertices = this.frameVertices;
var vertexCount = frameVertices[0].length; var vertexCount = frameVertices[0].length;
if (verticesArray.length != vertexCount && pose != MixPose.setup)
alpha = 1;
var vertices = spine.Utils.setArraySize(verticesArray, vertexCount); var vertices = spine.Utils.setArraySize(verticesArray, vertexCount);
var frames = this.frames; var frames = this.frames;
if (time < frames[0]) { if (time < frames[0]) {
var vertexAttachment = slotAttachment;
switch (pose) { switch (pose) {
case MixPose.setup: 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; return;
case MixPose.current: case MixPose.current:
alpha = 1 - alpha; if (alpha == 1)
for (var i = 0; i < vertexCount; i++) break;
vertices[i] *= alpha; 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; return;
} }
@ -675,20 +695,20 @@ var spine;
else if (pose == MixPose.setup) { else if (pose == MixPose.setup) {
var vertexAttachment = slotAttachment; var vertexAttachment = slotAttachment;
if (vertexAttachment.bones == null) { if (vertexAttachment.bones == null) {
var setupVertices = vertexAttachment.vertices; var setupVertices_1 = vertexAttachment.vertices;
for (var i = 0; i < vertexCount; i++) { for (var i_1 = 0; i_1 < vertexCount; i_1++) {
var setup = setupVertices[i]; var setup = setupVertices_1[i_1];
vertices[i] = setup + (lastVertices[i] - setup) * alpha; vertices[i_1] = setup + (lastVertices[i_1] - setup) * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) for (var i_2 = 0; i_2 < vertexCount; i_2++)
vertices[i] = lastVertices[i] * alpha; vertices[i_2] = lastVertices[i_2] * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) for (var i_3 = 0; i_3 < vertexCount; i_3++)
vertices[i] += (lastVertices[i] - vertices[i]) * alpha; vertices[i_3] += (lastVertices[i_3] - vertices[i_3]) * alpha;
} }
return; return;
} }
@ -698,31 +718,31 @@ var spine;
var frameTime = frames[frame]; var frameTime = frames[frame];
var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime));
if (alpha == 1) { if (alpha == 1) {
for (var i = 0; i < vertexCount; i++) { for (var i_4 = 0; i_4 < vertexCount; i_4++) {
var prev = prevVertices[i]; var prev = prevVertices[i_4];
vertices[i] = prev + (nextVertices[i] - prev) * percent; vertices[i_4] = prev + (nextVertices[i_4] - prev) * percent;
} }
} }
else if (pose == MixPose.setup) { else if (pose == MixPose.setup) {
var vertexAttachment = slotAttachment; var vertexAttachment = slotAttachment;
if (vertexAttachment.bones == null) { if (vertexAttachment.bones == null) {
var setupVertices = vertexAttachment.vertices; var setupVertices_2 = vertexAttachment.vertices;
for (var i = 0; i < vertexCount; i++) { for (var i_5 = 0; i_5 < vertexCount; i_5++) {
var prev = prevVertices[i], setup = setupVertices[i]; var prev = prevVertices[i_5], setup = setupVertices_2[i_5];
vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; vertices[i_5] = setup + (prev + (nextVertices[i_5] - prev) * percent - setup) * alpha;
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) { for (var i_6 = 0; i_6 < vertexCount; i_6++) {
var prev = prevVertices[i]; var prev = prevVertices[i_6];
vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; vertices[i_6] = (prev + (nextVertices[i_6] - prev) * percent) * alpha;
} }
} }
} }
else { else {
for (var i = 0; i < vertexCount; i++) { for (var i_7 = 0; i_7 < vertexCount; i_7++) {
var prev = prevVertices[i]; var prev = prevVertices[i_7];
vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; vertices[i_7] += (prev + (nextVertices[i_7] - prev) * percent - vertices[i_7]) * alpha;
} }
} }
}; };
@ -6638,8 +6658,8 @@ var spine;
break; break;
} }
var listeners = _this.listeners; var listeners = _this.listeners;
for (var i_1 = 0; i_1 < listeners.length; i_1++) { for (var i_8 = 0; i_8 < listeners.length; i_8++) {
listeners[i_1].down(_this.currTouch.x, _this.currTouch.y); listeners[i_8].down(_this.currTouch.x, _this.currTouch.y);
} }
console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y); console.log("Start " + _this.currTouch.x + ", " + _this.currTouch.y);
_this.lastX = _this.currTouch.x; _this.lastX = _this.currTouch.x;
@ -6657,8 +6677,8 @@ var spine;
var y = _this.currTouch.y = touch.clientY - rect.top; var y = _this.currTouch.y = touch.clientY - rect.top;
_this.touchesPool.free(_this.currTouch); _this.touchesPool.free(_this.currTouch);
var listeners = _this.listeners; var listeners = _this.listeners;
for (var i_2 = 0; i_2 < listeners.length; i_2++) { for (var i_9 = 0; i_9 < listeners.length; i_9++) {
listeners[i_2].up(x, y); listeners[i_9].up(x, y);
} }
console.log("End " + x + ", " + y); console.log("End " + x + ", " + y);
_this.lastX = x; _this.lastX = x;
@ -6680,8 +6700,8 @@ var spine;
var y = _this.currTouch.y = touch.clientY - rect.top; var y = _this.currTouch.y = touch.clientY - rect.top;
_this.touchesPool.free(_this.currTouch); _this.touchesPool.free(_this.currTouch);
var listeners = _this.listeners; var listeners = _this.listeners;
for (var i_3 = 0; i_3 < listeners.length; i_3++) { for (var i_10 = 0; i_10 < listeners.length; i_10++) {
listeners[i_3].up(x, y); listeners[i_10].up(x, y);
} }
console.log("End " + x + ", " + y); console.log("End " + x + ", " + y);
_this.lastX = x; _this.lastX = x;
@ -6704,8 +6724,8 @@ var spine;
var x = touch.clientX - rect.left; var x = touch.clientX - rect.left;
var y = touch.clientY - rect.top; var y = touch.clientY - rect.top;
var listeners = _this.listeners; var listeners = _this.listeners;
for (var i_4 = 0; i_4 < listeners.length; i_4++) { for (var i_11 = 0; i_11 < listeners.length; i_11++) {
listeners[i_4].dragged(x, y); listeners[i_11].dragged(x, y);
} }
console.log("Drag " + x + ", " + y); console.log("Drag " + x + ", " + y);
_this.lastX = _this.currTouch.x = x; _this.lastX = _this.currTouch.x = x;
@ -8484,11 +8504,11 @@ var spine;
var nn = clip.worldVerticesLength; var nn = clip.worldVerticesLength;
var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0);
clip.computeWorldVertices(slot, 0, nn, world, 0, 2); clip.computeWorldVertices(slot, 0, nn, world, 0, 2);
for (var i_5 = 0, n_2 = world.length; i_5 < n_2; i_5 += 2) { for (var i_12 = 0, n_2 = world.length; i_12 < n_2; i_12 += 2) {
var x = world[i_5]; var x = world[i_12];
var y = world[i_5 + 1]; var y = world[i_12 + 1];
var x2 = world[(i_5 + 2) % world.length]; var x2 = world[(i_12 + 2) % world.length];
var y2 = world[(i_5 + 3) % world.length]; var y2 = world[(i_12 + 3) % world.length];
shapes.line(x, y, x2, y2); shapes.line(x, y, x2, y2);
} }
} }

File diff suppressed because one or more lines are too long

View File

@ -677,6 +677,8 @@ module spine {
} }
} }
var zeros : ArrayLike<number> = null;
export class DeformTimeline extends CurveTimeline { export class DeformTimeline extends CurveTimeline {
slotIndex: number; slotIndex: number;
attachment: VertexAttachment; attachment: VertexAttachment;
@ -687,6 +689,7 @@ module spine {
super(frameCount); super(frameCount);
this.frames = Utils.newFloatArray(frameCount); this.frames = Utils.newFloatArray(frameCount);
this.frameVertices = new Array<ArrayLike<number>>(frameCount); this.frameVertices = new Array<ArrayLike<number>>(frameCount);
if (zeros == null) zeros = Utils.newFloatArray(64);
} }
getPropertyId () { getPropertyId () {
@ -707,19 +710,37 @@ module spine {
let verticesArray: Array<number> = slot.attachmentVertices; let verticesArray: Array<number> = slot.attachmentVertices;
let frameVertices = this.frameVertices; let frameVertices = this.frameVertices;
let vertexCount = frameVertices[0].length; let vertexCount = frameVertices[0].length;
if (verticesArray.length != vertexCount && pose != MixPose.setup) alpha = 1; // Don't mix from uninitialized slot vertices.
let vertices: Array<number> = Utils.setArraySize(verticesArray, vertexCount); let vertices: Array<number> = Utils.setArraySize(verticesArray, vertexCount);
let frames = this.frames; let frames = this.frames;
if (time < frames[0]) { if (time < frames[0]) {
let vertexAttachment = <VertexAttachment>slotAttachment;
switch (pose) { switch (pose) {
case MixPose.setup: 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; return;
case MixPose.current: case MixPose.current:
alpha = 1 - alpha; if (alpha == 1) break;
for (let i = 0; i < vertexCount; i++) if (vertexAttachment.bones == null) {
vertices[i] *= alpha; // 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; return;
} }

View File

@ -40,7 +40,7 @@ namespace Spine.Unity.Editor {
protected override void OnEnable () { protected override void OnEnable () {
base.OnEnable(); base.OnEnable();
mecanimTranslator = serializedObject.FindProperty("mecanimTranslator"); mecanimTranslator = serializedObject.FindProperty("translator");
} }
protected override void DrawInspectorGUI (bool multi) { protected override void DrawInspectorGUI (bool multi) {

View File

@ -228,12 +228,10 @@ namespace Spine.Unity.Editor {
EditorApplication.hierarchyWindowItemOnGUI += HierarchyDragAndDrop; EditorApplication.hierarchyWindowItemOnGUI += HierarchyDragAndDrop;
// Hierarchy Icons // Hierarchy Icons
EditorApplication.hierarchyWindowChanged -= HierarchyIconsOnChanged; EditorApplication.playmodeStateChanged -= HierarchyIconsOnPlaymodeStateChanged;
EditorApplication.hierarchyWindowChanged += HierarchyIconsOnChanged; EditorApplication.playmodeStateChanged += HierarchyIconsOnPlaymodeStateChanged;
EditorApplication.hierarchyWindowItemOnGUI -= HierarchyIconsOnGUI; HierarchyIconsOnPlaymodeStateChanged();
EditorApplication.hierarchyWindowItemOnGUI += HierarchyIconsOnGUI;
HierarchyIconsOnChanged();
initialized = true; 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); 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()) { if (EditorGUI.EndChangeCheck()) {
EditorPrefs.SetBool(SHOW_HIERARCHY_ICONS_KEY, showHierarchyIcons); EditorPrefs.SetBool(SHOW_HIERARCHY_ICONS_KEY, showHierarchyIcons);
HierarchyIconsOnChanged(); HierarchyIconsOnPlaymodeStateChanged();
} }
EditorGUILayout.Separator(); EditorGUILayout.Separator();
@ -496,58 +494,68 @@ namespace Spine.Unity.Editor {
#endregion #endregion
#region Hierarchy #region Hierarchy
static void HierarchyIconsOnChanged () { static void HierarchyIconsOnPlaymodeStateChanged () {
if (showHierarchyIcons) { skeletonRendererTable.Clear();
skeletonRendererTable.Clear(); skeletonUtilityBoneTable.Clear();
skeletonUtilityBoneTable.Clear(); boundingBoxFollowerTable.Clear();
boundingBoxFollowerTable.Clear();
SkeletonRenderer[] arr = Object.FindObjectsOfType<SkeletonRenderer>(); EditorApplication.hierarchyWindowChanged -= HierarchyIconsOnChanged;
foreach (SkeletonRenderer r in arr) EditorApplication.hierarchyWindowItemOnGUI -= HierarchyIconsOnGUI;
skeletonRendererTable.Add(r.gameObject.GetInstanceID(), r.gameObject);
SkeletonUtilityBone[] boneArr = Object.FindObjectsOfType<SkeletonUtilityBone>(); if (!Application.isPlaying && showHierarchyIcons) {
foreach (SkeletonUtilityBone b in boneArr) EditorApplication.hierarchyWindowChanged += HierarchyIconsOnChanged;
skeletonUtilityBoneTable.Add(b.gameObject.GetInstanceID(), b); EditorApplication.hierarchyWindowItemOnGUI += HierarchyIconsOnGUI;
HierarchyIconsOnChanged();
BoundingBoxFollower[] bbfArr = Object.FindObjectsOfType<BoundingBoxFollower>();
foreach (BoundingBoxFollower bbf in bbfArr)
boundingBoxFollowerTable.Add(bbf.gameObject.GetInstanceID(), bbf);
} }
} }
static void HierarchyIconsOnGUI (int instanceId, Rect selectionRect) { static void HierarchyIconsOnChanged () {
if (showHierarchyIcons) { skeletonRendererTable.Clear();
Rect r = new Rect(selectionRect); skeletonUtilityBoneTable.Clear();
if (skeletonRendererTable.ContainsKey(instanceId)) { boundingBoxFollowerTable.Clear();
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);
}
}
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 #endregion

View File

@ -288,7 +288,7 @@ namespace Spine.Unity.Modules {
t.localScale = new Vector3(b.WorldScaleX, b.WorldScaleY, 0); t.localScale = new Vector3(b.WorldScaleX, b.WorldScaleY, 0);
// MITCH: You left "todo: proper ragdoll branching" // 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) { if (colliders.Count == 0) {
float length = b.data.length; float length = b.data.length;
if (length == 0) { if (length == 0) {
@ -300,7 +300,9 @@ namespace Spine.Unity.Modules {
box.offset = new Vector2(length * 0.5f, 0); // box.center in UNITY_4 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; rb.gravityScale = this.gravityScale;
foreach (Bone child in b.Children) 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"; const string AttachmentNameMarker = "ragdoll";
var colliders = new List<Collider2D>(); var colliders = new List<Collider2D>();
var skin = skeleton.Skin ?? skeleton.Data.DefaultSkin; var skin = skeleton.Skin ?? skeleton.Data.DefaultSkin;
@ -369,7 +371,7 @@ namespace Spine.Unity.Modules {
if (!a.Name.ToLower().Contains(AttachmentNameMarker)) if (!a.Name.ToLower().Contains(AttachmentNameMarker))
continue; 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); colliders.Add(bbCollider);
} }
} }

View File

@ -73,15 +73,15 @@ namespace Spine.Unity {
return AddBoundingBoxAsComponent(box, slot, go, isTrigger); 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 (box == null) return null;
if (slot.bone != slot.Skeleton.RootBone) { if (slot.bone != slot.Skeleton.RootBone) {
var rb = gameObject.GetComponent<Rigidbody2D>(); var rb = gameObject.GetComponent<Rigidbody2D>();
if (rb == null) { if (rb == null) {
rb = gameObject.AddComponent<Rigidbody2D>(); rb = gameObject.AddComponent<Rigidbody2D>();
rb.isKinematic = true; rb.isKinematic = isKinematic;
rb.gravityScale = 0; rb.gravityScale = gravityScale;
} }
} }