Procházet zdrojové kódy

Merge branch '3.6' into 3.7-beta

pharan před 8 roky
rodič
revize
a3e4bdd3d8

binární
spine-as3/spine-as3-example/lib/spine-as3.swc


+ 29 - 9
spine-as3/spine-as3/src/spine/animation/DeformTimeline.as

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

binární
spine-starling/spine-starling-example/lib/spine-as3.swc


binární
spine-starling/spine-starling/lib/spine-as3.swc


+ 60 - 40
spine-ts/build/spine-all.js

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

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
spine-ts/build/spine-all.js.map


+ 47 - 27
spine-ts/build/spine-canvas.js

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

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
spine-ts/build/spine-canvas.js.map


+ 47 - 27
spine-ts/build/spine-core.js

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

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
spine-ts/build/spine-core.js.map


+ 47 - 27
spine-ts/build/spine-threejs.js

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

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
spine-ts/build/spine-threejs.js.map


+ 60 - 40
spine-ts/build/spine-webgl.js

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

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
spine-ts/build/spine-webgl.js.map


+ 60 - 40
spine-ts/build/spine-widget.js

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

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
spine-ts/build/spine-widget.js.map


+ 30 - 9
spine-ts/core/src/Animation.ts

@@ -677,6 +677,8 @@ module spine {
 		}
 	}
 
