@esotericsoftware/spine-core 4.1.23 → 4.1.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/package.json +1 -1
  2. package/dist/Animation.d.ts +0 -382
  3. package/dist/Animation.js +0 -2052
  4. package/dist/AnimationState.d.ts +0 -398
  5. package/dist/AnimationState.js +0 -1096
  6. package/dist/AnimationStateData.d.ts +0 -51
  7. package/dist/AnimationStateData.js +0 -70
  8. package/dist/AssetManagerBase.d.ts +0 -75
  9. package/dist/AssetManagerBase.js +0 -320
  10. package/dist/AtlasAttachmentLoader.d.ts +0 -53
  11. package/dist/AtlasAttachmentLoader.js +0 -95
  12. package/dist/Bone.d.ts +0 -138
  13. package/dist/Bone.js +0 -336
  14. package/dist/BoneData.d.ts +0 -72
  15. package/dist/BoneData.js +0 -80
  16. package/dist/ConstraintData.d.ts +0 -35
  17. package/dist/ConstraintData.js +0 -37
  18. package/dist/Event.d.ts +0 -44
  19. package/dist/Event.js +0 -48
  20. package/dist/EventData.d.ts +0 -41
  21. package/dist/EventData.js +0 -43
  22. package/dist/IkConstraint.d.ts +0 -64
  23. package/dist/IkConstraint.js +0 -296
  24. package/dist/IkConstraintData.d.ts +0 -56
  25. package/dist/IkConstraintData.js +0 -63
  26. package/dist/PathConstraint.d.ts +0 -71
  27. package/dist/PathConstraint.js +0 -476
  28. package/dist/PathConstraintData.d.ts +0 -82
  29. package/dist/PathConstraintData.js +0 -91
  30. package/dist/Skeleton.d.ts +0 -160
  31. package/dist/Skeleton.js +0 -580
  32. package/dist/SkeletonBinary.d.ts +0 -68
  33. package/dist/SkeletonBinary.js +0 -1172
  34. package/dist/SkeletonBounds.d.ts +0 -77
  35. package/dist/SkeletonBounds.js +0 -219
  36. package/dist/SkeletonClipping.d.ts +0 -50
  37. package/dist/SkeletonClipping.js +0 -326
  38. package/dist/SkeletonData.d.ts +0 -114
  39. package/dist/SkeletonData.js +0 -190
  40. package/dist/SkeletonJson.d.ts +0 -53
  41. package/dist/SkeletonJson.js +0 -1027
  42. package/dist/Skin.d.ts +0 -71
  43. package/dist/Skin.js +0 -201
  44. package/dist/Slot.d.ts +0 -69
  45. package/dist/Slot.js +0 -93
  46. package/dist/SlotData.d.ts +0 -57
  47. package/dist/SlotData.js +0 -64
  48. package/dist/Texture.d.ts +0 -69
  49. package/dist/Texture.js +0 -73
  50. package/dist/TextureAtlas.d.ts +0 -67
  51. package/dist/TextureAtlas.js +0 -263
  52. package/dist/TransformConstraint.d.ts +0 -60
  53. package/dist/TransformConstraint.js +0 -247
  54. package/dist/TransformConstraintData.d.ts +0 -62
  55. package/dist/TransformConstraintData.js +0 -69
  56. package/dist/Triangulator.d.ts +0 -43
  57. package/dist/Triangulator.js +0 -244
  58. package/dist/Updatable.d.ts +0 -37
  59. package/dist/Updatable.js +0 -30
  60. package/dist/Utils.d.ts +0 -168
  61. package/dist/Utils.js +0 -404
  62. package/dist/attachments/Attachment.d.ts +0 -72
  63. package/dist/attachments/Attachment.js +0 -147
  64. package/dist/attachments/AttachmentLoader.d.ts +0 -54
  65. package/dist/attachments/AttachmentLoader.js +0 -30
  66. package/dist/attachments/BoundingBoxAttachment.d.ts +0 -40
  67. package/dist/attachments/BoundingBoxAttachment.js +0 -48
  68. package/dist/attachments/ClippingAttachment.d.ts +0 -42
  69. package/dist/attachments/ClippingAttachment.js +0 -51
  70. package/dist/attachments/HasTextureRegion.d.ts +0 -44
  71. package/dist/attachments/HasTextureRegion.js +0 -30
  72. package/dist/attachments/MeshAttachment.d.ts +0 -79
  73. package/dist/attachments/MeshAttachment.js +0 -188
  74. package/dist/attachments/PathAttachment.d.ts +0 -47
  75. package/dist/attachments/PathAttachment.js +0 -59
  76. package/dist/attachments/PointAttachment.d.ts +0 -48
  77. package/dist/attachments/PointAttachment.js +0 -66
  78. package/dist/attachments/RegionAttachment.d.ts +0 -111
  79. package/dist/attachments/RegionAttachment.js +0 -215
  80. package/dist/attachments/Sequence.d.ts +0 -55
  81. package/dist/attachments/Sequence.js +0 -91
  82. package/dist/attachments/index.d.ts +0 -8
  83. package/dist/attachments/index.js +0 -9
  84. package/dist/iife/spine-core.js +0 -9192
  85. package/dist/iife/spine-core.js.map +0 -7
  86. package/dist/iife/spine-core.min.js +0 -2
  87. package/dist/index.d.ts +0 -39
  88. package/dist/index.js +0 -40
  89. package/dist/polyfills.d.ts +0 -29
  90. package/dist/polyfills.js +0 -39
