mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +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;
|
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];
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@ -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
@ -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
@ -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
@ -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
@ -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
@ -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
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user