@loaders.gl/tile-converter 3.1.7 → 3.2.0-alpha.2

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 (224) hide show
  1. package/dist/3d-tiles-attributes-worker.d.ts +28 -0
  2. package/dist/3d-tiles-attributes-worker.d.ts.map +1 -0
  3. package/dist/3d-tiles-attributes-worker.js +4 -0
  4. package/dist/3d-tiles-attributes-worker.js.map +7 -0
  5. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +82 -0
  6. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -0
  7. package/dist/3d-tiles-converter/3d-tiles-converter.js +268 -0
  8. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +84 -0
  9. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -0
  10. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +278 -0
  11. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +13 -0
  12. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts.map +1 -0
  13. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +23 -0
  14. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts +9 -0
  15. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts.map +1 -0
  16. package/dist/3d-tiles-converter/helpers/texture-atlas.js +52 -0
  17. package/dist/3d-tiles-converter/json-templates/tileset.d.ts +15 -0
  18. package/dist/3d-tiles-converter/json-templates/tileset.d.ts.map +1 -0
  19. package/dist/3d-tiles-converter/json-templates/tileset.js +43 -0
  20. package/dist/bundle.d.ts +2 -0
  21. package/dist/bundle.d.ts.map +1 -0
  22. package/dist/bundle.js +5 -0
  23. package/dist/converter.min.js +20 -20
  24. package/dist/deps-installer/deps-installer.d.ts +4 -0
  25. package/dist/deps-installer/deps-installer.d.ts.map +1 -0
  26. package/dist/deps-installer/deps-installer.js +21 -0
  27. package/dist/dist.min.js +1082 -1131
  28. package/dist/es5/3d-tiles-attributes-worker.js +29 -0
  29. package/dist/es5/3d-tiles-attributes-worker.js.map +1 -0
  30. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +104 -44
  31. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  32. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +34 -43
  33. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  34. package/dist/es5/i3s-attributes-worker.js +29 -0
  35. package/dist/es5/i3s-attributes-worker.js.map +1 -0
  36. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +19 -11
  37. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  38. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +2 -2
  39. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  40. package/dist/es5/i3s-converter/helpers/geometry-converter.js +267 -178
  41. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  42. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +71 -0
  43. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  44. package/dist/es5/i3s-converter/helpers/node-pages.js +43 -52
  45. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
  46. package/dist/es5/i3s-converter/i3s-converter.js +264 -219
  47. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  48. package/dist/es5/index.js +8 -0
  49. package/dist/es5/index.js.map +1 -1
  50. package/dist/es5/lib/utils/compress-util.js +14 -17
  51. package/dist/es5/lib/utils/compress-util.js.map +1 -1
  52. package/dist/es5/lib/utils/file-utils.js +39 -14
  53. package/dist/es5/lib/utils/file-utils.js.map +1 -1
  54. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
  55. package/dist/es5/lib/utils/queue.js +61 -0
  56. package/dist/es5/lib/utils/queue.js.map +1 -0
  57. package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
  58. package/dist/es5/lib/utils/write-queue.js +225 -0
  59. package/dist/es5/lib/utils/write-queue.js.map +1 -0
  60. package/dist/es5/pgm-loader.js +1 -1
  61. package/dist/es5/pgm-loader.js.map +1 -1
  62. package/dist/es5/workers/3d-tiles-attributes-worker.js +37 -0
  63. package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -0
  64. package/dist/es5/workers/i3s-attributes-worker.js +40 -0
  65. package/dist/es5/workers/i3s-attributes-worker.js.map +1 -0
  66. package/dist/esm/3d-tiles-attributes-worker.js +16 -0
  67. package/dist/esm/3d-tiles-attributes-worker.js.map +1 -0
  68. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +32 -5
  69. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  70. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +23 -23
  71. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  72. package/dist/esm/i3s-attributes-worker.js +16 -0
  73. package/dist/esm/i3s-attributes-worker.js.map +1 -0
  74. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +19 -11
  75. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  76. package/dist/esm/i3s-converter/helpers/geometry-attributes.js +2 -2
  77. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  78. package/dist/esm/i3s-converter/helpers/geometry-converter.js +117 -58
  79. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  80. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +54 -0
  81. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  82. package/dist/esm/i3s-converter/helpers/node-pages.js +12 -9
  83. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
  84. package/dist/esm/i3s-converter/i3s-converter.js +115 -28
  85. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  86. package/dist/esm/index.js +1 -0
  87. package/dist/esm/index.js.map +1 -1
  88. package/dist/esm/lib/utils/compress-util.js +6 -8
  89. package/dist/esm/lib/utils/compress-util.js.map +1 -1
  90. package/dist/esm/lib/utils/file-utils.js +11 -1
  91. package/dist/esm/lib/utils/file-utils.js.map +1 -1
  92. package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
  93. package/dist/esm/lib/utils/queue.js +19 -0
  94. package/dist/esm/lib/utils/queue.js.map +1 -0
  95. package/dist/esm/lib/utils/statistic-utills.js.map +1 -1
  96. package/dist/esm/lib/utils/write-queue.js +88 -0
  97. package/dist/esm/lib/utils/write-queue.js.map +1 -0
  98. package/dist/esm/pgm-loader.js +1 -1
  99. package/dist/esm/pgm-loader.js.map +1 -1
  100. package/dist/esm/workers/3d-tiles-attributes-worker.js +5 -0
  101. package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -0
  102. package/dist/esm/workers/i3s-attributes-worker.js +4 -0
  103. package/dist/esm/workers/i3s-attributes-worker.js.map +1 -0
  104. package/dist/i3s-attributes-worker.d.ts +33 -0
  105. package/dist/i3s-attributes-worker.d.ts.map +1 -0
  106. package/dist/i3s-attributes-worker.js +10 -0
  107. package/dist/i3s-attributes-worker.js.map +7 -0
  108. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +41 -0
  109. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -0
  110. package/dist/i3s-converter/helpers/coordinate-converter.js +122 -0
  111. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts +9 -0
  112. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts.map +1 -0
  113. package/dist/i3s-converter/helpers/create-scene-server-path.js +28 -0
  114. package/dist/i3s-converter/helpers/geometry-attributes.d.ts +8 -0
  115. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -0
  116. package/dist/i3s-converter/helpers/geometry-attributes.js +177 -0
  117. package/dist/i3s-converter/helpers/geometry-converter.d.ts +29 -0
  118. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -0
  119. package/dist/i3s-converter/helpers/geometry-converter.js +901 -0
  120. package/dist/i3s-converter/helpers/gltf-attributes.d.ts +9 -0
  121. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -0
  122. package/dist/i3s-converter/helpers/gltf-attributes.js +56 -0
  123. package/dist/i3s-converter/helpers/node-debug.d.ts +8 -0
  124. package/dist/i3s-converter/helpers/node-debug.d.ts.map +1 -0
  125. package/dist/i3s-converter/helpers/node-debug.js +114 -0
  126. package/dist/i3s-converter/helpers/node-pages.d.ts +117 -0
  127. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -0
  128. package/dist/i3s-converter/helpers/node-pages.js +208 -0
  129. package/dist/i3s-converter/i3s-converter.d.ts +325 -0
  130. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -0
  131. package/dist/i3s-converter/i3s-converter.js +1056 -0
  132. package/dist/i3s-converter/json-templates/layers.d.ts +95 -0
  133. package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -0
  134. package/dist/i3s-converter/json-templates/layers.js +199 -0
  135. package/dist/i3s-converter/json-templates/metadata.d.ts +22 -0
  136. package/dist/i3s-converter/json-templates/metadata.d.ts.map +1 -0
  137. package/dist/i3s-converter/json-templates/metadata.js +25 -0
  138. package/dist/i3s-converter/json-templates/node.d.ts +61 -0
  139. package/dist/i3s-converter/json-templates/node.d.ts.map +1 -0
  140. package/dist/i3s-converter/json-templates/node.js +89 -0
  141. package/dist/i3s-converter/json-templates/scene-server.d.ts +28 -0
  142. package/dist/i3s-converter/json-templates/scene-server.d.ts.map +1 -0
  143. package/dist/i3s-converter/json-templates/scene-server.js +31 -0
  144. package/dist/i3s-converter/json-templates/shared-resources.d.ts +14 -0
  145. package/dist/i3s-converter/json-templates/shared-resources.d.ts.map +1 -0
  146. package/dist/i3s-converter/json-templates/shared-resources.js +129 -0
  147. package/dist/i3s-converter/json-templates/store.d.ts +95 -0
  148. package/dist/i3s-converter/json-templates/store.d.ts.map +1 -0
  149. package/dist/i3s-converter/json-templates/store.js +103 -0
  150. package/dist/i3s-converter/types.d.ts +114 -0
  151. package/dist/i3s-converter/types.d.ts.map +1 -0
  152. package/dist/i3s-converter/types.js +2 -0
  153. package/dist/i3s-server/app.d.ts +3 -0
  154. package/dist/i3s-server/app.d.ts.map +1 -0
  155. package/dist/i3s-server/app.js +14 -0
  156. package/dist/i3s-server/controllers/index-controller.d.ts +2 -0
  157. package/dist/i3s-server/controllers/index-controller.d.ts.map +1 -0
  158. package/dist/i3s-server/controllers/index-controller.js +23 -0
  159. package/dist/i3s-server/routes/index.d.ts +3 -0
  160. package/dist/i3s-server/routes/index.d.ts.map +1 -0
  161. package/dist/i3s-server/routes/index.js +16 -0
  162. package/dist/index.d.ts +6 -0
  163. package/dist/index.d.ts.map +1 -0
  164. package/dist/index.js +16 -0
  165. package/dist/lib/utils/compress-util.d.ts +45 -0
  166. package/dist/lib/utils/compress-util.d.ts.map +1 -0
  167. package/dist/lib/utils/compress-util.js +257 -0
  168. package/{src → dist}/lib/utils/file-utils.d.ts +6 -14
  169. package/dist/lib/utils/file-utils.d.ts.map +1 -0
  170. package/dist/lib/utils/file-utils.js +81 -0
  171. package/dist/lib/utils/lod-conversion-utils.d.ts +41 -0
  172. package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -0
  173. package/dist/lib/utils/lod-conversion-utils.js +76 -0
  174. package/dist/lib/utils/queue.d.ts +7 -0
  175. package/dist/lib/utils/queue.d.ts.map +1 -0
  176. package/dist/lib/utils/queue.js +18 -0
  177. package/dist/lib/utils/statistic-utills.d.ts +3 -0
  178. package/dist/lib/utils/statistic-utills.d.ts.map +1 -0
  179. package/dist/lib/utils/statistic-utills.js +64 -0
  180. package/dist/lib/utils/write-queue.d.ts +22 -0
  181. package/dist/lib/utils/write-queue.d.ts.map +1 -0
  182. package/dist/lib/utils/write-queue.js +62 -0
  183. package/dist/pgm-loader.d.ts +6 -0
  184. package/dist/pgm-loader.d.ts.map +1 -0
  185. package/dist/pgm-loader.js +23 -0
  186. package/dist/workers/3d-tiles-attributes-worker.d.ts +2 -0
  187. package/dist/workers/3d-tiles-attributes-worker.d.ts.map +1 -0
  188. package/dist/workers/3d-tiles-attributes-worker.js +9 -0
  189. package/dist/workers/i3s-attributes-worker.d.ts +2 -0
  190. package/dist/workers/i3s-attributes-worker.d.ts.map +1 -0
  191. package/dist/workers/i3s-attributes-worker.js +5 -0
  192. package/package.json +20 -18
  193. package/src/3d-tiles-attributes-worker.ts +43 -0
  194. package/src/3d-tiles-converter/3d-tiles-converter.ts +48 -5
  195. package/src/3d-tiles-converter/helpers/b3dm-converter.ts +21 -18
  196. package/src/i3s-attributes-worker.ts +46 -0
  197. package/src/i3s-converter/helpers/coordinate-converter.ts +29 -24
  198. package/src/i3s-converter/helpers/geometry-attributes.ts +4 -3
  199. package/src/i3s-converter/helpers/{geometry-converter.js → geometry-converter.ts} +421 -175
  200. package/src/i3s-converter/helpers/gltf-attributes.ts +68 -0
  201. package/src/i3s-converter/helpers/node-pages.ts +25 -17
  202. package/src/i3s-converter/i3s-converter.ts +124 -69
  203. package/src/i3s-converter/types.ts +90 -8
  204. package/src/index.ts +1 -0
  205. package/src/lib/utils/{compress-util.js → compress-util.ts} +105 -18
  206. package/src/lib/utils/file-utils.ts +84 -0
  207. package/src/lib/utils/{lod-conversion-utils.js → lod-conversion-utils.ts} +27 -5
  208. package/src/lib/utils/queue.ts +17 -0
  209. package/src/lib/utils/{statistic-utills.js → statistic-utills.ts} +0 -0
  210. package/src/lib/utils/write-queue.ts +75 -0
  211. package/src/workers/3d-tiles-attributes-worker.ts +6 -0
  212. package/src/workers/i3s-attributes-worker.ts +6 -0
  213. package/dist/es5/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  214. package/dist/es5/lib/utils/compress-util.d.ts +0 -53
  215. package/dist/es5/lib/utils/file-utils.d.ts +0 -43
  216. package/dist/es5/lib/utils/lod-conversion-utils.d.ts +0 -32
  217. package/dist/esm/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  218. package/dist/esm/lib/utils/compress-util.d.ts +0 -53
  219. package/dist/esm/lib/utils/file-utils.d.ts +0 -43
  220. package/dist/esm/lib/utils/lod-conversion-utils.d.ts +0 -32
  221. package/src/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  222. package/src/lib/utils/compress-util.d.ts +0 -53
  223. package/src/lib/utils/file-utils.js +0 -38
  224. package/src/lib/utils/lod-conversion-utils.d.ts +0 -32
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/utils/lod-conversion-utils.js"],"names":["DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR","convertGeometricErrorToScreenThreshold","tile","coordinates","lodSelection","boundingVolume","lodMetricValue","maxScreenThreshold","metricType","maxError","mbs","maxScreenThresholdSQ","Math","PI","constructor","name","push","convertScreenThresholdToGeometricError","node","metricData","header","sqMetricData","sqrt"],"mappings":"AACA,MAAMA,kCAAkC,GAAG,EAA3C;AAeA,OAAO,SAASC,sCAAT,CAAgDC,IAAhD,EAAsDC,WAAtD,EAAmE;AACxE,QAAMC,YAAY,GAAG,EAArB;AACA,QAAMC,cAAc,GAAGH,IAAI,CAACG,cAA5B;AACA,QAAMC,cAAc,GAAGJ,IAAI,CAACI,cAAL,IAAuB,GAA9C;AACA,QAAMC,kBAAkB,GAAG;AACzBC,IAAAA,UAAU,EAAE,oBADa;AAEzBC,IAAAA,QAAQ,EAAGN,WAAW,CAACO,GAAZ,CAAgB,CAAhB,IAAqB,CAArB,GAAyBV,kCAA1B,GAAgEM;AAFjD,GAA3B;AAIA,QAAMK,oBAAoB,GAAG;AAC3BH,IAAAA,UAAU,EAAE,sBADe;AAE3BC,IAAAA,QAAQ,EAAEG,IAAI,CAACC,EAAL,GAAU,IAAV,GAAiBN,kBAAkB,CAACE,QAApC,GAA+CF,kBAAkB,CAACE;AAFjD,GAA7B;;AAKA,MAAIJ,cAAc,CAACS,WAAf,CAA2BC,IAA3B,KAAoC,qBAAxC,EAA+D;AAC7DX,IAAAA,YAAY,CAACY,IAAb,CAAkBL,oBAAlB;AACAP,IAAAA,YAAY,CAACY,IAAb,CAAkBT,kBAAlB;AACD,GAHD,MAGO;AACLH,IAAAA,YAAY,CAACY,IAAb,CAAkBT,kBAAlB;AACAH,IAAAA,YAAY,CAACY,IAAb,CAAkBL,oBAAlB;AACD;;AAED,SAAOP,YAAP;AACD;AAED,OAAO,SAASa,sCAAT,CAAgDC,IAAhD,EAAsD;AAC3D,QAAMC,UAAU,GAAGD,IAAI,CAACE,MAAL,CAAYhB,YAAZ,CAAyBG,kBAAzB,IAA+C,EAAlE;AACA,MAAIE,QAAQ,GAAGU,UAAU,CAACV,QAA1B;;AACA,MAAI,CAACA,QAAL,EAAe;AACb,UAAMY,YAAY,GAAGH,IAAI,CAACE,MAAL,CAAYhB,YAAZ,CAAyBO,oBAA9C;;AACA,QAAIU,YAAJ,EAAkB;AAChBZ,MAAAA,QAAQ,GAAGG,IAAI,CAACU,IAAL,CAAUD,YAAY,CAACZ,QAAb,IAAyBG,IAAI,CAACC,EAAL,GAAU,IAAnC,CAAV,CAAX;AACD;AACF;;AAED,MAAI,CAACJ,QAAL,EAAe;AACbA,IAAAA,QAAQ,GAAGT,kCAAX;AACD;;AAED,SAAQkB,IAAI,CAACE,MAAL,CAAYV,GAAZ,CAAgB,CAAhB,IAAqB,CAArB,GAAyBV,kCAA1B,GAAgES,QAAvE;AACD","sourcesContent":["// https://cesium.com/docs/cesiumjs-ref-doc/Cesium3DTileset.html\nconst DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR = 16;\n/**\n * Do conversion from geometric error to screen threshold\n * @param {Object} tile\n * @param {Object} coordinates\n * In 3DTiles we have HLOD logic and parent tile also has bigger lodMetric value then its children.\n * In I3s we have reverse logic related to maxError. Parent has lower maxError than its child.\n * In nodes where are no children tile.lodMetricValue is 0. This is because of logic of HLOD in 3DTiles\n * 3DTiles spec:\n * https://github.com/CesiumGS/3d-tiles/tree/master/specification#geometric-error\n * I3S spec:\n * https://github.com/Esri/i3s-spec/blob/master/docs/1.7/lodSelection.cmn.md\n * To avoid infinity values when we do calculations of maxError we shold replace 0 with value which allows us\n * to make child maxError bigger than his parent maxError.\n */\nexport function convertGeometricErrorToScreenThreshold(tile, coordinates) {\n const lodSelection = [];\n const boundingVolume = tile.boundingVolume;\n const lodMetricValue = tile.lodMetricValue || 0.1;\n const maxScreenThreshold = {\n metricType: 'maxScreenThreshold',\n maxError: (coordinates.mbs[3] * 2 * DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR) / lodMetricValue\n };\n const maxScreenThresholdSQ = {\n metricType: 'maxScreenThresholdSQ',\n maxError: Math.PI * 0.25 * maxScreenThreshold.maxError * maxScreenThreshold.maxError\n };\n\n if (boundingVolume.constructor.name === 'OrientedBoundingBox') {\n lodSelection.push(maxScreenThresholdSQ);\n lodSelection.push(maxScreenThreshold);\n } else {\n lodSelection.push(maxScreenThreshold);\n lodSelection.push(maxScreenThresholdSQ);\n }\n\n return lodSelection;\n}\n\nexport function convertScreenThresholdToGeometricError(node) {\n const metricData = node.header.lodSelection.maxScreenThreshold || {};\n let maxError = metricData.maxError;\n if (!maxError) {\n const sqMetricData = node.header.lodSelection.maxScreenThresholdSQ;\n if (sqMetricData) {\n maxError = Math.sqrt(sqMetricData.maxError / (Math.PI * 0.25));\n }\n }\n\n if (!maxError) {\n maxError = DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR;\n }\n\n return (node.header.mbs[3] * 2 * DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR) / maxError;\n}\n"],"file":"lod-conversion-utils.js"}
1
+ {"version":3,"sources":["../../../../src/lib/utils/lod-conversion-utils.ts"],"names":["DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR","convertGeometricErrorToScreenThreshold","tile","coordinates","lodSelection","boundingVolume","lodMetricValue","maxScreenThreshold","metricType","maxError","mbs","maxScreenThresholdSQ","Math","PI","constructor","name","push","convertScreenThresholdToGeometricError","node","metricData","header","sqMetricData","sqrt"],"mappings":"AAIA,MAAMA,kCAAkC,GAAG,EAA3C;AA6BA,OAAO,SAASC,sCAAT,CAAgDC,IAAhD,EAA8DC,WAA9D,EAA4F;AACjG,QAAMC,YAAsD,GAAG,EAA/D;AACA,QAAMC,cAAc,GAAGH,IAAI,CAACG,cAA5B;AACA,QAAMC,cAAc,GAAGJ,IAAI,CAACI,cAAL,IAAuB,GAA9C;AACA,QAAMC,kBAAkB,GAAG;AACzBC,IAAAA,UAAU,EAAE,oBADa;AAEzBC,IAAAA,QAAQ,EAAGN,WAAW,CAACO,GAAZ,CAAgB,CAAhB,IAAqB,CAArB,GAAyBV,kCAA1B,GAAgEM;AAFjD,GAA3B;AAIA,QAAMK,oBAAoB,GAAG;AAC3BH,IAAAA,UAAU,EAAE,sBADe;AAE3BC,IAAAA,QAAQ,EAAEG,IAAI,CAACC,EAAL,GAAU,IAAV,GAAiBN,kBAAkB,CAACE,QAApC,GAA+CF,kBAAkB,CAACE;AAFjD,GAA7B;;AAKA,MAAIJ,cAAc,CAACS,WAAf,CAA2BC,IAA3B,KAAoC,qBAAxC,EAA+D;AAC7DX,IAAAA,YAAY,CAACY,IAAb,CAAkBL,oBAAlB;AACAP,IAAAA,YAAY,CAACY,IAAb,CAAkBT,kBAAlB;AACD,GAHD,MAGO;AACLH,IAAAA,YAAY,CAACY,IAAb,CAAkBT,kBAAlB;AACAH,IAAAA,YAAY,CAACY,IAAb,CAAkBL,oBAAlB;AACD;;AAED,SAAOP,YAAP;AACD;AAOD,OAAO,SAASa,sCAAT,CAAgDC,IAAhD,EAAsE;AAC3E,QAAMC,UAAU,GAAGD,IAAI,CAACE,MAAL,CAAYhB,YAAZ,CAAyBG,kBAAzB,IAA+C,EAAlE;AACA,MAAIE,QAAQ,GAAGU,UAAU,CAACV,QAA1B;;AACA,MAAI,CAACA,QAAL,EAAe;AACb,UAAMY,YAAY,GAAGH,IAAI,CAACE,MAAL,CAAYhB,YAAZ,CAAyBO,oBAA9C;;AACA,QAAIU,YAAJ,EAAkB;AAChBZ,MAAAA,QAAQ,GAAGG,IAAI,CAACU,IAAL,CAAUD,YAAY,CAACZ,QAAb,IAAyBG,IAAI,CAACC,EAAL,GAAU,IAAnC,CAAV,CAAX;AACD;AACF;;AAED,MAAI,CAACJ,QAAL,EAAe;AACbA,IAAAA,QAAQ,GAAGT,kCAAX;AACD;;AAED,SAAQkB,IAAI,CAACE,MAAL,CAAYV,GAAZ,CAAgB,CAAhB,IAAqB,CAArB,GAAyBV,kCAA1B,GAAgES,QAAvE;AACD","sourcesContent":["import {BoundingVolumes} from '@loaders.gl/i3s';\nimport {Tile3D} from '@loaders.gl/tiles';\n\n// https://cesium.com/docs/cesiumjs-ref-doc/Cesium3DTileset.html\nconst DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR = 16;\n/**\n * Do conversion from geometric error to screen threshold\n * \n * In 3DTiles we have HLOD logic and parent tile also has bigger lodMetric value then its children.\n * In I3s we have reverse logic related to maxError. Parent has lower maxError than its child.\n * In nodes where are no children tile.lodMetricValue is 0. This is because of logic of HLOD in 3DTiles\n * 3DTiles spec:\n * https://github.com/CesiumGS/3d-tiles/tree/master/specification#geometric-error\n * I3S spec:\n * https://github.com/Esri/i3s-spec/blob/master/docs/1.7/lodSelection.cmn.md\n * To avoid infinity values when we do calculations of maxError we shold replace 0 with value which allows us\n * to make child maxError bigger than his parent maxError.\n * \n * @param tile - 3d-tiles tile Object\n * @param coordinates - node converted coordinates\n * @returns An array of LOD metrics in format compatible with i3s 3DNodeIndexDocument.lodSelection\n * @example \n * [\n {\n \"metricType\": \"maxScreenThresholdSQ\",\n \"maxError\": 870638.071285568\n },\n {\n \"metricType\": \"maxScreenThreshold\",\n \"maxError\": 1052.8679031638949\n }\n ]\n */\nexport function convertGeometricErrorToScreenThreshold(tile: Tile3D, coordinates: BoundingVolumes) {\n const lodSelection: {metricType: string; maxError: number}[] = [];\n const boundingVolume = tile.boundingVolume;\n const lodMetricValue = tile.lodMetricValue || 0.1;\n const maxScreenThreshold = {\n metricType: 'maxScreenThreshold',\n maxError: (coordinates.mbs[3] * 2 * DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR) / lodMetricValue\n };\n const maxScreenThresholdSQ = {\n metricType: 'maxScreenThresholdSQ',\n maxError: Math.PI * 0.25 * maxScreenThreshold.maxError * maxScreenThreshold.maxError\n };\n\n if (boundingVolume.constructor.name === 'OrientedBoundingBox') {\n lodSelection.push(maxScreenThresholdSQ);\n lodSelection.push(maxScreenThreshold);\n } else {\n lodSelection.push(maxScreenThreshold);\n lodSelection.push(maxScreenThresholdSQ);\n }\n\n return lodSelection;\n}\n\n/**\n * Convert LOD metric from \"Screen Threshold\" to \"Screen Space Error\"\n * @param node - i3s node data\n * @returns lod metric in 3d-tiles format\n */\nexport function convertScreenThresholdToGeometricError(node: Tile3D): number {\n const metricData = node.header.lodSelection.maxScreenThreshold || {};\n let maxError = metricData.maxError;\n if (!maxError) {\n const sqMetricData = node.header.lodSelection.maxScreenThresholdSQ;\n if (sqMetricData) {\n maxError = Math.sqrt(sqMetricData.maxError / (Math.PI * 0.25));\n }\n }\n\n if (!maxError) {\n maxError = DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR;\n }\n\n return (node.header.mbs[3] * 2 * DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR) / maxError;\n}\n"],"file":"lod-conversion-utils.js"}
@@ -0,0 +1,19 @@
1
+ export class Queue extends Array {
2
+ enqueue(val) {
3
+ this.push(val);
4
+ }
5
+
6
+ dequeue() {
7
+ return this.shift();
8
+ }
9
+
10
+ peek() {
11
+ return this[0];
12
+ }
13
+
14
+ isEmpty() {
15
+ return this.length === 0;
16
+ }
17
+
18
+ }
19
+ //# sourceMappingURL=queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/utils/queue.ts"],"names":["Queue","Array","enqueue","val","push","dequeue","shift","peek","isEmpty","length"],"mappings":"AAAA,OAAO,MAAMA,KAAN,SAAuBC,KAAvB,CAAgC;AACrCC,EAAAA,OAAO,CAACC,GAAD,EAAS;AACd,SAAKC,IAAL,CAAUD,GAAV;AACD;;AAEDE,EAAAA,OAAO,GAAkB;AACvB,WAAO,KAAKC,KAAL,EAAP;AACD;;AAEDC,EAAAA,IAAI,GAAM;AACR,WAAO,KAAK,CAAL,CAAP;AACD;;AAEDC,EAAAA,OAAO,GAAG;AACR,WAAO,KAAKC,MAAL,KAAgB,CAAvB;AACD;;AAfoC","sourcesContent":["export class Queue<T> extends Array<T> {\n enqueue(val: T) {\n this.push(val);\n }\n\n dequeue(): T | undefined {\n return this.shift();\n }\n\n peek(): T {\n return this[0];\n }\n\n isEmpty() {\n return this.length === 0;\n }\n}\n"],"file":"queue.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/utils/statistic-utills.js"],"names":["join","promises","fs","getAbsoluteFilePath","timeConverter","time","nanoSecondsInMillisecond","timeInSeconds","hours","Math","floor","minutes","seconds","milliseconds","result","calculateFilesSize","params","slpk","outputPath","tilesetName","fullOutputPath","slpkPath","stat","size","directoryPath","totalSize","getTotalFilesSize","error","console","log","dirPath","totalFileSize","files","readdir","file","fileStat","isDirectory"],"mappings":"AAAA,SAAQA,IAAR,QAAmB,MAAnB;AACA,SAAQC,QAAQ,IAAIC,EAApB,QAA6B,IAA7B;AACA,SAAQC,mBAAR,QAAkC,cAAlC;AAEA,OAAO,SAASC,aAAT,CAAuBC,IAAvB,EAA6B;AAClC,QAAMC,wBAAwB,GAAG,GAAjC;AACA,MAAIC,aAAa,GAAGF,IAAI,CAAC,CAAD,CAAxB;AACA,QAAMG,KAAK,GAAGC,IAAI,CAACC,KAAL,CAAWH,aAAa,GAAG,IAA3B,CAAd;AACAA,EAAAA,aAAa,GAAGA,aAAa,GAAGC,KAAK,GAAG,IAAxC;AACA,QAAMG,OAAO,GAAGF,IAAI,CAACC,KAAL,CAAWH,aAAa,GAAG,EAA3B,CAAhB;AACAA,EAAAA,aAAa,GAAGA,aAAa,GAAGI,OAAO,GAAG,EAA1C;AACA,QAAMC,OAAO,GAAGH,IAAI,CAACC,KAAL,CAAWH,aAAX,CAAhB;AACA,QAAMM,YAAY,GAAGR,IAAI,CAAC,CAAD,CAAJ,GAAUC,wBAA/B;AACA,MAAIQ,MAAM,GAAG,EAAb;;AAEA,MAAIN,KAAJ,EAAW;AACTM,IAAAA,MAAM,cAAON,KAAP,OAAN;AACD;;AAED,MAAIG,OAAJ,EAAa;AACXG,IAAAA,MAAM,cAAOH,OAAP,OAAN;AACD;;AAED,MAAIC,OAAJ,EAAa;AACXE,IAAAA,MAAM,cAAOF,OAAP,MAAN;AACD;;AAED,MAAI,CAACE,MAAL,EAAa;AACXA,IAAAA,MAAM,cAAOD,YAAP,OAAN;AACD;;AAED,SAAOC,MAAP;AACD;AAED,OAAO,eAAeC,kBAAf,CAAkCC,MAAlC,EAA0C;AAC/C,QAAM;AAACC,IAAAA,IAAD;AAAOC,IAAAA,UAAP;AAAmBC,IAAAA;AAAnB,MAAkCH,MAAxC;AACA,QAAMI,cAAc,GAAGjB,mBAAmB,CAACe,UAAD,CAA1C;;AAEA,MAAI;AACF,QAAID,IAAJ,EAAU;AACR,YAAMI,QAAQ,GAAGrB,IAAI,CAACoB,cAAD,YAAoBD,WAApB,WAArB;AACA,YAAMG,IAAI,GAAG,MAAMpB,EAAE,CAACoB,IAAH,CAAQD,QAAR,CAAnB;AACA,aAAOC,IAAI,CAACC,IAAZ;AACD;;AAED,UAAMC,aAAa,GAAGxB,IAAI,CAACoB,cAAD,EAAiBD,WAAjB,CAA1B;AACA,UAAMM,SAAS,GAAG,MAAMC,iBAAiB,CAACF,aAAD,CAAzC;AACA,WAAOC,SAAP;AACD,GAVD,CAUE,OAAOE,KAAP,EAAc;AACdC,IAAAA,OAAO,CAACC,GAAR,CAAY,8BAAZ,EAA4CF,KAA5C;AACA,WAAO,IAAP;AACD;AACF;;AAED,eAAeD,iBAAf,CAAiCI,OAAjC,EAA0C;AACxC,MAAIC,aAAa,GAAG,CAApB;AAEA,QAAMC,KAAK,GAAG,MAAM9B,EAAE,CAAC+B,OAAH,CAAWH,OAAX,CAApB;;AAEA,OAAK,MAAMI,IAAX,IAAmBF,KAAnB,EAA0B;AACxB,UAAMG,QAAQ,GAAG,MAAMjC,EAAE,CAACoB,IAAH,CAAQtB,IAAI,CAAC8B,OAAD,EAAUI,IAAV,CAAZ,CAAvB;;AACA,QAAIC,QAAQ,CAACC,WAAT,EAAJ,EAA4B;AAC1BL,MAAAA,aAAa,IAAI,MAAML,iBAAiB,CAAC1B,IAAI,CAAC8B,OAAD,EAAUI,IAAV,CAAL,CAAxC;AACD,KAFD,MAEO;AACLH,MAAAA,aAAa,IAAII,QAAQ,CAACZ,IAA1B;AACD;AACF;;AACD,SAAOQ,aAAP;AACD","sourcesContent":["import {join} from 'path';\nimport {promises as fs} from 'fs';\nimport {getAbsoluteFilePath} from './file-utils';\n\nexport function timeConverter(time) {\n const nanoSecondsInMillisecond = 1e6;\n let timeInSeconds = time[0];\n const hours = Math.floor(timeInSeconds / 3600);\n timeInSeconds = timeInSeconds - hours * 3600;\n const minutes = Math.floor(timeInSeconds / 60);\n timeInSeconds = timeInSeconds - minutes * 60;\n const seconds = Math.floor(timeInSeconds);\n const milliseconds = time[1] / nanoSecondsInMillisecond;\n let result = '';\n\n if (hours) {\n result += `${hours}h `;\n }\n\n if (minutes) {\n result += `${minutes}m `;\n }\n\n if (seconds) {\n result += `${seconds}s`;\n }\n\n if (!result) {\n result += `${milliseconds}ms`;\n }\n\n return result;\n}\n\nexport async function calculateFilesSize(params) {\n const {slpk, outputPath, tilesetName} = params;\n const fullOutputPath = getAbsoluteFilePath(outputPath);\n\n try {\n if (slpk) {\n const slpkPath = join(fullOutputPath, `${tilesetName}.slpk`);\n const stat = await fs.stat(slpkPath);\n return stat.size;\n }\n\n const directoryPath = join(fullOutputPath, tilesetName);\n const totalSize = await getTotalFilesSize(directoryPath);\n return totalSize;\n } catch (error) {\n console.log('Calculate file sizes error: ', error); // eslint-disable-line\n return null;\n }\n}\n\nasync function getTotalFilesSize(dirPath) {\n let totalFileSize = 0;\n\n const files = await fs.readdir(dirPath);\n\n for (const file of files) {\n const fileStat = await fs.stat(join(dirPath, file));\n if (fileStat.isDirectory()) {\n totalFileSize += await getTotalFilesSize(join(dirPath, file));\n } else {\n totalFileSize += fileStat.size;\n }\n }\n return totalFileSize;\n}\n"],"file":"statistic-utills.js"}
1
+ {"version":3,"sources":["../../../../src/lib/utils/statistic-utills.ts"],"names":["join","promises","fs","getAbsoluteFilePath","timeConverter","time","nanoSecondsInMillisecond","timeInSeconds","hours","Math","floor","minutes","seconds","milliseconds","result","calculateFilesSize","params","slpk","outputPath","tilesetName","fullOutputPath","slpkPath","stat","size","directoryPath","totalSize","getTotalFilesSize","error","console","log","dirPath","totalFileSize","files","readdir","file","fileStat","isDirectory"],"mappings":"AAAA,SAAQA,IAAR,QAAmB,MAAnB;AACA,SAAQC,QAAQ,IAAIC,EAApB,QAA6B,IAA7B;AACA,SAAQC,mBAAR,QAAkC,cAAlC;AAEA,OAAO,SAASC,aAAT,CAAuBC,IAAvB,EAA6B;AAClC,QAAMC,wBAAwB,GAAG,GAAjC;AACA,MAAIC,aAAa,GAAGF,IAAI,CAAC,CAAD,CAAxB;AACA,QAAMG,KAAK,GAAGC,IAAI,CAACC,KAAL,CAAWH,aAAa,GAAG,IAA3B,CAAd;AACAA,EAAAA,aAAa,GAAGA,aAAa,GAAGC,KAAK,GAAG,IAAxC;AACA,QAAMG,OAAO,GAAGF,IAAI,CAACC,KAAL,CAAWH,aAAa,GAAG,EAA3B,CAAhB;AACAA,EAAAA,aAAa,GAAGA,aAAa,GAAGI,OAAO,GAAG,EAA1C;AACA,QAAMC,OAAO,GAAGH,IAAI,CAACC,KAAL,CAAWH,aAAX,CAAhB;AACA,QAAMM,YAAY,GAAGR,IAAI,CAAC,CAAD,CAAJ,GAAUC,wBAA/B;AACA,MAAIQ,MAAM,GAAG,EAAb;;AAEA,MAAIN,KAAJ,EAAW;AACTM,IAAAA,MAAM,cAAON,KAAP,OAAN;AACD;;AAED,MAAIG,OAAJ,EAAa;AACXG,IAAAA,MAAM,cAAOH,OAAP,OAAN;AACD;;AAED,MAAIC,OAAJ,EAAa;AACXE,IAAAA,MAAM,cAAOF,OAAP,MAAN;AACD;;AAED,MAAI,CAACE,MAAL,EAAa;AACXA,IAAAA,MAAM,cAAOD,YAAP,OAAN;AACD;;AAED,SAAOC,MAAP;AACD;AAED,OAAO,eAAeC,kBAAf,CAAkCC,MAAlC,EAA0C;AAC/C,QAAM;AAACC,IAAAA,IAAD;AAAOC,IAAAA,UAAP;AAAmBC,IAAAA;AAAnB,MAAkCH,MAAxC;AACA,QAAMI,cAAc,GAAGjB,mBAAmB,CAACe,UAAD,CAA1C;;AAEA,MAAI;AACF,QAAID,IAAJ,EAAU;AACR,YAAMI,QAAQ,GAAGrB,IAAI,CAACoB,cAAD,YAAoBD,WAApB,WAArB;AACA,YAAMG,IAAI,GAAG,MAAMpB,EAAE,CAACoB,IAAH,CAAQD,QAAR,CAAnB;AACA,aAAOC,IAAI,CAACC,IAAZ;AACD;;AAED,UAAMC,aAAa,GAAGxB,IAAI,CAACoB,cAAD,EAAiBD,WAAjB,CAA1B;AACA,UAAMM,SAAS,GAAG,MAAMC,iBAAiB,CAACF,aAAD,CAAzC;AACA,WAAOC,SAAP;AACD,GAVD,CAUE,OAAOE,KAAP,EAAc;AACdC,IAAAA,OAAO,CAACC,GAAR,CAAY,8BAAZ,EAA4CF,KAA5C;AACA,WAAO,IAAP;AACD;AACF;;AAED,eAAeD,iBAAf,CAAiCI,OAAjC,EAA0C;AACxC,MAAIC,aAAa,GAAG,CAApB;AAEA,QAAMC,KAAK,GAAG,MAAM9B,EAAE,CAAC+B,OAAH,CAAWH,OAAX,CAApB;;AAEA,OAAK,MAAMI,IAAX,IAAmBF,KAAnB,EAA0B;AACxB,UAAMG,QAAQ,GAAG,MAAMjC,EAAE,CAACoB,IAAH,CAAQtB,IAAI,CAAC8B,OAAD,EAAUI,IAAV,CAAZ,CAAvB;;AACA,QAAIC,QAAQ,CAACC,WAAT,EAAJ,EAA4B;AAC1BL,MAAAA,aAAa,IAAI,MAAML,iBAAiB,CAAC1B,IAAI,CAAC8B,OAAD,EAAUI,IAAV,CAAL,CAAxC;AACD,KAFD,MAEO;AACLH,MAAAA,aAAa,IAAII,QAAQ,CAACZ,IAA1B;AACD;AACF;;AACD,SAAOQ,aAAP;AACD","sourcesContent":["import {join} from 'path';\nimport {promises as fs} from 'fs';\nimport {getAbsoluteFilePath} from './file-utils';\n\nexport function timeConverter(time) {\n const nanoSecondsInMillisecond = 1e6;\n let timeInSeconds = time[0];\n const hours = Math.floor(timeInSeconds / 3600);\n timeInSeconds = timeInSeconds - hours * 3600;\n const minutes = Math.floor(timeInSeconds / 60);\n timeInSeconds = timeInSeconds - minutes * 60;\n const seconds = Math.floor(timeInSeconds);\n const milliseconds = time[1] / nanoSecondsInMillisecond;\n let result = '';\n\n if (hours) {\n result += `${hours}h `;\n }\n\n if (minutes) {\n result += `${minutes}m `;\n }\n\n if (seconds) {\n result += `${seconds}s`;\n }\n\n if (!result) {\n result += `${milliseconds}ms`;\n }\n\n return result;\n}\n\nexport async function calculateFilesSize(params) {\n const {slpk, outputPath, tilesetName} = params;\n const fullOutputPath = getAbsoluteFilePath(outputPath);\n\n try {\n if (slpk) {\n const slpkPath = join(fullOutputPath, `${tilesetName}.slpk`);\n const stat = await fs.stat(slpkPath);\n return stat.size;\n }\n\n const directoryPath = join(fullOutputPath, tilesetName);\n const totalSize = await getTotalFilesSize(directoryPath);\n return totalSize;\n } catch (error) {\n console.log('Calculate file sizes error: ', error); // eslint-disable-line\n return null;\n }\n}\n\nasync function getTotalFilesSize(dirPath) {\n let totalFileSize = 0;\n\n const files = await fs.readdir(dirPath);\n\n for (const file of files) {\n const fileStat = await fs.stat(join(dirPath, file));\n if (fileStat.isDirectory()) {\n totalFileSize += await getTotalFilesSize(join(dirPath, file));\n } else {\n totalFileSize += fileStat.size;\n }\n }\n return totalFileSize;\n}\n"],"file":"statistic-utills.js"}
@@ -0,0 +1,88 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import { Queue } from './queue';
3
+ export default class WriteQueue extends Queue {
4
+ constructor(listeningInterval = 2000, writeConcurrency = 400) {
5
+ super();
6
+
7
+ _defineProperty(this, "intervalId", void 0);
8
+
9
+ _defineProperty(this, "writePromise", null);
10
+
11
+ _defineProperty(this, "fileMap", {});
12
+
13
+ _defineProperty(this, "listeningInterval", void 0);
14
+
15
+ _defineProperty(this, "writeConcurrency", void 0);
16
+
17
+ this.listeningInterval = listeningInterval;
18
+ this.writeConcurrency = writeConcurrency;
19
+ }
20
+
21
+ startListening() {
22
+ this.intervalId = setInterval(this.startWrite.bind(this), this.listeningInterval);
23
+ }
24
+
25
+ stopListening() {
26
+ if (this.intervalId) {
27
+ clearInterval(this.intervalId);
28
+ }
29
+ }
30
+
31
+ async startWrite() {
32
+ if (this.writePromise) {
33
+ await this.writePromise;
34
+ this.writePromise = null;
35
+ return;
36
+ }
37
+
38
+ this.writePromise = this.doWrite();
39
+ await this.writePromise;
40
+ this.writePromise = null;
41
+ }
42
+
43
+ async finalize() {
44
+ this.stopListening();
45
+ await this.startWrite();
46
+ }
47
+
48
+ async doWrite() {
49
+ while (this.length) {
50
+ const promises = [];
51
+ const archiveKeys = [];
52
+
53
+ for (let i = 0; i < this.writeConcurrency; i++) {
54
+ const item = this.dequeue();
55
+
56
+ if (!item) {
57
+ break;
58
+ }
59
+
60
+ const {
61
+ archiveKey,
62
+ writePromise
63
+ } = item;
64
+ archiveKeys.push(archiveKey);
65
+ promises.push(writePromise);
66
+ }
67
+
68
+ const writeResults = await Promise.all(promises);
69
+ this.updateFileMap(archiveKeys, writeResults);
70
+ }
71
+
72
+ this.writePromise = null;
73
+ }
74
+
75
+ updateFileMap(archiveKeys, writeResults) {
76
+ for (let i = 0; i < archiveKeys.length; i++) {
77
+ const archiveKey = archiveKeys[i];
78
+
79
+ if (!archiveKey) {
80
+ continue;
81
+ }
82
+
83
+ this.fileMap[archiveKey] = writeResults[i];
84
+ }
85
+ }
86
+
87
+ }
88
+ //# sourceMappingURL=write-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/utils/write-queue.ts"],"names":["Queue","WriteQueue","constructor","listeningInterval","writeConcurrency","startListening","intervalId","setInterval","startWrite","bind","stopListening","clearInterval","writePromise","doWrite","finalize","length","promises","archiveKeys","i","item","dequeue","archiveKey","push","writeResults","Promise","all","updateFileMap","fileMap"],"mappings":";AAAA,SAAQA,KAAR,QAAoB,SAApB;AAOA,eAAe,MAAMC,UAAN,SAAmDD,KAAnD,CAA4D;AAOzEE,EAAAA,WAAW,CAACC,iBAAyB,GAAG,IAA7B,EAAmCC,gBAAwB,GAAG,GAA9D,EAAmE;AAC5E;;AAD4E;;AAAA,0CALlC,IAKkC;;AAAA,qCAJpC,EAIoC;;AAAA;;AAAA;;AAE5E,SAAKD,iBAAL,GAAyBA,iBAAzB;AACA,SAAKC,gBAAL,GAAwBA,gBAAxB;AACD;;AAEDC,EAAAA,cAAc,GAAG;AACf,SAAKC,UAAL,GAAkBC,WAAW,CAAC,KAAKC,UAAL,CAAgBC,IAAhB,CAAqB,IAArB,CAAD,EAA6B,KAAKN,iBAAlC,CAA7B;AACD;;AAEDO,EAAAA,aAAa,GAAG;AACd,QAAI,KAAKJ,UAAT,EAAqB;AACnBK,MAAAA,aAAa,CAAC,KAAKL,UAAN,CAAb;AACD;AACF;;AAEe,QAAVE,UAAU,GAAkB;AAChC,QAAI,KAAKI,YAAT,EAAuB;AACrB,YAAM,KAAKA,YAAX;AACA,WAAKA,YAAL,GAAoB,IAApB;AACA;AACD;;AACD,SAAKA,YAAL,GAAoB,KAAKC,OAAL,EAApB;AACA,UAAM,KAAKD,YAAX;AACA,SAAKA,YAAL,GAAoB,IAApB;AACD;;AAEa,QAARE,QAAQ,GAAkB;AAC9B,SAAKJ,aAAL;AACA,UAAM,KAAKF,UAAL,EAAN;AACD;;AAEoB,QAAPK,OAAO,GAAkB;AACrC,WAAO,KAAKE,MAAZ,EAAoB;AAClB,YAAMC,QAA2B,GAAG,EAApC;AACA,YAAMC,WAAmC,GAAG,EAA5C;;AACA,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKd,gBAAzB,EAA2Cc,CAAC,EAA5C,EAAgD;AAC9C,cAAMC,IAAI,GAAG,KAAKC,OAAL,EAAb;;AACA,YAAI,CAACD,IAAL,EAAW;AACT;AACD;;AACD,cAAM;AAACE,UAAAA,UAAD;AAAaT,UAAAA;AAAb,YAA6BO,IAAnC;AACAF,QAAAA,WAAW,CAACK,IAAZ,CAAiBD,UAAjB;AACAL,QAAAA,QAAQ,CAACM,IAAT,CAAcV,YAAd;AACD;;AACD,YAAMW,YAAY,GAAG,MAAMC,OAAO,CAACC,GAAR,CAAYT,QAAZ,CAA3B;AACA,WAAKU,aAAL,CAAmBT,WAAnB,EAAgCM,YAAhC;AACD;;AACD,SAAKX,YAAL,GAAoB,IAApB;AACD;;AAEOc,EAAAA,aAAa,CAACT,WAAD,EAAsCM,YAAtC,EAA8D;AACjF,SAAK,IAAIL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,WAAW,CAACF,MAAhC,EAAwCG,CAAC,EAAzC,EAA6C;AAC3C,YAAMG,UAAU,GAAGJ,WAAW,CAACC,CAAD,CAA9B;;AACA,UAAI,CAACG,UAAL,EAAiB;AACf;AACD;;AACD,WAAKM,OAAL,CAAaN,UAAb,IAA2BE,YAAY,CAACL,CAAD,CAAvC;AACD;AACF;;AAlEwE","sourcesContent":["import {Queue} from './queue';\n\nexport type WriteQueueItem = {\n archiveKey?: string;\n writePromise: Promise<string>;\n};\n\nexport default class WriteQueue<T extends WriteQueueItem> extends Queue<T> {\n private intervalId?: NodeJS.Timeout;\n public writePromise: Promise<void> | null = null;\n public fileMap: {[key: string]: string} = {};\n public listeningInterval: number;\n public writeConcurrency: number;\n\n constructor(listeningInterval: number = 2000, writeConcurrency: number = 400) {\n super();\n this.listeningInterval = listeningInterval;\n this.writeConcurrency = writeConcurrency;\n }\n\n startListening() {\n this.intervalId = setInterval(this.startWrite.bind(this), this.listeningInterval);\n }\n\n stopListening() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n\n async startWrite(): Promise<void> {\n if (this.writePromise) {\n await this.writePromise;\n this.writePromise = null;\n return;\n }\n this.writePromise = this.doWrite();\n await this.writePromise;\n this.writePromise = null;\n }\n\n async finalize(): Promise<void> {\n this.stopListening();\n await this.startWrite();\n }\n\n private async doWrite(): Promise<void> {\n while (this.length) {\n const promises: Promise<string>[] = [];\n const archiveKeys: (string | undefined)[] = [];\n for (let i = 0; i < this.writeConcurrency; i++) {\n const item = this.dequeue();\n if (!item) {\n break;\n }\n const {archiveKey, writePromise} = item as WriteQueueItem;\n archiveKeys.push(archiveKey);\n promises.push(writePromise);\n }\n const writeResults = await Promise.all(promises);\n this.updateFileMap(archiveKeys, writeResults);\n }\n this.writePromise = null;\n }\n\n private updateFileMap(archiveKeys: (string | undefined)[], writeResults: string[]) {\n for (let i = 0; i < archiveKeys.length; i++) {\n const archiveKey = archiveKeys[i];\n if (!archiveKey) {\n continue;\n }\n this.fileMap[archiveKey] = writeResults[i];\n }\n }\n}\n"],"file":"write-queue.js"}
@@ -1,4 +1,4 @@
1
- const VERSION = typeof "3.1.7" !== 'undefined' ? "3.1.7" : 'latest';
1
+ const VERSION = typeof "3.2.0-alpha.2" !== 'undefined' ? "3.2.0-alpha.2" : 'latest';
2
2
  import { parsePGM } from '@math.gl/geoid';