@@ -1,476 +0,0 @@
1
- /******************************************************************************
2
- * Spine Runtimes License Agreement
3
- * Last updated September 24, 2021. Replaces all prior versions.
4
- *
5
- * Copyright (c) 2013-2021, Esoteric Software LLC
6
- *
7
- * Integration of the Spine Runtimes into software or otherwise creating
8
- * derivative works of the Spine Runtimes is permitted under the terms and
9
- * conditions of Section 2 of the Spine Editor License Agreement:
10
- * http://esotericsoftware.com/spine-editor-license
11
- *
12
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
13
- * or otherwise create derivative works of the Spine Runtimes (collectively,
14
- * "Products"), provided that each user of the Products must obtain their own
15
- * Spine Editor license and redistribution of the Products in any form must
16
- * include this license and copyright notice.
17
- *
18
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
19
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
22
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
- *****************************************************************************/
29
- import { PathAttachment } from "./attachments/PathAttachment";
30
- import { RotateMode, SpacingMode, PositionMode } from "./PathConstraintData";
31
- import { Utils, MathUtils } from "./Utils";
32
- /** Stores the current pose for a path constraint. A path constraint adjusts the rotation, translation, and scale of the
33
- * constrained bones so they follow a {@link PathAttachment}.
34
- *
35
- * See [Path constraints](http://esotericsoftware.com/spine-path-constraints) in the Spine User Guide. */
36
- export class PathConstraint {
37
- constructor(data, skeleton) {
38
- /** The position along the path. */
39
- this.position = 0;
40
- /** The spacing between bones. */
41
- this.spacing = 0;
42
- this.mixRotate = 0;
43
- this.mixX = 0;
44
- this.mixY = 0;
45
- this.spaces = new Array();
46
- this.positions = new Array();
47
- this.world = new Array();
48
- this.curves = new Array();
49
- this.lengths = new Array();
50
- this.segments = new Array();
51
- this.active = false;
52
- if (!data)
53
- throw new Error("data cannot be null.");
54
- if (!skeleton)
55
- throw new Error("skeleton cannot be null.");
56
- this.data = data;
57
- this.bones = new Array();
58
- for (let i = 0, n = data.bones.length; i < n; i++) {
59
- let bone = skeleton.findBone(data.bones[i].name);
60
- if (!bone)
61
- throw new Error(`Couldn't find bone ${data.bones[i].name}.`);
62
- this.bones.push(bone);
63
- }
64
- let target = skeleton.findSlot(data.target.name);
65
- if (!target)
66
- throw new Error(`Couldn't find target bone ${data.target.name}`);
67
- this.target = target;
68
- this.position = data.position;
69
- this.spacing = data.spacing;
70
- this.mixRotate = data.mixRotate;
71
- this.mixX = data.mixX;
72
- this.mixY = data.mixY;
73
- }
74
- isActive() {
75
- return this.active;
76
- }
77
- update() {
78
- let attachment = this.target.getAttachment();
79
- if (!(attachment instanceof PathAttachment))
80
- return;
81
- let mixRotate = this.mixRotate, mixX = this.mixX, mixY = this.mixY;
82
- if (mixRotate == 0 && mixX == 0 && mixY == 0)
83
- return;
84
- let data = this.data;
85
- let tangents = data.rotateMode == RotateMode.Tangent, scale = data.rotateMode == RotateMode.ChainScale;
86
- let bones = this.bones;
87
- let boneCount = bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
88
- let spaces = Utils.setArraySize(this.spaces, spacesCount), lengths = scale ? this.lengths = Utils.setArraySize(this.lengths, boneCount) : [];
89
- let spacing = this.spacing;
90
- switch (data.spacingMode) {
91
- case SpacingMode.Percent:
92
- if (scale) {
93
- for (let i = 0, n = spacesCount - 1; i < n; i++) {
94
- let bone = bones[i];
95
- let setupLength = bone.data.length;
96
- if (setupLength < PathConstraint.epsilon)
97
- lengths[i] = 0;
98
- else {
99
- let x = setupLength * bone.a, y = setupLength * bone.c;
100
- lengths[i] = Math.sqrt(x * x + y * y);
101
- }
102
- }
103
- }
104
- Utils.arrayFill(spaces, 1, spacesCount, spacing);
105
- break;
106
- case SpacingMode.Proportional:
107
- let sum = 0;
108
- for (let i = 0, n = spacesCount - 1; i < n;) {
109
- let bone = bones[i];
110
- let setupLength = bone.data.length;
111
- if (setupLength < PathConstraint.epsilon) {
112
- if (scale)
113
- lengths[i] = 0;
114
- spaces[++i] = spacing;
115
- }
116
- else {
117
- let x = setupLength * bone.a, y = setupLength * bone.c;
118
- let length = Math.sqrt(x * x + y * y);
119
- if (scale)
120
- lengths[i] = length;
121
- spaces[++i] = length;
122
- sum += length;
123
- }
124
- }
125
- if (sum > 0) {
126
- sum = spacesCount / sum * spacing;
127
- for (let i = 1; i < spacesCount; i++)
128
- spaces[i] *= sum;
129
- }
130
- break;
131
- default:
132
- let lengthSpacing = data.spacingMode == SpacingMode.Length;
133
- for (let i = 0, n = spacesCount - 1; i < n;) {
134
- let bone = bones[i];
135
- let setupLength = bone.data.length;
136
- if (setupLength < PathConstraint.epsilon) {
137
- if (scale)
138
- lengths[i] = 0;
139
- spaces[++i] = spacing;
140
- }
141
- else {
142
- let x = setupLength * bone.a, y = setupLength * bone.c;
143
- let length = Math.sqrt(x * x + y * y);
144
- if (scale)
145
- lengths[i] = length;
146
- spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length / setupLength;
147
- }
148
- }
149
- }
150
- let positions = this.computeWorldPositions(attachment, spacesCount, tangents);
151
- let boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
152
- let tip = false;
153
- if (offsetRotation == 0)
154
- tip = data.rotateMode == RotateMode.Chain;
155
- else {
156
- tip = false;
157
- let p = this.target.bone;
158
- offsetRotation *= p.a * p.d - p.b * p.c > 0 ? MathUtils.degRad : -MathUtils.degRad;
159
- }
160
- for (let i = 0, p = 3; i < boneCount; i++, p += 3) {
161
- let bone = bones[i];
162
- bone.worldX += (boneX - bone.worldX) * mixX;
163
- bone.worldY += (boneY - bone.worldY) * mixY;
164
- let x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY;
165
- if (scale) {
166
- let length = lengths[i];
167
- if (length != 0) {
168
- let s = (Math.sqrt(dx * dx + dy * dy) / length - 1) * mixRotate + 1;
169
- bone.a *= s;
170
- bone.c *= s;
171
- }
172
- }
173
- boneX = x;
174
- boneY = y;
175
- if (mixRotate > 0) {
176
- let a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0;
177
- if (tangents)
178
- r = positions[p - 1];
179
- else if (spaces[i + 1] == 0)
180
- r = positions[p + 2];
181
- else
182
- r = Math.atan2(dy, dx);
183
- r -= Math.atan2(c, a);
184
- if (tip) {
185
- cos = Math.cos(r);
186
- sin = Math.sin(r);
187
- let length = bone.data.length;
188
- boneX += (length * (cos * a - sin * c) - dx) * mixRotate;
189
- boneY += (length * (sin * a + cos * c) - dy) * mixRotate;
190
- }
191
- else {
192
- r += offsetRotation;
193
- }
194
- if (r > MathUtils.PI)
195
- r -= MathUtils.PI2;
196
- else if (r < -MathUtils.PI) //
197
- r += MathUtils.PI2;
198
- r *= mixRotate;
199
- cos = Math.cos(r);
200
- sin = Math.sin(r);
201
- bone.a = cos * a - sin * c;
202
- bone.b = cos * b - sin * d;
203
- bone.c = sin * a + cos * c;
204
- bone.d = sin * b + cos * d;
205
- }
206
- bone.updateAppliedTransform();
207
- }
208
- }
209
- computeWorldPositions(path, spacesCount, tangents) {
210
- let target = this.target;
211
- let position = this.position;
212
- let spaces = this.spaces, out = Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = this.world;
213
- let closed = path.closed;
214
- let verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE;
215
- if (!path.constantSpeed) {
216
- let lengths = path.lengths;
217
- curveCount -= closed ? 1 : 2;
218
- let pathLength = lengths[curveCount];
219
- if (this.data.positionMode == PositionMode.Percent)
220
- position *= pathLength;
221
- let multiplier;
222
- switch (this.data.spacingMode) {
223
- case SpacingMode.Percent:
224
- multiplier = pathLength;
225
- break;
226
- case SpacingMode.Proportional:
227
- multiplier = pathLength / spacesCount;
228
- break;
229
- default:
230
- multiplier = 1;
231
- }
232
- world = Utils.setArraySize(this.world, 8);
233
- for (let i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) {
234
- let space = spaces[i] * multiplier;
235
- position += space;
236
- let p = position;
237
- if (closed) {
238
- p %= pathLength;
239
- if (p < 0)
240
- p += pathLength;
241
- curve = 0;
242
- }
243
- else if (p < 0) {
244
- if (prevCurve != PathConstraint.BEFORE) {
245
- prevCurve = PathConstraint.BEFORE;
246
- path.computeWorldVertices(target, 2, 4, world, 0, 2);
247
- }
248
- this.addBeforePosition(p, world, 0, out, o);
249
- continue;
250
- }
251
- else if (p > pathLength) {
252
- if (prevCurve != PathConstraint.AFTER) {
253
- prevCurve = PathConstraint.AFTER;
254
- path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2);
255
- }
256
- this.addAfterPosition(p - pathLength, world, 0, out, o);
257
- continue;
258
- }
259
- // Determine curve containing position.
260
- for (;; curve++) {
261
- let length = lengths[curve];
262
- if (p > length)
263
- continue;
264
- if (curve == 0)
265
- p /= length;
266
- else {
267
- let prev = lengths[curve - 1];
268
- p = (p - prev) / (length - prev);
269
- }
270
- break;
271
- }
272
- if (curve != prevCurve) {
273
- prevCurve = curve;
274
- if (closed && curve == curveCount) {
275
- path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2);
276
- path.computeWorldVertices(target, 0, 4, world, 4, 2);
277
- }
278
- else
279
- path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2);
280
- }
281
- this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0));
282
- }
283
- return out;
284
- }
285
- // World vertices.
286
- if (closed) {
287
- verticesLength += 2;
288
- world = Utils.setArraySize(this.world, verticesLength);
289
- path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2);
290
- path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2);
291
- world[verticesLength - 2] = world[0];
292
- world[verticesLength - 1] = world[1];
293
- }
294
- else {
295
- curveCount--;
296
- verticesLength -= 4;
297
- world = Utils.setArraySize(this.world, verticesLength);
298
- path.computeWorldVertices(target, 2, verticesLength, world, 0, 2);
299
- }
300
- // Curve lengths.
301
- let curves = Utils.setArraySize(this.curves, curveCount);
302
- let pathLength = 0;
303
- let x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0;
304
- let tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0;
305
- for (let i = 0, w = 2; i < curveCount; i++, w += 6) {
306
- cx1 = world[w];
307
- cy1 = world[w + 1];
308
- cx2 = world[w + 2];
309
- cy2 = world[w + 3];
310
- x2 = world[w + 4];
311
- y2 = world[w + 5];
312
- tmpx = (x1 - cx1 * 2 + cx2) * 0.1875;
313
- tmpy = (y1 - cy1 * 2 + cy2) * 0.1875;
314
- dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375;
315
- dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375;
316
- ddfx = tmpx * 2 + dddfx;
317
- ddfy = tmpy * 2 + dddfy;
318
- dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667;
319
- dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667;
320
- pathLength += Math.sqrt(dfx * dfx + dfy * dfy);
321
- dfx += ddfx;
322
- dfy += ddfy;
323
- ddfx += dddfx;
324
- ddfy += dddfy;
325
- pathLength += Math.sqrt(dfx * dfx + dfy * dfy);
326
- dfx += ddfx;
327
- dfy += ddfy;
328
- pathLength += Math.sqrt(dfx * dfx + dfy * dfy);
329
- dfx += ddfx + dddfx;
330
- dfy += ddfy + dddfy;
331
- pathLength += Math.sqrt(dfx * dfx + dfy * dfy);
332
- curves[i] = pathLength;
333
- x1 = x2;
334
- y1 = y2;
335
- }
336
- if (this.data.positionMode == PositionMode.Percent)
337
- position *= pathLength;
338
- let multiplier;
339
- switch (this.data.spacingMode) {
340
- case SpacingMode.Percent:
341
- multiplier = pathLength;
342
- break;
343
- case SpacingMode.Proportional:
344
- multiplier = pathLength / spacesCount;
345
- break;
346
- default:
347
- multiplier = 1;
348
- }
349
- let segments = this.segments;
350
- let curveLength = 0;
351
- for (let i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) {
352
- let space = spaces[i] * multiplier;
353
- position += space;
354
- let p = position;
355
- if (closed) {
356
- p %= pathLength;
357
- if (p < 0)
358
- p += pathLength;
359
- curve = 0;
360
- }
361
- else if (p < 0) {
362
- this.addBeforePosition(p, world, 0, out, o);
363
- continue;
364
- }
365
- else if (p > pathLength) {
366
- this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o);
367
- continue;
368
- }
369
- // Determine curve containing position.
370
- for (;; curve++) {
371
- let length = curves[curve];
372
- if (p > length)
373
- continue;
374
- if (curve == 0)
375
- p /= length;
376
- else {
377
- let prev = curves[curve - 1];
378
- p = (p - prev) / (length - prev);
379
- }
380
- break;
381
- }
382
- // Curve segment lengths.
383
- if (curve != prevCurve) {
384
- prevCurve = curve;
385
- let ii = curve * 6;
386
- x1 = world[ii];
387
- y1 = world[ii + 1];
388
- cx1 = world[ii + 2];
389
- cy1 = world[ii + 3];
390
- cx2 = world[ii + 4];
391
- cy2 = world[ii + 5];
392
- x2 = world[ii + 6];
393
- y2 = world[ii + 7];
394
- tmpx = (x1 - cx1 * 2 + cx2) * 0.03;
395
- tmpy = (y1 - cy1 * 2 + cy2) * 0.03;
396
- dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006;
397
- dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006;
398
- ddfx = tmpx * 2 + dddfx;
399
- ddfy = tmpy * 2 + dddfy;
400
- dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667;
401
- dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667;
402
- curveLength = Math.sqrt(dfx * dfx + dfy * dfy);
403
- segments[0] = curveLength;
404
- for (ii = 1; ii < 8; ii++) {
405
- dfx += ddfx;
406
- dfy += ddfy;
407
- ddfx += dddfx;
408
- ddfy += dddfy;
409
- curveLength += Math.sqrt(dfx * dfx + dfy * dfy);
410
- segments[ii] = curveLength;
411
- }
412
- dfx += ddfx;
413
- dfy += ddfy;
414
- curveLength += Math.sqrt(dfx * dfx + dfy * dfy);
415
- segments[8] = curveLength;
416
- dfx += ddfx + dddfx;
417
- dfy += ddfy + dddfy;
418
- curveLength += Math.sqrt(dfx * dfx + dfy * dfy);
419
- segments[9] = curveLength;
420
- segment = 0;
421
- }
422
- // Weight by segment length.
423
- p *= curveLength;
424
- for (;; segment++) {
425
- let length = segments[segment];
426
- if (p > length)
427
- continue;
428
- if (segment == 0)
429
- p /= length;
430
- else {
431
- let prev = segments[segment - 1];
432
- p = segment + (p - prev) / (length - prev);
433
- }
434
- break;
435
- }
436
- this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0));
437
- }
438
- return out;
439
- }
440
- addBeforePosition(p, temp, i, out, o) {
441
- let x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx);
442
- out[o] = x1 + p * Math.cos(r);
443
- out[o + 1] = y1 + p * Math.sin(r);
444
- out[o + 2] = r;
445
- }
446
- addAfterPosition(p, temp, i, out, o) {
447
- let x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx);
448
- out[o] = x1 + p * Math.cos(r);
449
- out[o + 1] = y1 + p * Math.sin(r);
450
- out[o + 2] = r;
451
- }
452
- addCurvePosition(p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) {
453
- if (p == 0 || isNaN(p)) {
454
- out[o] = x1;
455
- out[o + 1] = y1;
456
- out[o + 2] = Math.atan2(cy1 - y1, cx1 - x1);
457
- return;
458
- }
459
- let tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u;
460
- let ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p;
461
- let x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt;
462
- out[o] = x;
463
- out[o + 1] = y;
464
- if (tangents) {
465
- if (p < 0.001)
466
- out[o + 2] = Math.atan2(cy1 - y1, cx1 - x1);
467
- else
468
- out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt));
469
- }
470
- }
471
- }
472
- PathConstraint.NONE = -1;
473
- PathConstraint.BEFORE = -2;
474
- PathConstraint.AFTER = -3;
475
- PathConstraint.epsilon = 0.00001;
476
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGF0aENvbnN0cmFpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUGF0aENvbnN0cmFpbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRUEyQitFO0FBRS9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU5RCxPQUFPLEVBQXNCLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJakcsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHM0M7Ozt5R0FHeUc7QUFDekcsTUFBTSxPQUFPLGNBQWM7SUErQjFCLFlBQWEsSUFBd0IsRUFBRSxRQUFrQjtRQWxCekQsbUNBQW1DO1FBQ25DLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFYixpQ0FBaUM7UUFDakMsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUVaLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFFZCxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRVQsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUVULFdBQU0sR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQUMsY0FBUyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDOUQsVUFBSyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFBQyxXQUFNLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUFDLFlBQU8sR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQ3pGLGFBQVEsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBRS9CLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFHZCxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsUUFBUTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFRLENBQUM7UUFDL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbEQsSUFBSSxJQUFJLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxJQUFJO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0QjtRQUNELElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxNQUFNO1FBQ0wsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsQ0FBQyxVQUFVLFlBQVksY0FBYyxDQUFDO1lBQUUsT0FBTztRQUVwRCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ25FLElBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO1lBQUUsT0FBTztRQUVyRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDO1FBRXZHLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdkIsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDakYsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLE9BQU8sR0FBa0IsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVKLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFM0IsUUFBUSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3pCLEtBQUssV0FBVyxDQUFDLE9BQU87Z0JBQ3ZCLElBQUksS0FBSyxFQUFFO29CQUNWLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQ2hELElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDcEIsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7d0JBQ25DLElBQUksV0FBVyxHQUFHLGNBQWMsQ0FBQyxPQUFPOzRCQUN2QyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDOzZCQUNYOzRCQUNKLElBQUksQ0FBQyxHQUFHLFdBQVcsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQzs0QkFDdkQsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7eUJBQ3RDO3FCQUNEO2lCQUNEO2dCQUNELEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2pELE1BQU07WUFDUCxLQUFLLFdBQVcsQ0FBQyxZQUFZO2dCQUM1QixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7Z0JBQ1osS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRztvQkFDNUMsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNwQixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDbkMsSUFBSSxXQUFXLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRTt3QkFDekMsSUFBSSxLQUFLOzRCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQzFCLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztxQkFDdEI7eUJBQU07d0JBQ04sSUFBSSxDQUFDLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUN2RCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUN0QyxJQUFJLEtBQUs7NEJBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQzt3QkFDL0IsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO3dCQUNyQixHQUFHLElBQUksTUFBTSxDQUFDO3FCQUNkO2lCQUNEO2dCQUNELElBQUksR0FBRyxHQUFHLENBQUMsRUFBRTtvQkFDWixHQUFHLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUM7b0JBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLEVBQUUsQ0FBQyxFQUFFO3dCQUNuQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO2lCQUNsQjtnQkFDRCxNQUFNO1lBQ1A7Z0JBQ0MsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDO2dCQUMzRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHO29CQUM1QyxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3BCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO29CQUNuQyxJQUFJLFdBQVcsR0FBRyxjQUFjLENBQUMsT0FBTyxFQUFFO3dCQUN6QyxJQUFJLEtBQUs7NEJBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDMUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO3FCQUN0Qjt5QkFBTTt3QkFDTixJQUFJLENBQUMsR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ3ZELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0JBQ3RDLElBQUksS0FBSzs0QkFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO3dCQUMvQixNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxHQUFHLFdBQVcsQ0FBQztxQkFDdkY7aUJBQ0Q7U0FDRjtRQUVELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBaUIsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5RixJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUNyRixJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDaEIsSUFBSSxjQUFjLElBQUksQ0FBQztZQUN0QixHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDO2FBQ3RDO1lBQ0osR0FBRyxHQUFHLEtBQUssQ0FBQztZQUNaLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ3pCLGNBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1NBQ25GO1FBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEQsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztZQUM1QyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDNUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzNFLElBQUksS0FBSyxFQUFFO2dCQUNWLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxNQUFNLElBQUksQ0FBQyxFQUFFO29CQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUM7b0JBQ3BFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNaLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNaO2FBQ0Q7WUFDRCxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ1YsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNWLElBQUksU0FBUyxHQUFHLENBQUMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDNUUsSUFBSSxRQUFRO29CQUNYLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO3FCQUNqQixJQUFJLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDMUIsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7O29CQUVyQixDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hCLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxHQUFHLEVBQUU7b0JBQ1IsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2xCLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNsQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDOUIsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN6RCxLQUFLLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7aUJBQ3pEO3FCQUFNO29CQUNOLENBQUMsSUFBSSxjQUFjLENBQUM7aUJBQ3BCO2dCQUNELElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFO29CQUNuQixDQUFDLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQztxQkFDZixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtvQkFDN0IsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3BCLENBQUMsSUFBSSxTQUFTLENBQUM7Z0JBQ2YsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xCLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQzthQUMzQjtZQUNELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQzlCO0lBQ0YsQ0FBQztJQUVELHFCQUFxQixDQUFFLElBQW9CLEVBQUUsV0FBbUIsRUFBRSxRQUFpQjtRQUNsRixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3pCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDN0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFrQixJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzNILElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDekIsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFVBQVUsR0FBRyxjQUFjLEdBQUcsQ0FBQyxFQUFFLFNBQVMsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDO1FBRWhILElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3hCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDM0IsVUFBVSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsSUFBSSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksWUFBWSxDQUFDLE9BQU87Z0JBQUUsUUFBUSxJQUFJLFVBQVUsQ0FBQztZQUUzRSxJQUFJLFVBQVUsQ0FBQztZQUNmLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzlCLEtBQUssV0FBVyxDQUFDLE9BQU87b0JBQ3ZCLFVBQVUsR0FBRyxVQUFVLENBQUM7b0JBQ3hCLE1BQU07Z0JBQ1AsS0FBSyxXQUFXLENBQUMsWUFBWTtvQkFDNUIsVUFBVSxHQUFHLFVBQVUsR0FBRyxXQUFXLENBQUM7b0JBQ3RDLE1BQU07Z0JBQ1A7b0JBQ0MsVUFBVSxHQUFHLENBQUMsQ0FBQzthQUNoQjtZQUNELEtBQUssR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDL0QsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQztnQkFDbkMsUUFBUSxJQUFJLEtBQUssQ0FBQztnQkFDbEIsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO2dCQUVqQixJQUFJLE1BQU0sRUFBRTtvQkFDWCxDQUFDLElBQUksVUFBVSxDQUFDO29CQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDO3dCQUFFLENBQUMsSUFBSSxVQUFVLENBQUM7b0JBQzNCLEtBQUssR0FBRyxDQUFDLENBQUM7aUJBQ1Y7cUJBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNqQixJQUFJLFNBQVMsSUFBSSxjQUFjLENBQUMsTUFBTSxFQUFFO3dCQUN2QyxTQUFTLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQzt3QkFDbEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQ3JEO29CQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQzVDLFNBQVM7aUJBQ1Q7cUJBQU0sSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFO29CQUMxQixJQUFJLFNBQVMsSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFO3dCQUN0QyxTQUFTLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQzt3QkFDakMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxjQUFjLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUN0RTtvQkFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDeEQsU0FBUztpQkFDVDtnQkFFRCx1Q0FBdUM7Z0JBQ3ZDLFFBQVMsS0FBSyxFQUFFLEVBQUU7b0JBQ2pCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLEdBQUcsTUFBTTt3QkFBRSxTQUFTO29CQUN6QixJQUFJLEtBQUssSUFBSSxDQUFDO3dCQUNiLENBQUMsSUFBSSxNQUFNLENBQUM7eUJBQ1I7d0JBQ0osSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDOUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDO3FCQUNqQztvQkFDRCxNQUFNO2lCQUNOO2dCQUNELElBQUksS0FBSyxJQUFJLFNBQVMsRUFBRTtvQkFDdkIsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDbEIsSUFBSSxNQUFNLElBQUksS0FBSyxJQUFJLFVBQVUsRUFBRTt3QkFDbEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxjQUFjLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUN0RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDckQ7O3dCQUNBLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ2xFO2dCQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUM5RyxRQUFRLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3BDO1lBQ0QsT0FBTyxHQUFHLENBQUM7U0FDWDtRQUVELGtCQUFrQjtRQUNsQixJQUFJLE1BQU0sRUFBRTtZQUNYLGNBQWMsSUFBSSxDQUFDLENBQUM7WUFDcEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxjQUFjLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxjQUFjLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLEtBQUssQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLEtBQUssQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JDO2FBQU07WUFDTixVQUFVLEVBQUUsQ0FBQztZQUNiLGNBQWMsSUFBSSxDQUFDLENBQUM7WUFDcEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNsRTtRQUVELGlCQUFpQjtRQUNqQixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDekQsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3JGLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ25GLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25ELEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDZixHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNuQixHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNuQixHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNuQixFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNsQixFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNsQixJQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7WUFDckMsSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1lBQ3JDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBQzlDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBQzlDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDeEIsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFHLFVBQVUsQ0FBQztZQUNwRCxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLEdBQUcsVUFBVSxDQUFDO1lBQ3BELFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQy9DLEdBQUcsSUFBSSxJQUFJLENBQUM7WUFDWixHQUFHLElBQUksSUFBSSxDQUFD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QUFDO0lBRUQsaUJBQWlCLENBQUUsQ0FBUyxFQUFFLElBQW1CLEVBQUUsQ0FBUyxFQUFFLEdBQWtCLEVBQUUsQ0FBUztRQUMxRixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsQ0FBUyxFQUFFLElBQW1CLEVBQUUsQ0FBUyxFQUFFLEdBQWtCLEVBQUUsQ0FBUztRQUN6RixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekcsR0FBRyxD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
@@ -1,82 +0,0 @@
1
- /******************************************************************************
2
- * Spine Runtimes License Agreement
3
- * Last updated September 24, 2021. Replaces all prior versions.
4
- *
5
- * Copyright (c) 2013-2021, Esoteric Software LLC
6
- *
7
- * Integration of the Spine Runtimes into software or otherwise creating
8
- * derivative works of the Spine Runtimes is permitted under the terms and
9
- * conditions of Section 2 of the Spine Editor License Agreement:
10
- * http://esotericsoftware.com/spine-editor-license
11
- *
12
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
13
- * or otherwise create derivative works of the Spine Runtimes (collectively,
14
- * "Products"), provided that each user of the Products must obtain their own
15
- * Spine Editor license and redistribution of the Products in any form must
16
- * include this license and copyright notice.
17
- *
18
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
19
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
22
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
- *****************************************************************************/
29
- import { BoneData } from "./BoneData";
30
- import { ConstraintData } from "./ConstraintData";
31
- import { SlotData } from "./SlotData";
32
- /** Stores the setup pose for a {@link PathConstraint}.
33
- *
34
- * See [path constraints](http://esotericsoftware.com/spine-path-constraints) in the Spine User Guide. */
35
- export declare class PathConstraintData extends ConstraintData {
36
- /** The bones that will be modified by this path constraint. */
37
- bones: BoneData[];
38
- /** The slot whose path attachment will be used to constrained the bones. */
39
- private _target;
40
- set target(slotData: SlotData);
41
- get target(): SlotData;
42
- /** The mode for positioning the first bone on the path. */
43
- positionMode: PositionMode;
44
- /** The mode for positioning the bones after the first bone on the path. */
45
- spacingMode: SpacingMode;
46
- /** The mode for adjusting the rotation of the bones. */
47
- rotateMode: RotateMode;
48
- /** An offset added to the constrained bone rotation. */
49
- offsetRotation: number;
50
- /** The position along the path. */
51
- position: number;
52
- /** The spacing between bones. */
53
- spacing: number;
54
- mixRotate: number;
55
- mixX: number;
56
- mixY: number;
57
- constructor(name: string);
58
- }
59
- /** Controls how the first bone is positioned along the path.
60
- *
61
- * See [position](http://esotericsoftware.com/spine-path-constraints#Position) in the Spine User Guide. */
62
- export declare enum PositionMode {
63
- Fixed = 0,
64
- Percent = 1
65
- }
66
- /** Controls how bones after the first bone are positioned along the path.
67
- *
68
- * See [spacing](http://esotericsoftware.com/spine-path-constraints#Spacing) in the Spine User Guide. */
69
- export declare enum SpacingMode {
70
- Length = 0,
71
- Fixed = 1,
72
- Percent = 2,
73
- Proportional = 3
74
- }
75
- /** Controls how bones are rotated, translated, and scaled to match the path.
76
- *
77
- * See [rotate mix](http://esotericsoftware.com/spine-path-constraints#Rotate-mix) in the Spine User Guide. */
78
- export declare enum RotateMode {
79
- Tangent = 0,
80
- Chain = 1,
81
- ChainScale = 2
82
- }