@galacean/engine-spine 0.0.0-experimental-6d3110b4d9-20240531

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 (121) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +79 -0
  3. package/dist/browser.js +1 -0
  4. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Animation.js +2 -0
  5. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Animation.js.map +1 -0
  6. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AnimationState.js +2 -0
  7. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AnimationState.js.map +1 -0
  8. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AnimationStateData.js +2 -0
  9. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AnimationStateData.js.map +1 -0
  10. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AssetManagerBase.js +2 -0
  11. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AssetManagerBase.js.map +1 -0
  12. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AtlasAttachmentLoader.js +2 -0
  13. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/AtlasAttachmentLoader.js.map +1 -0
  14. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Bone.js +2 -0
  15. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Bone.js.map +1 -0
  16. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/BoneData.js +2 -0
  17. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/BoneData.js.map +1 -0
  18. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/ConstraintData.js +2 -0
  19. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/ConstraintData.js.map +1 -0
  20. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Event.js +2 -0
  21. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Event.js.map +1 -0
  22. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/EventData.js +2 -0
  23. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/EventData.js.map +1 -0
  24. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/IkConstraint.js +2 -0
  25. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/IkConstraint.js.map +1 -0
  26. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/IkConstraintData.js +2 -0
  27. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/IkConstraintData.js.map +1 -0
  28. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PathConstraint.js +2 -0
  29. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PathConstraint.js.map +1 -0
  30. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PathConstraintData.js +2 -0
  31. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PathConstraintData.js.map +1 -0
  32. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PhysicsConstraint.js +2 -0
  33. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PhysicsConstraint.js.map +1 -0
  34. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PhysicsConstraintData.js +2 -0
  35. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/PhysicsConstraintData.js.map +1 -0
  36. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Skeleton.js +2 -0
  37. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Skeleton.js.map +1 -0
  38. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonBinary.js +2 -0
  39. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonBinary.js.map +1 -0
  40. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonBounds.js +2 -0
  41. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonBounds.js.map +1 -0
  42. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonClipping.js +2 -0
  43. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonClipping.js.map +1 -0
  44. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonData.js +2 -0
  45. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonData.js.map +1 -0
  46. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonJson.js +2 -0
  47. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SkeletonJson.js.map +1 -0
  48. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Skin.js +2 -0
  49. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Skin.js.map +1 -0
  50. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Slot.js +2 -0
  51. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Slot.js.map +1 -0
  52. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SlotData.js +2 -0
  53. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/SlotData.js.map +1 -0
  54. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Texture.js +2 -0
  55. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Texture.js.map +1 -0
  56. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/TextureAtlas.js +2 -0
  57. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/TextureAtlas.js.map +1 -0
  58. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/TransformConstraint.js +2 -0
  59. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/TransformConstraint.js.map +1 -0
  60. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/TransformConstraintData.js +2 -0
  61. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/TransformConstraintData.js.map +1 -0
  62. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Triangulator.js +2 -0
  63. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Triangulator.js.map +1 -0
  64. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Utils.js +2 -0
  65. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/Utils.js.map +1 -0
  66. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/Attachment.js +2 -0
  67. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/Attachment.js.map +1 -0
  68. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/BoundingBoxAttachment.js +2 -0
  69. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/BoundingBoxAttachment.js.map +1 -0
  70. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/ClippingAttachment.js +2 -0
  71. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/ClippingAttachment.js.map +1 -0
  72. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/MeshAttachment.js +2 -0
  73. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/MeshAttachment.js.map +1 -0
  74. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/PathAttachment.js +2 -0
  75. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/PathAttachment.js.map +1 -0
  76. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/PointAttachment.js +2 -0
  77. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/PointAttachment.js.map +1 -0
  78. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/RegionAttachment.js +2 -0
  79. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/RegionAttachment.js.map +1 -0
  80. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/Sequence.js +2 -0
  81. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/attachments/Sequence.js.map +1 -0
  82. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/polyfills.js +2 -0
  83. package/dist/esm/node_modules/@esotericsoftware/spine-core/dist/polyfills.js.map +1 -0
  84. package/dist/esm/node_modules/tslib/tslib.es6.js +2 -0
  85. package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -0
  86. package/dist/esm/src/SpineAnimation.js +2 -0
  87. package/dist/esm/src/SpineAnimation.js.map +1 -0
  88. package/dist/esm/src/SpineMaterial.js +2 -0
  89. package/dist/esm/src/SpineMaterial.js.map +1 -0
  90. package/dist/esm/src/core/SpineGenerator.js +2 -0
  91. package/dist/esm/src/core/SpineGenerator.js.map +1 -0
  92. package/dist/esm/src/core/SpinePrimitive.js +2 -0
  93. package/dist/esm/src/core/SpinePrimitive.js.map +1 -0
  94. package/dist/esm/src/index.js +2 -0
  95. package/dist/esm/src/index.js.map +1 -0
  96. package/dist/esm/src/loader/EditorSkeletonDataLoader.js +2 -0
  97. package/dist/esm/src/loader/EditorSkeletonDataLoader.js.map +1 -0
  98. package/dist/esm/src/loader/EditorSpineAtlasLoader.js +2 -0
  99. package/dist/esm/src/loader/EditorSpineAtlasLoader.js.map +1 -0
  100. package/dist/esm/src/loader/LoaderUtils.js +2 -0
  101. package/dist/esm/src/loader/LoaderUtils.js.map +1 -0
  102. package/dist/esm/src/loader/SpineLoader.js +2 -0
  103. package/dist/esm/src/loader/SpineLoader.js.map +1 -0
  104. package/dist/main.js +2 -0
  105. package/dist/main.js.map +1 -0
  106. package/dist/module.js +2 -0
  107. package/dist/module.js.map +1 -0
  108. package/package.json +67 -0
  109. package/types/SpineAnimation.d.ts +64 -0
  110. package/types/SpineMaterial.d.ts +6 -0
  111. package/types/core/MeshGenerator.d.ts +43 -0
  112. package/types/core/SpineGenerator.d.ts +43 -0
  113. package/types/core/SpineMesh.d.ts +11 -0
  114. package/types/core/SpinePrimitive.d.ts +23 -0
  115. package/types/index.d.ts +7 -0
  116. package/types/loader/BufferReader.d.ts +9 -0
  117. package/types/loader/EditorSkeletonDataLoader.d.ts +6 -0
  118. package/types/loader/EditorSpineAtlasLoader.d.ts +6 -0
  119. package/types/loader/LoaderUtils.d.ts +16 -0
  120. package/types/loader/SpineLoader.d.ts +21 -0
  121. package/types/types.d.ts +4 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkeletonClipping.js","sources":["../../../../../../node_modules/@esotericsoftware/spine-core/dist/SkeletonClipping.js"],"sourcesContent":["/******************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\nimport { Triangulator } from \"./Triangulator.js\";\nimport { Utils } from \"./Utils.js\";\nexport class SkeletonClipping {\n triangulator = new Triangulator();\n clippingPolygon = new Array();\n clipOutput = new Array();\n clippedVertices = new Array();\n clippedTriangles = new Array();\n scratch = new Array();\n clipAttachment = null;\n clippingPolygons = null;\n clipStart(slot, clip) {\n if (this.clipAttachment)\n return 0;\n this.clipAttachment = clip;\n let n = clip.worldVerticesLength;\n let vertices = Utils.setArraySize(this.clippingPolygon, n);\n clip.computeWorldVertices(slot, 0, n, vertices, 0, 2);\n let clippingPolygon = this.clippingPolygon;\n SkeletonClipping.makeClockwise(clippingPolygon);\n let clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon));\n for (let i = 0, n = clippingPolygons.length; i < n; i++) {\n let polygon = clippingPolygons[i];\n SkeletonClipping.makeClockwise(polygon);\n polygon.push(polygon[0]);\n polygon.push(polygon[1]);\n }\n return clippingPolygons.length;\n }\n clipEndWithSlot(slot) {\n if (this.clipAttachment && this.clipAttachment.endSlot == slot.data)\n this.clipEnd();\n }\n clipEnd() {\n if (!this.clipAttachment)\n return;\n this.clipAttachment = null;\n this.clippingPolygons = null;\n this.clippedVertices.length = 0;\n this.clippedTriangles.length = 0;\n this.clippingPolygon.length = 0;\n }\n isClipping() {\n return this.clipAttachment != null;\n }\n clipTriangles(vertices, triangles, trianglesLength, uvs, light, dark, twoColor) {\n if (uvs && light && dark && typeof twoColor === 'boolean')\n this.clipTrianglesRender(vertices, triangles, trianglesLength, uvs, light, dark, twoColor);\n else\n this.clipTrianglesNoRender(vertices, triangles, trianglesLength);\n }\n clipTrianglesNoRender(vertices, triangles, trianglesLength) {\n let clipOutput = this.clipOutput, clippedVertices = this.clippedVertices;\n let clippedTriangles = this.clippedTriangles;\n let polygons = this.clippingPolygons;\n let polygonsCount = polygons.length;\n let index = 0;\n clippedVertices.length = 0;\n clippedTriangles.length = 0;\n for (let i = 0; i < trianglesLength; i += 3) {\n let vertexOffset = triangles[i] << 1;\n let x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1];\n vertexOffset = triangles[i + 1] << 1;\n let x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1];\n vertexOffset = triangles[i + 2] << 1;\n let x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1];\n for (let p = 0; p < polygonsCount; p++) {\n let s = clippedVertices.length;\n if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) {\n let clipOutputLength = clipOutput.length;\n if (clipOutputLength == 0)\n continue;\n let clipOutputCount = clipOutputLength >> 1;\n let clipOutputItems = this.clipOutput;\n let clippedVerticesItems = Utils.setArraySize(clippedVertices, s + clipOutputCount * 2);\n for (let ii = 0; ii < clipOutputLength; ii += 2, s += 2) {\n let x = clipOutputItems[ii], y = clipOutputItems[ii + 1];\n clippedVerticesItems[s] = x;\n clippedVerticesItems[s + 1] = y;\n }\n s = clippedTriangles.length;\n let clippedTrianglesItems = Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2));\n clipOutputCount--;\n for (let ii = 1; ii < clipOutputCount; ii++, s += 3) {\n clippedTrianglesItems[s] = index;\n clippedTrianglesItems[s + 1] = (index + ii);\n clippedTrianglesItems[s + 2] = (index + ii + 1);\n }\n index += clipOutputCount + 1;\n }\n else {\n let clippedVerticesItems = Utils.setArraySize(clippedVertices, s + 3 * 2);\n clippedVerticesItems[s] = x1;\n clippedVerticesItems[s + 1] = y1;\n clippedVerticesItems[s + 2] = x2;\n clippedVerticesItems[s + 3] = y2;\n clippedVerticesItems[s + 4] = x3;\n clippedVerticesItems[s + 5] = y3;\n s = clippedTriangles.length;\n let clippedTrianglesItems = Utils.setArraySize(clippedTriangles, s + 3);\n clippedTrianglesItems[s] = index;\n clippedTrianglesItems[s + 1] = (index + 1);\n clippedTrianglesItems[s + 2] = (index + 2);\n index += 3;\n break;\n }\n }\n }\n }\n clipTrianglesRender(vertices, triangles, trianglesLength, uvs, light, dark, twoColor) {\n let clipOutput = this.clipOutput, clippedVertices = this.clippedVertices;\n let clippedTriangles = this.clippedTriangles;\n let polygons = this.clippingPolygons;\n let polygonsCount = polygons.length;\n let vertexSize = twoColor ? 12 : 8;\n let index = 0;\n clippedVertices.length = 0;\n clippedTriangles.length = 0;\n for (let i = 0; i < trianglesLength; i += 3) {\n let vertexOffset = triangles[i] << 1;\n let x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1];\n let u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1];\n vertexOffset = triangles[i + 1] << 1;\n let x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1];\n let u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1];\n vertexOffset = triangles[i + 2] << 1;\n let x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1];\n let u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1];\n for (let p = 0; p < polygonsCount; p++) {\n let s = clippedVertices.length;\n if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) {\n let clipOutputLength = clipOutput.length;\n if (clipOutputLength == 0)\n continue;\n let d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1;\n let d = 1 / (d0 * d2 + d1 * (y1 - y3));\n let clipOutputCount = clipOutputLength >> 1;\n let clipOutputItems = this.clipOutput;\n let clippedVerticesItems = Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize);\n for (let ii = 0; ii < clipOutputLength; ii += 2, s += vertexSize) {\n let x = clipOutputItems[ii], y = clipOutputItems[ii + 1];\n clippedVerticesItems[s] = x;\n clippedVerticesItems[s + 1] = y;\n clippedVerticesItems[s + 2] = light.r;\n clippedVerticesItems[s + 3] = light.g;\n clippedVerticesItems[s + 4] = light.b;\n clippedVerticesItems[s + 5] = light.a;\n let c0 = x - x3, c1 = y - y3;\n let a = (d0 * c0 + d1 * c1) * d;\n let b = (d4 * c0 + d2 * c1) * d;\n let c = 1 - a - b;\n clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c;\n clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c;\n if (twoColor) {\n clippedVerticesItems[s + 8] = dark.r;\n clippedVerticesItems[s + 9] = dark.g;\n clippedVerticesItems[s + 10] = dark.b;\n clippedVerticesItems[s + 11] = dark.a;\n }\n }\n s = clippedTriangles.length;\n let clippedTrianglesItems = Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2));\n clipOutputCount--;\n for (let ii = 1; ii < clipOutputCount; ii++, s += 3) {\n clippedTrianglesItems[s] = index;\n clippedTrianglesItems[s + 1] = (index + ii);\n clippedTrianglesItems[s + 2] = (index + ii + 1);\n }\n index += clipOutputCount + 1;\n }\n else {\n let clippedVerticesItems = Utils.setArraySize(clippedVertices, s + 3 * vertexSize);\n clippedVerticesItems[s] = x1;\n clippedVerticesItems[s + 1] = y1;\n clippedVerticesItems[s + 2] = light.r;\n clippedVerticesItems[s + 3] = light.g;\n clippedVerticesItems[s + 4] = light.b;\n clippedVerticesItems[s + 5] = light.a;\n if (!twoColor) {\n clippedVerticesItems[s + 6] = u1;\n clippedVerticesItems[s + 7] = v1;\n clippedVerticesItems[s + 8] = x2;\n clippedVerticesItems[s + 9] = y2;\n clippedVerticesItems[s + 10] = light.r;\n clippedVerticesItems[s + 11] = light.g;\n clippedVerticesItems[s + 12] = light.b;\n clippedVerticesItems[s + 13] = light.a;\n clippedVerticesItems[s + 14] = u2;\n clippedVerticesItems[s + 15] = v2;\n clippedVerticesItems[s + 16] = x3;\n clippedVerticesItems[s + 17] = y3;\n clippedVerticesItems[s + 18] = light.r;\n clippedVerticesItems[s + 19] = light.g;\n clippedVerticesItems[s + 20] = light.b;\n clippedVerticesItems[s + 21] = light.a;\n clippedVerticesItems[s + 22] = u3;\n clippedVerticesItems[s + 23] = v3;\n }\n else {\n clippedVerticesItems[s + 6] = u1;\n clippedVerticesItems[s + 7] = v1;\n clippedVerticesItems[s + 8] = dark.r;\n clippedVerticesItems[s + 9] = dark.g;\n clippedVerticesItems[s + 10] = dark.b;\n clippedVerticesItems[s + 11] = dark.a;\n clippedVerticesItems[s + 12] = x2;\n clippedVerticesItems[s + 13] = y2;\n clippedVerticesItems[s + 14] = light.r;\n clippedVerticesItems[s + 15] = light.g;\n clippedVerticesItems[s + 16] = light.b;\n clippedVerticesItems[s + 17] = light.a;\n clippedVerticesItems[s + 18] = u2;\n clippedVerticesItems[s + 19] = v2;\n clippedVerticesItems[s + 20] = dark.r;\n clippedVerticesItems[s + 21] = dark.g;\n clippedVerticesItems[s + 22] = dark.b;\n clippedVerticesItems[s + 23] = dark.a;\n clippedVerticesItems[s + 24] = x3;\n clippedVerticesItems[s + 25] = y3;\n clippedVerticesItems[s + 26] = light.r;\n clippedVerticesItems[s + 27] = light.g;\n clippedVerticesItems[s + 28] = light.b;\n clippedVerticesItems[s + 29] = light.a;\n clippedVerticesItems[s + 30] = u3;\n clippedVerticesItems[s + 31] = v3;\n clippedVerticesItems[s + 32] = dark.r;\n clippedVerticesItems[s + 33] = dark.g;\n clippedVerticesItems[s + 34] = dark.b;\n clippedVerticesItems[s + 35] = dark.a;\n }\n s = clippedTriangles.length;\n let clippedTrianglesItems = Utils.setArraySize(clippedTriangles, s + 3);\n clippedTrianglesItems[s] = index;\n clippedTrianglesItems[s + 1] = (index + 1);\n clippedTrianglesItems[s + 2] = (index + 2);\n index += 3;\n break;\n }\n }\n }\n }\n /** Clips the input triangle against the convex, clockwise clipping area. If the triangle lies entirely within the clipping\n * area, false is returned. The clipping area must duplicate the first vertex at the end of the vertices list. */\n clip(x1, y1, x2, y2, x3, y3, clippingArea, output) {\n let originalOutput = output;\n let clipped = false;\n // Avoid copy at the end.\n let input;\n if (clippingArea.length % 4 >= 2) {\n input = output;\n output = this.scratch;\n }\n else\n input = this.scratch;\n input.length = 0;\n input.push(x1);\n input.push(y1);\n input.push(x2);\n input.push(y2);\n input.push(x3);\n input.push(y3);\n input.push(x1);\n input.push(y1);\n output.length = 0;\n let clippingVerticesLast = clippingArea.length - 4;\n let clippingVertices = clippingArea;\n for (let i = 0;; i += 2) {\n let edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1];\n let ex = edgeX - clippingVertices[i + 2], ey = edgeY - clippingVertices[i + 3];\n let outputStart = output.length;\n let inputVertices = input;\n for (let ii = 0, nn = input.length - 2; ii < nn;) {\n let inputX = inputVertices[ii], inputY = inputVertices[ii + 1];\n ii += 2;\n let inputX2 = inputVertices[ii], inputY2 = inputVertices[ii + 1];\n let s2 = ey * (edgeX - inputX2) > ex * (edgeY - inputY2);\n let s1 = ey * (edgeX - inputX) - ex * (edgeY - inputY);\n if (s1 > 0) {\n if (s2) { // v1 inside, v2 inside\n output.push(inputX2);\n output.push(inputY2);\n continue;\n }\n // v1 inside, v2 outside\n let ix = inputX2 - inputX, iy = inputY2 - inputY, t = s1 / (ix * ey - iy * ex);\n if (t >= 0 && t <= 1) {\n output.push(inputX + ix * t);\n output.push(inputY + iy * t);\n }\n else {\n output.push(inputX2);\n output.push(inputY2);\n continue;\n }\n }\n else if (s2) { // v1 outside, v2 inside\n let ix = inputX2 - inputX, iy = inputY2 - inputY, t = s1 / (ix * ey - iy * ex);\n if (t >= 0 && t <= 1) {\n output.push(inputX + ix * t);\n output.push(inputY + iy * t);\n output.push(inputX2);\n output.push(inputY2);\n }\n else {\n output.push(inputX2);\n output.push(inputY2);\n continue;\n }\n }\n clipped = true;\n }\n if (outputStart == output.length) { // All edges outside.\n originalOutput.length = 0;\n return true;\n }\n output.push(output[0]);\n output.push(output[1]);\n if (i == clippingVerticesLast)\n break;\n let temp = output;\n output = input;\n output.length = 0;\n input = temp;\n }\n if (originalOutput != output) {\n originalOutput.length = 0;\n for (let i = 0, n = output.length - 2; i < n; i++)\n originalOutput[i] = output[i];\n }\n else\n originalOutput.length = originalOutput.length - 2;\n return clipped;\n }\n static makeClockwise(polygon) {\n let vertices = polygon;\n let verticeslength = polygon.length;\n let area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0;\n for (let i = 0, n = verticeslength - 3; i < n; i += 2) {\n p1x = vertices[i];\n p1y = vertices[i + 1];\n p2x = vertices[i + 2];\n p2y = vertices[i + 3];\n area += p1x * p2y - p2x * p1y;\n }\n if (area < 0)\n return;\n for (let i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) {\n let x = vertices[i], y = vertices[i + 1];\n let other = lastX - i;\n vertices[i] = vertices[other];\n vertices[i + 1] = vertices[other + 1];\n vertices[other] = x;\n vertices[other + 1] = y;\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tlbGV0b25DbGlwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ta2VsZXRvbkNsaXBwaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUkvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBMEIsTUFBTSxZQUFZLENBQUM7QUFFM0QsTUFBTSxPQUFPLGdCQUFnQjtJQUNwQixZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNsQyxlQUFlLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUN0QyxVQUFVLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUN6QyxlQUFlLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUN0QyxnQkFBZ0IsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBQy9CLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBRTlCLGNBQWMsR0FBOEIsSUFBSSxDQUFDO0lBQ2pELGdCQUFnQixHQUFnQyxJQUFJLENBQUM7SUFFN0QsU0FBUyxDQUFFLElBQVUsRUFBRSxJQUF3QjtRQUM5QyxJQUFJLElBQUksQ0FBQyxjQUFjO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFFM0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ2pDLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMs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RyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUNyQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDdEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBRXRDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN2QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzt3QkFDdkMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN2QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO3dCQUNsQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO3dCQUNsQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDdEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ3RDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUN0QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFFdEMs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"],"names":["SkeletonClipping","triangulator","Triangulator","clippingPolygon","Array","clipOutput","clippedVertices","clippedTriangles","scratch","clipAttachment","clippingPolygons","clipStart","slot","clip","this","n","worldVerticesLength","vertices","Utils","setArraySize","computeWorldVertices","makeClockwise","decompose","triangulate","i","length","polygon","push","clipEndWithSlot","endSlot","data","clipEnd","isClipping","clipTriangles","triangles","trianglesLength","uvs","light","dark","twoColor","clipTrianglesRender","clipTrianglesNoRender","polygons","polygonsCount","index","vertexOffset","x1","y1","x2","y2","x3","y3","p","s","clippedVerticesItems","clippedTrianglesItems","clipOutputLength","clipOutputCount","clipOutputItems","ii","x","y","vertexSize","u1","v1","u2","v2","u3","v3","r","g","b","a","d0","d1","d2","d4","d","c0","c1","c","clippingArea","output","input","originalOutput","clipped","clippingVerticesLast","clippingVertices","edgeX","edgeY","ex","ey","outputStart","inputVertices","nn","inputX","inputY","inputX2","inputY2","s2","s1","ix","iy","t","temp","verticeslength","area","p1x","p1y","p2x","p2y","lastX","other"],"mappings":"oFA8BO,MAAMA,EACTC,aAAe,IAAIC,EACnBC,gBAAkB,IAAIC,MACtBC,WAAa,IAAID,MACjBE,gBAAkB,IAAIF,MACtBG,iBAAmB,IAAIH,MACvBI,QAAU,IAAIJ,MACdK,eAAiB,KACjBC,iBAAmB,KACnB,SAAAC,CAAUC,EAAMC,GACZ,GAAIC,KAAKL,eACL,OAAO,EACXK,KAAKL,eAAiBI,EACtB,IAAIE,EAAIF,EAAKG,oBACTC,EAAWC,EAAMC,aAAaL,KAAKX,gBAAiBY,GACxDF,EAAKO,qBAAqBR,EAAM,EAAGG,EAAGE,EAAU,EAAG,GACnD,IAAId,EAAkBW,KAAKX,gBAC3BH,EAAiBqB,cAAclB,GAC/B,IAAIO,EAAmBI,KAAKJ,iBAAmBI,KAAKb,aAAaqB,UAAUnB,EAAiBW,KAAKb,aAAasB,YAAYpB,IAC1H,IAAK,IAAIqB,EAAI,EAAGT,EAAIL,EAAiBe,OAAQD,EAAIT,EAAGS,IAAK,CACrD,IAAIE,EAAUhB,EAAiBc,GAC/BxB,EAAiBqB,cAAcK,GAC/BA,EAAQC,KAAKD,EAAQ,IACrBA,EAAQC,KAAKD,EAAQ,GACxB,CACD,OAAOhB,EAAiBe,MAC3B,CACD,eAAAG,CAAgBhB,GACRE,KAAKL,gBAAkBK,KAAKL,eAAeoB,SAAWjB,EAAKkB,MAC3DhB,KAAKiB,SACZ,CACD,OAAAA,GACSjB,KAAKL,iBAEVK,KAAKL,eAAiB,KACtBK,KAAKJ,iBAAmB,KACxBI,KAAKR,gBAAgBmB,OAAS,EAC9BX,KAAKP,iBAAiBkB,OAAS,EAC/BX,KAAKX,gBAAgBsB,OAAS,EACjC,CACD,UAAAO,GACI,OAA8B,MAAvBlB,KAAKL,cACf,CACD,aAAAwB,CAAchB,EAAUiB,EAAWC,EAAiBC,EAAKC,EAAOC,EAAMC,GAC9DH,GAAOC,GAASC,GAA4B,kBAAbC,EAC/BzB,KAAK0B,oBAAoBvB,EAAUiB,EAAWC,EAAiBC,EAAKC,EAAOC,EAAMC,GAEjFzB,KAAK2B,sBAAsBxB,EAAUiB,EAAWC,EACvD,CACD,qBAAAM,CAAsBxB,EAAUiB,EAAWC,GACvC,IAAI9B,EAAaS,KAAKT,WAAYC,EAAkBQ,KAAKR,gBACrDC,EAAmBO,KAAKP,iBACxBmC,EAAW5B,KAAKJ,iBAChBiC,EAAgBD,EAASjB,OACzBmB,EAAQ,EACZtC,EAAgBmB,OAAS,EACzBlB,EAAiBkB,OAAS,EAC1B,IAAK,IAAID,EAAI,EAAGA,EAAIW,EAAiBX,GAAK,EAAG,CACzC,IAAIqB,EAAeX,EAAUV,IAAM,EAC/BsB,EAAK7B,EAAS4B,GAAeE,EAAK9B,EAAS4B,EAAe,GAC9DA,EAAeX,EAAUV,EAAI,IAAM,EACnC,IAAIwB,EAAK/B,EAAS4B,GAAeI,EAAKhC,EAAS4B,EAAe,GAC9DA,EAAeX,EAAUV,EAAI,IAAM,EACnC,IAAI0B,EAAKjC,EAAS4B,GAAeM,EAAKlC,EAAS4B,EAAe,GAC9D,IAAK,IAAIO,EAAI,EAAGA,EAAIT,EAAeS,IAAK,CACpC,IAAIC,EAAI/C,EAAgBmB,OACxB,IAAIX,KAAKD,KAAKiC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIT,EAASU,GAAI/C,GAsB9C,CACD,IAAIiD,EAAuBpC,EAAMC,aAAab,EAAiB+C,EAAI,GACnEC,EAAqBD,GAAKP,EAC1BQ,EAAqBD,EAAI,GAAKN,EAC9BO,EAAqBD,EAAI,GAAKL,EAC9BM,EAAqBD,EAAI,GAAKJ,EAC9BK,EAAqBD,EAAI,GAAKH,EAC9BI,EAAqBD,EAAI,GAAKF,EAC9BE,EAAI9C,EAAiBkB,OACrB,IAAI8B,EAAwBrC,EAAMC,aAAaZ,EAAkB8C,EAAI,GACrEE,EAAsBF,GAAKT,EAC3BW,EAAsBF,EAAI,GAAMT,EAAQ,EACxCW,EAAsBF,EAAI,GAAMT,EAAQ,EACxCA,GAAS,EACT,KACH,CArC+D,CAC5D,IAAIY,EAAmBnD,EAAWoB,OAClC,GAAwB,GAApB+B,EACA,SACJ,IAAIC,EAAkBD,GAAoB,EACtCE,EAAkB5C,KAAKT,WACvBiD,EAAuBpC,EAAMC,aAAab,EAAiB+C,EAAsB,EAAlBI,GACnE,IAAK,IAAIE,EAAK,EAAGA,EAAKH,EAAkBG,GAAM,EAAGN,GAAK,EAAG,CACrD,IAAIO,EAAIF,EAAgBC,GAAKE,EAAIH,EAAgBC,EAAK,GACtDL,EAAqBD,GAAKO,EAC1BN,EAAqBD,EAAI,GAAKQ,CACjC,CACDR,EAAI9C,EAAiBkB,OACrB,IAAI8B,EAAwBrC,EAAMC,aAAaZ,EAAkB8C,EAAI,GAAKI,EAAkB,IAC5FA,IACA,IAAK,IAAIE,EAAK,EAAGA,EAAKF,EAAiBE,IAAMN,GAAK,EAC9CE,EAAsBF,GAAKT,EAC3BW,EAAsBF,EAAI,GAAMT,EAAQe,EACxCJ,EAAsBF,EAAI,GAAMT,EAAQe,EAAK,EAEjDf,GAASa,EAAkB,CAC9B,CAiBJ,CACJ,CACJ,CACD,mBAAAjB,CAAoBvB,EAAUiB,EAAWC,EAAiBC,EAAKC,EAAOC,EAAMC,GACxE,IAAIlC,EAAaS,KAAKT,WAAYC,EAAkBQ,KAAKR,gBACrDC,EAAmBO,KAAKP,iBACxBmC,EAAW5B,KAAKJ,iBAChBiC,EAAgBD,EAASjB,OACzBqC,EAAavB,EAAW,GAAK,EAC7BK,EAAQ,EACZtC,EAAgBmB,OAAS,EACzBlB,EAAiBkB,OAAS,EAC1B,IAAK,IAAID,EAAI,EAAGA,EAAIW,EAAiBX,GAAK,EAAG,CACzC,IAAIqB,EAAeX,EAAUV,IAAM,EAC/BsB,EAAK7B,EAAS4B,GAAeE,EAAK9B,EAAS4B,EAAe,GAC1DkB,EAAK3B,EAAIS,GAAemB,EAAK5B,EAAIS,EAAe,GACpDA,EAAeX,EAAUV,EAAI,IAAM,EACnC,IAAIwB,EAAK/B,EAAS4B,GAAeI,EAAKhC,EAAS4B,EAAe,GAC1DoB,EAAK7B,EAAIS,GAAeqB,EAAK9B,EAAIS,EAAe,GACpDA,EAAeX,EAAUV,EAAI,IAAM,EACnC,IAAI0B,EAAKjC,EAAS4B,GAAeM,EAAKlC,EAAS4B,EAAe,GAC1DsB,EAAK/B,EAAIS,GAAeuB,EAAKhC,EAAIS,EAAe,GACpD,IAAK,IAAIO,EAAI,EAAGA,EAAIT,EAAeS,IAAK,CACpC,IAAIC,EAAI/C,EAAgBmB,OACxB,IAAIX,KAAKD,KAAKiC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIT,EAASU,GAAI/C,GAwC9C,CACD,IAAIiD,EAAuBpC,EAAMC,aAAab,EAAiB+C,EAAI,EAAIS,GACvER,EAAqBD,GAAKP,EAC1BQ,EAAqBD,EAAI,GAAKN,EAC9BO,EAAqBD,EAAI,GAAKhB,EAAMgC,EACpCf,EAAqBD,EAAI,GAAKhB,EAAMiC,EACpChB,EAAqBD,EAAI,GAAKhB,EAAMkC,EACpCjB,EAAqBD,EAAI,GAAKhB,EAAMmC,EAC/BjC,GAqBDe,EAAqBD,EAAI,GAAKU,EAC9BT,EAAqBD,EAAI,GAAKW,EAC9BV,EAAqBD,EAAI,GAAKf,EAAK+B,EACnCf,EAAqBD,EAAI,GAAKf,EAAKgC,EACnChB,EAAqBD,EAAI,IAAMf,EAAKiC,EACpCjB,EAAqBD,EAAI,IAAMf,EAAKkC,EACpClB,EAAqBD,EAAI,IAAML,EAC/BM,EAAqBD,EAAI,IAAMJ,EAC/BK,EAAqBD,EAAI,IAAMhB,EAAMgC,EACrCf,EAAqBD,EAAI,IAAMhB,EAAMiC,EACrChB,EAAqBD,EAAI,IAAMhB,EAAMkC,EACrCjB,EAAqBD,EAAI,IAAMhB,EAAMmC,EACrClB,EAAqBD,EAAI,IAAMY,EAC/BX,EAAqBD,EAAI,IAAMa,EAC/BZ,EAAqBD,EAAI,IAAMf,EAAK+B,EACpCf,EAAqBD,EAAI,IAAMf,EAAKgC,EACpChB,EAAqBD,EAAI,IAAMf,EAAKiC,EACpCjB,EAAqBD,EAAI,IAAMf,EAAKkC,EACpClB,EAAqBD,EAAI,IAAMH,EAC/BI,EAAqBD,EAAI,IAAMF,EAC/BG,EAAqBD,EAAI,IAAMhB,EAAMgC,EACrCf,EAAqBD,EAAI,IAAMhB,EAAMiC,EACrChB,EAAqBD,EAAI,IAAMhB,EAAMkC,EACrCjB,EAAqBD,EAAI,IAAMhB,EAAMmC,EACrClB,EAAqBD,EAAI,IAAMc,EAC/Bb,EAAqBD,EAAI,IAAMe,EAC/Bd,EAAqBD,EAAI,IAAMf,EAAK+B,EACpCf,EAAqBD,EAAI,IAAMf,EAAKgC,EACpChB,EAAqBD,EAAI,IAAMf,EAAKiC,EACpCjB,EAAqBD,EAAI,IAAMf,EAAKkC,IAjDpClB,EAAqBD,EAAI,GAAKU,EAC9BT,EAAqBD,EAAI,GAAKW,EAC9BV,EAAqBD,EAAI,GAAKL,EAC9BM,EAAqBD,EAAI,GAAKJ,EAC9BK,EAAqBD,EAAI,IAAMhB,EAAMgC,EACrCf,EAAqBD,EAAI,IAAMhB,EAAMiC,EACrChB,EAAqBD,EAAI,IAAMhB,EAAMkC,EACrCjB,EAAqBD,EAAI,IAAMhB,EAAMmC,EACrClB,EAAqBD,EAAI,IAAMY,EAC/BX,EAAqBD,EAAI,IAAMa,EAC/BZ,EAAqBD,EAAI,IAAMH,EAC/BI,EAAqBD,EAAI,IAAMF,EAC/BG,EAAqBD,EAAI,IAAMhB,EAAMgC,EACrCf,EAAqBD,EAAI,IAAMhB,EAAMiC,EACrChB,EAAqBD,EAAI,IAAMhB,EAAMkC,EACrCjB,EAAqBD,EAAI,IAAMhB,EAAMmC,EACrClB,EAAqBD,EAAI,IAAMc,EAC/Bb,EAAqBD,EAAI,IAAMe,GAkCnCf,EAAI9C,EAAiBkB,OACrB,IAAI8B,EAAwBrC,EAAMC,aAAaZ,EAAkB8C,EAAI,GACrEE,EAAsBF,GAAKT,EAC3BW,EAAsBF,EAAI,GAAMT,EAAQ,EACxCW,EAAsBF,EAAI,GAAMT,EAAQ,EACxCA,GAAS,EACT,KACH,CA3G+D,CAC5D,IAAIY,EAAmBnD,EAAWoB,OAClC,GAAwB,GAApB+B,EACA,SACJ,IAAIiB,EAAKxB,EAAKE,EAAIuB,EAAKxB,EAAKF,EAAI2B,EAAK7B,EAAKI,EAAI0B,EAAKzB,EAAKJ,EACpD8B,EAAI,GAAKJ,EAAKE,EAAKD,GAAM3B,EAAKI,IAC9BM,EAAkBD,GAAoB,EACtCE,EAAkB5C,KAAKT,WACvBiD,EAAuBpC,EAAMC,aAAab,EAAiB+C,EAAII,EAAkBK,GACrF,IAAK,IAAIH,EAAK,EAAGA,EAAKH,EAAkBG,GAAM,EAAGN,GAAKS,EAAY,CAC9D,IAAIF,EAAIF,EAAgBC,GAAKE,EAAIH,EAAgBC,EAAK,GACtDL,EAAqBD,GAAKO,EAC1BN,EAAqBD,EAAI,GAAKQ,EAC9BP,EAAqBD,EAAI,GAAKhB,EAAMgC,EACpCf,EAAqBD,EAAI,GAAKhB,EAAMiC,EACpChB,EAAqBD,EAAI,GAAKhB,EAAMkC,EACpCjB,EAAqBD,EAAI,GAAKhB,EAAMmC,EACpC,IAAIM,EAAKlB,EAAIV,EAAI6B,EAAKlB,EAAIV,EACtBqB,GAAKC,EAAKK,EAAKJ,EAAKK,GAAMF,EAC1BN,GAAKK,EAAKE,EAAKH,EAAKI,GAAMF,EAC1BG,EAAI,EAAIR,EAAID,EAChBjB,EAAqBD,EAAI,GAAKU,EAAKS,EAAIP,EAAKM,EAAIJ,EAAKa,EACrD1B,EAAqBD,EAAI,GAAKW,EAAKQ,EAAIN,EAAKK,EAAIH,EAAKY,EACjDzC,IACAe,EAAqBD,EAAI,GAAKf,EAAK+B,EACnCf,EAAqBD,EAAI,GAAKf,EAAKgC,EACnChB,EAAqBD,EAAI,IAAMf,EAAKiC,EACpCjB,EAAqBD,EAAI,IAAMf,EAAKkC,EAE3C,CACDnB,EAAI9C,EAAiBkB,OACrB,IAAI8B,EAAwBrC,EAAMC,aAAaZ,EAAkB8C,EAAI,GAAKI,EAAkB,IAC5FA,IACA,IAAK,IAAIE,EAAK,EAAGA,EAAKF,EAAiBE,IAAMN,GAAK,EAC9CE,EAAsBF,GAAKT,EAC3BW,EAAsBF,EAAI,GAAMT,EAAQe,EACxCJ,EAAsBF,EAAI,GAAMT,EAAQe,EAAK,EAEjDf,GAASa,EAAkB,CAC9B,CAqEJ,CACJ,CACJ,CAGD,IAAA5C,CAAKiC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI8B,EAAcC,GACvC,IAGIC,EAHAC,EAAiBF,EACjBG,GAAU,EAGVJ,EAAaxD,OAAS,GAAK,GAC3B0D,EAAQD,EACRA,EAASpE,KAAKN,SAGd2E,EAAQrE,KAAKN,QACjB2E,EAAM1D,OAAS,EACf0D,EAAMxD,KAAKmB,GACXqC,EAAMxD,KAAKoB,GACXoC,EAAMxD,KAAKqB,GACXmC,EAAMxD,KAAKsB,GACXkC,EAAMxD,KAAKuB,GACXiC,EAAMxD,KAAKwB,GACXgC,EAAMxD,KAAKmB,GACXqC,EAAMxD,KAAKoB,GACXmC,EAAOzD,OAAS,EAChB,IAAI6D,EAAuBL,EAAaxD,OAAS,EAC7C8D,EAAmBN,EACvB,IAAK,IAAIzD,EAAI,GAAIA,GAAK,EAAG,CACrB,IAAIgE,EAAQD,EAAiB/D,GAAIiE,EAAQF,EAAiB/D,EAAI,GAC1DkE,EAAKF,EAAQD,EAAiB/D,EAAI,GAAImE,EAAKF,EAAQF,EAAiB/D,EAAI,GACxEoE,EAAcV,EAAOzD,OACrBoE,EAAgBV,EACpB,IAAK,IAAIxB,EAAK,EAAGmC,EAAKX,EAAM1D,OAAS,EAAGkC,EAAKmC,GAAK,CAC9C,IAAIC,EAASF,EAAclC,GAAKqC,EAASH,EAAclC,EAAK,GAC5DA,GAAM,EACN,IAAIsC,EAAUJ,EAAclC,GAAKuC,EAAUL,EAAclC,EAAK,GAC1DwC,EAAKR,GAAMH,EAAQS,GAAWP,GAAMD,EAAQS,GAC5CE,EAAKT,GAAMH,EAAQO,GAAUL,GAAMD,EAAQO,GAC/C,GAAII,EAAK,EAAG,CACR,GAAID,EAAI,CACJjB,EAAOvD,KAAKsE,GACZf,EAAOvD,KAAKuE,GACZ,QACH,CAED,IAAIG,EAAKJ,EAAUF,EAAQO,EAAKJ,EAAUF,EAAQO,EAAIH,GAAMC,EAAKV,EAAKW,EAAKZ,GAC3E,KAAIa,GAAK,GAAKA,GAAK,GAId,CACDrB,EAAOvD,KAAKsE,GACZf,EAAOvD,KAAKuE,GACZ,QACH,CAPGhB,EAAOvD,KAAKoE,EAASM,EAAKE,GAC1BrB,EAAOvD,KAAKqE,EAASM,EAAKC,EAOjC,MACI,GAAIJ,EAAI,CACT,IAAIE,EAAKJ,EAAUF,EAAQO,EAAKJ,EAAUF,EAAQO,EAAIH,GAAMC,EAAKV,EAAKW,EAAKZ,GAC3E,KAAIa,GAAK,GAAKA,GAAK,GAMd,CACDrB,EAAOvD,KAAKsE,GACZf,EAAOvD,KAAKuE,GACZ,QACH,CATGhB,EAAOvD,KAAKoE,EAASM,EAAKE,GAC1BrB,EAAOvD,KAAKqE,EAASM,EAAKC,GAC1BrB,EAAOvD,KAAKsE,GACZf,EAAOvD,KAAKuE,EAOnB,CACDb,GAAU,CACb,CACD,GAAIO,GAAeV,EAAOzD,OAEtB,OADA2D,EAAe3D,OAAS,GACjB,EAIX,GAFAyD,EAAOvD,KAAKuD,EAAO,IACnBA,EAAOvD,KAAKuD,EAAO,IACf1D,GAAK8D,EACL,MACJ,IAAIkB,EAAOtB,GACXA,EAASC,GACF1D,OAAS,EAChB0D,EAAQqB,CACX,CACD,GAAIpB,GAAkBF,EAAQ,CAC1BE,EAAe3D,OAAS,EACxB,IAAK,IAAID,EAAI,EAAGT,EAAImE,EAAOzD,OAAS,EAAGD,EAAIT,EAAGS,IAC1C4D,EAAe5D,GAAK0D,EAAO1D,EAClC,MAEG4D,EAAe3D,OAAS2D,EAAe3D,OAAS,EACpD,OAAO4D,CACV,CACD,oBAAOhE,CAAcK,GACjB,IAAIT,EAAWS,EACX+E,EAAiB/E,EAAQD,OACzBiF,EAAOzF,EAASwF,EAAiB,GAAKxF,EAAS,GAAKA,EAAS,GAAKA,EAASwF,EAAiB,GAAIE,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EACrI,IAAK,IAAItF,EAAI,EAAGT,EAAI0F,EAAiB,EAAGjF,EAAIT,EAAGS,GAAK,EAChDmF,EAAM1F,EAASO,GACfoF,EAAM3F,EAASO,EAAI,GACnBqF,EAAM5F,EAASO,EAAI,GACnBsF,EAAM7F,EAASO,EAAI,GACnBkF,GAAQC,EAAMG,EAAMD,EAAMD,EAE9B,KAAIF,EAAO,GAEX,IAAK,IAAIlF,EAAI,EAAGuF,EAAQN,EAAiB,EAAG1F,EAAI0F,GAAkB,EAAGjF,EAAIT,EAAGS,GAAK,EAAG,CAChF,IAAIoC,EAAI3C,EAASO,GAAIqC,EAAI5C,EAASO,EAAI,GAClCwF,EAAQD,EAAQvF,EACpBP,EAASO,GAAKP,EAAS+F,GACvB/F,EAASO,EAAI,GAAKP,EAAS+F,EAAQ,GACnC/F,EAAS+F,GAASpD,EAClB3C,EAAS+F,EAAQ,GAAKnD,CACzB,CACJ"}
@@ -0,0 +1,2 @@
1
+ class n{name=null;bones=new Array;slots=new Array;skins=new Array;defaultSkin=null;events=new Array;animations=new Array;ikConstraints=new Array;transformConstraints=new Array;pathConstraints=new Array;physicsConstraints=new Array;x=0;y=0;width=0;height=0;referenceScale=100;version=null;hash=null;fps=0;imagesPath=null;audioPath=null;findBone(n){if(!n)throw new Error("boneName cannot be null.");let t=this.bones;for(let r=0,e=t.length;r<e;r++){let e=t[r];if(e.name==n)return e}return null}findSlot(n){if(!n)throw new Error("slotName cannot be null.");let t=this.slots;for(let r=0,e=t.length;r<e;r++){let e=t[r];if(e.name==n)return e}return null}findSkin(n){if(!n)throw new Error("skinName cannot be null.");let t=this.skins;for(let r=0,e=t.length;r<e;r++){let e=t[r];if(e.name==n)return e}return null}findEvent(n){if(!n)throw new Error("eventDataName cannot be null.");let t=this.events;for(let r=0,e=t.length;r<e;r++){let e=t[r];if(e.name==n)return e}return null}findAnimation(n){if(!n)throw new Error("animationName cannot be null.");let t=this.animations;for(let r=0,e=t.length;r<e;r++){let e=t[r];if(e.name==n)return e}return null}findIkConstraint(n){if(!n)throw new Error("constraintName cannot be null.");const t=this.ikConstraints;for(let r=0,e=t.length;r<e;r++){const e=t[r];if(e.name==n)return e}return null}findTransformConstraint(n){if(!n)throw new Error("constraintName cannot be null.");const t=this.transformConstraints;for(let r=0,e=t.length;r<e;r++){const e=t[r];if(e.name==n)return e}return null}findPathConstraint(n){if(!n)throw new Error("constraintName cannot be null.");const t=this.pathConstraints;for(let r=0,e=t.length;r<e;r++){const e=t[r];if(e.name==n)return e}return null}findPhysicsConstraint(n){if(!n)throw new Error("constraintName cannot be null.");const t=this.physicsConstraints;for(let r=0,e=t.length;r<e;r++){const e=t[r];if(e.name==n)return e}return null}}export{n as SkeletonData};
2
+ //# sourceMappingURL=SkeletonData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkeletonData.js","sources":["../../../../../../node_modules/@esotericsoftware/spine-core/dist/SkeletonData.js"],"sourcesContent":["/******************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n/** Stores the setup pose and all of the stateless data for a skeleton.\n *\n * See [Data objects](http://esotericsoftware.com/spine-runtime-architecture#Data-objects) in the Spine Runtimes\n * Guide. */\nexport class SkeletonData {\n /** The skeleton's name, which by default is the name of the skeleton data file, if possible. May be null. */\n name = null;\n /** The skeleton's bones, sorted parent first. The root bone is always the first bone. */\n bones = new Array(); // Ordered parents first.\n /** The skeleton's slots in the setup pose draw order. */\n slots = new Array(); // Setup pose draw order.\n skins = new Array();\n /** The skeleton's default skin. By default this skin contains all attachments that were not in a skin in Spine.\n *\n * See {@link Skeleton#getAttachmentByName()}.\n * May be null. */\n defaultSkin = null;\n /** The skeleton's events. */\n events = new Array();\n /** The skeleton's animations. */\n animations = new Array();\n /** The skeleton's IK constraints. */\n ikConstraints = new Array();\n /** The skeleton's transform constraints. */\n transformConstraints = new Array();\n /** The skeleton's path constraints. */\n pathConstraints = new Array();\n /** The skeleton's physics constraints. */\n physicsConstraints = new Array();\n /** The X coordinate of the skeleton's axis aligned bounding box in the setup pose. */\n x = 0;\n /** The Y coordinate of the skeleton's axis aligned bounding box in the setup pose. */\n y = 0;\n /** The width of the skeleton's axis aligned bounding box in the setup pose. */\n width = 0;\n /** The height of the skeleton's axis aligned bounding box in the setup pose. */\n height = 0;\n /** Baseline scale factor for applying distance-dependent effects on non-scalable properties, such as angle or scale. Default\n * is 100. */\n referenceScale = 100;\n /** The Spine version used to export the skeleton data, or null. */\n version = null;\n /** The skeleton data hash. This value will change if any of the skeleton data has changed. May be null. */\n hash = null;\n // Nonessential\n /** The dopesheet FPS in Spine. Available only when nonessential data was exported. */\n fps = 0;\n /** The path to the images directory as defined in Spine. Available only when nonessential data was exported. May be null. */\n imagesPath = null;\n /** The path to the audio directory as defined in Spine. Available only when nonessential data was exported. May be null. */\n audioPath = null;\n /** Finds a bone by comparing each bone's name. It is more efficient to cache the results of this method than to call it\n * multiple times.\n * @returns May be null. */\n findBone(boneName) {\n if (!boneName)\n throw new Error(\"boneName cannot be null.\");\n let bones = this.bones;\n for (let i = 0, n = bones.length; i < n; i++) {\n let bone = bones[i];\n if (bone.name == boneName)\n return bone;\n }\n return null;\n }\n /** Finds a slot by comparing each slot's name. It is more efficient to cache the results of this method than to call it\n * multiple times.\n * @returns May be null. */\n findSlot(slotName) {\n if (!slotName)\n throw new Error(\"slotName cannot be null.\");\n let slots = this.slots;\n for (let i = 0, n = slots.length; i < n; i++) {\n let slot = slots[i];\n if (slot.name == slotName)\n return slot;\n }\n return null;\n }\n /** Finds a skin by comparing each skin's name. It is more efficient to cache the results of this method than to call it\n * multiple times.\n * @returns May be null. */\n findSkin(skinName) {\n if (!skinName)\n throw new Error(\"skinName cannot be null.\");\n let skins = this.skins;\n for (let i = 0, n = skins.length; i < n; i++) {\n let skin = skins[i];\n if (skin.name == skinName)\n return skin;\n }\n return null;\n }\n /** Finds an event by comparing each events's name. It is more efficient to cache the results of this method than to call it\n * multiple times.\n * @returns May be null. */\n findEvent(eventDataName) {\n if (!eventDataName)\n throw new Error(\"eventDataName cannot be null.\");\n let events = this.events;\n for (let i = 0, n = events.length; i < n; i++) {\n let event = events[i];\n if (event.name == eventDataName)\n return event;\n }\n return null;\n }\n /** Finds an animation by comparing each animation's name. It is more efficient to cache the results of this method than to\n * call it multiple times.\n * @returns May be null. */\n findAnimation(animationName) {\n if (!animationName)\n throw new Error(\"animationName cannot be null.\");\n let animations = this.animations;\n for (let i = 0, n = animations.length; i < n; i++) {\n let animation = animations[i];\n if (animation.name == animationName)\n return animation;\n }\n return null;\n }\n /** Finds an IK constraint by comparing each IK constraint's name. It is more efficient to cache the results of this method\n * than to call it multiple times.\n * @return May be null. */\n findIkConstraint(constraintName) {\n if (!constraintName)\n throw new Error(\"constraintName cannot be null.\");\n const ikConstraints = this.ikConstraints;\n for (let i = 0, n = ikConstraints.length; i < n; i++) {\n const constraint = ikConstraints[i];\n if (constraint.name == constraintName)\n return constraint;\n }\n return null;\n }\n /** Finds a transform constraint by comparing each transform constraint's name. It is more efficient to cache the results of\n * this method than to call it multiple times.\n * @return May be null. */\n findTransformConstraint(constraintName) {\n if (!constraintName)\n throw new Error(\"constraintName cannot be null.\");\n const transformConstraints = this.transformConstraints;\n for (let i = 0, n = transformConstraints.length; i < n; i++) {\n const constraint = transformConstraints[i];\n if (constraint.name == constraintName)\n return constraint;\n }\n return null;\n }\n /** Finds a path constraint by comparing each path constraint's name. It is more efficient to cache the results of this method\n * than to call it multiple times.\n * @return May be null. */\n findPathConstraint(constraintName) {\n if (!constraintName)\n throw new Error(\"constraintName cannot be null.\");\n const pathConstraints = this.pathConstraints;\n for (let i = 0, n = pathConstraints.length; i < n; i++) {\n const constraint = pathConstraints[i];\n if (constraint.name == constraintName)\n return constraint;\n }\n return null;\n }\n /** Finds a physics constraint by comparing each physics constraint's name. It is more efficient to cache the results of this method\n * than to call it multiple times.\n * @return May be null. */\n findPhysicsConstraint(constraintName) {\n if (!constraintName)\n throw new Error(\"constraintName cannot be null.\");\n const physicsConstraints = this.physicsConstraints;\n for (let i = 0, n = physicsConstraints.length; i < n; i++) {\n const constraint = physicsConstraints[i];\n if (constraint.name == constraintName)\n return constraint;\n }\n return null;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tlbGV0b25EYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NrZWxldG9uRGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFZL0U7OztZQUdZO0FBQ1osTUFBTSxPQUFPLFlBQVk7SUFFeEIsNkdBQTZHO0lBQzdHLElBQUksR0FBa0IsSUFBSSxDQUFDO0lBRTNCLHlGQUF5RjtJQUN6RixLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQVksQ0FBQyxDQUFDLHlCQUF5QjtJQUV4RCx5REFBeUQ7SUFDekQsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFZLENBQUMsQ0FBQyx5QkFBeUI7SUFFeEQsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFRLENBQUM7SUFFMUI7OztzQkFHa0I7SUFDbEIsV0FBVyxHQUFnQixJQUFJLENBQUM7SUFFaEMsNkJBQTZCO0lBQzdCLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBYSxDQUFDO0lBRWhDLGlDQUFpQztJQUNqQyxVQUFVLEdBQUcsSUFBSSxLQUFLLEVBQWEsQ0FBQztJQUVwQyxxQ0FBcUM7SUFDckMsYUFBYSxHQUFHLElBQUksS0FBSyxFQUFvQixDQUFDO0lBRTlDLDRDQUE0QztJQUM1QyxvQkFBb0IsR0FBRyxJQUFJLEtBQUssRUFBMkIsQ0FBQztJQUU1RCx1Q0FBdUM7SUFDdkMsZUFBZSxHQUFHLElBQUksS0FBSyxFQUFzQixDQUFDO0lBRWxELDBDQUEwQztJQUMxQyxrQkFBa0IsR0FBRyxJQUFJLEtBQUssRUFBeUIsQ0FBQztJQUV4RCxzRkFBc0Y7SUFDdEYsQ0FBQyxHQUFXLENBQUMsQ0FBQztJQUVkLHNGQUFzRjtJQUN0RixDQUFDLEdBQVcsQ0FBQyxDQUFDO0lBRWQsK0VBQStFO0lBQy9FLEtBQUssR0FBVyxDQUFDLENBQUM7SUFFbEIsZ0ZBQWdGO0lBQ2hGLE1BQU0sR0FBVyxDQUFDLENBQUM7SUFFbkI7aUJBQ2E7SUFDYixj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"],"names":["SkeletonData","name","bones","Array","slots","skins","defaultSkin","events","animations","ikConstraints","transformConstraints","pathConstraints","physicsConstraints","x","y","width","height","referenceScale","version","hash","fps","imagesPath","audioPath","findBone","boneName","Error","this","i","n","length","bone","findSlot","slotName","slot","findSkin","skinName","skin","findEvent","eventDataName","event","findAnimation","animationName","animation","findIkConstraint","constraintName","constraint","findTransformConstraint","findPathConstraint","findPhysicsConstraint"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{AttachmentTimeline as e,RGBATimeline as t,RGBTimeline as n,AlphaTimeline as r,RGBA2Timeline as i,RGB2Timeline as o,RotateTimeline as l,TranslateTimeline as s,TranslateXTimeline as a,TranslateYTimeline as f,ScaleTimeline as h,ScaleXTimeline as m,ScaleYTimeline as u,ShearTimeline as d,ShearXTimeline as c,ShearYTimeline as g,InheritTimeline as p,IkConstraintTimeline as w,TransformConstraintTimeline as b,PathConstraintPositionTimeline as x,PathConstraintSpacingTimeline as k,PathConstraintMixTimeline as S,PhysicsConstraintResetTimeline as y,PhysicsConstraintInertiaTimeline as v,PhysicsConstraintStrengthTimeline as C,PhysicsConstraintDampingTimeline as F,PhysicsConstraintMassTimeline as E,PhysicsConstraintWindTimeline as X,PhysicsConstraintGravityTimeline as $,PhysicsConstraintMixTimeline as Y,DeformTimeline as A,SequenceTimeline as P,DrawOrderTimeline as V,EventTimeline as M,Animation as R}from"./Animation.js";import{BoneData as B,Inherit as q}from"./BoneData.js";import{EventData as G}from"./EventData.js";import{Event as j}from"./Event.js";import{IkConstraintData as L}from"./IkConstraintData.js";import{PathConstraintData as I,PositionMode as D,SpacingMode as O,RotateMode as T}from"./PathConstraintData.js";import{SkeletonData as K}from"./SkeletonData.js";import{Skin as N}from"./Skin.js";import{SlotData as U,BlendMode as z}from"./SlotData.js";import{TransformConstraintData as J}from"./TransformConstraintData.js";import{Utils as H,Color as Q}from"./Utils.js";import{Sequence as W,SequenceMode as Z}from"./attachments/Sequence.js";import{PhysicsConstraintData as _}from"./PhysicsConstraintData.js";class ee{attachmentLoader;scale=1;linkedMeshes=new Array;constructor(e){this.attachmentLoader=e}readSkeletonData(e){let t=this.scale,n=new K,r="string"==typeof e?JSON.parse(e):e,i=r.skeleton;if(i&&(n.hash=i.hash,n.version=i.spine,n.x=i.x,n.y=i.y,n.width=i.width,n.height=i.height,n.referenceScale=oe(i,"referenceScale",100)*t,n.fps=i.fps,n.imagesPath=i.images??null,n.audioPath=i.audio??null),r.bones)for(let e=0;e<r.bones.length;e++){let i=r.bones[e],o=null,l=oe(i,"parent",null);l&&(o=n.findBone(l));let s=new B(n.bones.length,i.name,o);s.length=oe(i,"length",0)*t,s.x=oe(i,"x",0)*t,s.y=oe(i,"y",0)*t,s.rotation=oe(i,"rotation",0),s.scaleX=oe(i,"scaleX",1),s.scaleY=oe(i,"scaleY",1),s.shearX=oe(i,"shearX",0),s.shearY=oe(i,"shearY",0),s.inherit=H.enumValue(q,oe(i,"inherit","Normal")),s.skinRequired=oe(i,"skin",!1);let a=oe(i,"color",null);a&&s.color.setFromString(a),n.bones.push(s)}if(r.slots)for(let e=0;e<r.slots.length;e++){let t=r.slots[e],i=t.name,o=n.findBone(t.bone);if(!o)throw new Error(`Couldn't find bone ${t.bone} for slot ${i}`);let l=new U(n.slots.length,i,o),s=oe(t,"color",null);s&&l.color.setFromString(s);let a=oe(t,"dark",null);a&&(l.darkColor=Q.fromString(a)),l.attachmentName=oe(t,"attachment",null),l.blendMode=H.enumValue(z,oe(t,"blend","normal")),l.visible=oe(t,"visible",!0),n.slots.push(l)}if(r.ik)for(let e=0;e<r.ik.length;e++){let i=r.ik[e],o=new L(i.name);o.order=oe(i,"order",0),o.skinRequired=oe(i,"skin",!1);for(let e=0;e<i.bones.length;e++){let t=n.findBone(i.bones[e]);if(!t)throw new Error(`Couldn't find bone ${i.bones[e]} for IK constraint ${i.name}.`);o.bones.push(t)}let l=n.findBone(i.target);if(!l)throw new Error(`Couldn't find target bone ${i.target} for IK constraint ${i.name}.`);o.target=l,o.mix=oe(i,"mix",1),o.softness=oe(i,"softness",0)*t,o.bendDirection=oe(i,"bendPositive",!0)?1:-1,o.compress=oe(i,"compress",!1),o.stretch=oe(i,"stretch",!1),o.uniform=oe(i,"uniform",!1),n.ikConstraints.push(o)}if(r.transform)for(let e=0;e<r.transform.length;e++){let i=r.transform[e],o=new J(i.name);o.order=oe(i,"order",0),o.skinRequired=oe(i,"skin",!1);for(let e=0;e<i.bones.length;e++){let t=i.bones[e],r=n.findBone(t);if(!r)throw new Error(`Couldn't find bone ${t} for transform constraint ${i.name}.`);o.bones.push(r)}let l=i.target,s=n.findBone(l);if(!s)throw new Error(`Couldn't find target bone ${l} for transform constraint ${i.name}.`);o.target=s,o.local=oe(i,"local",!1),o.relative=oe(i,"relative",!1),o.offsetRotation=oe(i,"rotation",0),o.offsetX=oe(i,"x",0)*t,o.offsetY=oe(i,"y",0)*t,o.offsetScaleX=oe(i,"scaleX",0),o.offsetScaleY=oe(i,"scaleY",0),o.offsetShearY=oe(i,"shearY",0),o.mixRotate=oe(i,"mixRotate",1),o.mixX=oe(i,"mixX",1),o.mixY=oe(i,"mixY",o.mixX),o.mixScaleX=oe(i,"mixScaleX",1),o.mixScaleY=oe(i,"mixScaleY",o.mixScaleX),o.mixShearY=oe(i,"mixShearY",1),n.transformConstraints.push(o)}if(r.path)for(let e=0;e<r.path.length;e++){let i=r.path[e],o=new I(i.name);o.order=oe(i,"order",0),o.skinRequired=oe(i,"skin",!1);for(let e=0;e<i.bones.length;e++){let t=i.bones[e],r=n.findBone(t);if(!r)throw new Error(`Couldn't find bone ${t} for path constraint ${i.name}.`);o.bones.push(r)}let l=i.target,s=n.findSlot(l);if(!s)throw new Error(`Couldn't find target slot ${l} for path constraint ${i.name}.`);o.target=s,o.positionMode=H.enumValue(D,oe(i,"positionMode","Percent")),o.spacingMode=H.enumValue(O,oe(i,"spacingMode","Length")),o.rotateMode=H.enumValue(T,oe(i,"rotateMode","Tangent")),o.offsetRotation=oe(i,"rotation",0),o.position=oe(i,"position",0),o.positionMode==D.Fixed&&(o.position*=t),o.spacing=oe(i,"spacing",0),o.spacingMode!=O.Length&&o.spacingMode!=O.Fixed||(o.spacing*=t),o.mixRotate=oe(i,"mixRotate",1),o.mixX=oe(i,"mixX",1),o.mixY=oe(i,"mixY",o.mixX),n.pathConstraints.push(o)}if(r.physics)for(let e=0;e<r.physics.length;e++){const i=r.physics[e],o=new _(i.name);o.order=oe(i,"order",0),o.skinRequired=oe(i,"skin",!1);const l=i.bone,s=n.findBone(l);if(null==s)throw new Error("Physics bone not found: "+l);o.bone=s,o.x=oe(i,"x",0),o.y=oe(i,"y",0),o.rotate=oe(i,"rotate",0),o.scaleX=oe(i,"scaleX",0),o.shearX=oe(i,"shearX",0),o.limit=oe(i,"limit",5e3)*t,o.step=1/oe(i,"fps",60),o.inertia=oe(i,"inertia",1),o.strength=oe(i,"strength",100),o.damping=oe(i,"damping",1),o.massInverse=1/oe(i,"mass",1),o.wind=oe(i,"wind",0),o.gravity=oe(i,"gravity",0),o.mix=oe(i,"mix",1),o.inertiaGlobal=oe(i,"inertiaGlobal",!1),o.strengthGlobal=oe(i,"strengthGlobal",!1),o.dampingGlobal=oe(i,"dampingGlobal",!1),o.massGlobal=oe(i,"massGlobal",!1),o.windGlobal=oe(i,"windGlobal",!1),o.gravityGlobal=oe(i,"gravityGlobal",!1),o.mixGlobal=oe(i,"mixGlobal",!1),n.physicsConstraints.push(o)}if(r.skins)for(let e=0;e<r.skins.length;e++){let t=r.skins[e],i=new N(t.name);if(t.bones)for(let e=0;e<t.bones.length;e++){let r=t.bones[e],o=n.findBone(r);if(!o)throw new Error(`Couldn't find bone ${r} for skin ${t.name}.`);i.bones.push(o)}if(t.ik)for(let e=0;e<t.ik.length;e++){let r=t.ik[e],o=n.findIkConstraint(r);if(!o)throw new Error(`Couldn't find IK constraint ${r} for skin ${t.name}.`);i.constraints.push(o)}if(t.transform)for(let e=0;e<t.transform.length;e++){let r=t.transform[e],o=n.findTransformConstraint(r);if(!o)throw new Error(`Couldn't find transform constraint ${r} for skin ${t.name}.`);i.constraints.push(o)}if(t.path)for(let e=0;e<t.path.length;e++){let r=t.path[e],o=n.findPathConstraint(r);if(!o)throw new Error(`Couldn't find path constraint ${r} for skin ${t.name}.`);i.constraints.push(o)}if(t.physics)for(let e=0;e<t.physics.length;e++){let r=t.physics[e],o=n.findPhysicsConstraint(r);if(!o)throw new Error(`Couldn't find physics constraint ${r} for skin ${t.name}.`);i.constraints.push(o)}for(let e in t.attachments){let r=n.findSlot(e);if(!r)throw new Error(`Couldn't find slot ${e} for skin ${t.name}.`);let o=t.attachments[e];for(let e in o){let t=this.readAttachment(o[e],i,r.index,e,n);t&&i.setAttachment(r.index,e,t)}}n.skins.push(i),"default"==i.name&&(n.defaultSkin=i)}for(let e=0,t=this.linkedMeshes.length;e<t;e++){let t=this.linkedMeshes[e],r=t.skin?n.findSkin(t.skin):n.defaultSkin;if(!r)throw new Error(`Skin not found: ${t.skin}`);let i=r.getAttachment(t.slotIndex,t.parent);if(!i)throw new Error(`Parent mesh not found: ${t.parent}`);t.mesh.timelineAttachment=t.inheritTimeline?i:t.mesh,t.mesh.setParentMesh(i),null!=t.mesh.region&&t.mesh.updateRegion()}if(this.linkedMeshes.length=0,r.events)for(let e in r.events){let t=r.events[e],i=new G(e);i.intValue=oe(t,"int",0),i.floatValue=oe(t,"float",0),i.stringValue=oe(t,"string",""),i.audioPath=oe(t,"audio",null),i.audioPath&&(i.volume=oe(t,"volume",1),i.balance=oe(t,"balance",0)),n.events.push(i)}if(r.animations)for(let e in r.animations){let t=r.animations[e];this.readAnimation(t,e,n)}return n}readAttachment(e,t,n,r,i){let o=this.scale;switch(r=oe(e,"name",r),oe(e,"type","region")){case"region":{let n=oe(e,"path",r),i=this.readSequence(oe(e,"sequence",null)),l=this.attachmentLoader.newRegionAttachment(t,r,n,i);if(!l)return null;l.path=n,l.x=oe(e,"x",0)*o,l.y=oe(e,"y",0)*o,l.scaleX=oe(e,"scaleX",1),l.scaleY=oe(e,"scaleY",1),l.rotation=oe(e,"rotation",0),l.width=e.width*o,l.height=e.height*o,l.sequence=i;let s=oe(e,"color",null);return s&&l.color.setFromString(s),null!=l.region&&l.updateRegion(),l}case"boundingbox":{let n=this.attachmentLoader.newBoundingBoxAttachment(t,r);if(!n)return null;this.readVertices(e,n,e.vertexCount<<1);let i=oe(e,"color",null);return i&&n.color.setFromString(i),n}case"mesh":case"linkedmesh":{let i=oe(e,"path",r),l=this.readSequence(oe(e,"sequence",null)),s=this.attachmentLoader.newMeshAttachment(t,r,i,l);if(!s)return null;s.path=i;let a=oe(e,"color",null);a&&s.color.setFromString(a),s.width=oe(e,"width",0)*o,s.height=oe(e,"height",0)*o,s.sequence=l;let f=oe(e,"parent",null);if(f)return this.linkedMeshes.push(new te(s,oe(e,"skin",null),n,f,oe(e,"timelines",!0))),s;let h=e.uvs;return this.readVertices(e,s,h.length),s.triangles=e.triangles,s.regionUVs=h,null!=s.region&&s.updateRegion(),s.edges=oe(e,"edges",null),s.hullLength=2*oe(e,"hull",0),s}case"path":{let n=this.attachmentLoader.newPathAttachment(t,r);if(!n)return null;n.closed=oe(e,"closed",!1),n.constantSpeed=oe(e,"constantSpeed",!0);let i=e.vertexCount;this.readVertices(e,n,i<<1);let l=H.newArray(i/3,0);for(let t=0;t<e.lengths.length;t++)l[t]=e.lengths[t]*o;n.lengths=l;let s=oe(e,"color",null);return s&&n.color.setFromString(s),n}case"point":{let n=this.attachmentLoader.newPointAttachment(t,r);if(!n)return null;n.x=oe(e,"x",0)*o,n.y=oe(e,"y",0)*o,n.rotation=oe(e,"rotation",0);let i=oe(e,"color",null);return i&&n.color.setFromString(i),n}case"clipping":{let n=this.attachmentLoader.newClippingAttachment(t,r);if(!n)return null;let o=oe(e,"end",null);o&&(n.endSlot=i.findSlot(o));let l=e.vertexCount;this.readVertices(e,n,l<<1);let s=oe(e,"color",null);return s&&n.color.setFromString(s),n}}return null}readSequence(e){if(null==e)return null;let t=new W(oe(e,"count",0));return t.start=oe(e,"start",1),t.digits=oe(e,"digits",0),t.setupIndex=oe(e,"setup",0),t}readVertices(e,t,n){let r=this.scale;t.worldVerticesLength=n;let i=e.vertices;if(n==i.length){let e=H.toFloatArray(i);if(1!=r)for(let t=0,n=i.length;t<n;t++)e[t]*=r;return void(t.vertices=e)}let o=new Array,l=new Array;for(let e=0,t=i.length;e<t;){let t=i[e++];l.push(t);for(let n=e+4*t;e<n;e+=4)l.push(i[e]),o.push(i[e+1]*r),o.push(i[e+2]*r),o.push(i[e+3])}t.bones=l,t.vertices=H.toFloatArray(o)}readAnimation(B,G,L){let I=this.scale,T=new Array;if(B.slots)for(let l in B.slots){let s=B.slots[l],a=L.findSlot(l);if(!a)throw new Error("Slot not found: "+l);let f=a.index;for(let l in s){let a=s[l];if(!a)continue;let h=a.length;if("attachment"==l){let t=new e(h,f);for(let e=0;e<h;e++){let n=a[e];t.setFrame(e,oe(n,"time",0),oe(n,"name",null))}T.push(t)}else if("rgba"==l){let e=new t(h,h<<2,f),n=a[0],r=oe(n,"time",0),i=Q.fromString(n.color);for(let t=0,o=0;;t++){e.setFrame(t,r,i.r,i.g,i.b,i.a);let l=a[t+1];if(!l){e.shrink(o);break}let s=oe(l,"time",0),f=Q.fromString(l.color),h=n.curve;h&&(o=ie(h,e,o,t,0,r,s,i.r,f.r,1),o=ie(h,e,o,t,1,r,s,i.g,f.g,1),o=ie(h,e,o,t,2,r,s,i.b,f.b,1),o=ie(h,e,o,t,3,r,s,i.a,f.a,1)),r=s,i=f,n=l}T.push(e)}else if("rgb"==l){let e=new n(h,3*h,f),t=a[0],r=oe(t,"time",0),i=Q.fromString(t.color);for(let n=0,o=0;;n++){e.setFrame(n,r,i.r,i.g,i.b);let l=a[n+1];if(!l){e.shrink(o);break}let s=oe(l,"time",0),f=Q.fromString(l.color),h=t.curve;h&&(o=ie(h,e,o,n,0,r,s,i.r,f.r,1),o=ie(h,e,o,n,1,r,s,i.g,f.g,1),o=ie(h,e,o,n,2,r,s,i.b,f.b,1)),r=s,i=f,t=l}T.push(e)}else if("alpha"==l)T.push(ne(a,new r(h,h,f),0,1));else if("rgba2"==l){let e=new i(h,7*h,f),t=a[0],n=oe(t,"time",0),r=Q.fromString(t.light),o=Q.fromString(t.dark);for(let i=0,l=0;;i++){e.setFrame(i,n,r.r,r.g,r.b,r.a,o.r,o.g,o.b);let s=a[i+1];if(!s){e.shrink(l);break}let f=oe(s,"time",0),h=Q.fromString(s.light),m=Q.fromString(s.dark),u=t.curve;u&&(l=ie(u,e,l,i,0,n,f,r.r,h.r,1),l=ie(u,e,l,i,1,n,f,r.g,h.g,1),l=ie(u,e,l,i,2,n,f,r.b,h.b,1),l=ie(u,e,l,i,3,n,f,r.a,h.a,1),l=ie(u,e,l,i,4,n,f,o.r,m.r,1),l=ie(u,e,l,i,5,n,f,o.g,m.g,1),l=ie(u,e,l,i,6,n,f,o.b,m.b,1)),n=f,r=h,o=m,t=s}T.push(e)}else if("rgb2"==l){let e=new o(h,6*h,f),t=a[0],n=oe(t,"time",0),r=Q.fromString(t.light),i=Q.fromString(t.dark);for(let o=0,l=0;;o++){e.setFrame(o,n,r.r,r.g,r.b,i.r,i.g,i.b);let s=a[o+1];if(!s){e.shrink(l);break}let f=oe(s,"time",0),h=Q.fromString(s.light),m=Q.fromString(s.dark),u=t.curve;u&&(l=ie(u,e,l,o,0,n,f,r.r,h.r,1),l=ie(u,e,l,o,1,n,f,r.g,h.g,1),l=ie(u,e,l,o,2,n,f,r.b,h.b,1),l=ie(u,e,l,o,3,n,f,i.r,m.r,1),l=ie(u,e,l,o,4,n,f,i.g,m.g,1),l=ie(u,e,l,o,5,n,f,i.b,m.b,1)),n=f,r=h,i=m,t=s}T.push(e)}}}if(B.bones)for(let e in B.bones){let t=B.bones[e],n=L.findBone(e);if(!n)throw new Error("Bone not found: "+e);let r=n.index;for(let e in t){let i=t[e],o=i.length;if(0!=o)if("rotate"===e)T.push(ne(i,new l(o,o,r),0,1));else if("translate"===e){let e=new s(o,o<<1,r);T.push(re(i,e,"x","y",0,I))}else if("translatex"===e){let e=new a(o,o,r);T.push(ne(i,e,0,I))}else if("translatey"===e){let e=new f(o,o,r);T.push(ne(i,e,0,I))}else if("scale"===e){let e=new h(o,o<<1,r);T.push(re(i,e,"x","y",1,1))}else if("scalex"===e){let e=new m(o,o,r);T.push(ne(i,e,1,1))}else if("scaley"===e){let e=new u(o,o,r);T.push(ne(i,e,1,1))}else if("shear"===e){let e=new d(o,o<<1,r);T.push(re(i,e,"x","y",0,1))}else if("shearx"===e){let e=new c(o,o,r);T.push(ne(i,e,0,1))}else if("sheary"===e){let e=new g(o,o,r);T.push(ne(i,e,0,1))}else if("inherit"===e){let e=new p(o,n.index);for(let t=0;t<i.length;t++){let n=i[t];e.setFrame(t,oe(n,"time",0),H.enumValue(q,oe(n,"inherit","Normal")))}T.push(e)}}}if(B.ik)for(let e in B.ik){let t=B.ik[e],n=t[0];if(!n)continue;let r=L.findIkConstraint(e);if(!r)throw new Error("IK Constraint not found: "+e);let i=L.ikConstraints.indexOf(r),o=new w(t.length,t.length<<1,i),l=oe(n,"time",0),s=oe(n,"mix",1),a=oe(n,"softness",0)*I;for(let e=0,r=0;;e++){o.setFrame(e,l,s,a,oe(n,"bendPositive",!0)?1:-1,oe(n,"compress",!1),oe(n,"stretch",!1));let i=t[e+1];if(!i){o.shrink(r);break}let f=oe(i,"time",0),h=oe(i,"mix",1),m=oe(i,"softness",0)*I,u=n.curve;u&&(r=ie(u,o,r,e,0,l,f,s,h,1),r=ie(u,o,r,e,1,l,f,a,m,I)),l=f,s=h,a=m,n=i}T.push(o)}if(B.transform)for(let e in B.transform){let t=B.transform[e],n=t[0];if(!n)continue;let r=L.findTransformConstraint(e);if(!r)throw new Error("Transform constraint not found: "+e);let i=L.transformConstraints.indexOf(r),o=new b(t.length,6*t.length,i),l=oe(n,"time",0),s=oe(n,"mixRotate",1),a=oe(n,"mixX",1),f=oe(n,"mixY",a),h=oe(n,"mixScaleX",1),m=oe(n,"mixScaleY",h),u=oe(n,"mixShearY",1);for(let e=0,r=0;;e++){o.setFrame(e,l,s,a,f,h,m,u);let i=t[e+1];if(!i){o.shrink(r);break}let d=oe(i,"time",0),c=oe(i,"mixRotate",1),g=oe(i,"mixX",1),p=oe(i,"mixY",g),w=oe(i,"mixScaleX",1),b=oe(i,"mixScaleY",w),x=oe(i,"mixShearY",1),k=n.curve;k&&(r=ie(k,o,r,e,0,l,d,s,c,1),r=ie(k,o,r,e,1,l,d,a,g,1),r=ie(k,o,r,e,2,l,d,f,p,1),r=ie(k,o,r,e,3,l,d,h,w,1),r=ie(k,o,r,e,4,l,d,m,b,1),r=ie(k,o,r,e,5,l,d,u,x,1)),l=d,s=c,a=g,f=p,h=w,m=b,h=w,n=i}T.push(o)}if(B.path)for(let e in B.path){let t=B.path[e],n=L.findPathConstraint(e);if(!n)throw new Error("Path constraint not found: "+e);let r=L.pathConstraints.indexOf(n);for(let e in t){let i=t[e],o=i[0];if(!o)continue;let l=i.length;if("position"===e){let e=new x(l,l,r);T.push(ne(i,e,0,n.positionMode==D.Fixed?I:1))}else if("spacing"===e){let e=new k(l,l,r);T.push(ne(i,e,0,n.spacingMode==O.Length||n.spacingMode==O.Fixed?I:1))}else if("mix"===e){let e=new S(l,3*l,r),t=oe(o,"time",0),n=oe(o,"mixRotate",1),s=oe(o,"mixX",1),a=oe(o,"mixY",s);for(let r=0,l=0;;r++){e.setFrame(r,t,n,s,a);let f=i[r+1];if(!f){e.shrink(l);break}let h=oe(f,"time",0),m=oe(f,"mixRotate",1),u=oe(f,"mixX",1),d=oe(f,"mixY",u),c=o.curve;c&&(l=ie(c,e,l,r,0,t,h,n,m,1),l=ie(c,e,l,r,1,t,h,s,u,1),l=ie(c,e,l,r,2,t,h,a,d,1)),t=h,n=m,s=u,a=d,o=f}T.push(e)}}}if(B.physics)for(let e in B.physics){let t=B.physics[e],n=-1;if(e.length>0){let t=L.findPhysicsConstraint(e);if(!t)throw new Error("Physics constraint not found: "+e);n=L.physicsConstraints.indexOf(t)}for(let e in t){let r=t[e],i=r[0];if(!i)continue;let o,l=r.length;if("reset"!=e){if("inertia"==e)o=new v(l,l,n);else if("strength"==e)o=new C(l,l,n);else if("damping"==e)o=new F(l,l,n);else if("mass"==e)o=new E(l,l,n);else if("wind"==e)o=new X(l,l,n);else if("gravity"==e)o=new $(l,l,n);else{if("mix"!=e)continue;o=new Y(l,l,n)}T.push(ne(r,o,0,1))}else{const e=new y(l,n);for(let t=0;null!=i;i=r[t+1],t++)e.setFrame(t,oe(i,"time",0));T.push(e)}}}if(B.attachments)for(let e in B.attachments){let t=B.attachments[e],n=L.findSkin(e);if(!n)throw new Error("Skin not found: "+e);for(let e in t){let r=t[e],i=L.findSlot(e);if(!i)throw new Error("Slot not found: "+e);let o=i.index;for(let e in r){let t=r[e],i=n.getAttachment(o,e);for(let e in t){let n=t[e],r=n[0];if(r)if("deform"==e){let e=i.bones,t=i.vertices,l=e?t.length/3*2:t.length,s=new A(n.length,n.length,o,i),a=oe(r,"time",0);for(let i=0,o=0;;i++){let f,h=oe(r,"vertices",null);if(h){f=H.newFloatArray(l);let n=oe(r,"offset",0);if(H.arrayCopy(h,0,f,n,h.length),1!=I)for(let e=n,t=e+h.length;e<t;e++)f[e]*=I;if(!e)for(let e=0;e<l;e++)f[e]+=t[e]}else f=e?H.newFloatArray(l):t;s.setFrame(i,a,f);let m=n[i+1];if(!m){s.shrink(o);break}let u=oe(m,"time",0),d=r.curve;d&&(o=ie(d,s,o,i,0,a,u,0,1,1)),a=u,r=m}T.push(s)}else if("sequence"==e){let e=new P(n.length,o,i),t=0;for(let i=0;i<n.length;i++){let o=oe(r,"delay",t),l=oe(r,"time",0),s=Z[oe(r,"mode","hold")],a=oe(r,"index",0);e.setFrame(i,l,s,a,o),t=o,r=n[i+1]}T.push(e)}}}}}if(B.drawOrder){let e=new V(B.drawOrder.length),t=L.slots.length,n=0;for(let r=0;r<B.drawOrder.length;r++,n++){let i=B.drawOrder[r],o=null,l=oe(i,"offsets",null);if(l){o=H.newArray(t,-1);let e=H.newArray(t-l.length,0),n=0,r=0;for(let t=0;t<l.length;t++){let i=l[t],s=L.findSlot(i.slot);if(!s)throw new Error("Slot not found: "+s);let a=s.index;for(;n!=a;)e[r++]=n++;o[n+i.offset]=n++}for(;n<t;)e[r++]=n++;for(let n=t-1;n>=0;n--)-1==o[n]&&(o[n]=e[--r])}e.setFrame(n,oe(i,"time",0),o)}T.push(e)}if(B.events){let e=new M(B.events.length),t=0;for(let n=0;n<B.events.length;n++,t++){let r=B.events[n],i=L.findEvent(r.name);if(!i)throw new Error("Event not found: "+r.name);let o=new j(H.toSinglePrecision(oe(r,"time",0)),i);o.intValue=oe(r,"int",i.intValue),o.floatValue=oe(r,"float",i.floatValue),o.stringValue=oe(r,"string",i.stringValue),o.data.audioPath&&(o.volume=oe(r,"volume",1),o.balance=oe(r,"balance",0)),e.setFrame(t,o)}T.push(e)}let K=0;for(let e=0,t=T.length;e<t;e++)K=Math.max(K,T[e].getDuration());L.animations.push(new R(G,T,K))}}class te{parent;skin;slotIndex;mesh;inheritTimeline;constructor(e,t,n,r,i){this.mesh=e,this.skin=t,this.slotIndex=n,this.parent=r,this.inheritTimeline=i}}function ne(e,t,n,r){let i=e[0],o=oe(i,"time",0),l=oe(i,"value",n)*r,s=0;for(let a=0;;a++){t.setFrame(a,o,l);let f=e[a+1];if(!f)return t.shrink(s),t;let h=oe(f,"time",0),m=oe(f,"value",n)*r;i.curve&&(s=ie(i.curve,t,s,a,0,o,h,l,m,r)),o=h,l=m,i=f}}function re(e,t,n,r,i,o){let l=e[0],s=oe(l,"time",0),a=oe(l,n,i)*o,f=oe(l,r,i)*o,h=0;for(let m=0;;m++){t.setFrame(m,s,a,f);let u=e[m+1];if(!u)return t.shrink(h),t;let d=oe(u,"time",0),c=oe(u,n,i)*o,g=oe(u,r,i)*o,p=l.curve;p&&(h=ie(p,t,h,m,0,s,d,a,c,o),h=ie(p,t,h,m,1,s,d,f,g,o)),s=d,a=c,f=g,l=u}}function ie(e,t,n,r,i,o,l,s,a,f){if("stepped"==e)return t.setStepped(r),n;let h=i<<2,m=e[h],u=e[h+1]*f,d=e[h+2],c=e[h+3]*f;return t.setBezier(n,r,i,o,s,m,u,d,c,l,a),n+1}function oe(e,t,n){return void 0!==e[t]?e[t]:n}export{ee as SkeletonJson};
2
+ //# sourceMappingURL=SkeletonJson.js.map