3
3
  export const PGMLoader = {
4
4
  name: 'PGM - Netpbm grayscale image format',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pgm-loader.ts"],"names":["VERSION","parsePGM","PGMLoader","name","id","module","version","mimeTypes","parse","arrayBuffer","options","Uint8Array","extensions","cubic"],"mappings":"AAIA,MAAMA,OAAO,GAAG,mBAAuB,WAAvB,aAAmD,QAAnE;AAEA,SAAQC,QAAR,QAAuB,gBAAvB;AAKA,OAAO,MAAMC,SAA2B,GAAG;AACzCC,EAAAA,IAAI,EAAE,qCADmC;AAEzCC,EAAAA,EAAE,EAAE,KAFqC;AAGzCC,EAAAA,MAAM,EAAE,gBAHiC;AAIzCC,EAAAA,OAAO,EAAEN,OAJgC;AAKzCO,EAAAA,SAAS,EAAE,CAAC,0BAAD,CAL8B;AAMzCC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgCT,QAAQ,CAAC,IAAIU,UAAJ,CAAeF,WAAf,CAAD,EAA8BC,OAA9B,CANN;AAOzCE,EAAAA,UAAU,EAAE,CAAC,KAAD,CAP6B;AAQzCF,EAAAA,OAAO,EAAE;AAEPG,IAAAA,KAAK,EAAE;AAFA;AARgC,CAApC","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nimport {parsePGM} from '@math.gl/geoid';\n\n/**\n * Loader for PGM - Netpbm grayscale image format\n */\nexport const PGMLoader: LoaderWithParser = {\n name: 'PGM - Netpbm grayscale image format',\n id: 'pgm',\n module: 'tile-converter',\n version: VERSION,\n mimeTypes: ['image/x-portable-graymap'],\n parse: async (arrayBuffer, options) => parsePGM(new Uint8Array(arrayBuffer), options),\n extensions: ['pgm'],\n options: {\n // TODO - use pgm namespace\n cubic: false\n }\n};\n"],"file":"pgm-loader.js"}
1
+ {"version":3,"sources":["../../src/pgm-loader.ts"],"names":["VERSION","parsePGM","PGMLoader","name","id","module","version","mimeTypes","parse","arrayBuffer","options","Uint8Array","extensions","cubic"],"mappings":"AAIA,MAAMA,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;AAEA,SAAQC,QAAR,QAAuB,gBAAvB;AAKA,OAAO,MAAMC,SAA2B,GAAG;AACzCC,EAAAA,IAAI,EAAE,qCADmC;AAEzCC,EAAAA,EAAE,EAAE,KAFqC;AAGzCC,EAAAA,MAAM,EAAE,gBAHiC;AAIzCC,EAAAA,OAAO,EAAEN,OAJgC;AAKzCO,EAAAA,SAAS,EAAE,CAAC,0BAAD,CAL8B;AAMzCC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgCT,QAAQ,CAAC,IAAIU,UAAJ,CAAeF,WAAf,CAAD,EAA8BC,OAA9B,CANN;AAOzCE,EAAAA,UAAU,EAAE,CAAC,KAAD,CAP6B;AAQzCF,EAAAA,OAAO,EAAE;AAEPG,IAAAA,KAAK,EAAE;AAFA;AARgC,CAApC","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nimport {parsePGM} from '@math.gl/geoid';\n\n/**\n * Loader for PGM - Netpbm grayscale image format\n */\nexport const PGMLoader: LoaderWithParser = {\n name: 'PGM - Netpbm grayscale image format',\n id: 'pgm',\n module: 'tile-converter',\n version: VERSION,\n mimeTypes: ['image/x-portable-graymap'],\n parse: async (arrayBuffer, options) => parsePGM(new Uint8Array(arrayBuffer), options),\n extensions: ['pgm'],\n options: {\n // TODO - use pgm namespace\n cubic: false\n }\n};\n"],"file":"pgm-loader.js"}
@@ -0,0 +1,5 @@
1
+ import { createWorker } from '@loaders.gl/worker-utils';
2
+ import B3dmConverter from '../3d-tiles-converter/helpers/b3dm-converter';
3
+ const b3dmConverter = new B3dmConverter();
4
+ createWorker(async (data, options = {}) => b3dmConverter.convert(data, options.attributes));
5
+ //# sourceMappingURL=3d-tiles-attributes-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/workers/3d-tiles-attributes-worker.ts"],"names":["createWorker","B3dmConverter","b3dmConverter","data","options","convert","attributes"],"mappings":"AAAA,SAAQA,YAAR,QAA2B,0BAA3B;AACA,OAAOC,aAAP,MAA0B,8CAA1B;AAEA,MAAMC,aAAa,GAAG,IAAID,aAAJ,EAAtB;AAEAD,YAAY,CAAC,OAAOG,IAAP,EAAaC,OAAO,GAAG,EAAvB,KAA8BF,aAAa,CAACG,OAAd,CAAsBF,IAAtB,EAA4BC,OAAO,CAACE,UAApC,CAA/B,CAAZ","sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\nimport B3dmConverter from '../3d-tiles-converter/helpers/b3dm-converter';\n\nconst b3dmConverter = new B3dmConverter();\n\ncreateWorker(async (data, options = {}) => b3dmConverter.convert(data, options.attributes));\n"],"file":"3d-tiles-attributes-worker.js"}
@@ -0,0 +1,4 @@
1
+ import { createWorker } from '@loaders.gl/worker-utils';
2
+ import { convertAttributes } from '../i3s-converter/helpers/geometry-converter';
3
+ createWorker(async (data, options = {}) => await convertAttributes(data, options.useCartesianPositions));
4
+ //# sourceMappingURL=i3s-attributes-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/workers/i3s-attributes-worker.ts"],"names":["createWorker","convertAttributes","data","options","useCartesianPositions"],"mappings":"AAAA,SAAQA,YAAR,QAA2B,0BAA3B;AACA,SAAQC,iBAAR,QAAgC,6CAAhC;AAEAD,YAAY,CACV,OAAOE,IAAP,EAAaC,OAAO,GAAG,EAAvB,KAA8B,MAAMF,iBAAiB,CAACC,IAAD,EAAOC,OAAO,CAACC,qBAAf,CAD3C,CAAZ","sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\nimport {convertAttributes} from '../i3s-converter/helpers/geometry-converter';\n\ncreateWorker(\n async (data, options = {}) => await convertAttributes(data, options.useCartesianPositions)\n);\n"],"file":"i3s-attributes-worker.js"}
@@ -0,0 +1,33 @@
1
+ import type { WorkerObject } from '@loaders.gl/worker-utils';
2
+ import type { ConvertedAttributes } from './i3s-converter/types';
3
+ import type { Matrix4, Vector3 } from '@math.gl/core';
4
+ export declare type I3SAttributesWorkerOptions = {
5
+ useCartesianPositions: boolean;
6
+ source: string;
7
+ };
8
+ export declare type B3DMAttributesData = {
9
+ gltfMaterials?: {
10
+ id: string;
11
+ }[];
12
+ nodes: any;
13
+ cartographicOrigin: Vector3;
14
+ cartesianModelMatrix: Matrix4;
15
+ };
16
+ /**
17
+ * I3S Attributes Worker to handle B3DM object
18
+ */
19
+ export declare const I3SAttributesWorker: {
20
+ id: string;
21
+ name: string;
22
+ module: string;
23
+ version: any;
24
+ options: {
25
+ useCartesianPositions: boolean;
26
+ };
27
+ };
28
+ /**
29
+ * Performs I3S attributes transformation
30
+ */
31
+ export declare function transformI3SAttributesOnWorker(attributesData: B3DMAttributesData, options: I3SAttributesWorkerOptions): Promise<Map<string, ConvertedAttributes>>;
32
+ export declare const _typecheckI3SAttributesWorker: WorkerObject;
33
+ //# sourceMappingURL=i3s-attributes-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i3s-attributes-worker.d.ts","sourceRoot":"","sources":["../src/i3s-attributes-worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAQpD,oBAAY,0BAA0B,GAAG;IACvC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,aAAa,CAAC,EAAE;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAC/B,KAAK,EAAE,GAAG,CAAC;IACX,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;CAQ/B,CAAC;AAEF;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,kBAAkB,EAClC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAE3C;AAED,eAAO,MAAM,6BAA6B,EAAE,YAAkC,CAAC"}
@@ -0,0 +1,10 @@
1
+ var Zi=Object.create;var it=Object.defineProperty;var Ui=Object.getOwnPropertyDescriptor;var Xi=Object.getOwnPropertyNames;var Gi=Object.getPrototypeOf,Qi=Object.prototype.hasOwnProperty;var $i=e=>it(e,"__esModule",{value:!0});var R=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var Hi=(e,r,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of Xi(r))!Qi.call(e,a)&&a!=="default"&&it(e,a,{get:()=>r[a],enumerable:!(n=Ui(r,a))||n.enumerable});return e},st=e=>Hi($i(it(e!=null?Zi(Gi(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var U=R((I1,Ht)=>{function es(e){return e&&e.__esModule?e:{default:e}}Ht.exports=es});var re=R((N1,gr)=>{function yr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?gr.exports=yr=function(n){return typeof n}:gr.exports=yr=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},yr(e)}gr.exports=yr});var ht=R((C1,lt)=>{function ft(e,r){return lt.exports=ft=Object.setPrototypeOf||function(a,t){return a.__proto__=t,a},ft(e,r)}lt.exports=ft});var Jt=R((L1,Kt)=>{function rs(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}Kt.exports=rs});var jt=R((D1,br)=>{var ts=ht(),ns=Jt();function Mr(e,r,n){return ns()?br.exports=Mr=Reflect.construct:br.exports=Mr=function(t,i,s){var o=[null];o.push.apply(o,i);var c=Function.bind.apply(t,o),u=new c;return s&&ts(u,s.prototype),u},Mr.apply(null,arguments)}br.exports=Mr});var vt=R((W1,en)=>{function as(e,r){(r==null||r>e.length)&&(r=e.length);for(var n=0,a=new Array(r);n<r;n++)a[n]=e[n];return a}en.exports=as});var tn=R((z1,rn)=>{var is=vt();function ss(e){if(Array.isArray(e))return is(e)}rn.exports=ss});var an=R((B1,nn)=>{function os(e){if(typeof Symbol!="undefined"&&Symbol.iterator in Object(e))return Array.from(e)}nn.exports=os});var dt=R((F1,on)=>{var sn=vt();function us(e,r){if(!!e){if(typeof e=="string")return sn(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return sn(e,r)}}on.exports=us});var cn=R((V1,un)=>{function cs(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}un.exports=cs});var ln=R((Y1,fn)=>{var fs=tn(),ls=an(),hs=dt(),vs=cn();function ds(e){return fs(e)||ls(e)||hs(e)||vs()}fn.exports=ds});var Ie=R(pt=>{"use strict";Object.defineProperty(pt,"__esModule",{value:!0});pt.default=ps;function ps(e,r){if(!e)throw new Error("math.gl assertion ".concat(r))}});var de=R(B=>{"use strict";var xr=U();Object.defineProperty(B,"__esModule",{value:!0});B.configure=xs;B.formatValue=Os;B.isArray=Ne;B.clone=Rs;B.toRadians=Ss;B.toDegrees=ws;B.radians=vn;B.degrees=dn;B.sin=qs;B.cos=As;B.tan=Ps;B.asin=Es;B.acos=Ts;B.atan=Is;B.clamp=Ns;B.lerp=pn;B.equals=mn;B.exactEquals=yn;B.withEpsilon=Cs;B.config=void 0;var hn=xr(re()),ms=xr(jt()),ys=xr(ln()),gs=xr(Ie()),Ms=1/Math.PI*180,bs=1/180*Math.PI,Y={};B.config=Y;Y.EPSILON=1e-12;Y.debug=!1;Y.precision=4;Y.printTypes=!1;Y.printDegrees=!1;Y.printRowMajor=!0;function xs(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};for(var r in e)(0,gs.default)(r in Y),Y[r]=e[r];return Y}function ks(e){return Math.round(e/Y.EPSILON)*Y.EPSILON}function Os(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=r.precision,a=n===void 0?Y.precision||4:n;return e=ks(e),"".concat(parseFloat(e.toPrecision(a)))}function Ne(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function _s(e){return e.clone?e.clone():new Array(e.length)}function Rs(e){return e.clone?e.clone():(0,ms.default)(Array,(0,ys.default)(e))}function ge(e,r,n){if(Ne(e)){n=n||_s(e);for(var a=0;a<n.length&&a<e.length;++a)n[a]=r(e[a],a,n);return n}return r(e)}function Ss(e){return vn(e)}function ws(e){return dn(e)}function vn(e,r){return ge(e,function(n){return n*bs},r)}function dn(e,r){return ge(e,function(n){return n*Ms},r)}function qs(e){return ge(e,function(r){return Math.sin(r)})}function As(e){return ge(e,function(r){return Math.cos(r)})}function Ps(e){return ge(e,function(r){return Math.tan(r)})}function Es(e){return ge(e,function(r){return Math.asin(r)})}function Ts(e){return ge(e,function(r){return Math.acos(r)})}function Is(e){return ge(e,function(r){return Math.atan(r)})}function Ns(e,r,n){return ge(e,function(a){return Math.max(r,Math.min(n,a))})}function pn(e,r,n){return Ne(e)?e.map(function(a,t){return pn(a,r[t],n)}):n*r+(1-n)*e}function mn(e,r,n){var a=Y.EPSILON;n&&(Y.EPSILON=n);try{if(e===r)return!0;if(Ne(e)&&Ne(r)){if(e.length!==r.length)return!1;for(var t=0;t<e.length;++t)if(!mn(e[t],r[t]))return!1;return!0}return e&&e.equals?e.equals(r):r&&r.equals?r.equals(e):Number.isFinite(e)&&Number.isFinite(r)?Math.abs(e-r)<=Y.EPSILON*Math.max(1,Math.abs(e),Math.abs(r)):!1}finally{Y.EPSILON=a}}function yn(e,r){if(e===r)return!0;if(e&&(0,hn.default)(e)==="object"&&r&&(0,hn.default)(r)==="object"){if(e.constructor!==r.constructor)return!1;if(e.exactEquals)return e.exactEquals(r)}if(Ne(e)&&Ne(r)){if(e.length!==r.length)return!1;for(var n=0;n<e.length;++n)if(!yn(e[n],r[n]))return!1;return!0}return!1}function Cs(e,r){var n=Y.EPSILON;Y.EPSILON=e;var a;try{a=r()}finally{Y.EPSILON=n}return a}});var $=R((X1,gn)=>{function Ls(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}gn.exports=Ls});var H=R((G1,bn)=>{function Mn(e,r){for(var n=0;n<r.length;n++){var a=r[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Ds(e,r,n){return r&&Mn(e.prototype,r),n&&Mn(e,n),e}bn.exports=Ds});var ie=R((Q1,xn)=>{var Ws=ht();function zs(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),r&&Ws(e,r)}xn.exports=zs});var On=R(($1,kn)=>{function Bs(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}kn.exports=Bs});var se=R((H1,_n)=>{var Fs=re(),Vs=On();function Ys(e,r){return r&&(Fs(r)==="object"||typeof r=="function")?r:Vs(e)}_n.exports=Ys});var oe=R((K1,yt)=>{function mt(e){return yt.exports=mt=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},mt(e)}yt.exports=mt});var or=R(kr=>{"use strict";var Ze=U();Object.defineProperty(kr,"__esModule",{value:!0});kr.default=void 0;var Zs=Ze($()),Us=Ze(H()),Xs=Ze(ie()),Gs=Ze(se()),Rn=Ze(oe()),sr=de(),Qs=Ze(Ie());function $s(e){var r=Hs();return function(){var a=(0,Rn.default)(e),t;if(r){var i=(0,Rn.default)(this).constructor;t=Reflect.construct(a,arguments,i)}else t=a.apply(this,arguments);return(0,Gs.default)(this,t)}}function Hs(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ks(e){function r(){var n=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(n,Object.getPrototypeOf(this)),n}return r.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(r,e):r.__proto__=e,r}var Js=function(e){(0,Xs.default)(n,e);var r=$s(n);function n(){return(0,Zs.default)(this,n),r.apply(this,arguments)}return(0,Us.default)(n,[{key:"ELEMENTS",get:function(){return(0,Qs.default)(!1),0}},{key:"clone",value:function(){return new this.constructor().copy(this)}},{key:"from",value:function(t){return Array.isArray(t)?this.copy(t):this.fromObject(t)}},{key:"fromArray",value:function(t){for(var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=0;s<this.ELEMENTS;++s)this[s]=t[s+i];return this.check()}},{key:"to",value:function(t){return t===this?this:(0,sr.isArray)(t)?this.toArray(t):this.toObject(t)}},{key:"toTarget",value:function(t){return t?this.to(t):this}},{key:"toArray",value:function(){for(var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=0;s<this.ELEMENTS;++s)t[i+s]=this[s];return t}},{key:"toFloat32Array",value:function(){return new Float32Array(this)}},{key:"toString",value:function(){return this.formatString(sr.config)}},{key:"formatString",value:function(t){for(var i="",s=0;s<this.ELEMENTS;++s)i+=(s>0?", ":"")+(0,sr.formatValue)(this[s],t);return"".concat(t.printTypes?this.constructor.name:"","[").concat(i,"]")}},{key:"equals",value:function(t){if(!t||this.length!==t.length)return!1;for(var i=0;i<this.ELEMENTS;++i)if(!(0,sr.equals)(this[i],t[i]))return!1;return!0}},{key:"exactEquals",value:function(t){if(!t||this.length!==t.length)return!1;for(var i=0;i<this.ELEMENTS;++i)if(this[i]!==t[i])return!1;return!0}},{key:"negate",value:function(){for(var t=0;t<this.ELEMENTS;++t)this[t]=-this[t];return this.check()}},{key:"lerp",value:function(t,i,s){s===void 0&&(s=i,i=t,t=this);for(var o=0;o<this.ELEMENTS;++o){var c=t[o];this[o]=c+s*(i[o]-c)}return this.check()}},{key:"min",value:function(t){for(var i=0;i<this.ELEMENTS;++i)this[i]=Math.min(t[i],this[i]);return this.check()}},{key:"max",value:function(t){for(var i=0;i<this.ELEMENTS;++i)this[i]=Math.max(t[i],this[i]);return this.check()}},{key:"clamp",value:function(t,i){for(var s=0;s<this.ELEMENTS;++s)this[s]=Math.min(Math.max(this[s],t[s]),i[s]);return this.check()}},{key:"add",value:function(){for(var t=arguments.length,i=new Array(t),s=0;s<t;s++)i[s]=arguments[s];for(var o=0,c=i;o<c.length;o++)for(var u=c[o],f=0;f<this.ELEMENTS;++f)this[f]+=u[f];return this.check()}},{key:"subtract",value:function(){for(var t=arguments.length,i=new Array(t),s=0;s<t;s++)i[s]=arguments[s];for(var o=0,c=i;o<c.length;o++)for(var u=c[o],f=0;f<this.ELEMENTS;++f)this[f]-=u[f];return this.check()}},{key:"scale",value:function(t){if(Array.isArray(t))return this.multiply(t);for(var i=0;i<this.ELEMENTS;++i)this[i]*=t;return this.check()}},{key:"sub",value:function(t){return this.subtract(t)}},{key:"setScalar",value:function(t){for(var i=0;i<this.ELEMENTS;++i)this[i]=t;return this.check()}},{key:"addScalar",value:function(t){for(var i=0;i<this.ELEMENTS;++i)this[i]+=t;return this.check()}},{key:"subScalar",value:function(t){return this.addScalar(-t)}},{key:"multiplyScalar",value:function(t){for(var i=0;i<this.ELEMENTS;++i)this[i]*=t;return this.check()}},{key:"divideScalar",value:function(t){return this.scale(1/t)}},{key:"clampScalar",value:function(t,i){for(var s=0;s<this.ELEMENTS;++s)this[s]=Math.min(Math.max(this[s],t),i);return this.check()}},{key:"multiplyByScalar",value:function(t){return this.scale(t)}},{key:"elements",get:function(){return this}},{key:"check",value:function(){if(sr.config.debug&&!this.validate())throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));return this}},{key:"validate",value:function(){for(var t=this.length===this.ELEMENTS,i=0;i<this.ELEMENTS;++i)t=t&&Number.isFinite(this[i]);return t}}]),n}(Ks(Array));kr.default=Js});var ue=R(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.validateVector=Sn;Ue.checkNumber=eo;Ue.checkVector=ro;Ue.deprecated=to;var js=de();function Sn(e,r){if(e.length!==r)return!1;for(var n=0;n<e.length;++n)if(!Number.isFinite(e[n]))return!1;return!0}function eo(e){if(!Number.isFinite(e))throw new Error("Invalid number ".concat(e));return e}function ro(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"";if(js.config.debug&&!Sn(e,r))throw new Error("math.gl: ".concat(n," some fields set to invalid numbers'"));return e}var wn={};function to(e,r){wn[e]||(wn[e]=!0,console.warn("".concat(e," has been removed in version ").concat(r,", see upgrade guide for more information")))}});var Rr=R(_r=>{"use strict";var Ce=U();Object.defineProperty(_r,"__esModule",{value:!0});_r.default=void 0;var no=Ce($()),ao=Ce(H()),io=Ce(ie()),so=Ce(se()),qn=Ce(oe()),oo=Ce(or()),ur=ue(),Or=Ce(Ie());function uo(e){var r=co();return function(){var a=(0,qn.default)(e),t;if(r){var i=(0,qn.default)(this).constructor;t=Reflect.construct(a,arguments,i)}else t=a.apply(this,arguments);return(0,so.default)(this,t)}}function co(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var fo=function(e){(0,io.default)(n,e);var r=uo(n);function n(){return(0,no.default)(this,n),r.apply(this,arguments)}return(0,ao.default)(n,[{key:"ELEMENTS",get:function(){return(0,Or.default)(!1),0}},{key:"copy",value:function(t){return(0,Or.default)(!1),this}},{key:"x",get:function(){return this[0]},set:function(t){this[0]=(0,ur.checkNumber)(t)}},{key:"y",get:function(){return this[1]},set:function(t){this[1]=(0,ur.checkNumber)(t)}},{key:"len",value:function(){return Math.sqrt(this.lengthSquared())}},{key:"magnitude",value:function(){return this.len()}},{key:"lengthSquared",value:function(){for(var t=0,i=0;i<this.ELEMENTS;++i)t+=this[i]*this[i];return t}},{key:"magnitudeSquared",value:function(){return this.lengthSquared()}},{key:"distance",value:function(t){return Math.sqrt(this.distanceSquared(t))}},{key:"distanceSquared",value:function(t){for(var i=0,s=0;s<this.ELEMENTS;++s){var o=this[s]-t[s];i+=o*o}return(0,ur.checkNumber)(i)}},{key:"dot",value:function(t){for(var i=0,s=0;s<this.ELEMENTS;++s)i+=this[s]*t[s];return(0,ur.checkNumber)(i)}},{key:"normalize",value:function(){var t=this.magnitude();if(t!==0)for(var i=0;i<this.ELEMENTS;++i)this[i]/=t;return this.check()}},{key:"multiply",value:function(){for(var t=arguments.length,i=new Array(t),s=0;s<t;s++)i[s]=arguments[s];for(var o=0,c=i;o<c.length;o++)for(var u=c[o],f=0;f<this.ELEMENTS;++f)this[f]*=u[f];return this.check()}},{key:"divide",value:function(){for(var t=arguments.length,i=new Array(t),s=0;s<t;s++)i[s]=arguments[s];for(var o=0,c=i;o<c.length;o++)for(var u=c[o],f=0;f<this.ELEMENTS;++f)this[f]/=u[f];return this.check()}},{key:"lengthSq",value:function(){return this.lengthSquared()}},{key:"distanceTo",value:function(t){return this.distance(t)}},{key:"distanceToSquared",value:function(t){return this.distanceSquared(t)}},{key:"getComponent",value:function(t){return(0,Or.default)(t>=0&&t<this.ELEMENTS,"index is out of range"),(0,ur.checkNumber)(this[t])}},{key:"setComponent",value:function(t,i){return(0,Or.default)(t>=0&&t<this.ELEMENTS,"index is out of range"),this[t]=i,this.check()}},{key:"addVectors",value:function(t,i){return this.copy(t).add(i)}},{key:"subVectors",value:function(t,i){return this.copy(t).subtract(i)}},{key:"multiplyVectors",value:function(t,i){return this.copy(t).multiply(i)}},{key:"addScaledVector",value:function(t,i){return this.add(new this.constructor(t).multiplyScalar(i))}}]),n}(oo.default);_r.default=fo});var Le=R(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.setMatrixArrayType=ho;te.toRadian=po;te.equals=mo;te.RANDOM=te.ARRAY_TYPE=te.EPSILON=void 0;var An=1e-6;te.EPSILON=An;var Pn=typeof Float32Array!="undefined"?Float32Array:Array;te.ARRAY_TYPE=Pn;var lo=Math.random;te.RANDOM=lo;function ho(e){te.ARRAY_TYPE=Pn=e}var vo=Math.PI/180;function po(e){return e*vo}function mo(e,r){return Math.abs(e-r)<=An*Math.max(1,Math.abs(e),Math.abs(r))}Math.hypot||(Math.hypot=function(){for(var e=0,r=arguments.length;r--;)e+=arguments[r]*arguments[r];return Math.sqrt(e)})});var wr=R(S=>{"use strict";function Sr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Sr=function(n){return typeof n}:Sr=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Sr(e)}Object.defineProperty(S,"__esModule",{value:!0});S.create=Tn;S.clone=go;S.fromValues=Mo;S.copy=bo;S.set=xo;S.add=ko;S.subtract=In;S.multiply=Nn;S.divide=Cn;S.ceil=Oo;S.floor=_o;S.min=Ro;S.max=So;S.round=wo;S.scale=qo;S.scaleAndAdd=Ao;S.distance=Ln;S.squaredDistance=Dn;S.length=Wn;S.squaredLength=zn;S.negate=Po;S.inverse=Eo;S.normalize=To;S.dot=Io;S.cross=No;S.lerp=Co;S.random=Lo;S.transformMat2=Do;S.transformMat2d=Wo;S.transformMat3=zo;S.transformMat4=Bo;S.rotate=Fo;S.angle=Vo;S.zero=Yo;S.str=Zo;S.exactEquals=Uo;S.equals=Xo;S.forEach=S.sqrLen=S.sqrDist=S.dist=S.div=S.mul=S.sub=S.len=void 0;var De=yo(Le());function En(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return En=function(){return e},e}function yo(e){if(e&&e.__esModule)return e;if(e===null||Sr(e)!=="object"&&typeof e!="function")return{default:e};var r=En();if(r&&r.has(e))return r.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var i=a?Object.getOwnPropertyDescriptor(e,t):null;i&&(i.get||i.set)?Object.defineProperty(n,t,i):n[t]=e[t]}return n.default=e,r&&r.set(e,n),n}function Tn(){var e=new De.ARRAY_TYPE(2);return De.ARRAY_TYPE!=Float32Array&&(e[0]=0,e[1]=0),e}function go(e){var r=new De.ARRAY_TYPE(2);return r[0]=e[0],r[1]=e[1],r}function Mo(e,r){var n=new De.ARRAY_TYPE(2);return n[0]=e,n[1]=r,n}function bo(e,r){return e[0]=r[0],e[1]=r[1],e}function xo(e,r,n){return e[0]=r,e[1]=n,e}function ko(e,r,n){return e[0]=r[0]+n[0],e[1]=r[1]+n[1],e}function In(e,r,n){return e[0]=r[0]-n[0],e[1]=r[1]-n[1],e}function Nn(e,r,n){return e[0]=r[0]*n[0],e[1]=r[1]*n[1],e}function Cn(e,r,n){return e[0]=r[0]/n[0],e[1]=r[1]/n[1],e}function Oo(e,r){return e[0]=Math.ceil(r[0]),e[1]=Math.ceil(r[1]),e}function _o(e,r){return e[0]=Math.floor(r[0]),e[1]=Math.floor(r[1]),e}function Ro(e,r,n){return e[0]=Math.min(r[0],n[0]),e[1]=Math.min(r[1],n[1]),e}function So(e,r,n){return e[0]=Math.max(r[0],n[0]),e[1]=Math.max(r[1],n[1]),e}function wo(e,r){return e[0]=Math.round(r[0]),e[1]=Math.round(r[1]),e}function qo(e,r,n){return e[0]=r[0]*n,e[1]=r[1]*n,e}function Ao(e,r,n,a){return e[0]=r[0]+n[0]*a,e[1]=r[1]+n[1]*a,e}function Ln(e,r){var n=r[0]-e[0],a=r[1]-e[1];return Math.hypot(n,a)}function Dn(e,r){var n=r[0]-e[0],a=r[1]-e[1];return n*n+a*a}function Wn(e){var r=e[0],n=e[1];return Math.hypot(r,n)}function zn(e){var r=e[0],n=e[1];return r*r+n*n}function Po(e,r){return e[0]=-r[0],e[1]=-r[1],e}function Eo(e,r){return e[0]=1/r[0],e[1]=1/r[1],e}function To(e,r){var n=r[0],a=r[1],t=n*n+a*a;return t>0&&(t=1/Math.sqrt(t)),e[0]=r[0]*t,e[1]=r[1]*t,e}function Io(e,r){return e[0]*r[0]+e[1]*r[1]}function No(e,r,n){var a=r[0]*n[1]-r[1]*n[0];return e[0]=e[1]=0,e[2]=a,e}function Co(e,r,n,a){var t=r[0],i=r[1];return e[0]=t+a*(n[0]-t),e[1]=i+a*(n[1]-i),e}function Lo(e,r){r=r||1;var n=De.RANDOM()*2*Math.PI;return e[0]=Math.cos(n)*r,e[1]=Math.sin(n)*r,e}function Do(e,r,n){var a=r[0],t=r[1];return e[0]=n[0]*a+n[2]*t,e[1]=n[1]*a+n[3]*t,e}function Wo(e,r,n){var a=r[0],t=r[1];return e[0]=n[0]*a+n[2]*t+n[4],e[1]=n[1]*a+n[3]*t+n[5],e}function zo(e,r,n){var a=r[0],t=r[1];return e[0]=n[0]*a+n[3]*t+n[6],e[1]=n[1]*a+n[4]*t+n[7],e}function Bo(e,r,n){var a=r[0],t=r[1];return e[0]=n[0]*a+n[4]*t+n[12],e[1]=n[1]*a+n[5]*t+n[13],e}function Fo(e,r,n,a){var t=r[0]-n[0],i=r[1]-n[1],s=Math.sin(a),o=Math.cos(a);return e[0]=t*o-i*s+n[0],e[1]=t*s+i*o+n[1],e}function Vo(e,r){var n=e[0],a=e[1],t=r[0],i=r[1],s=Math.sqrt(n*n+a*a)*Math.sqrt(t*t+i*i),o=s&&(n*t+a*i)/s;return Math.acos(Math.min(Math.max(o,-1),1))}function Yo(e){return e[0]=0,e[1]=0,e}function Zo(e){return"vec2("+e[0]+", "+e[1]+")"}function Uo(e,r){return e[0]===r[0]&&e[1]===r[1]}function Xo(e,r){var n=e[0],a=e[1],t=r[0],i=r[1];return Math.abs(n-t)<=De.EPSILON*Math.max(1,Math.abs(n),Math.abs(t))&&Math.abs(a-i)<=De.EPSILON*Math.max(1,Math.abs(a),Math.abs(i))}var Go=Wn;S.len=Go;var Qo=In;S.sub=Qo;var $o=Nn;S.mul=$o;var Ho=Cn;S.div=Ho;var Ko=Ln;S.dist=Ko;var Jo=Dn;S.sqrDist=Jo;var jo=zn;S.sqrLen=jo;var eu=function(){var e=Tn();return function(r,n,a,t,i,s){var o,c;for(n||(n=2),a||(a=0),t?c=Math.min(t*n+a,r.length):c=r.length,o=a;o<c;o+=n)e[0]=r[o],e[1]=r[o+1],i(e,e,s),r[o]=e[0],r[o+1]=e[1];return r}}();S.forEach=eu});var Xe=R(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.vec2_transformMat4AsVector=ru;We.vec3_transformMat4AsVector=tu;We.vec3_transformMat2=nu;We.vec4_transformMat2=au;We.vec4_transformMat3=iu;function ru(e,r,n){var a=r[0],t=r[1],i=n[3]*a+n[7]*t||1;return e[0]=(n[0]*a+n[4]*t)/i,e[1]=(n[1]*a+n[5]*t)/i,e}function tu(e,r,n){var a=r[0],t=r[1],i=r[2],s=n[3]*a+n[7]*t+n[11]*i||1;return e[0]=(n[0]*a+n[4]*t+n[8]*i)/s,e[1]=(n[1]*a+n[5]*t+n[9]*i)/s,e[2]=(n[2]*a+n[6]*t+n[10]*i)/s,e}function nu(e,r,n){var a=r[0],t=r[1];return e[0]=n[0]*a+n[2]*t,e[1]=n[1]*a+n[3]*t,e[2]=r[2],e}function au(e,r,n){var a=r[0],t=r[1];return e[0]=n[0]*a+n[2]*t,e[1]=n[1]*a+n[3]*t,e[2]=r[2],e[3]=r[3],e}function iu(e,r,n){var a=r[0],t=r[1],i=r[2];return e[0]=n[0]*a+n[3]*t+n[6]*i,e[1]=n[1]*a+n[4]*t+n[7]*i,e[2]=n[2]*a+n[5]*t+n[8]*i,e[3]=r[3],e}});var Vn=R(Pr=>{"use strict";var Ge=U(),su=re();Object.defineProperty(Pr,"__esModule",{value:!0});Pr.default=void 0;var ou=Ge($()),uu=Ge(H()),cu=Ge(ie()),fu=Ge(se()),Bn=Ge(oe()),lu=Ge(Rr()),gt=de(),qr=ue(),Ar=vu(wr()),hu=Xe();function Fn(e){if(typeof WeakMap!="function")return null;var r=new WeakMap,n=new WeakMap;return(Fn=function(t){return t?n:r})(e)}function vu(e,r){if(!r&&e&&e.__esModule)return e;if(e===null||su(e)!=="object"&&typeof e!="function")return{default:e};var n=Fn(r);if(n&&n.has(e))return n.get(e);var a={},t=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)){var s=t?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(a,i,s):a[i]=e[i]}return a.default=e,n&&n.set(e,a),a}function du(e){var r=pu();return function(){var a=(0,Bn.default)(e),t;if(r){var i=(0,Bn.default)(this).constructor;t=Reflect.construct(a,arguments,i)}else t=a.apply(this,arguments);return(0,fu.default)(this,t)}}function pu(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var mu=function(e){(0,cu.default)(n,e);var r=du(n);function n(){var a,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(0,ou.default)(this,n),a=r.call(this,2),(0,gt.isArray)(t)&&arguments.length===1?a.copy(t):(gt.config.debug&&((0,qr.checkNumber)(t),(0,qr.checkNumber)(i)),a[0]=t,a[1]=i),a}return(0,uu.default)(n,[{key:"set",value:function(t,i){return this[0]=t,this[1]=i,this.check()}},{key:"copy",value:function(t){return this[0]=t[0],this[1]=t[1],this.check()}},{key:"fromObject",value:function(t){return gt.config.debug&&((0,qr.checkNumber)(t.x),(0,qr.checkNumber)(t.y)),this[0]=t.x,this[1]=t.y,this.check()}},{key:"toObject",value:function(t){return t.x=this[0],t.y=this[1],t}},{key:"ELEMENTS",get:function(){return 2}},{key:"horizontalAngle",value:function(){return Math.atan2(this.y,this.x)}},{key:"verticalAngle",value:function(){return Math.atan2(this.x,this.y)}},{key:"transform",value:function(t){return this.transformAsPoint(t)}},{key:"transformAsPoint",value:function(t){return Ar.transformMat4(this,this,t),this.check()}},{key:"transformAsVector",value:function(t){return(0,hu.vec2_transformMat4AsVector)(this,this,t),this.check()}},{key:"transformByMatrix3",value:function(t){return Ar.transformMat3(this,this,t),this.check()}},{key:"transformByMatrix2x3",value:function(t){return Ar.transformMat2d(this,this,t),this.check()}},{key:"transformByMatrix2",value:function(t){return Ar.transformMat2(this,this,t),this.check()}}]),n}(lu.default);Pr.default=mu});var be=R(O=>{"use strict";function Er(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Er=function(n){return typeof n}:Er=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Er(e)}Object.defineProperty(O,"__esModule",{value:!0});O.create=Zn;O.clone=gu;O.length=Un;O.fromValues=Mu;O.copy=bu;O.set=xu;O.add=ku;O.subtract=Xn;O.multiply=Gn;O.divide=Qn;O.ceil=Ou;O.floor=_u;O.min=Ru;O.max=Su;O.round=wu;O.scale=qu;O.scaleAndAdd=Au;O.distance=$n;O.squaredDistance=Hn;O.squaredLength=Kn;O.negate=Pu;O.inverse=Eu;O.normalize=Tu;O.dot=Jn;O.cross=Iu;O.lerp=Nu;O.hermite=Cu;O.bezier=Lu;O.random=Du;O.transformMat4=Wu;O.transformMat3=zu;O.transformQuat=Bu;O.rotateX=Fu;O.rotateY=Vu;O.rotateZ=Yu;O.angle=Zu;O.zero=Uu;O.str=Xu;O.exactEquals=Gu;O.equals=Qu;O.forEach=O.sqrLen=O.len=O.sqrDist=O.dist=O.div=O.mul=O.sub=void 0;var Me=yu(Le());function Yn(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return Yn=function(){return e},e}function yu(e){if(e&&e.__esModule)return e;if(e===null||Er(e)!=="object"&&typeof e!="function")return{default:e};var r=Yn();if(r&&r.has(e))return r.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var i=a?Object.getOwnPropertyDescriptor(e,t):null;i&&(i.get||i.set)?Object.defineProperty(n,t,i):n[t]=e[t]}return n.default=e,r&&r.set(e,n),n}function Zn(){var e=new Me.ARRAY_TYPE(3);return Me.ARRAY_TYPE!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function gu(e){var r=new Me.ARRAY_TYPE(3);return r[0]=e[0],r[1]=e[1],r[2]=e[2],r}function Un(e){var r=e[0],n=e[1],a=e[2];return Math.hypot(r,n,a)}function Mu(e,r,n){var a=new Me.ARRAY_TYPE(3);return a[0]=e,a[1]=r,a[2]=n,a}function bu(e,r){return e[0]=r[0],e[1]=r[1],e[2]=r[2],e}function xu(e,r,n,a){return e[0]=r,e[1]=n,e[2]=a,e}function ku(e,r,n){return e[0]=r[0]+n[0],e[1]=r[1]+n[1],e[2]=r[2]+n[2],e}function Xn(e,r,n){return e[0]=r[0]-n[0],e[1]=r[1]-n[1],e[2]=r[2]-n[2],e}function Gn(e,r,n){return e[0]=r[0]*n[0],e[1]=r[1]*n[1],e[2]=r[2]*n[2],e}function Qn(e,r,n){return e[0]=r[0]/n[0],e[1]=r[1]/n[1],e[2]=r[2]/n[2],e}function Ou(e,r){return e[0]=Math.ceil(r[0]),e[1]=Math.ceil(r[1]),e[2]=Math.ceil(r[2]),e}function _u(e,r){return e[0]=Math.floor(r[0]),e[1]=Math.floor(r[1]),e[2]=Math.floor(r[2]),e}function Ru(e,r,n){return e[0]=Math.min(r[0],n[0]),e[1]=Math.min(r[1],n[1]),e[2]=Math.min(r[2],n[2]),e}function Su(e,r,n){return e[0]=Math.max(r[0],n[0]),e[1]=Math.max(r[1],n[1]),e[2]=Math.max(r[2],n[2]),e}function wu(e,r){return e[0]=Math.round(r[0]),e[1]=Math.round(r[1]),e[2]=Math.round(r[2]),e}function qu(e,r,n){return e[0]=r[0]*n,e[1]=r[1]*n,e[2]=r[2]*n,e}function Au(e,r,n,a){return e[0]=r[0]+n[0]*a,e[1]=r[1]+n[1]*a,e[2]=r[2]+n[2]*a,e}function $n(e,r){var n=r[0]-e[0],a=r[1]-e[1],t=r[2]-e[2];return Math.hypot(n,a,t)}function Hn(e,r){var n=r[0]-e[0],a=r[1]-e[1],t=r[2]-e[2];return n*n+a*a+t*t}function Kn(e){var r=e[0],n=e[1],a=e[2];return r*r+n*n+a*a}function Pu(e,r){return e[0]=-r[0],e[1]=-r[1],e[2]=-r[2],e}function Eu(e,r){return e[0]=1/r[0],e[1]=1/r[1],e[2]=1/r[2],e}function Tu(e,r){var n=r[0],a=r[1],t=r[2],i=n*n+a*a+t*t;return i>0&&(i=1/Math.sqrt(i)),e[0]=r[0]*i,e[1]=r[1]*i,e[2]=r[2]*i,e}function Jn(e,r){return e[0]*r[0]+e[1]*r[1]+e[2]*r[2]}function Iu(e,r,n){var a=r[0],t=r[1],i=r[2],s=n[0],o=n[1],c=n[2];return e[0]=t*c-i*o,e[1]=i*s-a*c,e[2]=a*o-t*s,e}function Nu(e,r,n,a){var t=r[0],i=r[1],s=r[2];return e[0]=t+a*(n[0]-t),e[1]=i+a*(n[1]-i),e[2]=s+a*(n[2]-s),e}function Cu(e,r,n,a,t,i){var s=i*i,o=s*(2*i-3)+1,c=s*(i-2)+i,u=s*(i-1),f=s*(3-2*i);return e[0]=r[0]*o+n[0]*c+a[0]*u+t[0]*f,e[1]=r[1]*o+n[1]*c+a[1]*u+t[1]*f,e[2]=r[2]*o+n[2]*c+a[2]*u+t[2]*f,e}function Lu(e,r,n,a,t,i){var s=1-i,o=s*s,c=i*i,u=o*s,f=3*i*o,h=3*c*s,l=c*i;return e[0]=r[0]*u+n[0]*f+a[0]*h+t[0]*l,e[1]=r[1]*u+n[1]*f+a[1]*h+t[1]*l,e[2]=r[2]*u+n[2]*f+a[2]*h+t[2]*l,e}function Du(e,r){r=r||1;var n=Me.RANDOM()*2*Math.PI,a=Me.RANDOM()*2-1,t=Math.sqrt(1-a*a)*r;return e[0]=Math.cos(n)*t,e[1]=Math.sin(n)*t,e[2]=a*r,e}function Wu(e,r,n){var a=r[0],t=r[1],i=r[2],s=n[3]*a+n[7]*t+n[11]*i+n[15];return s=s||1,e[0]=(n[0]*a+n[4]*t+n[8]*i+n[12])/s,e[1]=(n[1]*a+n[5]*t+n[9]*i+n[13])/s,e[2]=(n[2]*a+n[6]*t+n[10]*i+n[14])/s,e}function zu(e,r,n){var a=r[0],t=r[1],i=r[2];return e[0]=a*n[0]+t*n[3]+i*n[6],e[1]=a*n[1]+t*n[4]+i*n[7],e[2]=a*n[2]+t*n[5]+i*n[8],e}function Bu(e,r,n){var a=n[0],t=n[1],i=n[2],s=n[3],o=r[0],c=r[1],u=r[2],f=t*u-i*c,h=i*o-a*u,l=a*c-t*o,v=t*l-i*h,d=i*f-a*l,m=a*h-t*f,p=s*2;return f*=p,h*=p,l*=p,v*=2,d*=2,m*=2,e[0]=o+f+v,e[1]=c+h+d,e[2]=u+l+m,e}function Fu(e,r,n,a){var t=[],i=[];return t[0]=r[0]-n[0],t[1]=r[1]-n[1],t[2]=r[2]-n[2],i[0]=t[0],i[1]=t[1]*Math.cos(a)-t[2]*Math.sin(a),i[2]=t[1]*Math.sin(a)+t[2]*Math.cos(a),e[0]=i[0]+n[0],e[1]=i[1]+n[1],e[2]=i[2]+n[2],e}function Vu(e,r,n,a){var t=[],i=[];return t[0]=r[0]-n[0],t[1]=r[1]-n[1],t[2]=r[2]-n[2],i[0]=t[2]*Math.sin(a)+t[0]*Math.cos(a),i[1]=t[1],i[2]=t[2]*Math.cos(a)-t[0]*Math.sin(a),e[0]=i[0]+n[0],e[1]=i[1]+n[1],e[2]=i[2]+n[2],e}function Yu(e,r,n,a){var t=[],i=[];return t[0]=r[0]-n[0],t[1]=r[1]-n[1],t[2]=r[2]-n[2],i[0]=t[0]*Math.cos(a)-t[1]*Math.sin(a),i[1]=t[0]*Math.sin(a)+t[1]*Math.cos(a),i[2]=t[2],e[0]=i[0]+n[0],e[1]=i[1]+n[1],e[2]=i[2]+n[2],e}function Zu(e,r){var n=e[0],a=e[1],t=e[2],i=r[0],s=r[1],o=r[2],c=Math.sqrt(n*n+a*a+t*t),u=Math.sqrt(i*i+s*s+o*o),f=c*u,h=f&&Jn(e,r)/f;return Math.acos(Math.min(Math.max(h,-1),1))}function Uu(e){return e[0]=0,e[1]=0,e[2]=0,e}function Xu(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"}function Gu(e,r){return e[0]===r[0]&&e[1]===r[1]&&e[2]===r[2]}function Qu(e,r){var n=e[0],a=e[1],t=e[2],i=r[0],s=r[1],o=r[2];return Math.abs(n-i)<=Me.EPSILON*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(a-s)<=Me.EPSILON*Math.max(1,Math.abs(a),Math.abs(s))&&Math.abs(t-o)<=Me.EPSILON*Math.max(1,Math.abs(t),Math.abs(o))}var $u=Xn;O.sub=$u;var Hu=Gn;O.mul=Hu;var Ku=Qn;O.div=Ku;var Ju=$n;O.dist=Ju;var ju=Hn;O.sqrDist=ju;var ec=Un;O.len=ec;var rc=Kn;O.sqrLen=rc;var tc=function(){var e=Zn();return function(r,n,a,t,i,s){var o,c;for(n||(n=3),a||(a=0),t?c=Math.min(t*n+a,r.length):c=r.length,o=a;o<c;o+=n)e[0]=r[o],e[1]=r[o+1],e[2]=r[o+2],i(e,e,s),r[o]=e[0],r[o+1]=e[1],r[o+2]=e[2];return r}}();O.forEach=tc});var Ir=R(Tr=>{"use strict";var Qe=U(),nc=re();Object.defineProperty(Tr,"__esModule",{value:!0});Tr.default=void 0;var ac=Qe($()),ic=Qe(H()),sc=Qe(ie()),oc=Qe(se()),jn=Qe(oe()),uc=Qe(Rr()),Mt=de(),ze=ue(),_e=cc(be()),ea=Xe();function ra(e){if(typeof WeakMap!="function")return null;var r=new WeakMap,n=new WeakMap;return(ra=function(t){return t?n:r})(e)}function cc(e,r){if(!r&&e&&e.__esModule)return e;if(e===null||nc(e)!=="object"&&typeof e!="function")return{default:e};var n=ra(r);if(n&&n.has(e))return n.get(e);var a={},t=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)){var s=t?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(a,i,s):a[i]=e[i]}return a.default=e,n&&n.set(e,a),a}function fc(e){var r=lc();return function(){var a=(0,jn.default)(e),t;if(r){var i=(0,jn.default)(this).constructor;t=Reflect.construct(a,arguments,i)}else t=a.apply(this,arguments);return(0,oc.default)(this,t)}}function lc(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var bt=[0,0,0],ta={},hc=function(e){(0,sc.default)(n,e);var r=fc(n);function n(){var a,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return(0,ac.default)(this,n),a=r.call(this,-0,-0,-0),arguments.length===1&&(0,Mt.isArray)(t)?a.copy(t):(Mt.config.debug&&((0,ze.checkNumber)(t),(0,ze.checkNumber)(i),(0,ze.checkNumber)(s)),a[0]=t,a[1]=i,a[2]=s),a}return(0,ic.default)(n,[{key:"set",value:function(t,i,s){return this[0]=t,this[1]=i,this[2]=s,this.check()}},{key:"copy",value:function(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this.check()}},{key:"fromObject",value:function(t){return Mt.config.debug&&((0,ze.checkNumber)(t.x),(0,ze.checkNumber)(t.y),(0,ze.checkNumber)(t.z)),this[0]=t.x,this[1]=t.y,this[2]=t.z,this.check()}},{key:"toObject",value:function(t){return t.x=this[0],t.y=this[1],t.z=this[2],t}},{key:"ELEMENTS",get:function(){return 3}},{key:"z",get:function(){return this[2]},set:function(t){this[2]=(0,ze.checkNumber)(t)}},{key:"angle",value:function(t){return _e.angle(this,t)}},{key:"cross",value:function(t){return _e.cross(this,this,t),this.check()}},{key:"rotateX",value:function(t){var i=t.radians,s=t.origin,o=s===void 0?bt:s;return _e.rotateX(this,this,o,i),this.check()}},{key:"rotateY",value:function(t){var i=t.radians,s=t.origin,o=s===void 0?bt:s;return _e.rotateY(this,this,o,i),this.check()}},{key:"rotateZ",value:function(t){var i=t.radians,s=t.origin,o=s===void 0?bt:s;return _e.rotateZ(this,this,o,i),this.check()}},{key:"transform",value:function(t){return this.transformAsPoint(t)}},{key:"transformAsPoint",value:function(t){return _e.transformMat4(this,this,t),this.check()}},{key:"transformAsVector",value:function(t){return(0,ea.vec3_transformMat4AsVector)(this,this,t),this.check()}},{key:"transformByMatrix3",value:function(t){return _e.transformMat3(this,this,t),this.check()}},{key:"transformByMatrix2",value:function(t){return(0,ea.vec3_transformMat2)(this,this,t),this.check()}},{key:"transformByQuaternion",value:function(t){return _e.transformQuat(this,this,t),this.check()}}],[{key:"ZERO",get:function(){return ta.ZERO=ta.ZERO||Object.freeze(new n(0,0,0,0))}}]),n}(uc.default);Tr.default=hc});var ua=R(Nr=>{"use strict";var $e=U(),vc=re();Object.defineProperty(Nr,"__esModule",{value:!0});Nr.default=void 0;var dc=$e($()),pc=$e(H()),mc=$e(ie()),yc=$e(se()),na=$e(oe()),gc=$e(Rr()),xt=de(),pe=ue(),aa=Mc(be()),ia=Xe();function sa(e){if(typeof WeakMap!="function")return null;var r=new WeakMap,n=new WeakMap;return(sa=function(t){return t?n:r})(e)}function Mc(e,r){if(!r&&e&&e.__esModule)return e;if(e===null||vc(e)!=="object"&&typeof e!="function")return{default:e};var n=sa(r);if(n&&n.has(e))return n.get(e);var a={},t=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)){var s=t?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(a,i,s):a[i]=e[i]}return a.default=e,n&&n.set(e,a),a}function bc(e){var r=xc();return function(){var a=(0,na.default)(e),t;if(r){var i=(0,na.default)(this).constructor;t=Reflect.construct(a,arguments,i)}else t=a.apply(this,arguments);return(0,yc.default)(this,t)}}function xc(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var oa={},kc=function(e){(0,mc.default)(n,e);var r=bc(n);function n(){var a,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;return(0,dc.default)(this,n),a=r.call(this,-0,-0,-0,-0),(0,xt.isArray)(t)&&arguments.length===1?a.copy(t):(xt.config.debug&&((0,pe.checkNumber)(t),(0,pe.checkNumber)(i),(0,pe.checkNumber)(s),(0,pe.checkNumber)(o)),a[0]=t,a[1]=i,a[2]=s,a[3]=o),a}return(0,pc.default)(n,[{key:"set",value:function(t,i,s,o){return this[0]=t,this[1]=i,this[2]=s,this[3]=o,this.check()}},{key:"copy",value:function(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}},{key:"fromObject",value:function(t){return xt.config.debug&&((0,pe.checkNumber)(t.x),(0,pe.checkNumber)(t.y),(0,pe.checkNumber)(t.z),(0,pe.checkNumber)(t.w)),this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this}},{key:"toObject",value:function(t){return t.x=this[0],t.y=this[1],t.z=this[2],t.w=this[3],t}},{key:"ELEMENTS",get:function(){return 4}},{key:"z",get:function(){return this[2]},set:function(t){this[2]=(0,pe.checkNumber)(t)}},{key:"w",get:function(){return this[3]},set:function(t){this[3]=(0,pe.checkNumber)(t)}},{key:"transform",value:function(t){return aa.transformMat4(this,this,t),this.check()}},{key:"transformByMatrix3",value:function(t){return(0,ia.vec4_transformMat3)(this,this,t),this.check()}},{key:"transformByMatrix2",value:function(t){return(0,ia.vec4_transformMat2)(this,this,t),this.check()}},{key:"transformByQuaternion",value:function(t){return aa.transformQuat(this,this,t),this.check()}},{key:"applyMatrix4",value:function(t){return t.transform(this,this),this}}],[{key:"ZERO",get:function(){return oa.ZERO=oa.ZERO||Object.freeze(new n(0,0,0,0))}}]),n}(gc.default);Nr.default=kc});var kt=R(Cr=>{"use strict";var Be=U();Object.defineProperty(Cr,"__esModule",{value:!0});Cr.default=void 0;var Oc=Be($()),_c=Be(H()),Rc=Be(ie()),Sc=Be(se()),ca=Be(oe()),wc=Be(or()),qc=ue(),Ac=de(),fa=Be(Ie());function Pc(e){var r=Ec();return function(){var a=(0,ca.default)(e),t;if(r){var i=(0,ca.default)(this).constructor;t=Reflect.construct(a,arguments,i)}else t=a.apply(this,arguments);return(0,Sc.default)(this,t)}}function Ec(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Tc=function(e){(0,Rc.default)(n,e);var r=Pc(n);function n(){return(0,Oc.default)(this,n),r.apply(this,arguments)}return(0,_c.default)(n,[{key:"ELEMENTS",get:function(){return(0,fa.default)(!1),0}},{key:"RANK",get:function(){return(0,fa.default)(!1),0}},{key:"toString",value:function(){var t="[";if(Ac.config.printRowMajor){t+="row-major:";for(var i=0;i<this.RANK;++i)for(var s=0;s<this.RANK;++s)t+=" ".concat(this[s*this.RANK+i])}else{t+="column-major:";for(var o=0;o<this.ELEMENTS;++o)t+=" ".concat(this[o])}return t+="]",t}},{key:"getElementIndex",value:function(t,i){return i*this.RANK+t}},{key:"getElement",value:function(t,i){return this[i*this.RANK+t]}},{key:"setElement",value:function(t,i,s){return this[i*this.RANK+t]=(0,qc.checkNumber)(s),this}},{key:"getColumn",value:function(t){for(var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new Array(this.RANK).fill(-0),s=t*this.RANK,o=0;o<this.RANK;++o)i[o]=this[s+o];return i}},{key:"setColumn",value:function(t,i){for(var s=t*this.RANK,o=0;o<this.RANK;++o)this[s+o]=i[o];return this}}]),n}(wc.default);Cr.default=Tc});var Ot=R(T=>{"use strict";function Lr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Lr=function(n){return typeof n}:Lr=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Lr(e)}Object.defineProperty(T,"__esModule",{value:!0});T.create=Nc;T.fromMat4=Cc;T.clone=Lc;T.copy=Dc;T.fromValues=Wc;T.set=zc;T.identity=Bc;T.transpose=Fc;T.invert=Vc;T.adjoint=Yc;T.determinant=Zc;T.multiply=ha;T.translate=Uc;T.rotate=Xc;T.scale=Gc;T.fromTranslation=Qc;T.fromRotation=$c;T.fromScaling=Hc;T.fromMat2d=Kc;T.fromQuat=Jc;T.normalFromMat4=jc;T.projection=ef;T.str=rf;T.frob=tf;T.add=nf;T.subtract=va;T.multiplyScalar=af;T.multiplyScalarAndAdd=sf;T.exactEquals=of;T.equals=uf;T.sub=T.mul=void 0;var J=Ic(Le());function la(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return la=function(){return e},e}function Ic(e){if(e&&e.__esModule)return e;if(e===null||Lr(e)!=="object"&&typeof e!="function")return{default:e};var r=la();if(r&&r.has(e))return r.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var i=a?Object.getOwnPropertyDescriptor(e,t):null;i&&(i.get||i.set)?Object.defineProperty(n,t,i):n[t]=e[t]}return n.default=e,r&&r.set(e,n),n}function Nc(){var e=new J.ARRAY_TYPE(9);return J.ARRAY_TYPE!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function Cc(e,r){return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[4],e[4]=r[5],e[5]=r[6],e[6]=r[8],e[7]=r[9],e[8]=r[10],e}function Lc(e){var r=new J.ARRAY_TYPE(9);return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r}function Dc(e,r){return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[8]=r[8],e}function Wc(e,r,n,a,t,i,s,o,c){var u=new J.ARRAY_TYPE(9);return u[0]=e,u[1]=r,u[2]=n,u[3]=a,u[4]=t,u[5]=i,u[6]=s,u[7]=o,u[8]=c,u}function zc(e,r,n,a,t,i,s,o,c,u){return e[0]=r,e[1]=n,e[2]=a,e[3]=t,e[4]=i,e[5]=s,e[6]=o,e[7]=c,e[8]=u,e}function Bc(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Fc(e,r){if(e===r){var n=r[1],a=r[2],t=r[5];e[1]=r[3],e[2]=r[6],e[3]=n,e[5]=r[7],e[6]=a,e[7]=t}else e[0]=r[0],e[1]=r[3],e[2]=r[6],e[3]=r[1],e[4]=r[4],e[5]=r[7],e[6]=r[2],e[7]=r[5],e[8]=r[8];return e}function Vc(e,r){var n=r[0],a=r[1],t=r[2],i=r[3],s=r[4],o=r[5],c=r[6],u=r[7],f=r[8],h=f*s-o*u,l=-f*i+o*c,v=u*i-s*c,d=n*h+a*l+t*v;return d?(d=1/d,e[0]=h*d,e[1]=(-f*a+t*u)*d,e[2]=(o*a-t*s)*d,e[3]=l*d,e[4]=(f*n-t*c)*d,e[5]=(-o*n+t*i)*d,e[6]=v*d,e[7]=(-u*n+a*c)*d,e[8]=(s*n-a*i)*d,e):null}function Yc(e,r){var n=r[0],a=r[1],t=r[2],i=r[3],s=r[4],o=r[5],c=r[6],u=r[7],f=r[8];return e[0]=s*f-o*u,e[1]=t*u-a*f,e[2]=a*o-t*s,e[3]=o*c-i*f,e[4]=n*f-t*c,e[5]=t*i-n*o,e[6]=i*u-s*c,e[7]=a*c-n*u,e[8]=n*s-a*i,e}function Zc(e){var r=e[0],n=e[1],a=e[2],t=e[3],i=e[4],s=e[5],o=e[6],c=e[7],u=e[8];return r*(u*i-s*c)+n*(-u*t+s*o)+a*(c*t-i*o)}function ha(e,r,n){var a=r[0],t=r[1],i=r[2],s=r[3],o=r[4],c=r[5],u=r[6],f=r[7],h=r[8],l=n[0],v=n[1],d=n[2],m=n[3],p=n[4],y=n[5],x=n[6],g=n[7],M=n[8];return e[0]=l*a+v*s+d*u,e[1]=l*t+v*o+d*f,e[2]=l*i+v*c+d*h,e[3]=m*a+p*s+y*u,e[4]=m*t+p*o+y*f,e[5]=m*i+p*c+y*h,e[6]=x*a+g*s+M*u,e[7]=x*t+g*o+M*f,e[8]=x*i+g*c+M*h,e}function Uc(e,r,n){var a=r[0],t=r[1],i=r[2],s=r[3],o=r[4],c=r[5],u=r[6],f=r[7],h=r[8],l=n[0],v=n[1];return e[0]=a,e[1]=t,e[2]=i,e[3]=s,e[4]=o,e[5]=c,e[6]=l*a+v*s+u,e[7]=l*t+v*o+f,e[8]=l*i+v*c+h,e}function Xc(e,r,n){var a=r[0],t=r[1],i=r[2],s=r[3],o=r[4],c=r[5],u=r[6],f=r[7],h=r[8],l=Math.sin(n),v=Math.cos(n);return e[0]=v*a+l*s,e[1]=v*t+l*o,e[2]=v*i+l*c,e[3]=v*s-l*a,e[4]=v*o-l*t,e[5]=v*c-l*i,e[6]=u,e[7]=f,e[8]=h,e}function Gc(e,r,n){var a=n[0],t=n[1];return e[0]=a*r[0],e[1]=a*r[1],e[2]=a*r[2],e[3]=t*r[3],e[4]=t*r[4],e[5]=t*r[5],e[6]=r[6],e[7]=r[7],e[8]=r[8],e}function Qc(e,r){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=r[0],e[7]=r[1],e[8]=1,e}function $c(e,r){var n=Math.sin(r),a=Math.cos(r);return e[0]=a,e[1]=n,e[2]=0,e[3]=-n,e[4]=a,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Hc(e,r){return e[0]=r[0],e[1]=0,e[2]=0,e[3]=0,e[4]=r[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Kc(e,r){return e[0]=r[0],e[1]=r[1],e[2]=0,e[3]=r[2],e[4]=r[3],e[5]=0,e[6]=r[4],e[7]=r[5],e[8]=1,e}function Jc(e,r){var n=r[0],a=r[1],t=r[2],i=r[3],s=n+n,o=a+a,c=t+t,u=n*s,f=a*s,h=a*o,l=t*s,v=t*o,d=t*c,m=i*s,p=i*o,y=i*c;return e[0]=1-h-d,e[3]=f-y,e[6]=l+p,e[1]=f+y,e[4]=1-u-d,e[7]=v-m,e[2]=l-p,e[5]=v+m,e[8]=1-u-h,e}function jc(e,r){var n=r[0],a=r[1],t=r[2],i=r[3],s=r[4],o=r[5],c=r[6],u=r[7],f=r[8],h=r[9],l=r[10],v=r[11],d=r[12],m=r[13],p=r[14],y=r[15],x=n*o-a*s,g=n*c-t*s,M=n*u-i*s,_=a*c-t*o,k=a*u-i*o,L=t*u-i*c,I=f*m-h*d,N=f*p-l*d,E=f*y-v*d,D=h*p-l*m,C=h*y-v*m,W=l*y-v*p,A=x*W-g*C+M*D+_*E-k*N+L*I;return A?(A=1/A,e[0]=(o*W-c*C+u*D)*A,e[1]=(c*E-s*W-u*N)*A,e[2]=(s*C-o*E+u*I)*A,e[3]=(t*C-a*W-i*D)*A,e[4]=(n*W-t*E+i*N)*A,e[5]=(a*E-n*C-i*I)*A,e[6]=(m*L-p*k+y*_)*A,e[7]=(p*M-d*L-y*g)*A,e[8]=(d*k-m*M+y*x)*A,e):null}function ef(e,r,n){return e[0]=2/r,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/n,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e}function rf(e){return"mat3("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+")"}function tf(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])}function nf(e,r,n){return e[0]=r[0]+n[0],e[1]=r[1]+n[1],e[2]=r[2]+n[2],e[3]=r[3]+n[3],e[4]=r[4]+n[4],e[5]=r[5]+n[5],e[6]=r[6]+n[6],e[7]=r[7]+n[7],e[8]=r[8]+n[8],e}function va(e,r,n){return e[0]=r[0]-n[0],e[1]=r[1]-n[1],e[2]=r[2]-n[2],e[3]=r[3]-n[3],e[4]=r[4]-n[4],e[5]=r[5]-n[5],e[6]=r[6]-n[6],e[7]=r[7]-n[7],e[8]=r[8]-n[8],e}function af(e,r,n){return e[0]=r[0]*n,e[1]=r[1]*n,e[2]=r[2]*n,e[3]=r[3]*n,e[4]=r[4]*n,e[5]=r[5]*n,e[6]=r[6]*n,e[7]=r[7]*n,e[8]=r[8]*n,e}function sf(e,r,n,a){return e[0]=r[0]+n[0]*a,e[1]=r[1]+n[1]*a,e[2]=r[2]+n[2]*a,e[3]=r[3]+n[3]*a,e[4]=r[4]+n[4]*a,e[5]=r[5]+n[5]*a,e[6]=r[6]+n[6]*a,e[7]=r[7]+n[7]*a,e[8]=r[8]+n[8]*a,e}function of(e,r){return e[0]===r[0]&&e[1]===r[1]&&e[2]===r[2]&&e[3]===r[3]&&e[4]===r[4]&&e[5]===r[5]&&e[6]===r[6]&&e[7]===r[7]&&e[8]===r[8]}function uf(e,r){var n=e[0],a=e[1],t=e[2],i=e[3],s=e[4],o=e[5],c=e[6],u=e[7],f=e[8],h=r[0],l=r[1],v=r[2],d=r[3],m=r[4],p=r[5],y=r[6],x=r[7],g=r[8];return Math.abs(n-h)<=J.EPSILON*Math.max(1,Math.abs(n),Math.abs(h))&&Math.abs(a-l)<=J.EPSILON*Math.max(1,Math.abs(a),Math.abs(l))&&Math.abs(t-v)<=J.EPSILON*Math.max(1,Math.abs(t),Math.abs(v))&&Math.abs(i-d)<=J.EPSILON*Math.max(1,Math.abs(i),Math.abs(d))&&Math.abs(s-m)<=J.EPSILON*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(o-p)<=J.EPSILON*Math.max(1,Math.abs(o),Math.abs(p))&&Math.abs(c-y)<=J.EPSILON*Math.max(1,Math.abs(c),Math.abs(y))&&Math.abs(u-x)<=J.EPSILON*Math.max(1,Math.abs(u),Math.abs(x))&&Math.abs(f-g)<=J.EPSILON*Math.max(1,Math.abs(f),Math.abs(g))}var cf=ha;T.mul=cf;var ff=va;T.sub=ff});var ya=R(Wr=>{"use strict";var He=U(),lf=re();Object.defineProperty(Wr,"__esModule",{value:!0});Wr.default=void 0;var hf=He($()),vf=He(H()),df=He(ie()),pf=He(se()),da=He(oe()),mf=He(kt()),Dr=ue(),yf=Xe(),me=_t(Ot()),gf=_t(wr()),Mf=_t(be());function pa(e){if(typeof WeakMap!="function")return null;var r=new WeakMap,n=new WeakMap;return(pa=function(t){return t?n:r})(e)}function _t(e,r){if(!r&&e&&e.__esModule)return e;if(e===null||lf(e)!=="object"&&typeof e!="function")return{default:e};var n=pa(r);if(n&&n.has(e))return n.get(e);var a={},t=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)){var s=t?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(a,i,s):a[i]=e[i]}return a.default=e,n&&n.set(e,a),a}function bf(e){var r=xf();return function(){var a=(0,da.default)(e),t;if(r){var i=(0,da.default)(this).constructor;t=Reflect.construct(a,arguments,i)}else t=a.apply(this,arguments);return(0,pf.default)(this,t)}}function xf(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var ma=Object.freeze([1,0,0,0,1,0,0,0,1]),kf=Object.freeze([0,0,0,0,0,0,0,0,0]),Of=Object.freeze({COL0ROW0:0,COL0ROW1:1,COL0ROW2:2,COL1ROW0:3,COL1ROW1:4,COL1ROW2:5,COL2ROW0:6,COL2ROW1:7,COL2ROW2:8}),Ke={},_f=function(e){(0,df.default)(n,e);var r=bf(n);function n(a){var t;return(0,hf.default)(this,n),t=r.call(this,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(a)?t.copy(a):t.identity(),t}return(0,vf.default)(n,[{key:"ELEMENTS",get:function(){return 9}},{key:"RANK",get:function(){return 3}},{key:"INDICES",get:function(){return Of}},{key:"copy",value:function(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this.check()}},{key:"set",value:function(t,i,s,o,c,u,f,h,l){return this[0]=t,this[1]=i,this[2]=s,this[3]=o,this[4]=c,this[5]=u,this[6]=f,this[7]=h,this[8]=l,this.check()}},{key:"setRowMajor",value:function(t,i,s,o,c,u,f,h,l){return this[0]=t,this[1]=o,this[2]=f,this[3]=i,this[4]=c,this[5]=h,this[6]=s,this[7]=u,this[8]=l,this.check()}},{key:"determinant",value:function(){return me.determinant(this)}},{key:"identity",value:function(){return this.copy(ma)}},{key:"fromQuaternion",value:function(t){return me.fromQuat(this,t),this.check()}},{key:"transpose",value:function(){return me.transpose(this,this),this.check()}},{key:"invert",value:function(){return me.invert(this,this),this.check()}},{key:"multiplyLeft",value:function(t){return me.multiply(this,t,this),this.check()}},{key:"multiplyRight",value:function(t){return me.multiply(this,this,t),this.check()}},{key:"rotate",value:function(t){return me.rotate(this,this,t),this.check()}},{key:"scale",value:function(t){return Array.isArray(t)?me.scale(this,this,t):me.scale(this,this,[t,t,t]),this.check()}},{key:"translate",value:function(t){return me.translate(this,this,t),this.check()}},{key:"transform",value:function(t,i){switch(t.length){case 2:i=gf.transformMat3(i||[-0,-0],t,this);break;case 3:i=Mf.transformMat3(i||[-0,-0,-0],t,this);break;case 4:i=(0,yf.vec4_transformMat3)(i||[-0,-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return(0,Dr.checkVector)(i,t.length),i}},{key:"transformVector",value:function(t,i){return(0,Dr.deprecated)("Matrix3.transformVector"),this.transform(t,i)}},{key:"transformVector2",value:function(t,i){return(0,Dr.deprecated)("Matrix3.transformVector"),this.transform(t,i)}},{key:"transformVector3",value:function(t,i){return(0,Dr.deprecated)("Matrix3.transformVector"),this.transform(t,i)}}],[{key:"IDENTITY",get:function(){return Ke.IDENTITY=Ke.IDENTITY||Object.freeze(new n(ma)),Ke.IDENTITY}},{key:"ZERO",get:function(){return Ke.ZERO=Ke.ZERO||Object.freeze(new n(kf)),Ke.ZERO}}]),n}(mf.default);Wr.default=_f});var Ma=R((lv,ga)=>{function Rf(e){if(Array.isArray(e))return e}ga.exports=Rf});var xa=R((hv,ba)=>{function Sf(e,r){if(!(typeof Symbol=="undefined"||!(Symbol.iterator in Object(e)))){var n=[],a=!0,t=!1,i=void 0;try{for(var s=e[Symbol.iterator](),o;!(a=(o=s.next()).done)&&(n.push(o.value),!(r&&n.length===r));a=!0);}catch(c){t=!0,i=c}finally{try{!a&&s.return!=null&&s.return()}finally{if(t)throw i}}return n}}ba.exports=Sf});var Oa=R((vv,ka)=>{function wf(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
3
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}ka.exports=wf});var cr=R((dv,_a)=>{var qf=Ma(),Af=xa(),Pf=dt(),Ef=Oa();function Tf(e,r){return qf(e)||Af(e,r)||Pf(e,r)||Ef()}_a.exports=Tf});var Ea=R(w=>{"use strict";function zr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?zr=function(n){return typeof n}:zr=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},zr(e)}Object.defineProperty(w,"__esModule",{value:!0});w.create=Nf;w.clone=Cf;w.copy=Lf;w.fromValues=Df;w.set=Wf;w.identity=Sa;w.transpose=zf;w.invert=Bf;w.adjoint=Ff;w.determinant=Vf;w.multiply=wa;w.translate=Yf;w.scale=Zf;w.rotate=Uf;w.rotateX=Xf;w.rotateY=Gf;w.rotateZ=Qf;w.fromTranslation=$f;w.fromScaling=Hf;w.fromRotation=Kf;w.fromXRotation=Jf;w.fromYRotation=jf;w.fromZRotation=el;w.fromRotationTranslation=qa;w.fromQuat2=rl;w.getTranslation=tl;w.getScaling=Aa;w.getRotation=nl;w.fromRotationTranslationScale=al;w.fromRotationTranslationScaleOrigin=il;w.fromQuat=sl;w.frustum=ol;w.perspective=ul;w.perspectiveFromFieldOfView=cl;w.ortho=fl;w.lookAt=ll;w.targetTo=hl;w.str=vl;w.frob=dl;w.add=pl;w.subtract=Pa;w.multiplyScalar=ml;w.multiplyScalarAndAdd=yl;w.exactEquals=gl;w.equals=Ml;w.sub=w.mul=void 0;var z=If(Le());function Ra(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return Ra=function(){return e},e}function If(e){if(e&&e.__esModule)return e;if(e===null||zr(e)!=="object"&&typeof e!="function")return{default:e};var r=Ra();if(r&&r.has(e))return r.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var i=a?Object.getOwnPropertyDescriptor(e,t):null;i&&(i.get||i.set)?Object.defineProperty(n,t,i):n[t]=e[t]}return n.default=e,r&&r.set(e,n),n}function Nf(){var e=new z.ARRAY_TYPE(16);return z.ARRAY_TYPE!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function Cf(e){var r=new z.ARRAY_TYPE(16);return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r}function Lf(e,r){return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[8]=r[8],e[9]=r[9],e[10]=r[10],e[11]=r[11],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15],e}function Df(e,r,n,a,t,i,s,o,c,u,f,h,l,v,d,m){var p=new z.ARRAY_TYPE(16);return p[0]=e,p[1]=r,p[2]=n,p[3]=a,p[4]=t,p[5]=i,p[6]=s,p[7]=o,p[8]=c,p[9]=u,p[10]=f,p[11]=h,p[12]=l,p[13]=v,p[14]=d,p[15]=m,p}function Wf(e,r,n,a,t,i,s,o,c,u,f,h,l,v,d,m,p){return e[0]=r,e[1]=n,e[2]=a,e[3]=t,e[4]=i,e[5]=s,e[6]=o,e[7]=c,e[8]=u,e[9]=f,e[10]=h,e[11]=l,e[12]=v,e[13]=d,e[14]=m,e[15]=p,e}function Sa(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function zf(e,r){if(e===r){var n=r[1],a=r[2],t=r[3],i=r[6],s=r[7],o=r[11];e[1]=r[4],e[2]=r[8],e[3]=r[12],e[4]=n,e[6]=r[9],e[7]=r[13],e[8]=a,e[9]=i,e[11]=r[14],e[12]=t,e[13]=s,e[14]=o}else e[0]=r[0],e[1]=r[4],e[2]=r[8],e[3]=r[12],e[4]=r[1],e[5]=r[5],e[6]=r[9],e[7]=r[13],e[8]=r[2],e[9]=r[6],e[10]=r[10],e[11]=r[14],e[12]=r[3],e[13]=r[7],e[14]=r[11],e[15]=r[15];return e}function Bf(e,r){var n=r[0],a=r[1],t=r[2],i=r[3],s=r[4],o=r[5],c=r[6],u=r[7],f=r[8],h=r[9],l=r[10],v=r[11],d=r[12],m=r[13],p=r[14],y=r[15],x=n*o-a*s,g=n*c-t*s,M=n*u-i*s,_=a*c-t*o,k=a*u-i*o,L=t*u-i*c,I=f*m-h*d,N=f*p-l*d,E=f*y-v*d,D=h*p-l*m,C=h*y-v*m,W=l*y-v*p,A=x*W-g*C+M*D+_*E-k*N+L*I;return A?(A=1/A,e[0]=(o*W-c*C+u*D)*A,e[1]=(t*C-a*W-i*D)*A,e[2]=(m*L-p*k+y*_)*A,e[3]=(l*k-h*L-v*_)*A,e[4]=(c*E-s*W-u*N)*A,e[5]=(n*W-t*E+i*N)*A,e[6]=(p*M-d*L-y*g)*A,e[7]=(f*L-l*M+v*g)*A,e[8]=(s*C-o*E+u*I)*A,e[9]=(a*E-n*C-i*I)*A,e[10]=(d*k-m*M+y*x)*A,e[11]=(h*M-f*k-v*x)*A,e[12]=(o*N-s*D-c*I)*A,e[13]=(n*D-a*N+t*I)*A,e[14]=(m*g-d*_-p*x)*A,e[15]=(f*_-h*g+l*x)*A,e):null}function Ff(e,r){var n=r[0],a=r[1],t=r[2],i=r[3],s=r[4],o=r[5],c=r[6],u=r[7],f=r[8],h=r[9],l=r[10],v=r[11],d=r[12],m=r[13],p=r[14],y=r[15];return e[0]=o*(l*y-v*p)-h*(c*y-u*p)+m*(c*v-u*l),e[1]=-(a*(l*y-v*p)-h*(t*y-i*p)+m*(t*v-i*l)),e[2]=a*(c*y-u*p)-o*(t*y-i*p)+m*(t*u-i*c),e[3]=-(a*(c*v-u*l)-o*(t*v-i*l)+h*(t*u-i*c)),e[4]=-(s*(l*y-v*p)-f*(c*y-u*p)+d*(c*v-u*l)),e[5]=n*(l*y-v*p)-f*(t*y-i*p)+d*(t*v-i*l),e[6]=-(n*(c*y-u*p)-s*(t*y-i*p)+d*(t*u-i*c)),e[7]=n*(c*v-u*l)-s*(t*v-i*l)+f*(t*u-i*c),e[8]=s*(h*y-v*m)-f*(o*y-u*m)+d*(o*v-u*h),e[9]=-(n*(h*y-v*m)-f*(a*y-i*m)+d*(a*v-i*h)),e[10]=n*(o*y-u*m)-s*(a*y-i*m)+d*(a*u-i*o),e[11]=-(n*(o*v-u*h)-s*(a*v-i*h)+f*(a*u-i*o)),e[12]=-(s*(h*p-l*m)-f*(o*p-c*m)+d*(o*l-c*h)),e[13]=n*(h*p-l*m)-f*(a*p-t*m)+d*(a*l-t*h),e[14]=-(n*(o*p-c*m)-s*(a*p-t*m)+d*(a*c-t*o)),e[15]=n*(o*l-c*h)-s*(a*l-t*h)+f*(a*c-t*o),e}function Vf(e){var r=e[0],n=e[1],a=e[2],t=e[3],i=e[4],s=e[5],o=e[6],c=e[7],u=e[8],f=e[9],h=e[10],l=e[11],v=e[12],d=e[13],m=e[14],p=e[15],y=r*s-n*i,x=r*o-a*i,g=r*c-t*i,M=n*o-a*s,_=n*c-t*s,k=a*c-t*o,L=u*d-f*v,I=u*m-h*v,N=u*p-l*v,E=f*m-h*d,D=f*p-l*d,C=h*p-l*m;return y*C-x*D+g*E+M*N-_*I+k*L}function wa(e,r,n){var a=r[0],t=r[1],i=r[2],s=r[3],o=r[4],c=r[5],u=r[6],f=r[7],h=r[8],l=r[9],v=r[10],d=r[11],m=r[12],p=r[13],y=r[14],x=r[15],g=n[0],M=n[1],_=n[2],k=n[3];return e[0]=g*a+M*o+_*h+k*m,e[1]=g*t+M*c+_*l+k*p,e[2]=g*i+M*u+_*v+k*y,e[3]=g*s+M*f+_*d+k*x,g=n[4],M=n[5],_=n[6],k=n[7],e[4]=g*a+M*o+_*h+k*m,e[5]=g*t+M*c+_*l+k*p,e[6]=g*i+M*u+_*v+k*y,e[7]=g*s+M*f+_*d+k*x,g=n[8],M=n[9],_=n[10],k=n[11],e[8]=g*a+M*o+_*h+k*m,e[9]=g*t+M*c+_*l+k*p,e[10]=g*i+M*u+_*v+k*y,e[11]=g*s+M*f+_*d+k*x,g=n[12],M=n[13],_=n[14],k=n[15],e[12]=g*a+M*o+_*h+k*m,e[13]=g*t+M*c+_*l+k*p,e[14]=g*i+M*u+_*v+k*y,e[15]=g*s+M*f+_*d+k*x,e}function Yf(e,r,n){var a=n[0],t=n[1],i=n[2],s,o,c,u,f,h,l,v,d,m,p,y;return r===e?(e[12]=r[0]*a+r[4]*t+r[8]*i+r[12],e[13]=r[1]*a+r[5]*t+r[9]*i+r[13],e[14]=r[2]*a+r[6]*t+r[10]*i+r[14],e[15]=r[3]*a+r[7]*t+r[11]*i+r[15]):(s=r[0],o=r[1],c=r[2],u=r[3],f=r[4],h=r[5],l=r[6],v=r[7],d=r[8],m=r[9],p=r[10],y=r[11],e[0]=s,e[1]=o,e[2]=c,e[3]=u,e[4]=f,e[5]=h,e[6]=l,e[7]=v,e[8]=d,e[9]=m,e[10]=p,e[11]=y,e[12]=s*a+f*t+d*i+r[12],e[13]=o*a+h*t+m*i+r[13],e[14]=c*a+l*t+p*i+r[14],e[15]=u*a+v*t+y*i+r[15]),e}function Zf(e,r,n){var a=n[0],t=n[1],i=n[2];return e[0]=r[0]*a,e[1]=r[1]*a,e[2]=r[2]*a,e[3]=r[3]*a,e[4]=r[4]*t,e[5]=r[5]*t,e[6]=r[6]*t,e[7]=r[7]*t,e[8]=r[8]*i,e[9]=r[9]*i,e[10]=r[10]*i,e[11]=r[11]*i,e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15],e}function Uf(e,r,n,a){var t=a[0],i=a[1],s=a[2],o=Math.hypot(t,i,s),c,u,f,h,l,v,d,m,p,y,x,g,M,_,k,L,I,N,E,D,C,W,A,G;return o<z.EPSILON?null:(o=1/o,t*=o,i*=o,s*=o,c=Math.sin(n),u=Math.cos(n),f=1-u,h=r[0],l=r[1],v=r[2],d=r[3],m=r[4],p=r[5],y=r[6],x=r[7],g=r[8],M=r[9],_=r[10],k=r[11],L=t*t*f+u,I=i*t*f+s*c,N=s*t*f-i*c,E=t*i*f-s*c,D=i*i*f+u,C=s*i*f+t*c,W=t*s*f+i*c,A=i*s*f-t*c,G=s*s*f+u,e[0]=h*L+m*I+g*N,e[1]=l*L+p*I+M*N,e[2]=v*L+y*I+_*N,e[3]=d*L+x*I+k*N,e[4]=h*E+m*D+g*C,e[5]=l*E+p*D+M*C,e[6]=v*E+y*D+_*C,e[7]=d*E+x*D+k*C,e[8]=h*W+m*A+g*G,e[9]=l*W+p*A+M*G,e[10]=v*W+y*A+_*G,e[11]=d*W+x*A+k*G,r!==e&&(e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15]),e)}function Xf(e,r,n){var a=Math.sin(n),t=Math.cos(n),i=r[4],s=r[5],o=r[6],c=r[7],u=r[8],f=r[9],h=r[10],l=r[11];return r!==e&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15]),e[4]=i*t+u*a,e[5]=s*t+f*a,e[6]=o*t+h*a,e[7]=c*t+l*a,e[8]=u*t-i*a,e[9]=f*t-s*a,e[10]=h*t-o*a,e[11]=l*t-c*a,e}function Gf(e,r,n){var a=Math.sin(n),t=Math.cos(n),i=r[0],s=r[1],o=r[2],c=r[3],u=r[8],f=r[9],h=r[10],l=r[11];return r!==e&&(e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15]),e[0]=i*t-u*a,e[1]=s*t-f*a,e[2]=o*t-h*a,e[3]=c*t-l*a,e[8]=i*a+u*t,e[9]=s*a+f*t,e[10]=o*a+h*t,e[11]=c*a+l*t,e}function Qf(e,r,n){var a=Math.sin(n),t=Math.cos(n),i=r[0],s=r[1],o=r[2],c=r[3],u=r[4],f=r[5],h=r[6],l=r[7];return r!==e&&(e[8]=r[8],e[9]=r[9],e[10]=r[10],e[11]=r[11],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15]),e[0]=i*t+u*a,e[1]=s*t+f*a,e[2]=o*t+h*a,e[3]=c*t+l*a,e[4]=u*t-i*a,e[5]=f*t-s*a,e[6]=h*t-o*a,e[7]=l*t-c*a,e}function $f(e,r){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function Hf(e,r){return e[0]=r[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=r[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=r[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Kf(e,r,n){var a=n[0],t=n[1],i=n[2],s=Math.hypot(a,t,i),o,c,u;return s<z.EPSILON?null:(s=1/s,a*=s,t*=s,i*=s,o=Math.sin(r),c=Math.cos(r),u=1-c,e[0]=a*a*u+c,e[1]=t*a*u+i*o,e[2]=i*a*u-t*o,e[3]=0,e[4]=a*t*u-i*o,e[5]=t*t*u+c,e[6]=i*t*u+a*o,e[7]=0,e[8]=a*i*u+t*o,e[9]=t*i*u-a*o,e[10]=i*i*u+c,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function Jf(e,r){var n=Math.sin(r),a=Math.cos(r);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=n,e[7]=0,e[8]=0,e[9]=-n,e[10]=a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function jf(e,r){var n=Math.sin(r),a=Math.cos(r);return e[0]=a,e[1]=0,e[2]=-n,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=n,e[9]=0,e[10]=a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function el(e,r){var n=Math.sin(r),a=Math.cos(r);return e[0]=a,e[1]=n,e[2]=0,e[3]=0,e[4]=-n,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function qa(e,r,n){var a=r[0],t=r[1],i=r[2],s=r[3],o=a+a,c=t+t,u=i+i,f=a*o,h=a*c,l=a*u,v=t*c,d=t*u,m=i*u,p=s*o,y=s*c,x=s*u;return e[0]=1-(v+m),e[1]=h+x,e[2]=l-y,e[3]=0,e[4]=h-x,e[5]=1-(f+m),e[6]=d+p,e[7]=0,e[8]=l+y,e[9]=d-p,e[10]=1-(f+v),e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function rl(e,r){var n=new z.ARRAY_TYPE(3),a=-r[0],t=-r[1],i=-r[2],s=r[3],o=r[4],c=r[5],u=r[6],f=r[7],h=a*a+t*t+i*i+s*s;return h>0?(n[0]=(o*s+f*a+c*i-u*t)*2/h,n[1]=(c*s+f*t+u*a-o*i)*2/h,n[2]=(u*s+f*i+o*t-c*a)*2/h):(n[0]=(o*s+f*a+c*i-u*t)*2,n[1]=(c*s+f*t+u*a-o*i)*2,n[2]=(u*s+f*i+o*t-c*a)*2),qa(e,r,n),e}function tl(e,r){return e[0]=r[12],e[1]=r[13],e[2]=r[14],e}function Aa(e,r){var n=r[0],a=r[1],t=r[2],i=r[4],s=r[5],o=r[6],c=r[8],u=r[9],f=r[10];return e[0]=Math.hypot(n,a,t),e[1]=Math.hypot(i,s,o),e[2]=Math.hypot(c,u,f),e}function nl(e,r){var n=new z.ARRAY_TYPE(3);Aa(n,r);var a=1/n[0],t=1/n[1],i=1/n[2],s=r[0]*a,o=r[1]*t,c=r[2]*i,u=r[4]*a,f=r[5]*t,h=r[6]*i,l=r[8]*a,v=r[9]*t,d=r[10]*i,m=s+f+d,p=0;return m>0?(p=Math.sqrt(m+1)*2,e[3]=.25*p,e[0]=(h-v)/p,e[1]=(l-c)/p,e[2]=(o-u)/p):s>f&&s>d?(p=Math.sqrt(1+s-f-d)*2,e[3]=(h-v)/p,e[0]=.25*p,e[1]=(o+u)/p,e[2]=(l+c)/p):f>d?(p=Math.sqrt(1+f-s-d)*2,e[3]=(l-c)/p,e[0]=(o+u)/p,e[1]=.25*p,e[2]=(h+v)/p):(p=Math.sqrt(1+d-s-f)*2,e[3]=(o-u)/p,e[0]=(l+c)/p,e[1]=(h+v)/p,e[2]=.25*p),e}function al(e,r,n,a){var t=r[0],i=r[1],s=r[2],o=r[3],c=t+t,u=i+i,f=s+s,h=t*c,l=t*u,v=t*f,d=i*u,m=i*f,p=s*f,y=o*c,x=o*u,g=o*f,M=a[0],_=a[1],k=a[2];return e[0]=(1-(d+p))*M,e[1]=(l+g)*M,e[2]=(v-x)*M,e[3]=0,e[4]=(l-g)*_,e[5]=(1-(h+p))*_,e[6]=(m+y)*_,e[7]=0,e[8]=(v+x)*k,e[9]=(m-y)*k,e[10]=(1-(h+d))*k,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function il(e,r,n,a,t){var i=r[0],s=r[1],o=r[2],c=r[3],u=i+i,f=s+s,h=o+o,l=i*u,v=i*f,d=i*h,m=s*f,p=s*h,y=o*h,x=c*u,g=c*f,M=c*h,_=a[0],k=a[1],L=a[2],I=t[0],N=t[1],E=t[2],D=(1-(m+y))*_,C=(v+M)*_,W=(d-g)*_,A=(v-M)*k,G=(1-(l+y))*k,he=(p+x)*k,ve=(d+g)*L,Pe=(p-x)*L,Ee=(1-(l+m))*L;return e[0]=D,e[1]=C,e[2]=W,e[3]=0,e[4]=A,e[5]=G,e[6]=he,e[7]=0,e[8]=ve,e[9]=Pe,e[10]=Ee,e[11]=0,e[12]=n[0]+I-(D*I+A*N+ve*E),e[13]=n[1]+N-(C*I+G*N+Pe*E),e[14]=n[2]+E-(W*I+he*N+Ee*E),e[15]=1,e}function sl(e,r){var n=r[0],a=r[1],t=r[2],i=r[3],s=n+n,o=a+a,c=t+t,u=n*s,f=a*s,h=a*o,l=t*s,v=t*o,d=t*c,m=i*s,p=i*o,y=i*c;return e[0]=1-h-d,e[1]=f+y,e[2]=l-p,e[3]=0,e[4]=f-y,e[5]=1-u-d,e[6]=v+m,e[7]=0,e[8]=l+p,e[9]=v-m,e[10]=1-u-h,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function ol(e,r,n,a,t,i,s){var o=1/(n-r),c=1/(t-a),u=1/(i-s);return e[0]=i*2*o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i*2*c,e[6]=0,e[7]=0,e[8]=(n+r)*o,e[9]=(t+a)*c,e[10]=(s+i)*u,e[11]=-1,e[12]=0,e[13]=0,e[14]=s*i*2*u,e[15]=0,e}function ul(e,r,n,a,t){var i=1/Math.tan(r/2),s;return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,t!=null&&t!==1/0?(s=1/(a-t),e[10]=(t+a)*s,e[14]=2*t*a*s):(e[10]=-1,e[14]=-2*a),e}function cl(e,r,n,a){var t=Math.tan(r.upDegrees*Math.PI/180),i=Math.tan(r.downDegrees*Math.PI/180),s=Math.tan(r.leftDegrees*Math.PI/180),o=Math.tan(r.rightDegrees*Math.PI/180),c=2/(s+o),u=2/(t+i);return e[0]=c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=u,e[6]=0,e[7]=0,e[8]=-((s-o)*c*.5),e[9]=(t-i)*u*.5,e[10]=a/(n-a),e[11]=-1,e[12]=0,e[13]=0,e[14]=a*n/(n-a),e[15]=0,e}function fl(e,r,n,a,t,i,s){var o=1/(r-n),c=1/(a-t),u=1/(i-s);return e[0]=-2*o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*c,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*u,e[11]=0,e[12]=(r+n)*o,e[13]=(t+a)*c,e[14]=(s+i)*u,e[15]=1,e}function ll(e,r,n,a){var t,i,s,o,c,u,f,h,l,v,d=r[0],m=r[1],p=r[2],y=a[0],x=a[1],g=a[2],M=n[0],_=n[1],k=n[2];return Math.abs(d-M)<z.EPSILON&&Math.abs(m-_)<z.EPSILON&&Math.abs(p-k)<z.EPSILON?Sa(e):(f=d-M,h=m-_,l=p-k,v=1/Math.hypot(f,h,l),f*=v,h*=v,l*=v,t=x*l-g*h,i=g*f-y*l,s=y*h-x*f,v=Math.hypot(t,i,s),v?(v=1/v,t*=v,i*=v,s*=v):(t=0,i=0,s=0),o=h*s-l*i,c=l*t-f*s,u=f*i-h*t,v=Math.hypot(o,c,u),v?(v=1/v,o*=v,c*=v,u*=v):(o=0,c=0,u=0),e[0]=t,e[1]=o,e[2]=f,e[3]=0,e[4]=i,e[5]=c,e[6]=h,e[7]=0,e[8]=s,e[9]=u,e[10]=l,e[11]=0,e[12]=-(t*d+i*m+s*p),e[13]=-(o*d+c*m+u*p),e[14]=-(f*d+h*m+l*p),e[15]=1,e)}function hl(e,r,n,a){var t=r[0],i=r[1],s=r[2],o=a[0],c=a[1],u=a[2],f=t-n[0],h=i-n[1],l=s-n[2],v=f*f+h*h+l*l;v>0&&(v=1/Math.sqrt(v),f*=v,h*=v,l*=v);var d=c*l-u*h,m=u*f-o*l,p=o*h-c*f;return v=d*d+m*m+p*p,v>0&&(v=1/Math.sqrt(v),d*=v,m*=v,p*=v),e[0]=d,e[1]=m,e[2]=p,e[3]=0,e[4]=h*p-l*m,e[5]=l*d-f*p,e[6]=f*m-h*d,e[7]=0,e[8]=f,e[9]=h,e[10]=l,e[11]=0,e[12]=t,e[13]=i,e[14]=s,e[15]=1,e}function vl(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function dl(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function pl(e,r,n){return e[0]=r[0]+n[0],e[1]=r[1]+n[1],e[2]=r[2]+n[2],e[3]=r[3]+n[3],e[4]=r[4]+n[4],e[5]=r[5]+n[5],e[6]=r[6]+n[6],e[7]=r[7]+n[7],e[8]=r[8]+n[8],e[9]=r[9]+n[9],e[10]=r[10]+n[10],e[11]=r[11]+n[11],e[12]=r[12]+n[12],e[13]=r[13]+n[13],e[14]=r[14]+n[14],e[15]=r[15]+n[15],e}function Pa(e,r,n){return e[0]=r[0]-n[0],e[1]=r[1]-n[1],e[2]=r[2]-n[2],e[3]=r[3]-n[3],e[4]=r[4]-n[4],e[5]=r[5]-n[5],e[6]=r[6]-n[6],e[7]=r[7]-n[7],e[8]=r[8]-n[8],e[9]=r[9]-n[9],e[10]=r[10]-n[10],e[11]=r[11]-n[11],e[12]=r[12]-n[12],e[13]=r[13]-n[13],e[14]=r[14]-n[14],e[15]=r[15]-n[15],e}function ml(e,r,n){return e[0]=r[0]*n,e[1]=r[1]*n,e[2]=r[2]*n,e[3]=r[3]*n,e[4]=r[4]*n,e[5]=r[5]*n,e[6]=r[6]*n,e[7]=r[7]*n,e[8]=r[8]*n,e[9]=r[9]*n,e[10]=r[10]*n,e[11]=r[11]*n,e[12]=r[12]*n,e[13]=r[13]*n,e[14]=r[14]*n,e[15]=r[15]*n,e}function yl(e,r,n,a){return e[0]=r[0]+n[0]*a,e[1]=r[1]+n[1]*a,e[2]=r[2]+n[2]*a,e[3]=r[3]+n[3]*a,e[4]=r[4]+n[4]*a,e[5]=r[5]+n[5]*a,e[6]=r[6]+n[6]*a,e[7]=r[7]+n[7]*a,e[8]=r[8]+n[8]*a,e[9]=r[9]+n[9]*a,e[10]=r[10]+n[10]*a,e[11]=r[11]+n[11]*a,e[12]=r[12]+n[12]*a,e[13]=r[13]+n[13]*a,e[14]=r[14]+n[14]*a,e[15]=r[15]+n[15]*a,e}function gl(e,r){return e[0]===r[0]&&e[1]===r[1]&&e[2]===r[2]&&e[3]===r[3]&&e[4]===r[4]&&e[5]===r[5]&&e[6]===r[6]&&e[7]===r[7]&&e[8]===r[8]&&e[9]===r[9]&&e[10]===r[10]&&e[11]===r[11]&&e[12]===r[12]&&e[13]===r[13]&&e[14]===r[14]&&e[15]===r[15]}function Ml(e,r){var n=e[0],a=e[1],t=e[2],i=e[3],s=e[4],o=e[5],c=e[6],u=e[7],f=e[8],h=e[9],l=e[10],v=e[11],d=e[12],m=e[13],p=e[14],y=e[15],x=r[0],g=r[1],M=r[2],_=r[3],k=r[4],L=r[5],I=r[6],N=r[7],E=r[8],D=r[9],C=r[10],W=r[11],A=r[12],G=r[13],he=r[14],ve=r[15];return Math.abs(n-x)<=z.EPSILON*Math.max(1,Math.abs(n),Math.abs(x))&&Math.abs(a-g)<=z.EPSILON*Math.max(1,Math.abs(a),Math.abs(g))&&Math.abs(t-M)<=z.EPSILON*Math.max(1,Math.abs(t),Math.abs(M))&&Math.abs(i-_)<=z.EPSILON*Math.max(1,Math.abs(i),Math.abs(_))&&Math.abs(s-k)<=z.EPSILON*Math.max(1,Math.abs(s),Math.abs(k))&&Math.abs(o-L)<=z.EPSILON*Math.max(1,Math.abs(o),Math.abs(L))&&Math.abs(c-I)<=z.EPSILON*Math.max(1,Math.abs(c),Math.abs(I))&&Math.abs(u-N)<=z.EPSILON*Math.max(1,Math.abs(u),Math.abs(N))&&Math.abs(f-E)<=z.EPSILON*Math.max(1,Math.abs(f),Math.abs(E))&&Math.abs(h-D)<=z.EPSILON*Math.max(1,Math.abs(h),Math.abs(D))&&Math.abs(l-C)<=z.EPSILON*Math.max(1,Math.abs(l),Math.abs(C))&&Math.abs(v-W)<=z.EPSILON*Math.max(1,Math.abs(v),Math.abs(W))&&Math.abs(d-A)<=z.EPSILON*Math.max(1,Math.abs(d),Math.abs(A))&&Math.abs(m-G)<=z.EPSILON*Math.max(1,Math.abs(m),Math.abs(G))&&Math.abs(p-he)<=z.EPSILON*Math.max(1,Math.abs(p),Math.abs(he))&&Math.abs(y-ve)<=z.EPSILON*Math.max(1,Math.abs(y),Math.abs(ve))}var bl=wa;w.mul=bl;var xl=Pa;w.sub=xl});var Fr=R(q=>{"use strict";function Br(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Br=function(n){return typeof n}:Br=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Br(e)}Object.defineProperty(q,"__esModule",{value:!0});q.create=Ia;q.clone=Ol;q.fromValues=_l;q.copy=Rl;q.set=Sl;q.add=wl;q.subtract=Na;q.multiply=Ca;q.divide=La;q.ceil=ql;q.floor=Al;q.min=Pl;q.max=El;q.round=Tl;q.scale=Il;q.scaleAndAdd=Nl;q.distance=Da;q.squaredDistance=Wa;q.length=za;q.squaredLength=Ba;q.negate=Cl;q.inverse=Ll;q.normalize=Dl;q.dot=Wl;q.cross=zl;q.lerp=Bl;q.random=Fl;q.transformMat4=Vl;q.transformQuat=Yl;q.zero=Zl;q.str=Ul;q.exactEquals=Xl;q.equals=Gl;q.forEach=q.sqrLen=q.len=q.sqrDist=q.dist=q.div=q.mul=q.sub=void 0;var ne=kl(Le());function Ta(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return Ta=function(){return e},e}function kl(e){if(e&&e.__esModule)return e;if(e===null||Br(e)!=="object"&&typeof e!="function")return{default:e};var r=Ta();if(r&&r.has(e))return r.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var i=a?Object.getOwnPropertyDescriptor(e,t):null;i&&(i.get||i.set)?Object.defineProperty(n,t,i):n[t]=e[t]}return n.default=e,r&&r.set(e,n),n}function Ia(){var e=new ne.ARRAY_TYPE(4);return ne.ARRAY_TYPE!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Ol(e){var r=new ne.ARRAY_TYPE(4);return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r}function _l(e,r,n,a){var t=new ne.ARRAY_TYPE(4);return t[0]=e,t[1]=r,t[2]=n,t[3]=a,t}function Rl(e,r){return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e}function Sl(e,r,n,a,t){return e[0]=r,e[1]=n,e[2]=a,e[3]=t,e}function wl(e,r,n){return e[0]=r[0]+n[0],e[1]=r[1]+n[1],e[2]=r[2]+n[2],e[3]=r[3]+n[3],e}function Na(e,r,n){return e[0]=r[0]-n[0],e[1]=r[1]-n[1],e[2]=r[2]-n[2],e[3]=r[3]-n[3],e}function Ca(e,r,n){return e[0]=r[0]*n[0],e[1]=r[1]*n[1],e[2]=r[2]*n[2],e[3]=r[3]*n[3],e}function La(e,r,n){return e[0]=r[0]/n[0],e[1]=r[1]/n[1],e[2]=r[2]/n[2],e[3]=r[3]/n[3],e}function ql(e,r){return e[0]=Math.ceil(r[0]),e[1]=Math.ceil(r[1]),e[2]=Math.ceil(r[2]),e[3]=Math.ceil(r[3]),e}function Al(e,r){return e[0]=Math.floor(r[0]),e[1]=Math.floor(r[1]),e[2]=Math.floor(r[2]),e[3]=Math.floor(r[3]),e}function Pl(e,r,n){return e[0]=Math.min(r[0],n[0]),e[1]=Math.min(r[1],n[1]),e[2]=Math.min(r[2],n[2]),e[3]=Math.min(r[3],n[3]),e}function El(e,r,n){return e[0]=Math.max(r[0],n[0]),e[1]=Math.max(r[1],n[1]),e[2]=Math.max(r[2],n[2]),e[3]=Math.max(r[3],n[3]),e}function Tl(e,r){return e[0]=Math.round(r[0]),e[1]=Math.round(r[1]),e[2]=Math.round(r[2]),e[3]=Math.round(r[3]),e}function Il(e,r,n){return e[0]=r[0]*n,e[1]=r[1]*n,e[2]=r[2]*n,e[3]=r[3]*n,e}function Nl(e,r,n,a){return e[0]=r[0]+n[0]*a,e[1]=r[1]+n[1]*a,e[2]=r[2]+n[2]*a,e[3]=r[3]+n[3]*a,e}function Da(e,r){var n=r[0]-e[0],a=r[1]-e[1],t=r[2]-e[2],i=r[3]-e[3];return Math.hypot(n,a,t,i)}function Wa(e,r){var n=r[0]-e[0],a=r[1]-e[1],t=r[2]-e[2],i=r[3]-e[3];return n*n+a*a+t*t+i*i}function za(e){var r=e[0],n=e[1],a=e[2],t=e[3];return Math.hypot(r,n,a,t)}function Ba(e){var r=e[0],n=e[1],a=e[2],t=e[3];return r*r+n*n+a*a+t*t}function Cl(e,r){return e[0]=-r[0],e[1]=-r[1],e[2]=-r[2],e[3]=-r[3],e}function Ll(e,r){return e[0]=1/r[0],e[1]=1/r[1],e[2]=1/r[2],e[3]=1/r[3],e}function Dl(e,r){var n=r[0],a=r[1],t=r[2],i=r[3],s=n*n+a*a+t*t+i*i;return s>0&&(s=1/Math.sqrt(s)),e[0]=n*s,e[1]=a*s,e[2]=t*s,e[3]=i*s,e}function Wl(e,r){return e[0]*r[0]+e[1]*r[1]+e[2]*r[2]+e[3]*r[3]}function zl(e,r,n,a){var t=n[0]*a[1]-n[1]*a[0],i=n[0]*a[2]-n[2]*a[0],s=n[0]*a[3]-n[3]*a[0],o=n[1]*a[2]-n[2]*a[1],c=n[1]*a[3]-n[3]*a[1],u=n[2]*a[3]-n[3]*a[2],f=r[0],h=r[1],l=r[2],v=r[3];return e[0]=h*u-l*c+v*o,e[1]=-(f*u)+l*s-v*i,e[2]=f*c-h*s+v*t,e[3]=-(f*o)+h*i-l*t,e}function Bl(e,r,n,a){var t=r[0],i=r[1],s=r[2],o=r[3];return e[0]=t+a*(n[0]-t),e[1]=i+a*(n[1]-i),e[2]=s+a*(n[2]-s),e[3]=o+a*(n[3]-o),e}function Fl(e,r){r=r||1;var n,a,t,i,s,o;do n=ne.RANDOM()*2-1,a=ne.RANDOM()*2-1,s=n*n+a*a;while(s>=1);do t=ne.RANDOM()*2-1,i=ne.RANDOM()*2-1,o=t*t+i*i;while(o>=1);var c=Math.sqrt((1-s)/o);return e[0]=r*n,e[1]=r*a,e[2]=r*t*c,e[3]=r*i*c,e}function Vl(e,r,n){var a=r[0],t=r[1],i=r[2],s=r[3];return e[0]=n[0]*a+n[4]*t+n[8]*i+n[12]*s,e[1]=n[1]*a+n[5]*t+n[9]*i+n[13]*s,e[2]=n[2]*a+n[6]*t+n[10]*i+n[14]*s,e[3]=n[3]*a+n[7]*t+n[11]*i+n[15]*s,e}function Yl(e,r,n){var a=r[0],t=r[1],i=r[2],s=n[0],o=n[1],c=n[2],u=n[3],f=u*a+o*i-c*t,h=u*t+c*a-s*i,l=u*i+s*t-o*a,v=-s*a-o*t-c*i;return e[0]=f*u+v*-s+h*-c-l*-o,e[1]=h*u+v*-o+l*-s-f*-c,e[2]=l*u+v*-c+f*-o-h*-s,e[3]=r[3],e}function Zl(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=0,e}function Ul(e){return"vec4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function Xl(e,r){return e[0]===r[0]&&e[1]===r[1]&&e[2]===r[2]&&e[3]===r[3]}function Gl(e,r){var n=e[0],a=e[1],t=e[2],i=e[3],s=r[0],o=r[1],c=r[2],u=r[3];return Math.abs(n-s)<=ne.EPSILON*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(a-o)<=ne.EPSILON*Math.max(1,Math.abs(a),Math.abs(o))&&Math.abs(t-c)<=ne.EPSILON*Math.max(1,Math.abs(t),Math.abs(c))&&Math.abs(i-u)<=ne.EPSILON*Math.max(1,Math.abs(i),Math.abs(u))}var Ql=Na;q.sub=Ql;var $l=Ca;q.mul=$l;var Hl=La;q.div=Hl;var Kl=Da;q.dist=Kl;var Jl=Wa;q.sqrDist=Jl;var jl=za;q.len=jl;var eh=Ba;q.sqrLen=eh;var rh=function(){var e=Ia();return function(r,n,a,t,i,s){var o,c;for(n||(n=4),a||(a=0),t?c=Math.min(t*n+a,r.length):c=r.length,o=a;o<c;o+=n)e[0]=r[o],e[1]=r[o+1],e[2]=r[o+2],e[3]=r[o+3],i(e,e,s),r[o]=e[0],r[o+1]=e[1],r[o+2]=e[2],r[o+3]=e[3];return r}}();q.forEach=rh});var Rt=R(Yr=>{"use strict";var Fe=U(),th=re();Object.defineProperty(Yr,"__esModule",{value:!0});Yr.default=void 0;var nh=Fe(cr()),ah=Fe($()),ih=Fe(H()),sh=Fe(ie()),oh=Fe(se()),Fa=Fe(oe()),Je=ue(),uh=Fe(kt()),Va=Xe(),X=Vr(Ea()),ch=Vr(wr()),fh=Vr(be()),lh=Vr(Fr());function Ya(e){if(typeof WeakMap!="function")return null;var r=new WeakMap,n=new WeakMap;return(Ya=function(t){return t?n:r})(e)}function Vr(e,r){if(!r&&e&&e.__esModule)return e;if(e===null||th(e)!=="object"&&typeof e!="function")return{default:e};var n=Ya(r);if(n&&n.has(e))return n.get(e);var a={},t=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)){var s=t?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(a,i,s):a[i]=e[i]}return a.default=e,n&&n.set(e,a),a}function hh(e){var r=vh();return function(){var a=(0,Fa.default)(e),t;if(r){var i=(0,Fa.default)(this).constructor;t=Reflect.construct(a,arguments,i)}else t=a.apply(this,arguments);return(0,oh.default)(this,t)}}function vh(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Za=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),dh=Object.freeze([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),ph=Object.freeze({COL0ROW0:0,COL0ROW1:1,COL0ROW2:2,COL0ROW3:3,COL1ROW0:4,COL1ROW1:5,COL1ROW2:6,COL1ROW3:7,COL2ROW0:8,COL2ROW1:9,COL2ROW2:10,COL2ROW3:11,COL3ROW0:12,COL3ROW1:13,COL3ROW2:14,COL3ROW3:15}),je={},mh=function(e){(0,sh.default)(n,e);var r=hh(n);function n(a){var t;return(0,ah.default)(this,n),t=r.call(this,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(a)?t.copy(a):t.identity(),t}return(0,ih.default)(n,[{key:"INDICES",get:function(){return ph}},{key:"ELEMENTS",get:function(){return 16}},{key:"RANK",get:function(){return 4}},{key:"copy",value:function(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this[9]=t[9],this[10]=t[10],this[11]=t[11],this[12]=t[12],this[13]=t[13],this[14]=t[14],this[15]=t[15],this.check()}},{key:"set",value:function(t,i,s,o,c,u,f,h,l,v,d,m,p,y,x,g){return this[0]=t,this[1]=i,this[2]=s,this[3]=o,this[4]=c,this[5]=u,this[6]=f,this[7]=h,this[8]=l,this[9]=v,this[10]=d,this[11]=m,this[12]=p,this[13]=y,this[14]=x,this[15]=g,this.check()}},{key:"setRowMajor",value:function(t,i,s,o,c,u,f,h,l,v,d,m,p,y,x,g){return this[0]=t,this[1]=c,this[2]=l,this[3]=p,this[4]=i,this[5]=u,this[6]=v,this[7]=y,this[8]=s,this[9]=f,this[10]=d,this[11]=x,this[12]=o,this[13]=h,this[14]=m,this[15]=g,this.check()}},{key:"toRowMajor",value:function(t){return t[0]=this[0],t[1]=this[4],t[2]=this[8],t[3]=this[12],t[4]=this[1],t[5]=this[5],t[6]=this[9],t[7]=this[13],t[8]=this[2],t[9]=this[6],t[10]=this[10],t[11]=this[14],t[12]=this[3],t[13]=this[7],t[14]=this[11],t[15]=this[15],t}},{key:"identity",value:function(){return this.copy(Za)}},{key:"fromQuaternion",value:function(t){return X.fromQuat(this,t),this.check()}},{key:"frustum",value:function(t){var i=t.left,s=t.right,o=t.bottom,c=t.top,u=t.near,f=t.far;return f===1/0?n._computeInfinitePerspectiveOffCenter(this,i,s,o,c,u):X.frustum(this,i,s,o,c,u,f),this.check()}},{key:"lookAt",value:function(t,i,s){if(arguments.length===1){var o=t;t=o.eye,i=o.center,s=o.up}return i=i||[0,0,0],s=s||[0,1,0],X.lookAt(this,t,i,s),this.check()}},{key:"ortho",value:function(t){var i=t.left,s=t.right,o=t.bottom,c=t.top,u=t.near,f=u===void 0?.1:u,h=t.far,l=h===void 0?500:h;return X.ortho(this,i,s,o,c,f,l),this.check()}},{key:"orthographic",value:function(t){var i=t.fovy,s=i===void 0?45*Math.PI/180:i,o=t.aspect,c=o===void 0?1:o,u=t.focalDistance,f=u===void 0?1:u,h=t.near,l=h===void 0?.1:h,v=t.far,d=v===void 0?500:v;if(s>Math.PI*2)throw Error("radians");var m=s/2,p=f*Math.tan(m),y=p*c;return new n().ortho({left:-y,right:y,bottom:-p,top:p,near:l,far:d})}},{key:"perspective",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=t.fovy,s=i===void 0?void 0:i,o=t.fov,c=o===void 0?45*Math.PI/180:o,u=t.aspect,f=u===void 0?1:u,h=t.near,l=h===void 0?.1:h,v=t.far,d=v===void 0?500:v;if(s=s||c,s>Math.PI*2)throw Error("radians");return X.perspective(this,s,f,l,d),this.check()}},{key:"determinant",value:function(){return X.determinant(this)}},{key:"getScale",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[-0,-0,-0];return t[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),t[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),t[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),t}},{key:"getTranslation",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[-0,-0,-0];return t[0]=this[12],t[1]=this[13],t[2]=this[14],t}},{key:"getRotation",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,s=this.getScale(i||[-0,-0,-0]),o=1/s[0],c=1/s[1],u=1/s[2];return t[0]=this[0]*o,t[1]=this[1]*c,t[2]=this[2]*u,t[3]=0,t[4]=this[4]*o,t[5]=this[5]*c,t[6]=this[6]*u,t[7]=0,t[8]=this[8]*o,t[9]=this[9]*c,t[10]=this[10]*u,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},{key:"getRotationMatrix3",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[-0,-0,-0,-0,-0,-0,-0,-0,-0],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,s=this.getScale(i||[-0,-0,-0]),o=1/s[0],c=1/s[1],u=1/s[2];return t[0]=this[0]*o,t[1]=this[1]*c,t[2]=this[2]*u,t[3]=this[4]*o,t[4]=this[5]*c,t[5]=this[6]*u,t[6]=this[8]*o,t[7]=this[9]*c,t[8]=this[10]*u,t}},{key:"transpose",value:function(){return X.transpose(this,this),this.check()}},{key:"invert",value:function(){return X.invert(this,this),this.check()}},{key:"multiplyLeft",value:function(t){return X.multiply(this,t,this),this.check()}},{key:"multiplyRight",value:function(t){return X.multiply(this,this,t),this.check()}},{key:"rotateX",value:function(t){return X.rotateX(this,this,t),this.check()}},{key:"rotateY",value:function(t){return X.rotateY(this,this,t),this.check()}},{key:"rotateZ",value:function(t){return X.rotateZ(this,this,t),this.check()}},{key:"rotateXYZ",value:function(t){var i=(0,nh.default)(t,3),s=i[0],o=i[1],c=i[2];return this.rotateX(s).rotateY(o).rotateZ(c)}},{key:"rotateAxis",value:function(t,i){return X.rotate(this,this,t,i),this.check()}},{key:"scale",value:function(t){return Array.isArray(t)?X.scale(this,this,t):X.scale(this,this,[t,t,t]),this.check()}},{key:"translate",value:function(t){return X.translate(this,this,t),this.check()}},{key:"transform",value:function(t,i){return t.length===4?(i=lh.transformMat4(i||[-0,-0,-0,-0],t,this),(0,Je.checkVector)(i,4),i):this.transformAsPoint(t,i)}},{key:"transformAsPoint",value:function(t,i){var s=t.length;switch(s){case 2:i=ch.transformMat4(i||[-0,-0],t,this);break;case 3:i=fh.transformMat4(i||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return(0,Je.checkVector)(i,t.length),i}},{key:"transformAsVector",value:function(t,i){switch(t.length){case 2:i=(0,Va.vec2_transformMat4AsVector)(i||[-0,-0],t,this);break;case 3:i=(0,Va.vec3_transformMat4AsVector)(i||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return(0,Je.checkVector)(i,t.length),i}},{key:"makeRotationX",value:function(t){return this.identity().rotateX(t)}},{key:"makeTranslation",value:function(t,i,s){return this.identity().translate([t,i,s])}},{key:"transformPoint",value:function(t,i){return(0,Je.deprecated)("Matrix4.transformPoint","3.0"),this.transformAsPoint(t,i)}},{key:"transformVector",value:function(t,i){return(0,Je.deprecated)("Matrix4.transformVector","3.0"),this.transformAsPoint(t,i)}},{key:"transformDirection",value:function(t,i){return(0,Je.deprecated)("Matrix4.transformDirection","3.0"),this.transformAsVector(t,i)}}],[{key:"IDENTITY",get:function(){return je.IDENTITY=je.IDENTITY||Object.freeze(new n(Za)),je.IDENTITY}},{key:"ZERO",get:function(){return je.ZERO=je.ZERO||Object.freeze(new n(dh)),je.ZERO}},{key:"_computeInfinitePerspectiveOffCenter",value:function(t,i,s,o,c,u){var f=2*u/(s-i),h=2*u/(c-o),l=(s+i)/(s-i),v=(c+o)/(c-o),d=-1,m=-1,p=-2*u;return t[0]=f,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=h,t[6]=0,t[7]=0,t[8]=l,t[9]=v,t[10]=d,t[11]=m,t[12]=0,t[13]=0,t[14]=p,t[15]=0,t}}]),n}(uh.default);Yr.default=mh});var ri=R(b=>{"use strict";function Zr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Zr=function(n){return typeof n}:Zr=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Zr(e)}Object.defineProperty(b,"__esModule",{value:!0});b.create=St;b.identity=gh;b.setAxisAngle=Xa;b.getAxisAngle=Mh;b.getAngle=bh;b.multiply=Ga;b.rotateX=xh;b.rotateY=kh;b.rotateZ=Oh;b.calculateW=_h;b.exp=Qa;b.ln=$a;b.pow=Rh;b.slerp=Xr;b.random=Sh;b.invert=wh;b.conjugate=qh;b.fromMat3=Ha;b.fromEuler=Ah;b.str=Ph;b.setAxes=b.sqlerp=b.rotationTo=b.equals=b.exactEquals=b.normalize=b.sqrLen=b.squaredLength=b.len=b.length=b.lerp=b.dot=b.scale=b.mul=b.add=b.set=b.copy=b.fromValues=b.clone=void 0;var Ve=Ur(Le()),yh=Ur(Ot()),xe=Ur(be()),j=Ur(Fr());function Ua(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return Ua=function(){return e},e}function Ur(e){if(e&&e.__esModule)return e;if(e===null||Zr(e)!=="object"&&typeof e!="function")return{default:e};var r=Ua();if(r&&r.has(e))return r.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var i=a?Object.getOwnPropertyDescriptor(e,t):null;i&&(i.get||i.set)?Object.defineProperty(n,t,i):n[t]=e[t]}return n.default=e,r&&r.set(e,n),n}function St(){var e=new Ve.ARRAY_TYPE(4);return Ve.ARRAY_TYPE!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function gh(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function Xa(e,r,n){n=n*.5;var a=Math.sin(n);return e[0]=a*r[0],e[1]=a*r[1],e[2]=a*r[2],e[3]=Math.cos(n),e}function Mh(e,r){var n=Math.acos(r[3])*2,a=Math.sin(n/2);return a>Ve.EPSILON?(e[0]=r[0]/a,e[1]=r[1]/a,e[2]=r[2]/a):(e[0]=1,e[1]=0,e[2]=0),n}function bh(e,r){var n=Ja(e,r);return Math.acos(2*n*n-1)}function Ga(e,r,n){var a=r[0],t=r[1],i=r[2],s=r[3],o=n[0],c=n[1],u=n[2],f=n[3];return e[0]=a*f+s*o+t*u-i*c,e[1]=t*f+s*c+i*o-a*u,e[2]=i*f+s*u+a*c-t*o,e[3]=s*f-a*o-t*c-i*u,e}function xh(e,r,n){n*=.5;var a=r[0],t=r[1],i=r[2],s=r[3],o=Math.sin(n),c=Math.cos(n);return e[0]=a*c+s*o,e[1]=t*c+i*o,e[2]=i*c-t*o,e[3]=s*c-a*o,e}function kh(e,r,n){n*=.5;var a=r[0],t=r[1],i=r[2],s=r[3],o=Math.sin(n),c=Math.cos(n);return e[0]=a*c-i*o,e[1]=t*c+s*o,e[2]=i*c+a*o,e[3]=s*c-t*o,e}function Oh(e,r,n){n*=.5;var a=r[0],t=r[1],i=r[2],s=r[3],o=Math.sin(n),c=Math.cos(n);return e[0]=a*c+t*o,e[1]=t*c-a*o,e[2]=i*c+s*o,e[3]=s*c-i*o,e}function _h(e,r){var n=r[0],a=r[1],t=r[2];return e[0]=n,e[1]=a,e[2]=t,e[3]=Math.sqrt(Math.abs(1-n*n-a*a-t*t)),e}function Qa(e,r){var n=r[0],a=r[1],t=r[2],i=r[3],s=Math.sqrt(n*n+a*a+t*t),o=Math.exp(i),c=s>0?o*Math.sin(s)/s:0;return e[0]=n*c,e[1]=a*c,e[2]=t*c,e[3]=o*Math.cos(s),e}function $a(e,r){var n=r[0],a=r[1],t=r[2],i=r[3],s=Math.sqrt(n*n+a*a+t*t),o=s>0?Math.atan2(s,i)/s:0;return e[0]=n*o,e[1]=a*o,e[2]=t*o,e[3]=.5*Math.log(n*n+a*a+t*t+i*i),e}function Rh(e,r,n){return $a(e,r),Ka(e,e,n),Qa(e,e),e}function Xr(e,r,n,a){var t=r[0],i=r[1],s=r[2],o=r[3],c=n[0],u=n[1],f=n[2],h=n[3],l,v,d,m,p;return v=t*c+i*u+s*f+o*h,v<0&&(v=-v,c=-c,u=-u,f=-f,h=-h),1-v>Ve.EPSILON?(l=Math.acos(v),d=Math.sin(l),m=Math.sin((1-a)*l)/d,p=Math.sin(a*l)/d):(m=1-a,p=a),e[0]=m*t+p*c,e[1]=m*i+p*u,e[2]=m*s+p*f,e[3]=m*o+p*h,e}function Sh(e){var r=Ve.RANDOM(),n=Ve.RANDOM(),a=Ve.RANDOM(),t=Math.sqrt(1-r),i=Math.sqrt(r);return e[0]=t*Math.sin(2*Math.PI*n),e[1]=t*Math.cos(2*Math.PI*n),e[2]=i*Math.sin(2*Math.PI*a),e[3]=i*Math.cos(2*Math.PI*a),e}function wh(e,r){var n=r[0],a=r[1],t=r[2],i=r[3],s=n*n+a*a+t*t+i*i,o=s?1/s:0;return e[0]=-n*o,e[1]=-a*o,e[2]=-t*o,e[3]=i*o,e}function qh(e,r){return e[0]=-r[0],e[1]=-r[1],e[2]=-r[2],e[3]=r[3],e}function Ha(e,r){var n=r[0]+r[4]+r[8],a;if(n>0)a=Math.sqrt(n+1),e[3]=.5*a,a=.5/a,e[0]=(r[5]-r[7])*a,e[1]=(r[6]-r[2])*a,e[2]=(r[1]-r[3])*a;else{var t=0;r[4]>r[0]&&(t=1),r[8]>r[t*3+t]&&(t=2);var i=(t+1)%3,s=(t+2)%3;a=Math.sqrt(r[t*3+t]-r[i*3+i]-r[s*3+s]+1),e[t]=.5*a,a=.5/a,e[3]=(r[i*3+s]-r[s*3+i])*a,e[i]=(r[i*3+t]+r[t*3+i])*a,e[s]=(r[s*3+t]+r[t*3+s])*a}return e}function Ah(e,r,n,a){var t=.5*Math.PI/180;r*=t,n*=t,a*=t;var i=Math.sin(r),s=Math.cos(r),o=Math.sin(n),c=Math.cos(n),u=Math.sin(a),f=Math.cos(a);return e[0]=i*c*f-s*o*u,e[1]=s*o*f+i*c*u,e[2]=s*c*u-i*o*f,e[3]=s*c*f+i*o*u,e}function Ph(e){return"quat("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}var Eh=j.clone;b.clone=Eh;var Th=j.fromValues;b.fromValues=Th;var Ih=j.copy;b.copy=Ih;var Nh=j.set;b.set=Nh;var Ch=j.add;b.add=Ch;var Lh=Ga;b.mul=Lh;var Ka=j.scale;b.scale=Ka;var Ja=j.dot;b.dot=Ja;var Dh=j.lerp;b.lerp=Dh;var ja=j.length;b.length=ja;var Wh=ja;b.len=Wh;var ei=j.squaredLength;b.squaredLength=ei;var zh=ei;b.sqrLen=zh;var wt=j.normalize;b.normalize=wt;var Bh=j.exactEquals;b.exactEquals=Bh;var Fh=j.equals;b.equals=Fh;var Vh=function(){var e=xe.create(),r=xe.fromValues(1,0,0),n=xe.fromValues(0,1,0);return function(a,t,i){var s=xe.dot(t,i);return s<-.999999?(xe.cross(e,r,t),xe.len(e)<1e-6&&xe.cross(e,n,t),xe.normalize(e,e),Xa(a,e,Math.PI),a):s>.999999?(a[0]=0,a[1]=0,a[2]=0,a[3]=1,a):(xe.cross(e,t,i),a[0]=e[0],a[1]=e[1],a[2]=e[2],a[3]=1+s,wt(a,a))}}();b.rotationTo=Vh;var Yh=function(){var e=St(),r=St();return function(n,a,t,i,s,o){return Xr(e,a,s,o),Xr(r,t,i,o),Xr(n,e,r,2*o*(1-o)),n}}();b.sqlerp=Yh;var Zh=function(){var e=yh.create();return function(r,n,a,t){return e[0]=a[0],e[3]=a[1],e[6]=a[2],e[1]=t[0],e[4]=t[1],e[7]=t[2],e[2]=-n[0],e[5]=-n[1],e[8]=-n[2],wt(r,Ha(r,e))}}();b.setAxes=Zh});var qt=R(Gr=>{"use strict";var Ye=U(),Uh=re();Object.defineProperty(Gr,"__esModule",{value:!0});Gr.default=void 0;var Xh=Ye($()),Gh=Ye(H()),Qh=Ye(ie()),$h=Ye(se()),ti=Ye(oe()),Hh=Ye(or()),fr=ue(),ni=Ye(Ie()),Z=ii(ri()),Kh=ii(Fr());function ai(e){if(typeof WeakMap!="function")return null;var r=new WeakMap,n=new WeakMap;return(ai=function(t){return t?n:r})(e)}function ii(e,r){if(!r&&e&&e.__esModule)return e;if(e===null||Uh(e)!=="object"&&typeof e!="function")return{default:e};var n=ai(r);if(n&&n.has(e))return n.get(e);var a={},t=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)){var s=t?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(a,i,s):a[i]=e[i]}return a.default=e,n&&n.set(e,a),a}function Jh(e){var r=jh();return function(){var a=(0,ti.default)(e),t;if(r){var i=(0,ti.default)(this).constructor;t=Reflect.construct(a,arguments,i)}else t=a.apply(this,arguments);return(0,$h.default)(this,t)}}function jh(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var e0=[0,0,0,1],r0=function(e){(0,Qh.default)(n,e);var r=Jh(n);function n(){var a,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1;return(0,Xh.default)(this,n),a=r.call(this,-0,-0,-0,-0),Array.isArray(t)&&arguments.length===1?a.copy(t):a.set(t,i,s,o),a}return(0,Gh.default)(n,[{key:"copy",value:function(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}},{key:"set",value:function(t,i,s,o){return this[0]=t,this[1]=i,this[2]=s,this[3]=o,this.check()}},{key:"fromMatrix3",value:function(t){return Z.fromMat3(this,t),this.check()}},{key:"identity",value:function(){return Z.identity(this),this.check()}},{key:"fromAxisRotation",value:function(t,i){return Z.setAxisAngle(this,t,i),this.check()}},{key:"setAxisAngle",value:function(t,i){return this.fromAxisRotation(t,i)}},{key:"ELEMENTS",get:function(){return 4}},{key:"x",get:function(){return this[0]},set:function(t){this[0]=(0,fr.checkNumber)(t)}},{key:"y",get:function(){return this[1]},set:function(t){this[1]=(0,fr.checkNumber)(t)}},{key:"z",get:function(){return this[2]},set:function(t){this[2]=(0,fr.checkNumber)(t)}},{key:"w",get:function(){return this[3]},set:function(t){this[3]=(0,fr.checkNumber)(t)}},{key:"len",value:function(){return Z.length(this)}},{key:"lengthSquared",value:function(){return Z.squaredLength(this)}},{key:"dot",value:function(t,i){if(i!==void 0)throw new Error("Quaternion.dot only takes one argument");return Z.dot(this,t)}},{key:"rotationTo",value:function(t,i){return Z.rotationTo(this,t,i),this.check()}},{key:"add",value:function(t,i){if(i!==void 0)throw new Error("Quaternion.add only takes one argument");return Z.add(this,this,t),this.check()}},{key:"calculateW",value:function(){return Z.calculateW(this,this),this.check()}},{key:"conjugate",value:function(){return Z.conjugate(this,this),this.check()}},{key:"invert",value:function(){return Z.invert(this,this),this.check()}},{key:"lerp",value:function(t,i,s){return Z.lerp(this,t,i,s),this.check()}},{key:"multiplyRight",value:function(t,i){return(0,ni.default)(!i),Z.multiply(this,this,t),this.check()}},{key:"multiplyLeft",value:function(t,i){return(0,ni.default)(!i),Z.multiply(this,t,this),this.check()}},{key:"normalize",value:function(){var t=this.len(),i=t>0?1/t:0;return this[0]=this[0]*i,this[1]=this[1]*i,this[2]=this[2]*i,this[3]=this[3]*i,t===0&&(this[3]=1),this.check()}},{key:"rotateX",value:function(t){return Z.rotateX(this,this,t),this.check()}},{key:"rotateY",value:function(t){return Z.rotateY(this,this,t),this.check()}},{key:"rotateZ",value:function(t){return Z.rotateZ(this,this,t),this.check()}},{key:"scale",value:function(t){return Z.scale(this,this,t),this.check()}},{key:"slerp",value:function(t,i,s){switch(arguments.length){case 1:var o=arguments[0],c=o.start;t=c===void 0?e0:c,i=o.target,s=o.ratio;break;case 2:var u=Array.prototype.slice.call(arguments);i=u[0],s=u[1],t=this;break;default:}return Z.slerp(this,t,i,s),this.check()}},{key:"transformVector4",value:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t;return Kh.transformQuat(i,t,this),(0,fr.checkVector)(i,4)}},{key:"lengthSq",value:function(){return this.lengthSquared()}},{key:"setFromAxisAngle",value:function(t,i){return this.setAxisAngle(t,i)}},{key:"premultiply",value:function(t,i){return this.multiplyLeft(t,i)}},{key:"multiply",value:function(t,i){return this.multiplyRight(t,i)}}]),n}(Hh.default);Gr.default=r0});var si=R(Qr=>{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});Qr.default=void 0;var t0={EPSILON1:.1,EPSILON2:.01,EPSILON3:.001,EPSILON4:1e-4,EPSILON5:1e-5,EPSILON6:1e-6,EPSILON7:1e-7,EPSILON8:1e-8,EPSILON9:1e-9,EPSILON10:1e-10,EPSILON11:1e-11,EPSILON12:1e-12,EPSILON13:1e-13,EPSILON14:1e-14,EPSILON15:1e-15,EPSILON16:1e-16,EPSILON17:1e-17,EPSILON18:1e-18,EPSILON19:1e-19,EPSILON20:1e-20,PI_OVER_TWO:Math.PI/2,PI_OVER_FOUR:Math.PI/4,PI_OVER_SIX:Math.PI/6,TWO_PI:Math.PI*2};Qr.default=t0});var ci=R(Hr=>{"use strict";var $r=U(),n0=re();Object.defineProperty(Hr,"__esModule",{value:!0});Hr.default=void 0;var a0=$r(cr()),i0=$r($()),s0=$r(H()),Q=de(),o0=$r(Ir()),u0=c0(be());function oi(e){if(typeof WeakMap!="function")return null;var r=new WeakMap,n=new WeakMap;return(oi=function(t){return t?n:r})(e)}function c0(e,r){if(!r&&e&&e.__esModule)return e;if(e===null||n0(e)!=="object"&&typeof e!="function")return{default:e};var n=oi(r);if(n&&n.has(e))return n.get(e);var a={},t=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)){var s=t?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(a,i,s):a[i]=e[i]}return a.default=e,n&&n.set(e,a),a}var ui=1e-6,f0=6371e3,l0=function(){function e(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=r.phi,a=n===void 0?0:n,t=r.theta,i=t===void 0?0:t,s=r.radius,o=s===void 0?1:s,c=r.bearing,u=c===void 0?void 0:c,f=r.pitch,h=f===void 0?void 0:f,l=r.altitude,v=l===void 0?void 0:l,d=r.radiusScale,m=d===void 0?f0:d;(0,i0.default)(this,e),this.phi=a,this.theta=i,this.radius=o||v||1,this.radiusScale=m||1,u!==void 0&&(this.bearing=u),h!==void 0&&(this.pitch=h),this.check()}return(0,s0.default)(e,[{key:"toString",value:function(){return this.formatString(Q.config)}},{key:"formatString",value:function(n){var a=n.printTypes,t=a===void 0?!1:a,i=Q.formatValue;return"".concat(t?"Spherical":"","[rho:").concat(i(this.radius),",theta:").concat(i(this.theta),",phi:").concat(i(this.phi),"]")}},{key:"equals",value:function(n){return(0,Q.equals)(this.radius,n.radius)&&(0,Q.equals)(this.theta,n.theta)&&(0,Q.equals)(this.phi,n.phi)}},{key:"exactEquals",value:function(n){return this.radius===n.radius&&this.theta===n.theta&&this.phi===n.phi}},{key:"bearing",get:function(){return 180-(0,Q.degrees)(this.phi)},set:function(n){this.phi=Math.PI-(0,Q.radians)(n)}},{key:"pitch",get:function(){return(0,Q.degrees)(this.theta)},set:function(n){this.theta=(0,Q.radians)(n)}},{key:"longitude",get:function(){return(0,Q.degrees)(this.phi)}},{key:"latitude",get:function(){return(0,Q.degrees)(this.theta)}},{key:"lng",get:function(){return(0,Q.degrees)(this.phi)}},{key:"lat",get:function(){return(0,Q.degrees)(this.theta)}},{key:"z",get:function(){return(this.radius-1)*this.radiusScale}},{key:"set",value:function(n,a,t){return this.radius=n,this.phi=a,this.theta=t,this.check()}},{key:"clone",value:function(){return new e().copy(this)}},{key:"copy",value:function(n){return this.radius=n.radius,this.phi=n.phi,this.theta=n.theta,this.check()}},{key:"fromLngLatZ",value:function(n){var a=(0,a0.default)(n,3),t=a[0],i=a[1],s=a[2];this.radius=1+s/this.radiusScale,this.phi=(0,Q.radians)(i),this.theta=(0,Q.radians)(t)}},{key:"fromVector3",value:function(n){return this.radius=u0.length(n),this.radius>0&&(this.theta=Math.atan2(n[0],n[1]),this.phi=Math.acos((0,Q.clamp)(n[2]/this.radius,-1,1))),this.check()}},{key:"toVector3",value:function(){return new o0.default(0,0,this.radius).rotateX({radians:this.theta}).rotateZ({radians:this.phi})}},{key:"makeSafe",value:function(){return this.phi=Math.max(ui,Math.min(Math.PI-ui,this.phi)),this}},{key:"check",value:function(){if(!Number.isFinite(this.phi)||!Number.isFinite(this.theta)||!(this.radius>0))throw new Error("SphericalCoordinates: some fields set to invalid numbers");return this}}]),e}();Hr.default=l0});var At=R(Jr=>{"use strict";var Re=U();Object.defineProperty(Jr,"__esModule",{value:!0});Jr.default=void 0;var h0=Re(cr()),v0=Re($()),d0=Re(H()),p0=Re(ie()),m0=Re(se()),fi=Re(oe()),y0=Re(or()),er=de(),ae=ue(),li=Re(qt());function g0(e){var r=M0();return function(){var a=(0,fi.default)(e),t;if(r){var i=(0,fi.default)(this).constructor;t=Reflect.construct(a,arguments,i)}else t=a.apply(this,arguments);return(0,m0.default)(this,t)}}function M0(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Kr="Unknown Euler angle order",rr=.99999;function b0(e){return e>=0&&e<6}function x0(e){if(e<0&&e>=6)throw new Error(Kr);return e}var k0=function(e){(0,p0.default)(n,e);var r=g0(n);function n(){var a,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:n.DefaultOrder;if((0,v0.default)(this,n),a=r.call(this,-0,-0,-0,-0),arguments.length>0&&Array.isArray(arguments[0])){var c;(c=a).fromVector3.apply(c,arguments)}else a.set(t,i,s,o);return a}return(0,d0.default)(n,[{key:"ELEMENTS",get:function(){return 4}},{key:"fromQuaternion",value:function(t){var i=(0,h0.default)(t,4),s=i[0],o=i[1],c=i[2],u=i[3],f=o*o,h=-2*(f+c*c)+1,l=2*(s*o+u*c),v=-2*(s*c-u*o),d=2*(o*c+u*s),m=-2*(s*s+f)+1;v=v>1?1:v,v=v<-1?-1:v;var p=Math.atan2(d,m),y=Math.asin(v),x=Math.atan2(l,h);return new n(p,y,x,n.RollPitchYaw)}},{key:"copy",value:function(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=Number.isFinite(t[3])||this.order,this.check()}},{key:"set",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,o=arguments.length>3?arguments[3]:void 0;return this[0]=t,this[1]=i,this[2]=s,this[3]=Number.isFinite(o)?o:this[3],this.check()}},{key:"validate",value:function(){return b0(this[3])&&Number.isFinite(this[0])&&Number.isFinite(this[1])&&Number.isFinite(this[2])}},{key:"toArray",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return t[i]=this[0],t[i+1]=this[1],t[i+2]=this[2],t}},{key:"toArray4",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return t[i]=this[0],t[i+1]=this[1],t[i+2]=this[2],t[i+3]=this[3],t}},{key:"toVector3",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[-0,-0,-0];return t[0]=this[0],t[1]=this[1],t[2]=this[2],t}},{key:"x",get:function(){return this[0]},set:function(t){this[0]=(0,ae.checkNumber)(t)}},{key:"y",get:function(){return this[1]},set:function(t){this[1]=(0,ae.checkNumber)(t)}},{key:"z",get:function(){return this[2]},set:function(t){this[2]=(0,ae.checkNumber)(t)}},{key:"alpha",get:function(){return this[0]},set:function(t){this[0]=(0,ae.checkNumber)(t)}},{key:"beta",get:function(){return this[1]},set:function(t){this[1]=(0,ae.checkNumber)(t)}},{key:"gamma",get:function(){return this[2]},set:function(t){this[2]=(0,ae.checkNumber)(t)}},{key:"phi",get:function(){return this[0]},set:function(t){this[0]=(0,ae.checkNumber)(t)}},{key:"theta",get:function(){return this[1]},set:function(t){this[1]=(0,ae.checkNumber)(t)}},{key:"psi",get:function(){return this[2]},set:function(t){this[2]=(0,ae.checkNumber)(t)}},{key:"roll",get:function(){return this[0]},set:function(t){this[0]=(0,ae.checkNumber)(t)}},{key:"pitch",get:function(){return this[1]},set:function(t){this[1]=(0,ae.checkNumber)(t)}},{key:"yaw",get:function(){return this[2]},set:function(t){this[2]=(0,ae.checkNumber)(t)}},{key:"order",get:function(){return this[3]},set:function(t){this[3]=x0(t)}},{key:"fromVector3",value:function(t,i){return this.set(t[0],t[1],t[2],Number.isFinite(i)?i:this[3])}},{key:"fromArray",value:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return this[0]=t[0+i],this[1]=t[1+i],this[2]=t[2+i],t[3]!==void 0&&(this[3]=t[3]),this.check()}},{key:"fromRollPitchYaw",value:function(t,i,s){return this.set(t,i,s,n.ZYX)}},{key:"fromRotationMatrix",value:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:n.DefaultOrder;return this._fromRotationMatrix(t,i),this.check()}},{key:"getRotationMatrix",value:function(t){return this._getRotationMatrix(t)}},{key:"getQuaternion",value:function(){var t=new li.default;switch(this[4]){case n.XYZ:return t.rotateX(this[0]).rotateY(this[1]).rotateZ(this[2]);case n.YXZ:return t.rotateY(this[0]).rotateX(this[1]).rotateZ(this[2]);case n.ZXY:return t.rotateZ(this[0]).rotateX(this[1]).rotateY(this[2]);case n.ZYX:return t.rotateZ(this[0]).rotateY(this[1]).rotateX(this[2]);case n.YZX:return t.rotateY(this[0]).rotateZ(this[1]).rotateX(this[2]);case n.XZY:return t.rotateX(this[0]).rotateZ(this[1]).rotateY(this[2]);default:throw new Error(Kr)}}},{key:"_fromRotationMatrix",value:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:n.DefaultOrder,s=t.elements,o=s[0],c=s[4],u=s[8],f=s[1],h=s[5],l=s[9],v=s[2],d=s[6],m=s[10];switch(i=i||this[3],i){case n.XYZ:this[1]=Math.asin((0,er.clamp)(u,-1,1)),Math.abs(u)<rr?(this[0]=Math.atan2(-l,m),this[2]=Math.atan2(-c,o)):(this[0]=Math.atan2(d,h),this[2]=0);break;case n.YXZ:this[0]=Math.asin(-(0,er.clamp)(l,-1,1)),Math.abs(l)<rr?(this[1]=Math.atan2(u,m),this[2]=Math.atan2(f,h)):(this[1]=Math.atan2(-v,o),this[2]=0);break;case n.ZXY:this[0]=Math.asin((0,er.clamp)(d,-1,1)),Math.abs(d)<rr?(this[1]=Math.atan2(-v,m),this[2]=Math.atan2(-c,h)):(this[1]=0,this[2]=Math.atan2(f,o));break;case n.ZYX:this[1]=Math.asin(-(0,er.clamp)(v,-1,1)),Math.abs(v)<rr?(this[0]=Math.atan2(d,m),this[2]=Math.atan2(f,o)):(this[0]=0,this[2]=Math.atan2(-c,h));break;case n.YZX:this[2]=Math.asin((0,er.clamp)(f,-1,1)),Math.abs(f)<rr?(this[0]=Math.atan2(-l,h),this[1]=Math.atan2(-v,o)):(this[0]=0,this[1]=Math.atan2(u,m));break;case n.XZY:this[2]=Math.asin(-(0,er.clamp)(c,-1,1)),Math.abs(c)<rr?(this[0]=Math.atan2(d,h),this[1]=Math.atan2(u,o)):(this[0]=Math.atan2(-l,m),this[1]=0);break;default:throw new Error(Kr)}return this[3]=i,this}},{key:"_getRotationMatrix",value:function(t){var i=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],s=this.x,o=this.y,c=this.z,u=Math.cos(s),f=Math.cos(o),h=Math.cos(c),l=Math.sin(s),v=Math.sin(o),d=Math.sin(c);switch(this[3]){case n.XYZ:{var m=u*h,p=u*d,y=l*h,x=l*d;i[0]=f*h,i[4]=-f*d,i[8]=v,i[1]=p+y*v,i[5]=m-x*v,i[9]=-l*f,i[2]=x-m*v,i[6]=y+p*v,i[10]=u*f;break}case n.YXZ:{var g=f*h,M=f*d,_=v*h,k=v*d;i[0]=g+k*l,i[4]=_*l-M,i[8]=u*v,i[1]=u*d,i[5]=u*h,i[9]=-l,i[2]=M*l-_,i[6]=k+g*l,i[10]=u*f;break}case n.ZXY:{var L=f*h,I=f*d,N=v*h,E=v*d;i[0]=L-E*l,i[4]=-u*d,i[8]=N+I*l,i[1]=I+N*l,i[5]=u*h,i[9]=E-L*l,i[2]=-u*v,i[6]=l,i[10]=u*f;break}case n.ZYX:{var D=u*h,C=u*d,W=l*h,A=l*d;i[0]=f*h,i[4]=W*v-C,i[8]=D*v+A,i[1]=f*d,i[5]=A*v+D,i[9]=C*v-W,i[2]=-v,i[6]=l*f,i[10]=u*f;break}case n.YZX:{var G=u*f,he=u*v,ve=l*f,Pe=l*v;i[0]=f*h,i[4]=Pe-G*d,i[8]=ve*d+he,i[1]=d,i[5]=u*h,i[9]=-l*h,i[2]=-v*h,i[6]=he*d+ve,i[10]=G-Pe*d;break}case n.XZY:{var Ee=u*f,Ut=u*v,Xt=l*f,Gt=l*v;i[0]=f*h,i[4]=-d,i[8]=v*h,i[1]=Ee*d+Gt,i[5]=u*h,i[9]=Ut*d-Xt,i[2]=Xt*d-Ut,i[6]=l*h,i[10]=Gt*d+Ee;break}default:throw new Error(Kr)}return i[3]=0,i[7]=0,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,i}},{key:"toQuaternion",value:function(){var t=Math.cos(this.yaw*.5),i=Math.sin(this.yaw*.5),s=Math.cos(this.roll*.5),o=Math.sin(this.roll*.5),c=Math.cos(this.pitch*.5),u=Math.sin(this.pitch*.5),f=t*s*c+i*o*u,h=t*o*c-i*s*u,l=t*s*u+i*o*c,v=i*s*c-t*o*u;return new li.default(h,l,v,f)}}],[{key:"ZYX",get:function(){return 0}},{key:"YXZ",get:function(){return 1}},{key:"XZY",get:function(){return 2}},{key:"ZXY",get:function(){return 3}},{key:"YZX",get:function(){return 4}},{key:"XYZ",get:function(){return 5}},{key:"RollPitchYaw",get:function(){return 0}},{key:"DefaultOrder",get:function(){return n.ZYX}},{key:"RotationOrders",get:function(){return["ZYX","YXZ","XZY","ZXY","YZX","XYZ"]}},{key:"rotationOrder",value:function(t){return n.RotationOrders[t]}}]),n}(y0.default);Jr.default=k0});var vi=R(jr=>{"use strict";var lr=U();Object.defineProperty(jr,"__esModule",{value:!0});jr.default=void 0;var O0=lr($()),_0=lr(H()),Pt=lr(Rt()),hi=lr(Ir()),Et=lr(At()),R0=function(){function e(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=r.x,a=n===void 0?0:n,t=r.y,i=t===void 0?0:t,s=r.z,o=s===void 0?0:s,c=r.roll,u=c===void 0?0:c,f=r.pitch,h=f===void 0?0:f,l=r.yaw,v=l===void 0?0:l,d=r.position,m=d===void 0?void 0:d,p=r.orientation,y=p===void 0?void 0:p;(0,O0.default)(this,e),Array.isArray(m)&&m.length===3?this.position=new hi.default(m):this.position=new hi.default(a,i,o),Array.isArray(y)&&y.length===4?this.orientation=new Et.default(y,y[3]):this.orientation=new Et.default(u,h,v,Et.default.RollPitchYaw)}return(0,_0.default)(e,[{key:"x",get:function(){return this.position.x},set:function(n){this.position.x=n}},{key:"y",get:function(){return this.position.y},set:function(n){this.position.y=n}},{key:"z",get:function(){return this.position.z},set:function(n){this.position.z=n}},{key:"roll",get:function(){return this.orientation.roll},set:function(n){this.orientation.roll=n}},{key:"pitch",get:function(){return this.orientation.pitch},set:function(n){this.orientation.pitch=n}},{key:"yaw",get:function(){return this.orientation.yaw},set:function(n){this.orientation.yaw=n}},{key:"getPosition",value:function(){return this.position}},{key:"getOrientation",value:function(){return this.orientation}},{key:"equals",value:function(n){return n?this.position.equals(n.position)&&this.orientation.equals(n.orientation):!1}},{key:"exactEquals",value:function(n){return n?this.position.exactEquals(n.position)&&this.orientation.exactEquals(n.orientation):!1}},{key:"getTransformationMatrix",value:function(){var n=Math.sin(this.roll),a=Math.sin(this.pitch),t=Math.sin(this.yaw),i=Math.cos(this.roll),s=Math.cos(this.pitch),o=Math.cos(this.yaw),c=new Pt.default().setRowMajor(o*s,-t*i+o*a*n,t*n+o*a*i,this.x,t*s,o*i+t*a*n,-o*n+t*a*i,this.y,-a,s*n,s*i,this.z,0,0,0,1);return c}},{key:"getTransformationMatrixFromPose",value:function(n){return new Pt.default().multiplyRight(this.getTransformationMatrix()).multiplyRight(n.getTransformationMatrix().invert())}},{key:"getTransformationMatrixToPose",value:function(n){return new Pt.default().multiplyRight(n.getTransformationMatrix()).multiplyRight(this.getTransformationMatrix().invert())}}]),e}();jr.default=R0});var tr=R(P=>{"use strict";var ce=U();Object.defineProperty(P,"__esModule",{value:!0});Object.defineProperty(P,"config",{enumerable:!0,get:function(){return F.config}});Object.defineProperty(P,"configure",{enumerable:!0,get:function(){return F.configure}});Object.defineProperty(P,"formatValue",{enumerable:!0,get:function(){return F.formatValue}});Object.defineProperty(P,"isArray",{enumerable:!0,get:function(){return F.isArray}});Object.defineProperty(P,"clone",{enumerable:!0,get:function(){return F.clone}});Object.defineProperty(P,"equals",{enumerable:!0,get:function(){return F.equals}});Object.defineProperty(P,"exactEquals",{enumerable:!0,get:function(){return F.exactEquals}});Object.defineProperty(P,"toRadians",{enumerable:!0,get:function(){return F.toRadians}});Object.defineProperty(P,"toDegrees",{enumerable:!0,get:function(){return F.toDegrees}});Object.defineProperty(P,"radians",{enumerable:!0,get:function(){return F.radians}});Object.defineProperty(P,"degrees",{enumerable:!0,get:function(){return F.degrees}});Object.defineProperty(P,"sin",{enumerable:!0,get:function(){return F.sin}});Object.defineProperty(P,"cos",{enumerable:!0,get:function(){return F.cos}});Object.defineProperty(P,"tan",{enumerable:!0,get:function(){return F.tan}});Object.defineProperty(P,"asin",{enumerable:!0,get:function(){return F.asin}});Object.defineProperty(P,"acos",{enumerable:!0,get:function(){return F.acos}});Object.defineProperty(P,"atan",{enumerable:!0,get:function(){return F.atan}});Object.defineProperty(P,"clamp",{enumerable:!0,get:function(){return F.clamp}});Object.defineProperty(P,"lerp",{enumerable:!0,get:function(){return F.lerp}});Object.defineProperty(P,"withEpsilon",{enumerable:!0,get:function(){return F.withEpsilon}});Object.defineProperty(P,"Vector2",{enumerable:!0,get:function(){return S0.default}});Object.defineProperty(P,"Vector3",{enumerable:!0,get:function(){return w0.default}});Object.defineProperty(P,"Vector4",{enumerable:!0,get:function(){return q0.default}});Object.defineProperty(P,"Matrix3",{enumerable:!0,get:function(){return A0.default}});Object.defineProperty(P,"Matrix4",{enumerable:!0,get:function(){return P0.default}});Object.defineProperty(P,"Quaternion",{enumerable:!0,get:function(){return E0.default}});Object.defineProperty(P,"checkNumber",{enumerable:!0,get:function(){return T0.checkNumber}});Object.defineProperty(P,"_MathUtils",{enumerable:!0,get:function(){return I0.default}});Object.defineProperty(P,"SphericalCoordinates",{enumerable:!0,get:function(){return di.default}});Object.defineProperty(P,"_SphericalCoordinates",{enumerable:!0,get:function(){return di.default}});Object.defineProperty(P,"Pose",{enumerable:!0,get:function(){return pi.default}});Object.defineProperty(P,"_Pose",{enumerable:!0,get:function(){return pi.default}});Object.defineProperty(P,"Euler",{enumerable:!0,get:function(){return mi.default}});Object.defineProperty(P,"_Euler",{enumerable:!0,get:function(){return mi.default}});Object.defineProperty(P,"assert",{enumerable:!0,get:function(){return N0.default}});var F=de(),S0=ce(Vn()),w0=ce(Ir()),q0=ce(ua()),A0=ce(ya()),P0=ce(Rt()),E0=ce(qt()),T0=ue(),I0=ce(si()),di=ce(ci()),pi=ce(vi()),mi=ce(At()),N0=ce(Ie()),Tt={self:typeof self!="undefined"&&self,window:typeof window!="undefined"&&window,global:typeof global!="undefined"&&global},C0=Tt.global||Tt.self||Tt.window;C0.mathgl={config:F.config}});var It=R(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});ye.WGS84_CONSTANTS=ye.WGS84_RADIUS_Z=ye.WGS84_RADIUS_Y=ye.WGS84_RADIUS_X=void 0;var Se=6378137;ye.WGS84_RADIUS_X=Se;var we=6378137;ye.WGS84_RADIUS_Y=we;var qe=6356752314245179e-9;ye.WGS84_RADIUS_Z=qe;var L0={radii:[Se,we,qe],radiiSquared:[Se*Se,we*we,qe*qe],oneOverRadii:[1/Se,1/we,1/qe],oneOverRadiiSquared:[1/(Se*Se),1/(we*we),1/(qe*qe)],maximumRadius:Math.max(Se,we,qe),centerToleranceSquared:.1};ye.WGS84_CONSTANTS=L0});var Dt=R(ke=>{"use strict";Object.defineProperty(ke,"__esModule",{value:!0});ke.fromCartographic=Ct;ke.fromCartographicToRadians=D0;ke.fromCartographicToDegrees=W0;ke.toCartographic=Lt;ke.toCartographicFromRadians=z0;ke.toCartographicFromDegrees=B0;ke.isWGS84=F0;var fe=tr(),yi=It(),nr=function(r){return r},Nt=new fe.Vector3;function Ct(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:nr;return(0,fe.isArray)(e)?(r[0]=n(e[0]),r[1]=n(e[1]),r[2]=e[2]):"longitude"in e?(r[0]=n(e.longitude),r[1]=n(e.latitude),r[2]=e.height):(r[0]=n(e.x),r[1]=n(e.y),r[2]=e.z),r}function D0(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Nt;return Ct(e,r,fe.config._cartographicRadians?nr:fe.toRadians)}function W0(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Nt;return Ct(e,r,fe.config._cartographicRadians?fe.toDegrees:nr)}function Lt(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:nr;return(0,fe.isArray)(r)?(r[0]=n(e[0]),r[1]=n(e[1]),r[2]=e[2]):"longitude"in r?(r.longitude=n(e[0]),r.latitude=n(e[1]),r.height=e[2]):(r.x=n(e[0]),r.y=n(e[1]),r.z=e[2]),r}function z0(e,r){return Lt(e,r,fe.config._cartographicRadians?nr:fe.toDegrees)}function B0(e,r){return Lt(e,r,fe.config._cartographicRadians?fe.toRadians:nr)}function F0(e){if(!e)return!1;Nt.from(e);var r=yi.WGS84_CONSTANTS.oneOverRadiiSquared,n=yi.WGS84_CONSTANTS.centerToleranceSquared,a=e[0]*e[0]*r[0],t=e[1]*e[1]*r[1],i=e[2]*e[2]*r[2];return Math.abs(a+t+i-1)<n}});var bi=R(Wt=>{"use strict";var V0=re();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.default=X0;var hr=tr(),wv=Y0(be());function gi(e){if(typeof WeakMap!="function")return null;var r=new WeakMap,n=new WeakMap;return(gi=function(t){return t?n:r})(e)}function Y0(e,r){if(!r&&e&&e.__esModule)return e;if(e===null||V0(e)!=="object"&&typeof e!="function")return{default:e};var n=gi(r);if(n&&n.has(e))return n.get(e);var a={},t=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)){var s=t?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(a,i,s):a[i]=e[i]}return a.default=e,n&&n.set(e,a),a}var Mi=new hr.Vector3,Z0=new hr.Vector3,U0=new hr.Vector3;function X0(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new hr.Vector3,a=r.oneOverRadii,t=r.oneOverRadiiSquared,i=r.centerToleranceSquared;Mi.from(e);var s=e.x,o=e.y,c=e.z,u=a.x,f=a.y,h=a.z,l=s*s*u*u,v=o*o*f*f,d=c*c*h*h,m=l+v+d,p=Math.sqrt(1/m);if(!!Number.isFinite(p)){var y=Z0;if(y.copy(e).scale(p),m<i)return y.to(n);var x=t.x,g=t.y,M=t.z,_=U0;_.set(y.x*x*2,y.y*g*2,y.z*M*2);var k=(1-p)*e.len()/(.5*_.len()),L=0,I,N,E,D;do{k-=L,I=1/(1+k*x),N=1/(1+k*g),E=1/(1+k*M);var C=I*I,W=N*N,A=E*E,G=C*I,he=W*N,ve=A*E;D=l*C+v*W+d*A-1;var Pe=l*G*x+v*he*g+d*ve*M,Ee=-2*Pe;L=D/Ee}while(Math.abs(D)>hr._MathUtils.EPSILON12);return Mi.scale([I,N,E]).to(n)}}});var Oi=R(Bt=>{"use strict";Object.defineProperty(Bt,"__esModule",{value:!0});Bt.default=K0;var ee=tr(),xi=1e-14,G0=new ee.Vector3,ki={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},zt={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},Oe={east:new ee.Vector3,north:new ee.Vector3,up:new ee.Vector3,west:new ee.Vector3,south:new ee.Vector3,down:new ee.Vector3},Q0=new ee.Vector3,$0=new ee.Vector3,H0=new ee.Vector3;function K0(e,r,n,a,t,i){var s=ki[r]&&ki[r][n];(0,ee.assert)(s&&(!a||a===s));var o,c,u,f=G0.copy(t),h=(0,ee.equals)(f.x,0,xi)&&(0,ee.equals)(f.y,0,xi);if(h){var l=Math.sign(f.z);o=Q0.fromArray(zt[r]),r!=="east"&&r!=="west"&&o.scale(l),c=$0.fromArray(zt[n]),n!=="east"&&n!=="west"&&c.scale(l),u=H0.fromArray(zt[a]),a!=="east"&&a!=="west"&&u.scale(l)}else{var v=Oe.up,d=Oe.east,m=Oe.north;d.set(-f.y,f.x,0).normalize(),e.geodeticSurfaceNormal(f,v),m.copy(v).cross(d);var p=Oe.down,y=Oe.west,x=Oe.south;p.copy(v).scale(-1),y.copy(d).scale(-1),x.copy(m).scale(-1),o=Oe[r],c=Oe[n],u=Oe[a]}return i[0]=o.x,i[1]=o.y,i[2]=o.z,i[3]=0,i[4]=c.x,i[5]=c.y,i[6]=c.z,i[7]=0,i[8]=u.x,i[9]=u.y,i[10]=u.z,i[11]=0,i[12]=f.x,i[13]=f.y,i[14]=f.z,i[15]=1,i}});var Ai=R(tt=>{"use strict";var vr=U(),J0=re();Object.defineProperty(tt,"__esModule",{value:!0});tt.default=void 0;var j0=vr(cr()),e1=vr($()),r1=vr(H()),V=tr(),_i=n1(be()),Ft=It(),Ri=Dt(),t1=vr(bi()),Si=vr(Oi());function wi(e){if(typeof WeakMap!="function")return null;var r=new WeakMap,n=new WeakMap;return(wi=function(t){return t?n:r})(e)}function n1(e,r){if(!r&&e&&e.__esModule)return e;if(e===null||J0(e)!=="object"&&typeof e!="function")return{default:e};var n=wi(r);if(n&&n.has(e))return n.get(e);var a={},t=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)){var s=t?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(a,i,s):a[i]=e[i]}return a.default=e,n&&n.set(e,a),a}var et=new V.Vector3,qi=new V.Vector3,a1=new V.Vector3,le=new V.Vector3,i1=new V.Vector3,rt=new V.Vector3,Vt,s1=function(){function e(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;(0,e1.default)(this,e),(0,V.assert)(r>=0),(0,V.assert)(n>=0),(0,V.assert)(a>=0),this.radii=new V.Vector3(r,n,a),this.radiiSquared=new V.Vector3(r*r,n*n,a*a),this.radiiToTheFourth=new V.Vector3(r*r*r*r,n*n*n*n,a*a*a*a),this.oneOverRadii=new V.Vector3(r===0?0:1/r,n===0?0:1/n,a===0?0:1/a),this.oneOverRadiiSquared=new V.Vector3(r===0?0:1/(r*r),n===0?0:1/(n*n),a===0?0:1/(a*a)),this.minimumRadius=Math.min(r,n,a),this.maximumRadius=Math.max(r,n,a),this.centerToleranceSquared=V._MathUtils.EPSILON1,this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}return(0,r1.default)(e,[{key:"equals",value:function(n){return this===n||Boolean(n&&this.radii.equals(n.radii))}},{key:"toString",value:function(){return this.radii.toString()}},{key:"cartographicToCartesian",value:function(n){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0],t=qi,i=a1,s=(0,j0.default)(n,3),o=s[2];this.geodeticSurfaceNormalCartographic(n,t),i.copy(this.radiiSquared).scale(t);var c=Math.sqrt(t.dot(i));return i.scale(1/c),t.scale(o),i.add(t),i.to(a)}},{key:"cartesianToCartographic",value:function(n){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0];rt.from(n);var t=this.scaleToGeodeticSurface(rt,le);if(!!t){var i=this.geodeticSurfaceNormal(t,qi),s=i1;s.copy(rt).subtract(t);var o=Math.atan2(i.y,i.x),c=Math.asin(i.z),u=Math.sign(_i.dot(s,rt))*_i.length(s);return(0,Ri.toCartographicFromRadians)([o,c,u],a)}}},{key:"eastNorthUpToFixedFrame",value:function(n){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new V.Matrix4;return(0,Si.default)(this,"east","north","up",n,a)}},{key:"localFrameToFixedFrame",value:function(n,a,t,i){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:new V.Matrix4;return(0,Si.default)(this,n,a,t,i,s)}},{key:"geocentricSurfaceNormal",value:function(n){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0];return et.from(n).normalize().to(a)}},{key:"geodeticSurfaceNormalCartographic",value:function(n){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0],t=(0,Ri.fromCartographicToRadians)(n),i=t[0],s=t[1],o=Math.cos(s);return et.set(o*Math.cos(i),o*Math.sin(i),Math.sin(s)).normalize(),et.to(a)}},{key:"geodeticSurfaceNormal",value:function(n){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0];return et.from(n).scale(this.oneOverRadiiSquared).normalize().to(a)}},{key:"scaleToGeodeticSurface",value:function(n,a){return(0,t1.default)(n,this,a)}},{key:"scaleToGeocentricSurface",value:function(n){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0];le.from(n);var t=le.x,i=le.y,s=le.z,o=this.oneOverRadiiSquared,c=1/Math.sqrt(t*t*o.x+i*i*o.y+s*s*o.z);return le.multiplyScalar(c).to(a)}},{key:"transformPositionToScaledSpace",value:function(n){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0];return le.from(n).scale(this.oneOverRadii).to(a)}},{key:"transformPositionFromScaledSpace",value:function(n){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0];return le.from(n).scale(this.radii).to(a)}},{key:"getSurfaceNormalIntersectionWithZAxis",value:function(n){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[0,0,0];(0,V.assert)((0,V.equals)(this.radii.x,this.radii.y,V._MathUtils.EPSILON15)),(0,V.assert)(this.radii.z>0),le.from(n);var i=le.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(i)>=this.radii.z-a))return le.set(0,0,i).to(t)}}],[{key:"WGS84",get:function(){return Vt=Vt||new e(Ft.WGS84_RADIUS_X,Ft.WGS84_RADIUS_Y,Ft.WGS84_RADIUS_Z),Vt}}]),e}();tt.default=s1});var Pi=R(nt=>{"use strict";var o1=U();Object.defineProperty(nt,"__esModule",{value:!0});Object.defineProperty(nt,"Ellipsoid",{enumerable:!0,get:function(){return u1.default}});Object.defineProperty(nt,"isWGS84",{enumerable:!0,get:function(){return c1.isWGS84}});var u1=o1(Ai()),c1=Dt()});var Ti=R((Vv,Ei)=>{(function(){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(n,a){return n<<a|n>>>32-a},rotr:function(n,a){return n<<32-a|n>>>a},endian:function(n){if(n.constructor==Number)return r.rotl(n,8)&16711935|r.rotl(n,24)&4278255360;for(var a=0;a<n.length;a++)n[a]=r.endian(n[a]);return n},randomBytes:function(n){for(var a=[];n>0;n--)a.push(Math.floor(Math.random()*256));return a},bytesToWords:function(n){for(var a=[],t=0,i=0;t<n.length;t++,i+=8)a[i>>>5]|=n[t]<<24-i%32;return a},wordsToBytes:function(n){for(var a=[],t=0;t<n.length*32;t+=8)a.push(n[t>>>5]>>>24-t%32&255);return a},bytesToHex:function(n){for(var a=[],t=0;t<n.length;t++)a.push((n[t]>>>4).toString(16)),a.push((n[t]&15).toString(16));return a.join("")},hexToBytes:function(n){for(var a=[],t=0;t<n.length;t+=2)a.push(parseInt(n.substr(t,2),16));return a},bytesToBase64:function(n){for(var a=[],t=0;t<n.length;t+=3)for(var i=n[t]<<16|n[t+1]<<8|n[t+2],s=0;s<4;s++)t*8+s*6<=n.length*8?a.push(e.charAt(i>>>6*(3-s)&63)):a.push("=");return a.join("")},base64ToBytes:function(n){n=n.replace(/[^A-Z0-9+\/]/ig,"");for(var a=[],t=0,i=0;t<n.length;i=++t%4)i!=0&&a.push((e.indexOf(n.charAt(t-1))&Math.pow(2,-2*i+8)-1)<<i*2|e.indexOf(n.charAt(t))>>>6-i*2);return a}};Ei.exports=r})()});var Zt=R((Yv,Ii)=>{var Yt={utf8:{stringToBytes:function(e){return Yt.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(Yt.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var r=[],n=0;n<e.length;n++)r.push(e.charCodeAt(n)&255);return r},bytesToString:function(e){for(var r=[],n=0;n<e.length;n++)r.push(String.fromCharCode(e[n]));return r.join("")}}};Ii.exports=Yt});var Li=R((Zv,Ci)=>{Ci.exports=function(e){return e!=null&&(Ni(e)||l1(e)||!!e._isBuffer)};function Ni(e){return!!e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function l1(e){return typeof e.readFloatLE=="function"&&typeof e.slice=="function"&&Ni(e.slice(0,0))}});var Wi=R((Uv,Di)=>{(function(){var e=Ti(),r=Zt().utf8,n=Li(),a=Zt().bin,t=function(i,s){i.constructor==String?s&&s.encoding==="binary"?i=a.stringToBytes(i):i=r.stringToBytes(i):n(i)?i=Array.prototype.slice.call(i,0):!Array.isArray(i)&&i.constructor!==Uint8Array&&(i=i.toString());for(var o=e.bytesToWords(i),c=i.length*8,u=1732584193,f=-271733879,h=-1732584194,l=271733878,v=0;v<o.length;v++)o[v]=(o[v]<<8|o[v]>>>24)&16711935|(o[v]<<24|o[v]>>>8)&4278255360;o[c>>>5]|=128<<c%32,o[(c+64>>>9<<4)+14]=c;for(var d=t._ff,m=t._gg,p=t._hh,y=t._ii,v=0;v<o.length;v+=16){var x=u,g=f,M=h,_=l;u=d(u,f,h,l,o[v+0],7,-680876936),l=d(l,u,f,h,o[v+1],12,-389564586),h=d(h,l,u,f,o[v+2],17,606105819),f=d(f,h,l,u,o[v+3],22,-1044525330),u=d(u,f,h,l,o[v+4],7,-176418897),l=d(l,u,f,h,o[v+5],12,1200080426),h=d(h,l,u,f,o[v+6],17,-1473231341),f=d(f,h,l,u,o[v+7],22,-45705983),u=d(u,f,h,l,o[v+8],7,1770035416),l=d(l,u,f,h,o[v+9],12,-1958414417),h=d(h,l,u,f,o[v+10],17,-42063),f=d(f,h,l,u,o[v+11],22,-1990404162),u=d(u,f,h,l,o[v+12],7,1804603682),l=d(l,u,f,h,o[v+13],12,-40341101),h=d(h,l,u,f,o[v+14],17,-1502002290),f=d(f,h,l,u,o[v+15],22,1236535329),u=m(u,f,h,l,o[v+1],5,-165796510),l=m(l,u,f,h,o[v+6],9,-1069501632),h=m(h,l,u,f,o[v+11],14,643717713),f=m(f,h,l,u,o[v+0],20,-373897302),u=m(u,f,h,l,o[v+5],5,-701558691),l=m(l,u,f,h,o[v+10],9,38016083),h=m(h,l,u,f,o[v+15],14,-660478335),f=m(f,h,l,u,o[v+4],20,-405537848),u=m(u,f,h,l,o[v+9],5,568446438),l=m(l,u,f,h,o[v+14],9,-1019803690),h=m(h,l,u,f,o[v+3],14,-187363961),f=m(f,h,l,u,o[v+8],20,1163531501),u=m(u,f,h,l,o[v+13],5,-1444681467),l=m(l,u,f,h,o[v+2],9,-51403784),h=m(h,l,u,f,o[v+7],14,1735328473),f=m(f,h,l,u,o[v+12],20,-1926607734),u=p(u,f,h,l,o[v+5],4,-378558),l=p(l,u,f,h,o[v+8],11,-2022574463),h=p(h,l,u,f,o[v+11],16,1839030562),f=p(f,h,l,u,o[v+14],23,-35309556),u=p(u,f,h,l,o[v+1],4,-1530992060),l=p(l,u,f,h,o[v+4],11,1272893353),h=p(h,l,u,f,o[v+7],16,-155497632),f=p(f,h,l,u,o[v+10],23,-1094730640),u=p(u,f,h,l,o[v+13],4,681279174),l=p(l,u,f,h,o[v+0],11,-358537222),h=p(h,l,u,f,o[v+3],16,-722521979),f=p(f,h,l,u,o[v+6],23,76029189),u=p(u,f,h,l,o[v+9],4,-640364487),l=p(l,u,f,h,o[v+12],11,-421815835),h=p(h,l,u,f,o[v+15],16,530742520),f=p(f,h,l,u,o[v+2],23,-995338651),u=y(u,f,h,l,o[v+0],6,-198630844),l=y(l,u,f,h,o[v+7],10,1126891415),h=y(h,l,u,f,o[v+14],15,-1416354905),f=y(f,h,l,u,o[v+5],21,-57434055),u=y(u,f,h,l,o[v+12],6,1700485571),l=y(l,u,f,h,o[v+3],10,-1894986606),h=y(h,l,u,f,o[v+10],15,-1051523),f=y(f,h,l,u,o[v+1],21,-2054922799),u=y(u,f,h,l,o[v+8],6,1873313359),l=y(l,u,f,h,o[v+15],10,-30611744),h=y(h,l,u,f,o[v+6],15,-1560198380),f=y(f,h,l,u,o[v+13],21,1309151649),u=y(u,f,h,l,o[v+4],6,-145523070),l=y(l,u,f,h,o[v+11],10,-1120210379),h=y(h,l,u,f,o[v+2],15,718787259),f=y(f,h,l,u,o[v+9],21,-343485551),u=u+x>>>0,f=f+g>>>0,h=h+M>>>0,l=l+_>>>0}return e.endian([u,f,h,l])};t._ff=function(i,s,o,c,u,f,h){var l=i+(s&o|~s&c)+(u>>>0)+h;return(l<<f|l>>>32-f)+s},t._gg=function(i,s,o,c,u,f,h){var l=i+(s&c|o&~c)+(u>>>0)+h;return(l<<f|l>>>32-f)+s},t._hh=function(i,s,o,c,u,f,h){var l=i+(s^o^c)+(u>>>0)+h;return(l<<f|l>>>32-f)+s},t._ii=function(i,s,o,c,u,f,h){var l=i+(o^(s|~c))+(u>>>0)+h;return(l<<f|l>>>32-f)+s},t._blocksize=16,t._digestsize=16,Di.exports=function(i,s){if(i==null)throw new Error("Illegal argument "+i);var o=e.wordsToBytes(t(i,s));return s&&s.asBytes?o:s&&s.asString?a.bytesToString(o):e.bytesToHex(o)}})()});function ot(e,r=!0,n){let a=n||new Set;if(e){if(Qt(e))a.add(e);else if(Qt(e.buffer))a.add(e.buffer);else if(!ArrayBuffer.isView(e)){if(r&&typeof e=="object")for(let t in e)ot(e[t],r,a)}}return n===void 0?Array.from(a):[]}function Qt(e){return e?e instanceof ArrayBuffer||typeof MessagePort!="undefined"&&e instanceof MessagePort||typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap||typeof OffscreenCanvas!="undefined"&&e instanceof OffscreenCanvas:!1}function Te(){let parentPort;try{eval("globalThis.parentPort = require('worker_threads').parentPort"),parentPort=globalThis.parentPort}catch{}return parentPort}var ut=new Map,K=class{static inWorkerThread(){return typeof self!="undefined"||Boolean(Te())}static set onmessage(r){function n(t){let i=Te(),{type:s,payload:o}=i?t:t.data;r(s,o)}let a=Te();a?(a.on("message",n),a.on("exit",()=>console.debug("Node worker closing"))):globalThis.onmessage=n}static addEventListener(r){let n=ut.get(r);n||(n=t=>{if(!Ki(t))return;let i=Te(),{type:s,payload:o}=i?t:t.data;r(s,o)}),Te()?console.error("not implemented"):globalThis.addEventListener("message",n)}static removeEventListener(r){let n=ut.get(r);ut.delete(r),Te()?console.error("not implemented"):globalThis.removeEventListener("message",n)}static postMessage(r,n){let a={source:"loaders.gl",type:r,payload:n},t=ot(n),i=Te();i?i.postMessage(a,t):globalThis.postMessage(a,t)}};function Ki(e){let{type:r,data:n}=e;return r==="message"&&n&&typeof n.source=="string"&&n.source.startsWith("loaders.gl")}var pr=class{constructor(){this._values=[],this._settlers=[],this._closed=!1}[Symbol.asyncIterator](){return this}push(r){return this.enqueue(r)}enqueue(r){if(this._closed)throw new Error("Closed");if(this._settlers.length>0){if(this._values.length>0)throw new Error("Illegal internal state");let n=this._settlers.shift();r instanceof Error?n.reject(r):n.resolve({value:r})}else this._values.push(r)}close(){for(;this._settlers.length>0;)this._settlers.shift().resolve({done:!0});this._closed=!0}next(){if(this._values.length>0){let r=this._values.shift();return r instanceof Error?Promise.reject(r):Promise.resolve({done:!1,value:r})}if(this._closed){if(this._settlers.length>0)throw new Error("Illegal internal state");return Promise.resolve({done:!0,value:void 0})}return new Promise((r,n)=>{this._settlers.push({resolve:r,reject:n})})}};var Ji=0,mr,$t;function ct(e,r){if(!K.inWorkerThread())return;let n={process:ji};K.onmessage=async(a,t)=>{try{switch(a){case"process":if(!e)throw new Error("Worker does not support atomic processing");let i=await e(t.input,t.options||{},n);K.postMessage("done",{result:i});break;case"process-in-batches":if(!r)throw new Error("Worker does not support batched processing");mr=new pr,$t=t.options||{};let s=r(mr,$t,n);for await(let o of s)K.postMessage("output-batch",{result:o});K.postMessage("done",{});break;case"input-batch":mr.push(t.input);break;case"input-done":mr.close();break;default:}}catch(i){let s=i instanceof Error?i.message:"";K.postMessage("error",{error:s})}}}function ji(e,r={}){return new Promise((n,a)=>{let t=Ji++,i=(o,c)=>{if(c.id===t)switch(o){case"done":K.removeEventListener(i),n(c.result);break;case"error":K.removeEventListener(i),a(c.error);break;default:}};K.addEventListener(i);let s={id:t,input:e,options:r};K.postMessage("process",s)})}var Ae=st(tr()),zi=st(Pi());function at(e,r){if(!e)throw new Error(r||"loader assertion failed.")}function ar(...e){let r=e,n=r&&r.length>1&&r[0].constructor||null;if(!n)throw new Error('"concatenateTypedArrays" - incorrect quantity of arguments or arguments have incompatible data types');let a=r.reduce((s,o)=>s+o.length,0),t=new n(a),i=0;for(let s of r)t.set(s,i),i+=s.length;return t}var h1=st(Wi());var ir=3,dr=2,v1=4;var Bi=["CUSTOM_ATTRIBUTE_2","_BATCHID","BATCHID"],Kv=new Ae.Vector3;async function Fi(e,r){let{gltfMaterials:n,nodes:a,cartographicOrigin:t,cartesianModelMatrix:i}=e,s=new Map;for(let o of n||[{id:"default"}])s.set(o.id,{positions:new Float32Array(0),normals:new Float32Array(0),texCoords:new Float32Array(0),colors:new Uint8Array(0),featureIndicesGroups:[],featureIndices:[],boundingVolumes:null});Vi(a,t,i,s,r);for(let o of s.keys()){let c=s.get(o);if(!!c){if(c.positions.length===0){s.delete(o);continue}c.featureIndicesGroups&&(c.featureIndices=c.featureIndicesGroups.reduce((u,f)=>u.concat(f)),delete c.featureIndicesGroups)}}return s}function Vi(e,r,n,a,t,i=new Ae.Matrix4([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])){if(e)for(let s of e)p1(s,r,n,a,t,i)}function d1(e,r){let n=r,{matrix:a,rotation:t,scale:i,translation:s}=e;return a&&(n=r.multiplyRight(a)),t&&(n=n.rotateXYZ(t)),i&&(n=n.scale(i)),s&&(n=n.translate(s)),n}function p1(e,r,n,a,t,i=new Ae.Matrix4([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])){let s=d1(e,i),o=e.mesh;o&&m1(o,r,n,a,t,s),Vi(e.children||[],r,n,a,t,s)}function m1(e,r,n,a,t=!1,i=new Ae.Matrix4([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])){var s,o,c,u,f;for(let h of e.primitives){let l=null;h.material?l=a.get(h.material.id):a.has("default")&&(l=a.get("default")),at(l!==null,"Primitive - material mapping failed");let v=h.attributes;!l||(l.positions=ar(l.positions,Yi({vertices:v.POSITION.value,cartographicOrigin:r,cartesianModelMatrix:n,nodeMatrix:i,indices:(s=h.indices)==null?void 0:s.value,attributeSpecificTransformation:y1,useCartesianPositions:t})),l.normals=ar(l.normals,Yi({vertices:v.NORMAL&&v.NORMAL.value,cartographicOrigin:r,cartesianModelMatrix:n,nodeMatrix:i,indices:(o=h.indices)==null?void 0:o.value,attributeSpecificTransformation:g1,useCartesianPositions:!1})),l.texCoords=ar(l.texCoords,M1(v.TEXCOORD_0&&v.TEXCOORD_0.value,(c=h.indices)==null?void 0:c.value)),l.colors=ar(l.colors,b1(v.COLOR_0,(u=h.indices)==null?void 0:u.value)),l.featureIndicesGroups=l.featureIndicesGroups||[],l.featureIndicesGroups.push(x1(k1(v),(f=h.indices)==null?void 0:f.value)))}}function Yi(e){let{vertices:r,indices:n,attributeSpecificTransformation:a}=e,t=new Float32Array(n.length*ir);if(!r)return t;for(let i=0;i<n.length;i++){let s=n[i]*ir,o=r.subarray(s,s+ir),c=new Ae.Vector3(Array.from(o));c=a(c,e),t[i*ir]=c.x,t[i*ir+1]=c.y,t[i*ir+2]=c.z}return t}function y1(e,r){let{cartesianModelMatrix:n,cartographicOrigin:a,nodeMatrix:t,useCartesianPositions:i}=r;return t&&(e=e.transform(t)),e=e.transform(n),i||(zi.Ellipsoid.WGS84.cartesianToCartographic([e[0],e[1],e[2]],e),e=e.subtract(a)),e}function g1(e,r){let{cartesianModelMatrix:n,nodeMatrix:a}=r;return a&&(e=e.transformAsVector(a)),e=e.transformAsVector(n),e}function M1(e,r){let n=new Float32Array(r.length*dr);if(!e)return n.fill(1),n;for(let a=0;a<r.length;a++){let t=r[a]*dr,i=e.subarray(t,t+dr);n[a*dr]=i[0],n[a*dr+1]=i[1]}return n}function b1(e,r){let n=(e==null?void 0:e.components)||v1,a=new Uint8Array(r.length*n);if(!e)return a.fill(255),a;let t=e.value;for(let i=0;i<r.length;i++){let s=r[i]*n,o=t.subarray(s,s+n),c=new Uint8Array(n);for(let u=0;u<o.length;u++)c[u]=o[u]*255;a.set(c,i*n)}return a}function x1(e,r){if(!e.length||!r.length)return[];let n=[];for(let a=0;a<r.length;a++){let t=r[a];n.push(e[t])}return n}function k1(e){let r=[];for(let n=0;n<Bi.length;n++){let a=Bi[n];if(e[a]&&e[a].value){r=e[a].value;break}}return r}ct(async(e,r={})=>await Fi(e,r.useCartesianPositions));
4
+ /*!
5
+ * Determine if an object is a Buffer
6
+ *
7
+ * @author Feross Aboukhadijeh <https://feross.org>
8
+ * @license MIT
9
+ */
10
+ //# sourceMappingURL=i3s-attributes-worker.js.map