+	var zeros : ArrayLike<number> = null;
+
 	export class DeformTimeline extends CurveTimeline {
 		slotIndex: number;
 		attachment: VertexAttachment;
@@ -687,6 +689,7 @@ module spine {
 			super(frameCount);
 			this.frames = Utils.newFloatArray(frameCount);
 			this.frameVertices = new Array<ArrayLike<number>>(frameCount);
+			if (zeros == null) zeros = Utils.newFloatArray(64);
 		}
 
 		getPropertyId () {
@@ -703,26 +706,44 @@ module spine {
 			let slot: Slot = skeleton.slots[this.slotIndex];
 			let slotAttachment: Attachment = slot.getAttachment();
 			if (!(slotAttachment instanceof VertexAttachment) || !(<VertexAttachment>slotAttachment).applyDeform(this.attachment)) return;
-			
+
 			let verticesArray: Array<number> = slot.attachmentVertices;
-			let frameVertices = this.frameVertices;				
-			let vertexCount = frameVertices[0].length;					
-			if (verticesArray.length != vertexCount && pose != MixPose.setup) alpha = 1; // Don't mix from uninitialized slot vertices.
+			let frameVertices = this.frameVertices;
+			let vertexCount = frameVertices[0].length;
 			let vertices: Array<number> = Utils.setArraySize(verticesArray, vertexCount);
 
 			let frames = this.frames;
 			if (time < frames[0]) {
+				let vertexAttachment = <VertexAttachment>slotAttachment;
 				switch (pose) {
 				case MixPose.setup:
-					verticesArray.length = 0;
+					var zeroVertices: ArrayLike<number>;
+					if (vertexAttachment.bones == null) {
+						// Unweighted vertex positions (setup pose).
+						zeroVertices = vertexAttachment.vertices;
+					} else {
+						// Weighted deform offsets (zeros).
+						zeroVertices = zeros;
+						if (zeroVertices.length < vertexCount) zeros = zeroVertices = Utils.newFloatArray(vertexCount);
+					}
+					Utils.arrayCopy(zeroVertices, 0, vertices, 0, vertexCount);
 					return;
 				case MixPose.current:
-					alpha = 1 - alpha;
-					for (let i = 0; i < vertexCount; i++)
-						vertices[i] *= alpha;
+					if (alpha == 1) break;
+					if (vertexAttachment.bones == null) {
+						// Unweighted vertex positions.
+						var setupVertices = vertexAttachment.vertices;
+						for (var i = 0; i < vertexCount; i++)
+							vertices[i] += (setupVertices[i] - vertices[i]) * alpha;
+					} else {
+						// Weighted deform offsets.
+						alpha = 1 - alpha;
+						for (var i = 0; i < vertexCount; i++)
+							vertices[i] *= alpha;
+					}
 				}
 				return;
-			}			
+			}
 
 			if (time >= frames[frames.length - 1]) { // Time is after last frame.
 				let lastVertices = frameVertices[frames.length - 1];

+ 1 - 1
spine-unity/Assets/spine-unity/Editor/SkeletonAnimatorInspector.cs

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

+ 58 - 50
spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs

@@ -228,12 +228,10 @@ namespace Spine.Unity.Editor {
 			EditorApplication.hierarchyWindowItemOnGUI += HierarchyDragAndDrop;
 
 			// Hierarchy Icons
-			EditorApplication.hierarchyWindowChanged -= HierarchyIconsOnChanged;
-			EditorApplication.hierarchyWindowChanged += HierarchyIconsOnChanged;
-			EditorApplication.hierarchyWindowItemOnGUI -= HierarchyIconsOnGUI;
-			EditorApplication.hierarchyWindowItemOnGUI += HierarchyIconsOnGUI;
+			EditorApplication.playmodeStateChanged -= HierarchyIconsOnPlaymodeStateChanged;
+			EditorApplication.playmodeStateChanged += HierarchyIconsOnPlaymodeStateChanged;
+			HierarchyIconsOnPlaymodeStateChanged();
 
-			HierarchyIconsOnChanged();
 			initialized = true;
 		}
 
@@ -255,7 +253,7 @@ namespace Spine.Unity.Editor {
 			showHierarchyIcons = EditorGUILayout.Toggle(new GUIContent("Show Hierarchy Icons", "Show relevant icons on GameObjects with Spine Components on them. Disable this if you have large, complex scenes."), showHierarchyIcons);
 			if (EditorGUI.EndChangeCheck()) {
 				EditorPrefs.SetBool(SHOW_HIERARCHY_ICONS_KEY, showHierarchyIcons);
-				HierarchyIconsOnChanged();
+				HierarchyIconsOnPlaymodeStateChanged();
 			}
 
 			EditorGUILayout.Separator();
@@ -496,58 +494,68 @@ namespace Spine.Unity.Editor {
 		#endregion
 
 		#region Hierarchy
+		static void HierarchyIconsOnPlaymodeStateChanged () {
+			skeletonRendererTable.Clear();
+			skeletonUtilityBoneTable.Clear();
+			boundingBoxFollowerTable.Clear();
+
+			EditorApplication.hierarchyWindowChanged -= HierarchyIconsOnChanged;
+			EditorApplication.hierarchyWindowItemOnGUI -= HierarchyIconsOnGUI;
+
+			if (!Application.isPlaying && showHierarchyIcons) {
+				EditorApplication.hierarchyWindowChanged += HierarchyIconsOnChanged;
+				EditorApplication.hierarchyWindowItemOnGUI += HierarchyIconsOnGUI;
+				HierarchyIconsOnChanged();
+			}
+		}
+
 		static void HierarchyIconsOnChanged () {
-			if (showHierarchyIcons) {
-				skeletonRendererTable.Clear();
-				skeletonUtilityBoneTable.Clear();
-				boundingBoxFollowerTable.Clear();
+			skeletonRendererTable.Clear();
+			skeletonUtilityBoneTable.Clear();
+			boundingBoxFollowerTable.Clear();
 
-				SkeletonRenderer[] arr = Object.FindObjectsOfType<SkeletonRenderer>();
-				foreach (SkeletonRenderer r in arr)
-					skeletonRendererTable.Add(r.gameObject.GetInstanceID(), r.gameObject);
+			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);
+			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);
-			}
+			BoundingBoxFollower[] bbfArr = Object.FindObjectsOfType<BoundingBoxFollower>();
+			foreach (BoundingBoxFollower bbf in bbfArr)
+				boundingBoxFollowerTable.Add(bbf.gameObject.GetInstanceID(), bbf);
 		}
 
 		static void HierarchyIconsOnGUI (int instanceId, Rect selectionRect) {
-			if (showHierarchyIcons) {
-				Rect r = new Rect(selectionRect);
-				if (skeletonRendererTable.ContainsKey(instanceId)) {
-					r.x = r.width - 15;
-					r.width = 15;
-					GUI.Label(r, Icons.spine);
-				} else if (skeletonUtilityBoneTable.ContainsKey(instanceId)) {
-					r.x -= 26;
-					if (skeletonUtilityBoneTable[instanceId] != null) {
-						if (skeletonUtilityBoneTable[instanceId].transform.childCount == 0)
-							r.x += 13;
-						r.y += 2;
-						r.width = 13;
-						r.height = 13;
-						if (skeletonUtilityBoneTable[instanceId].mode == SkeletonUtilityBone.Mode.Follow)
-							GUI.DrawTexture(r, Icons.bone);
-						else
-							GUI.DrawTexture(r, Icons.poseBones);
-					}
-				} else if (boundingBoxFollowerTable.ContainsKey(instanceId)) {
-					r.x -= 26;
-					if (boundingBoxFollowerTable[instanceId] != null) {
-						if (boundingBoxFollowerTable[instanceId].transform.childCount == 0)
-							r.x += 13;
-						r.y += 2;
-						r.width = 13;
-						r.height = 13;
-						GUI.DrawTexture(r, Icons.boundingBox);
-					}
+			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

+ 6 - 4
spine-unity/Assets/spine-unity/Modules/Ragdoll/SkeletonRagdoll2D.cs

@@ -288,7 +288,7 @@ namespace Spine.Unity.Modules {
 			t.localScale = new Vector3(b.WorldScaleX, b.WorldScaleY, 0);
 
 			// MITCH: You left "todo: proper ragdoll branching"
-			var colliders = AttachBoundingBoxRagdollColliders(b, boneGameObject, skeleton);
+			var colliders = AttachBoundingBoxRagdollColliders(b, boneGameObject, skeleton, this.gravityScale);
 			if (colliders.Count == 0) {
 				float length = b.data.length;
 				if (length == 0) {
@@ -300,7 +300,9 @@ namespace Spine.Unity.Modules {
 					box.offset = new Vector2(length * 0.5f, 0); // box.center in UNITY_4
 				}
 			}
-			var rb = boneGameObject.AddComponent<Rigidbody2D>();
+
+			var rb = boneGameObject.GetComponent<Rigidbody2D>();
+			if (rb == null) rb = boneGameObject.AddComponent<Rigidbody2D>();
 			rb.gravityScale = this.gravityScale;
 
 			foreach (Bone child in b.Children)
@@ -354,7 +356,7 @@ namespace Spine.Unity.Modules {
 			}
 		}
 
-		static List<Collider2D> AttachBoundingBoxRagdollColliders (Bone b, GameObject go, Skeleton skeleton) {
+		static List<Collider2D> AttachBoundingBoxRagdollColliders (Bone b, GameObject go, Skeleton skeleton, float gravityScale) {
 			const string AttachmentNameMarker = "ragdoll";
 			var colliders = new List<Collider2D>();
 			var skin = skeleton.Skin ?? skeleton.Data.DefaultSkin;
@@ -369,7 +371,7 @@ namespace Spine.Unity.Modules {
 							if (!a.Name.ToLower().Contains(AttachmentNameMarker))
 								continue;
 
-							var bbCollider = SkeletonUtility.AddBoundingBoxAsComponent(bbAttachment, s, go, false);
+							var bbCollider = SkeletonUtility.AddBoundingBoxAsComponent(bbAttachment, s, go, isTrigger: false, isKinematic: false, gravityScale: gravityScale);
 							colliders.Add(bbCollider);
 						}
 					}

+ 3 - 3
spine-unity/Assets/spine-unity/SkeletonUtility/SkeletonUtility.cs

@@ -73,15 +73,15 @@ namespace Spine.Unity {
 			return AddBoundingBoxAsComponent(box, slot, go, isTrigger);
 		}
 
-		public static PolygonCollider2D AddBoundingBoxAsComponent (BoundingBoxAttachment box, Slot slot, GameObject gameObject, bool isTrigger = true) {
+		public static PolygonCollider2D AddBoundingBoxAsComponent (BoundingBoxAttachment box, Slot slot, GameObject gameObject, bool isTrigger = true, bool isKinematic = true, float gravityScale = 0f) {
 			if (box == null) return null;
 
 			if (slot.bone != slot.Skeleton.RootBone) {
 				var rb = gameObject.GetComponent<Rigidbody2D>();
 				if (rb == null) {
 					rb = gameObject.AddComponent<Rigidbody2D>();
-					rb.isKinematic = true;
-					rb.gravityScale = 0;
+					rb.isKinematic = isKinematic;
+					rb.gravityScale = gravityScale;
 				}
 			}
 

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů