@loaders.gl/gltf 3.1.0-alpha.4 → 4.0.0-alpha.1

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 (178) hide show
  1. package/dist/{esm/bundle.js → bundle.js} +0 -0
  2. package/dist/bundle.js.map +1 -0
  3. package/dist/{esm/glb-loader.js → glb-loader.js} +0 -0
  4. package/dist/glb-loader.js.map +1 -0
  5. package/dist/{esm/glb-writer.js → glb-writer.js} +0 -0
  6. package/dist/glb-writer.js.map +1 -0
  7. package/dist/{esm/gltf-loader.js → gltf-loader.js} +0 -0
  8. package/dist/gltf-loader.js.map +1 -0
  9. package/dist/{esm/gltf-writer.js → gltf-writer.js} +0 -0
  10. package/dist/gltf-writer.js.map +1 -0
  11. package/dist/{esm/index.js → index.js} +0 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/{esm/lib → lib}/api/gltf-extensions.js +0 -0
  14. package/dist/lib/api/gltf-extensions.js.map +1 -0
  15. package/dist/{esm/lib → lib}/api/gltf-scenegraph.js +1 -1
  16. package/dist/lib/api/gltf-scenegraph.js.map +1 -0
  17. package/dist/{esm/lib → lib}/api/normalize-gltf-v1.js +3 -3
  18. package/dist/lib/api/normalize-gltf-v1.js.map +1 -0
  19. package/dist/{esm/lib → lib}/api/post-process-gltf.js +12 -12
  20. package/dist/lib/api/post-process-gltf.js.map +1 -0
  21. package/dist/{esm/lib → lib}/encoders/encode-glb.js +0 -0
  22. package/dist/lib/encoders/encode-glb.js.map +1 -0
  23. package/dist/{esm/lib → lib}/encoders/encode-gltf.js +0 -0
  24. package/dist/lib/encoders/encode-gltf.js.map +1 -0
  25. package/dist/{esm/lib → lib}/extensions/EXT_meshopt_compression.js +1 -1
  26. package/dist/lib/extensions/EXT_meshopt_compression.js.map +1 -0
  27. package/dist/{esm/lib → lib}/extensions/EXT_texture_webp.js +1 -1
  28. package/dist/lib/extensions/EXT_texture_webp.js.map +1 -0
  29. package/dist/{esm/lib → lib}/extensions/KHR_binary_gltf.js +0 -0
  30. package/dist/lib/extensions/KHR_binary_gltf.js.map +1 -0
  31. package/dist/{esm/lib → lib}/extensions/KHR_draco_mesh_compression.js +0 -0
  32. package/dist/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
  33. package/dist/{esm/lib → lib}/extensions/KHR_texture_basisu.js +0 -0
  34. package/dist/lib/extensions/KHR_texture_basisu.js.map +1 -0
  35. package/dist/{esm/lib → lib}/extensions/deprecated/KHR_lights_punctual.js +0 -0
  36. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  37. package/dist/{esm/lib → lib}/extensions/deprecated/KHR_materials_unlit.js +0 -0
  38. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  39. package/dist/{esm/lib → lib}/extensions/deprecated/KHR_techniques_webgl.js +0 -0
  40. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  41. package/dist/{esm/lib → lib}/gltf-utils/get-typed-array.js +0 -0
  42. package/dist/lib/gltf-utils/get-typed-array.js.map +1 -0
  43. package/dist/{esm/lib → lib}/gltf-utils/gltf-attribute-utils.js +0 -0
  44. package/dist/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
  45. package/dist/{esm/lib → lib}/gltf-utils/gltf-constants.js +0 -0
  46. package/dist/lib/gltf-utils/gltf-constants.js.map +1 -0
  47. package/dist/{esm/lib → lib}/gltf-utils/gltf-utils.js +0 -0
  48. package/dist/lib/gltf-utils/gltf-utils.js.map +1 -0
  49. package/dist/{esm/lib → lib}/gltf-utils/resolve-url.js +1 -1
  50. package/dist/lib/gltf-utils/resolve-url.js.map +1 -0
  51. package/dist/{esm/lib → lib}/parsers/parse-glb.js +2 -6
  52. package/dist/lib/parsers/parse-glb.js.map +1 -0
  53. package/dist/{esm/lib → lib}/parsers/parse-gltf.js +19 -2
  54. package/dist/lib/parsers/parse-gltf.js.map +1 -0
  55. package/dist/{esm/lib → lib}/types/glb-types.js +0 -0
  56. package/dist/{es5/lib → lib}/types/glb-types.js.map +0 -0
  57. package/dist/{esm/lib → lib}/types/gltf-json-schema.js +0 -0
  58. package/dist/{es5/lib → lib}/types/gltf-json-schema.js.map +0 -0
  59. package/dist/{esm/lib → lib}/types/gltf-postprocessed-schema.js +0 -0
  60. package/dist/{es5/lib → lib}/types/gltf-postprocessed-schema.js.map +0 -0
  61. package/dist/{esm/lib → lib}/types/gltf-types.js +0 -0
  62. package/dist/{es5/lib → lib}/types/gltf-types.js.map +0 -0
  63. package/dist/{esm/lib → lib}/utils/assert.js +0 -0
  64. package/dist/lib/utils/assert.js.map +1 -0
  65. package/dist/lib/utils/version.js +2 -0
  66. package/dist/lib/utils/version.js.map +1 -0
  67. package/dist/{esm/meshopt → meshopt}/meshopt-decoder.js +1 -1
  68. package/dist/meshopt/meshopt-decoder.js.map +1 -0
  69. package/dist/{es5/meshopt → meshopt}/meshopt-encoder.ts.disabled +0 -0
  70. package/dist/{esm/webp → webp}/webp.js +1 -1
  71. package/dist/webp/webp.js.map +1 -0
  72. package/package.json +12 -9
  73. package/src/lib/parsers/parse-gltf.ts +17 -1
  74. package/dist/dist.min.js +0 -2
  75. package/dist/dist.min.js.map +0 -1
  76. package/dist/es5/bundle.js +0 -7
  77. package/dist/es5/bundle.js.map +0 -1
  78. package/dist/es5/glb-loader.js +0 -70
  79. package/dist/es5/glb-loader.js.map +0 -1
  80. package/dist/es5/glb-writer.js +0 -41
  81. package/dist/es5/glb-writer.js.map +0 -1
  82. package/dist/es5/gltf-loader.js +0 -97
  83. package/dist/es5/gltf-loader.js.map +0 -1
  84. package/dist/es5/gltf-writer.js +0 -40
  85. package/dist/es5/gltf-writer.js.map +0 -1
  86. package/dist/es5/index.js +0 -56
  87. package/dist/es5/index.js.map +0 -1
  88. package/dist/es5/lib/api/gltf-extensions.js +0 -146
  89. package/dist/es5/lib/api/gltf-extensions.js.map +0 -1
  90. package/dist/es5/lib/api/gltf-scenegraph.js +0 -623
  91. package/dist/es5/lib/api/gltf-scenegraph.js.map +0 -1
  92. package/dist/es5/lib/api/normalize-gltf-v1.js +0 -389
  93. package/dist/es5/lib/api/normalize-gltf-v1.js.map +0 -1
  94. package/dist/es5/lib/api/post-process-gltf.js +0 -476
  95. package/dist/es5/lib/api/post-process-gltf.js.map +0 -1
  96. package/dist/es5/lib/encoders/encode-glb.js +0 -75
  97. package/dist/es5/lib/encoders/encode-glb.js.map +0 -1
  98. package/dist/es5/lib/encoders/encode-gltf.js +0 -26
  99. package/dist/es5/lib/encoders/encode-gltf.js.map +0 -1
  100. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +0 -137
  101. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +0 -1
  102. package/dist/es5/lib/extensions/EXT_texture_webp.js +0 -60
  103. package/dist/es5/lib/extensions/EXT_texture_webp.js.map +0 -1
  104. package/dist/es5/lib/extensions/KHR_binary_gltf.js +0 -53
  105. package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +0 -1
  106. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +0 -331
  107. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
  108. package/dist/es5/lib/extensions/KHR_texture_basisu.js +0 -49
  109. package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +0 -1
  110. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +0 -129
  111. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
  112. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +0 -97
  113. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
  114. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +0 -139
  115. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
  116. package/dist/es5/lib/gltf-utils/get-typed-array.js +0 -26
  117. package/dist/es5/lib/gltf-utils/get-typed-array.js.map +0 -1
  118. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +0 -85
  119. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
  120. package/dist/es5/lib/gltf-utils/gltf-constants.js +0 -48
  121. package/dist/es5/lib/gltf-utils/gltf-constants.js.map +0 -1
  122. package/dist/es5/lib/gltf-utils/gltf-utils.js +0 -69
  123. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +0 -1
  124. package/dist/es5/lib/gltf-utils/resolve-url.js +0 -23
  125. package/dist/es5/lib/gltf-utils/resolve-url.js.map +0 -1
  126. package/dist/es5/lib/parsers/parse-glb.js +0 -142
  127. package/dist/es5/lib/parsers/parse-glb.js.map +0 -1
  128. package/dist/es5/lib/parsers/parse-gltf.js +0 -335
  129. package/dist/es5/lib/parsers/parse-gltf.js.map +0 -1
  130. package/dist/es5/lib/types/glb-types.js +0 -2
  131. package/dist/es5/lib/types/gltf-json-schema.js +0 -2
  132. package/dist/es5/lib/types/gltf-postprocessed-schema.js +0 -2
  133. package/dist/es5/lib/types/gltf-types.js +0 -2
  134. package/dist/es5/lib/utils/assert.js +0 -13
  135. package/dist/es5/lib/utils/assert.js.map +0 -1
  136. package/dist/es5/lib/utils/version.js +0 -9
  137. package/dist/es5/lib/utils/version.js.map +0 -1
  138. package/dist/es5/meshopt/meshopt-decoder.js +0 -270
  139. package/dist/es5/meshopt/meshopt-decoder.js.map +0 -1
  140. package/dist/es5/webp/webp.js +0 -104
  141. package/dist/es5/webp/webp.js.map +0 -1
  142. package/dist/esm/bundle.js.map +0 -1
  143. package/dist/esm/glb-loader.js.map +0 -1
  144. package/dist/esm/glb-writer.js.map +0 -1
  145. package/dist/esm/gltf-loader.js.map +0 -1
  146. package/dist/esm/gltf-writer.js.map +0 -1
  147. package/dist/esm/index.js.map +0 -1
  148. package/dist/esm/lib/api/gltf-extensions.js.map +0 -1
  149. package/dist/esm/lib/api/gltf-scenegraph.js.map +0 -1
  150. package/dist/esm/lib/api/normalize-gltf-v1.js.map +0 -1
  151. package/dist/esm/lib/api/post-process-gltf.js.map +0 -1
  152. package/dist/esm/lib/encoders/encode-glb.js.map +0 -1
  153. package/dist/esm/lib/encoders/encode-gltf.js.map +0 -1
  154. package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +0 -1
  155. package/dist/esm/lib/extensions/EXT_texture_webp.js.map +0 -1
  156. package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +0 -1
  157. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
  158. package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +0 -1
  159. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
  160. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
  161. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
  162. package/dist/esm/lib/gltf-utils/get-typed-array.js.map +0 -1
  163. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
  164. package/dist/esm/lib/gltf-utils/gltf-constants.js.map +0 -1
  165. package/dist/esm/lib/gltf-utils/gltf-utils.js.map +0 -1
  166. package/dist/esm/lib/gltf-utils/resolve-url.js.map +0 -1
  167. package/dist/esm/lib/parsers/parse-glb.js.map +0 -1
  168. package/dist/esm/lib/parsers/parse-gltf.js.map +0 -1
  169. package/dist/esm/lib/types/glb-types.js.map +0 -1
  170. package/dist/esm/lib/types/gltf-json-schema.js.map +0 -1
  171. package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +0 -1
  172. package/dist/esm/lib/types/gltf-types.js.map +0 -1
  173. package/dist/esm/lib/utils/assert.js.map +0 -1
  174. package/dist/esm/lib/utils/version.js +0 -2
  175. package/dist/esm/lib/utils/version.js.map +0 -1
  176. package/dist/esm/meshopt/meshopt-decoder.js.map +0 -1
  177. package/dist/esm/meshopt/meshopt-encoder.ts.disabled +0 -409
  178. package/dist/esm/webp/webp.js.map +0 -1
package/dist/dist.min.js DELETED
@@ -1,2 +0,0 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var s=t[r]={i:r,l:!1,exports:{}};return e[r].call(s.exports,s,s.exports,n),s.l=!0,s.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)n.d(r,s,function(t){return e[t]}.bind(null,s));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=9)}([,function(e,t,n){"use strict";(function(e,r){n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return A}));const s={self:"undefined"!=typeof self&&self,window:"undefined"!=typeof window&&window,global:void 0!==e&&e,document:"undefined"!=typeof document&&document},i=s.global||s.self||s.window||{},o="object"!=typeof r||"[object process]"!==String(r)||r.browser,A="function"==typeof importScripts,a=("undefined"!=typeof window&&window.orientation,void 0!==r&&r.version&&/v([0-9]*)/.exec(r.version));a&&parseFloat(a[1])}).call(this,n(6),n(7))},function(e,t){},function(e,t){},,,function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){var n,r,s=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function A(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(e){r=o}}();var a,B=[],c=!1,u=-1;function C(){c&&a&&(c=!1,a.length?B=a.concat(B):u=-1,B.length&&f())}function f(){if(!c){var e=A(C);c=!0;for(var t=B.length;t;){for(a=B,B=[];++u<t;)a&&a[u].run();u=-1,t=B.length}a=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function l(){}s.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];B.push(new d(e,t)),1!==B.length||c||A(f)},d.prototype.run=function(){this.fun.apply(null,this.array)},s.title="browser",s.browser=!0,s.env={},s.argv=[],s.version="",s.versions={},s.on=l,s.addListener=l,s.once=l,s.off=l,s.removeListener=l,s.removeAllListeners=l,s.emit=l,s.prependListener=l,s.prependOnceListener=l,s.listeners=function(e){return[]},s.binding=function(e){throw new Error("process.binding is not supported")},s.cwd=function(){return"/"},s.chdir=function(e){throw new Error("process.chdir is not supported")},s.umask=function(){return 0}},,function(e,t,n){const r=n(11);globalThis.loaders=globalThis.loaders||{},e.exports=Object.assign(globalThis.loaders,r)},,function(e,t,n){"use strict";n.r(t),n.d(t,"GLTFLoader",(function(){return Xt})),n.d(t,"GLTFWriter",(function(){return Vt})),n.d(t,"GLBLoader",(function(){return kt})),n.d(t,"GLBWriter",(function(){return zt})),n.d(t,"GLTFScenegraph",(function(){return q})),n.d(t,"postProcessGLTF",(function(){return vt}));var r={};n.r(r),n.d(r,"name",(function(){return oe})),n.d(r,"preprocess",(function(){return Ae})),n.d(r,"decode",(function(){return ae}));var s={};n.r(s),n.d(s,"name",(function(){return fe})),n.d(s,"preprocess",(function(){return de}));var i={};n.r(i),n.d(i,"name",(function(){return le})),n.d(i,"preprocess",(function(){return me}));var o={};n.r(o),n.d(o,"name",(function(){return at})),n.d(o,"preprocess",(function(){return Bt})),n.d(o,"decode",(function(){return ct})),n.d(o,"encode",(function(){return ut}));var A={};n.r(A),n.d(A,"name",(function(){return lt})),n.d(A,"decode",(function(){return mt})),n.d(A,"encode",(function(){return ht}));var a={};n.r(a),n.d(a,"name",(function(){return Ft})),n.d(a,"decode",(function(){return gt})),n.d(a,"encode",(function(){return bt}));var B={};n.r(B),n.d(B,"name",(function(){return Gt})),n.d(B,"decode",(function(){return It})),n.d(B,"encode",(function(){return Dt}));const c="3.1.0-alpha.4";function u(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var C=n(14);const{_parseImageNode:f}=globalThis,d="undefined"!=typeof Image,l="undefined"!=typeof ImageBitmap,m=Boolean(f),h=!!C.a||m;function F(e){const t=b(e);if(!t)throw new Error("Not an image");return t}function g(e){switch(F(e)){case"data":return e;case"image":case"imagebitmap":const t=document.createElement("canvas"),n=t.getContext("2d");if(!n)throw new Error("getImageData");return t.width=e.width,t.height=e.height,n.drawImage(e,0,0),n.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}function b(e){return"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap?"imagebitmap":"undefined"!=typeof Image&&e instanceof Image?"image":e&&"object"==typeof e&&e.data&&e.width&&e.height?"data":null}const G=/^data:image\/svg\+xml/,I=/\.svg((\?|#).*)?$/;function D(e){return e&&(G.test(e)||I.test(e))}function E(e,t){if(D(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function M(e,t,n){const r=function(e,t){if(D(t)){let t=(new TextDecoder).decode(e);try{"function"==typeof unescape&&"function"==typeof encodeURIComponent&&(t=unescape(encodeURIComponent(t)))}catch(e){throw new Error(e.message)}return"data:image/svg+xml;base64,"+btoa(t)}return E(e,t)}(e,n),s=self.URL||self.webkitURL,i="string"!=typeof r&&s.createObjectURL(r);try{return await async function(e,t){const n=new Image;if(n.src=e,t.image&&t.image.decode&&n.decode)return await n.decode(),n;return await new Promise((t,r)=>{try{n.onload=()=>t(n),n.onerror=t=>r(new Error(`Could not load image ${e}: ${t}`))}catch(e){r(e)}})}(i||r,t)}finally{i&&s.revokeObjectURL(i)}}const y={};let J=!0;async function H(e,t,n){let r;if(D(n)){r=await M(e,t,n)}else r=E(e,n);const s=t&&t.imagebitmap;return await async function(e,t=null){!function(e){for(const t in e||y)return!1;return!0}(t)&&J||(t=null);if(t)try{return await createImageBitmap(e,t)}catch(e){console.warn(e),J=!1}return await createImageBitmap(e)}(r,s)}function p(e){const t=R(e);return function(e){const t=R(e);if(!(t.byteLength>=24&&2303741511===t.getUint32(0,!1)))return null;return{mimeType:"image/png",width:t.getUint32(16,!1),height:t.getUint32(20,!1)}}(t)||function(e){const t=R(e);if(!(t.byteLength>=3&&65496===t.getUint16(0,!1)&&255===t.getUint8(2)))return null;const{tableMarkers:n,sofMarkers:r}=function(){const e=new Set([65499,65476,65484,65501,65534]);for(let t=65504;t<65520;++t)e.add(t);const t=new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502]);return{tableMarkers:e,sofMarkers:t}}();let s=2;for(;s+9<t.byteLength;){const e=t.getUint16(s,!1);if(r.has(e))return{mimeType:"image/jpeg",height:t.getUint16(s+5,!1),width:t.getUint16(s+7,!1)};if(!n.has(e))return null;s+=2,s+=t.getUint16(s,!1)}return null}(t)||function(e){const t=R(e);if(!(t.byteLength>=10&&1195984440===t.getUint32(0,!1)))return null;return{mimeType:"image/gif",width:t.getUint16(6,!0),height:t.getUint16(8,!0)}}(t)||function(e){const t=R(e);if(!(t.byteLength>=14&&16973===t.getUint16(0,!1)&&t.getUint32(2,!0)===t.byteLength))return null;return{mimeType:"image/bmp",width:t.getUint32(18,!0),height:t.getUint32(22,!0)}}(t)}function R(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}const U={id:"image",module:"images",name:"Images",version:"3.1.0-alpha.4",mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],extensions:["png","jpg","jpeg","gif","webp","bmp","ico","svg"],parse:async function(e,t,n){const r=((t=t||{}).image||{}).type||"auto",{url:s}=n||{};let i;switch(function(e){switch(e){case"auto":case"data":return function(){if(l)return"imagebitmap";if(d)return"image";if(h)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}();default:return function(e){switch(e){case"auto":return l||d||h;case"imagebitmap":return l;case"image":return d;case"data":return h;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}(e),e}}(r)){case"imagebitmap":i=await H(e,t,s);break;case"image":i=await M(e,t,s);break;case"data":i=await async function(e,t){const{mimeType:n}=p(e)||{},r=globalThis._parseImageNode;return u(r),await r(e,n)}(e);break;default:u(!1)}return"data"===r&&(i=g(i)),i},tests:[e=>Boolean(p(new DataView(e)))],options:{image:{type:"auto",decode:!0}}};function T(e,t,n){if(e.byteLength<=t+n)return"";const r=new DataView(e);let s="";for(let e=0;e<n;e++)s+=String.fromCharCode(r.getUint8(t+e));return s}function O(e){try{return JSON.parse(e)}catch(t){throw new Error(`Failed to parse JSON from data starting with "${function(e,t=5){if("string"==typeof e)return e.slice(0,t);if(ArrayBuffer.isView(e))return T(e.buffer,e.byteOffset,t);if(e instanceof ArrayBuffer){return T(e,0,t)}return""}(e)}"`)}}n(3);function w(e,t,n){const r=void 0!==n?new Uint8Array(e).subarray(t,t+n):new Uint8Array(e).subarray(t);return new Uint8Array(r).buffer}function K(e,t){if(!e)throw new Error(t||"assert failed: gltf")}function v(e,t){if(e.startsWith("data:")||e.startsWith("http:")||e.startsWith("https:"))return e;const n=t.baseUri||t.uri;if(!n)throw new Error("'baseUri' must be provided to resolve relative url "+e);return n.substr(0,n.lastIndexOf("/")+1)+e}function L(e,t,n){const r=e.bufferViews[n];K(r);const s=t[r.buffer];K(s);const i=(r.byteOffset||0)+s.byteOffset;return new Uint8Array(s.arrayBuffer,i,r.byteLength)}function j(e,t){return u(e>=0),u(t>0),e+(t-1)&~(t-1)}function Q(e,t,n){let r;if(e instanceof ArrayBuffer)r=new Uint8Array(e);else{const t=e.byteOffset,n=e.byteLength;r=new Uint8Array(e.buffer||e.arrayBuffer,t,n)}return t.set(r,n),n+j(r.byteLength,4)}const S=["SCALAR","VEC2","VEC3","VEC4"],x=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],_=new Map(x),P={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},X={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},N={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function Y(e){return S[e-1]||S[0]}function W(e){const t=_.get(e.constructor);if(!t)throw new Error("Illegal typed array");return t}function Z(e,t){const n=N[e.componentType],r=P[e.type],s=X[e.componentType],i=e.count*r,o=e.count*r*s;return K(o>=0&&o<=t.byteLength),{ArrayType:n,length:i,byteLength:o}}function V(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const k={asset:{version:"2.0",generator:"loaders.gl"},buffers:[]};class q{constructor(e){V(this,"gltf",void 0),V(this,"sourceBuffers",void 0),V(this,"byteLength",void 0),this.gltf=e||{json:{...k},buffers:[]},this.sourceBuffers=[],this.byteLength=0,this.gltf.buffers&&this.gltf.buffers[0]&&(this.byteLength=this.gltf.buffers[0].byteLength,this.sourceBuffers=[this.gltf.buffers[0]])}get json(){return this.gltf.json}getApplicationData(e){return this.json[e]}getExtraData(e){return(this.json.extras||{})[e]}getExtension(e){const t=this.getUsedExtensions().find(t=>t===e),n=this.json.extensions||{};return t?n[e]||!0:null}getRequiredExtension(e){return this.getRequiredExtensions().find(t=>t===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getObjectExtension(e,t){return(e.extensions||{})[t]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,t){if("object"==typeof t)return t;const n=this.json[e]&&this.json[e][t];if(!n)throw new Error(`glTF file error: Could not find ${e}[${t}]`);return n}getTypedArrayForBufferView(e){const t=(e=this.getBufferView(e)).buffer,n=this.gltf.buffers[t];K(n);const r=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,r,e.byteLength)}getTypedArrayForAccessor(e){e=this.getAccessor(e);const t=this.getBufferView(e.bufferView),n=this.getBuffer(t.buffer).data,{ArrayType:r,length:s}=Z(e,t);return new r(n,t.byteOffset+e.byteOffset,s)}getTypedArrayForImageData(e){e=this.getAccessor(e);const t=this.getBufferView(e.bufferView),n=this.getBuffer(t.buffer).data,r=t.byteOffset||0;return new Uint8Array(n,r,t.byteLength)}addApplicationData(e,t){return this.json[e]=t,this}addExtraData(e,t){return this.json.extras=this.json.extras||{},this.json.extras[e]=t,this}addObjectExtension(e,t,n){return e.extensions=e.extensions||{},e.extensions[t]=n,this.registerUsedExtension(t),this}setObjectExtension(e,t,n){(e.extensions||{})[t]=n}removeObjectExtension(e,t){const n=e.extensions||{},r=n[t];return delete n[t],r}addExtension(e,t={}){return K(t),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=t,this.registerUsedExtension(e),t}addRequiredExtension(e,t={}){return K(t),this.addExtension(e,t),this.registerRequiredExtension(e),t}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(t=>t===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(t=>t===e)||this.json.extensionsRequired.push(e)}removeExtension(e){this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e),this.json.extensions&&delete this.json.extensions[e]}setDefaultScene(e){this.json.scene=e}addScene(e){const{nodeIndices:t}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:t}),this.json.scenes.length-1}addNode(e){const{meshIndex:t,matrix:n}=e;this.json.nodes=this.json.nodes||[];const r={mesh:t};return n&&(r.matrix=n),this.json.nodes.push(r),this.json.nodes.length-1}addMesh(e){const{attributes:t,indices:n,material:r,mode:s=4}=e,i={primitives:[{attributes:this._addAttributes(t),mode:s}]};if(n){const e=this._addIndices(n);i.primitives[0].indices=e}return Number.isFinite(r)&&(i.primitives[0].material=r),this.json.meshes=this.json.meshes||[],this.json.meshes.push(i),this.json.meshes.length-1}addPointCloud(e){const t={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(t),this.json.meshes.length-1}addImage(e,t){const n=p(e),r=t||(null==n?void 0:n.mimeType),s={bufferView:this.addBufferView(e),mimeType:r};return this.json.images=this.json.images||[],this.json.images.push(s),this.json.images.length-1}addBufferView(e){const t=e.byteLength;K(Number.isFinite(t)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);const n={buffer:0,byteOffset:this.byteLength,byteLength:t};return this.byteLength+=j(t,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(n),this.json.bufferViews.length-1}addAccessor(e,t){const n={bufferView:e,type:Y(t.size),componentType:t.componentType,count:t.count,max:t.max,min:t.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e,t={size:3}){const n=this.addBufferView(e);let r={min:t.min,max:t.max};r.min&&r.max||(r=this._getAccessorMinMax(e,t.size));const s={size:t.size,componentType:W(e),count:Math.round(e.length/t.size),min:r.min,max:r.max};return this.addAccessor(n,Object.assign(s,t))}addTexture(e){const{imageIndex:t}=e,n={source:t};return this.json.textures=this.json.textures||[],this.json.textures.push(n),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){var e,t;this.gltf.buffers=[];const n=this.byteLength,r=new ArrayBuffer(n),s=new Uint8Array(r);let i=0;for(const e of this.sourceBuffers||[])i=Q(e,s,i);null!==(e=this.json)&&void 0!==e&&null!==(t=e.buffers)&&void 0!==t&&t[0]?this.json.buffers[0].byteLength=n:this.json.buffers=[{byteLength:n}],this.gltf.binary=r,this.sourceBuffers=[r]}_removeStringFromArray(e,t){let n=!0;for(;n;){const r=e.indexOf(t);r>-1?e.splice(r,1):n=!1}}_addAttributes(e={}){const t={};for(const n in e){const r=e[n],s=this._getGltfAttributeName(n),i=this.addBinaryBuffer(r.value,r);t[s]=i}return t}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return e}}_getAccessorMinMax(e,t){const n={min:null,max:null};if(e.length<t)return n;n.min=[],n.max=[];const r=e.subarray(0,t);for(const e of r)n.min.push(e),n.max.push(e);for(let r=t;r<e.length;r+=t)for(let s=0;s<t;s++)n.min[0+s]=Math.min(n.min[0+s],e[r+s]),n.max[0+s]=Math.max(n.max[0+s],e[r+s]);return n}}const z="object"!=typeof WebAssembly,$=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),ee=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]),te={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},ne={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};let re;async function se(){return re||(re=async function(){let e="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";WebAssembly.validate($)&&(e="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",console.log("Warning: meshopt_decoder is using experimental SIMD support"));const t=await WebAssembly.instantiate(function(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n){const r=e.charCodeAt(n);t[n]=r>96?r-71:r>64?r-65:r>47?r+4:r>46?63:62}let n=0;for(let r=0;r<e.length;++r)t[n++]=t[r]<60?ee[t[r]]:64*(t[r]-60)+t[++r];return t.buffer.slice(0,n)}(e),{});return await t.instance.exports.__wasm_call_ctors(),t.instance}()),re}function ie(e,t,n,r,s,i,o){const A=e.exports.sbrk,a=r+3&-4,B=A(a*s),c=A(i.length),u=new Uint8Array(e.exports.memory.buffer);u.set(i,c);const C=t(B,r,s,c,i.length);if(0===C&&o&&o(B,a,s),n.set(u.subarray(B,B+r*s)),A(B-A(0)),0!==C)throw new Error("Malformed buffer data: "+C)}const oe="EXT_meshopt_compression";function Ae(e){if(new q(e).getRequiredExtensions().includes("EXT_meshopt_compression")&&!z)throw new Error("gltf: Required extension EXT_meshopt_compression not supported by browser")}async function ae(e,t){var n;const r=new q(e);if(null==t||null===(n=t.gltf)||void 0===n||!n.decompressMeshes)return;const s=[];for(const t of e.json.bufferViews||[])s.push(Be(r,t));await Promise.all(s),r.removeExtension("EXT_meshopt_compression")}async function Be(e,t){const n=e.getObjectExtension(t,"EXT_meshopt_compression");if(n){const e=t.buffer,{byteOffset:r=0,byteLength:s=0,byteStride:i,count:o,mode:A,filter:a="NONE"}=n,B=new Uint8Array(e,r,s),c=new ArrayBuffer(o*i);return await async function(e,t,n,r,s,i="NONE"){const o=await se();ie(o,o.exports[ne[s]],e,t,n,r,o.exports[te[i||"NONE"]])}(new Uint8Array(c),o,i,B,A,a),c}return null}const ce=["image/png","image/jpeg","image/gif"],ue={};function Ce(e){return void 0===ue[e]&&(ue[e]=function(e){switch(e){case"image/webp":return function(){if(!C.a)return!1;try{return 0===document.createElement("canvas").toDataURL("image/webp").indexOf("data:image/webp")}catch{return!1}}();case"image/svg":return C.a;default:if(!C.a){const{_parseImageNode:t}=globalThis;return Boolean(t)&&ce.includes(e)}return!0}}(e)),ue[e]}const fe="EXT_texture_webp";function de(e,t){const n=new q(e);if(!Ce("image/webp")){if(n.getRequiredExtensions().includes("EXT_texture_webp"))throw new Error("gltf: Required extension EXT_texture_webp not supported by browser");return}const{json:r}=n;for(const e of r.textures||[]){const t=n.getObjectExtension(e,"EXT_texture_webp");t&&(e.source=t.source),n.removeObjectExtension(e,"EXT_texture_webp")}n.removeExtension("EXT_texture_webp")}const le="KHR_texture_basisu";function me(e,t){const n=new q(e),{json:r}=n;for(const e of r.textures||[]){const t=n.getObjectExtension(e,"KHR_texture_basisu");t&&(e.source=t.source),n.removeObjectExtension(e,"KHR_texture_basisu")}n.removeExtension("KHR_texture_basisu")}const he={name:"Draco",id:"draco",module:"draco",shapes:["mesh"],version:"3.1.0-alpha.4",worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:"object"==typeof WebAssembly?"wasm":"js",libraryPath:"libs/",extraAttributes:{},attributeNameEntry:void 0}}};function Fe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class ge{constructor(e,t){Fe(this,"fields",void 0),Fe(this,"metadata",void 0),function(e,t){if(!e)throw new Error(t||"loader assertion failed.")}(Array.isArray(e)),function(e){const t={};for(const n of e)t[n.name]&&console.warn("Schema: duplicated field name",n.name,n),t[n.name]=!0}(e),this.fields=e,this.metadata=t||new Map}compareTo(e){if(this.metadata!==e.metadata)return!1;if(this.fields.length!==e.fields.length)return!1;for(let t=0;t<this.fields.length;++t)if(!this.fields[t].compareTo(e.fields[t]))return!1;return!0}select(...e){const t=Object.create(null);for(const n of e)t[n]=!0;const n=this.fields.filter(e=>t[e.name]);return new ge(n,this.metadata)}selectAt(...e){const t=e.map(e=>this.fields[e]).filter(Boolean);return new ge(t,this.metadata)}assign(e){let t,n=this.metadata;if(e instanceof ge){const r=e;t=r.fields,n=be(be(new Map,this.metadata),r.metadata)}else t=e;const r=Object.create(null);for(const e of this.fields)r[e.name]=e;for(const e of t)r[e.name]=e;const s=Object.values(r);return new ge(s,n)}}function be(e,t){return new Map([...e||new Map,...t||new Map])}function Ge(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class Ie{constructor(e,t,n=!1,r=new Map){Ge(this,"name",void 0),Ge(this,"type",void 0),Ge(this,"nullable",void 0),Ge(this,"metadata",void 0),this.name=e,this.type=t,this.nullable=n,this.metadata=r}get typeId(){return this.type&&this.type.typeId}clone(){return new Ie(this.name,this.type,this.nullable,this.metadata)}compareTo(e){return this.name===e.name&&this.type===e.type&&this.nullable===e.nullable&&this.metadata===e.metadata}toString(){return`${this.type}${this.nullable?", nullable":""}${this.metadata?", metadata: "+this.metadata:""}`}}let De,Ee,Me,ye,Je,He,pe,Re,Ue;function Te(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}!function(e){e[e.NONE=0]="NONE",e[e.Null=1]="Null",e[e.Int=2]="Int",e[e.Float=3]="Float",e[e.Binary=4]="Binary",e[e.Utf8=5]="Utf8",e[e.Bool=6]="Bool",e[e.Decimal=7]="Decimal",e[e.Date=8]="Date",e[e.Time=9]="Time",e[e.Timestamp=10]="Timestamp",e[e.Interval=11]="Interval",e[e.List=12]="List",e[e.Struct=13]="Struct",e[e.Union=14]="Union",e[e.FixedSizeBinary=15]="FixedSizeBinary",e[e.FixedSizeList=16]="FixedSizeList",e[e.Map=17]="Map",e[e.Dictionary=-1]="Dictionary",e[e.Int8=-2]="Int8",e[e.Int16=-3]="Int16",e[e.Int32=-4]="Int32",e[e.Int64=-5]="Int64",e[e.Uint8=-6]="Uint8",e[e.Uint16=-7]="Uint16",e[e.Uint32=-8]="Uint32",e[e.Uint64=-9]="Uint64",e[e.Float16=-10]="Float16",e[e.Float32=-11]="Float32",e[e.Float64=-12]="Float64",e[e.DateDay=-13]="DateDay",e[e.DateMillisecond=-14]="DateMillisecond",e[e.TimestampSecond=-15]="TimestampSecond",e[e.TimestampMillisecond=-16]="TimestampMillisecond",e[e.TimestampMicrosecond=-17]="TimestampMicrosecond",e[e.TimestampNanosecond=-18]="TimestampNanosecond",e[e.TimeSecond=-19]="TimeSecond",e[e.TimeMillisecond=-20]="TimeMillisecond",e[e.TimeMicrosecond=-21]="TimeMicrosecond",e[e.TimeNanosecond=-22]="TimeNanosecond",e[e.DenseUnion=-23]="DenseUnion",e[e.SparseUnion=-24]="SparseUnion",e[e.IntervalDayTime=-25]="IntervalDayTime",e[e.IntervalYearMonth=-26]="IntervalYearMonth"}(De||(De={}));class Oe{static isNull(e){return e&&e.typeId===De.Null}static isInt(e){return e&&e.typeId===De.Int}static isFloat(e){return e&&e.typeId===De.Float}static isBinary(e){return e&&e.typeId===De.Binary}static isUtf8(e){return e&&e.typeId===De.Utf8}static isBool(e){return e&&e.typeId===De.Bool}static isDecimal(e){return e&&e.typeId===De.Decimal}static isDate(e){return e&&e.typeId===De.Date}static isTime(e){return e&&e.typeId===De.Time}static isTimestamp(e){return e&&e.typeId===De.Timestamp}static isInterval(e){return e&&e.typeId===De.Interval}static isList(e){return e&&e.typeId===De.List}static isStruct(e){return e&&e.typeId===De.Struct}static isUnion(e){return e&&e.typeId===De.Union}static isFixedSizeBinary(e){return e&&e.typeId===De.FixedSizeBinary}static isFixedSizeList(e){return e&&e.typeId===De.FixedSizeList}static isMap(e){return e&&e.typeId===De.Map}static isDictionary(e){return e&&e.typeId===De.Dictionary}get typeId(){return De.NONE}compareTo(e){return this===e}}Symbol.toStringTag;Symbol.toStringTag;Ee=Symbol.toStringTag;class we extends Oe{constructor(e,t){super(),Te(this,"isSigned",void 0),Te(this,"bitWidth",void 0),this.isSigned=e,this.bitWidth=t}get typeId(){return De.Int}get[Ee](){return"Int"}toString(){return`${this.isSigned?"I":"Ui"}nt${this.bitWidth}`}}class Ke extends we{constructor(){super(!0,8)}}class ve extends we{constructor(){super(!0,16)}}class Le extends we{constructor(){super(!0,32)}}class je extends we{constructor(){super(!1,8)}}class Qe extends we{constructor(){super(!1,16)}}class Se extends we{constructor(){super(!1,32)}}const xe=32,_e=64;Me=Symbol.toStringTag;class Pe extends Oe{constructor(e){super(),Te(this,"precision",void 0),this.precision=e}get typeId(){return De.Float}get[Me](){return"Float"}toString(){return"Float"+this.precision}}class Xe extends Pe{constructor(){super(xe)}}class Ne extends Pe{constructor(){super(_e)}}Symbol.toStringTag;Symbol.toStringTag;ye=Symbol.toStringTag;Je=Symbol.toStringTag;He=Symbol.toStringTag;pe=Symbol.toStringTag;Re=Symbol.toStringTag;class Ye extends Oe{constructor(e,t){super(),Te(this,"listSize",void 0),Te(this,"children",void 0),this.listSize=e,this.children=[t]}get typeId(){return De.FixedSizeList}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get[Re](){return"FixedSizeList"}toString(){return`FixedSizeList[${this.listSize}]<${this.valueType}>`}}Ue=Symbol.toStringTag;function We(e,t,n){const r=function(e){switch(e.constructor){case Int8Array:return new Ke;case Uint8Array:return new je;case Int16Array:return new ve;case Uint16Array:return new Qe;case Int32Array:return new Le;case Uint32Array:return new Se;case Float32Array:return new Xe;case Float64Array:return new Ne;default:throw new Error("array type not supported")}}(t.value),s=n||function(e){const t=new Map;"byteOffset"in e&&t.set("byteOffset",e.byteOffset.toString(10));"byteStride"in e&&t.set("byteStride",e.byteStride.toString(10));"normalized"in e&&t.set("normalized",e.normalized.toString());return t}(t);return new Ie(e,new Ye(t.size,new Ie("value",r)),!1,s)}function Ze(e,t,n){return We(e,t,n?Ve(n.metadata):void 0)}function Ve(e){const t=new Map;for(const n in e)t.set(n+".string",JSON.stringify(e[n]));return t}function ke(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const qe={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},ze={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array};class $e{constructor(e){ke(this,"draco",void 0),ke(this,"decoder",void 0),ke(this,"metadataQuerier",void 0),this.draco=e,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync(e,t={}){const n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(t);const r=this.decoder.GetEncodedGeometryType(n),s=r===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let e;switch(r){case this.draco.TRIANGULAR_MESH:e=this.decoder.DecodeBufferToMesh(n,s);break;case this.draco.POINT_CLOUD:e=this.decoder.DecodeBufferToPointCloud(n,s);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!e.ok()||!s.ptr){const t="DRACO decompression failed: "+e.error_msg();throw new Error(t)}const i=this._getDracoLoaderData(s,r,t),o=this._getMeshData(s,i,t),A=function(e){let t=1/0,n=1/0,r=1/0,s=-1/0,i=-1/0,o=-1/0;const A=e.POSITION?e.POSITION.value:[],a=A&&A.length;for(let e=0;e<a;e+=3){const a=A[e],B=A[e+1],c=A[e+2];t=a<t?a:t,n=B<n?B:n,r=c<r?c:r,s=a>s?a:s,i=B>i?B:i,o=c>o?c:o}return[[t,n,r],[s,i,o]]}(o.attributes),a=function(e,t,n){const r=Ve(t.metadata),s=[],i=function(e){const t={};for(const n in e){const r=e[n];t[r.name||"undefined"]=r}return t}(t.attributes);for(const t in e){const n=Ze(t,e[t],i[t]);s.push(n)}if(n){const e=Ze("indices",n);s.push(e)}return new ge(s,r)}(o.attributes,i,o.indices);return{loader:"draco",loaderData:i,header:{vertexCount:s.num_points(),boundingBox:A},...o,schema:a}}finally{this.draco.destroy(n),s&&this.draco.destroy(s)}}_getDracoLoaderData(e,t,n){const r=this._getTopLevelMetadata(e),s=this._getDracoAttributes(e,n);return{geometry_type:t,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:r,attributes:s}}_getDracoAttributes(e,t){const n={};for(let r=0;r<e.num_attributes();r++){const s=this.decoder.GetAttribute(e,r),i=this._getAttributeMetadata(e,r);n[s.unique_id()]={unique_id:s.unique_id(),attribute_type:s.attribute_type(),data_type:s.data_type(),num_components:s.num_components(),byte_offset:s.byte_offset(),byte_stride:s.byte_stride(),normalized:s.normalized(),attribute_index:r,metadata:i};const o=this._getQuantizationTransform(s,t);o&&(n[s.unique_id()].quantization_transform=o);const A=this._getOctahedronTransform(s,t);A&&(n[s.unique_id()].octahedron_transform=A)}return n}_getMeshData(e,t,n){const r=this._getMeshAttributes(t,e,n);if(!r.POSITION)throw new Error("DRACO: No position attribute found.");if(e instanceof this.draco.Mesh)switch(n.topology){case"triangle-strip":return{topology:"triangle-strip",mode:4,attributes:r,indices:{value:this._getTriangleStripIndices(e),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:r,indices:{value:this._getTriangleListIndices(e),size:1}}}return{topology:"point-list",mode:0,attributes:r}}_getMeshAttributes(e,t,n){const r={};for(const s of Object.values(e.attributes)){const e=this._deduceAttributeName(s,n);s.name=e;const{value:i,size:o}=this._getAttributeValues(t,s);r[e]={value:i,size:o,byteOffset:s.byte_offset,byteStride:s.byte_stride,normalized:s.normalized}}return r}_getTriangleListIndices(e){const t=3*e.num_faces(),n=4*t,r=this.draco._malloc(n);try{return this.decoder.GetTrianglesUInt32Array(e,n,r),new Uint32Array(this.draco.HEAPF32.buffer,r,t).slice()}finally{this.draco._free(r)}}_getTriangleStripIndices(e){const t=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,t),function(e){const t=e.size(),n=new Int32Array(t);for(let r=0;r<t;r++)n[r]=e.GetValue(r);return n}(t)}finally{this.draco.destroy(t)}}_getAttributeValues(e,t){const n=ze[t.data_type],r=t.num_components,s=e.num_points()*r,i=s*n.BYTES_PER_ELEMENT,o=function(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32;default:return e.DT_INVALID}}(this.draco,n);let A;const a=this.draco._malloc(i);try{const r=this.decoder.GetAttribute(e,t.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,r,o,i,a),A=new n(this.draco.HEAPF32.buffer,a,s).slice()}finally{this.draco._free(a)}return{value:A,size:r}}_deduceAttributeName(e,t){const n=e.unique_id;for(const[e,r]of Object.entries(t.extraAttributes||{}))if(r===n)return e;const r=e.attribute_type;for(const e in qe){if(this.draco[e]===r)return qe[e]}const s=t.attributeNameEntry||"name";return e.metadata[s]?e.metadata[s].string:"CUSTOM_ATTRIBUTE_"+n}_getTopLevelMetadata(e){const t=this.decoder.GetMetadata(e);return this._getDracoMetadata(t)}_getAttributeMetadata(e,t){const n=this.decoder.GetAttributeMetadata(e,t);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};const t={},n=this.metadataQuerier.NumEntries(e);for(let r=0;r<n;r++){const n=this.metadataQuerier.GetEntryName(e,r);t[n]=this._getDracoMetadataField(e,n)}return t}_getDracoMetadataField(e,t){const n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,t,n);const r=function(e){const t=e.size(),n=new Int32Array(t);for(let r=0;r<t;r++)n[r]=e.GetValue(r);return n}(n);return{int:this.metadataQuerier.GetIntEntry(e,t),string:this.metadataQuerier.GetStringEntry(e,t),double:this.metadataQuerier.GetDoubleEntry(e,t),intArray:r}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){const{quantizedAttributes:t=[],octahedronAttributes:n=[]}=e,r=[...t,...n];for(const e of r)this.decoder.SkipAttributeTransform(this.draco[e])}_getQuantizationTransform(e,t){const{quantizedAttributes:n=[]}=t,r=e.attribute_type();if(n.map(e=>this.decoder[e]).includes(r)){const t=new this.draco.AttributeQuantizationTransform;try{if(t.InitFromAttribute(e))return{quantization_bits:t.quantization_bits(),range:t.range(),min_values:new Float32Array([1,2,3]).map(e=>t.min_value(e))}}finally{this.draco.destroy(t)}}return null}_getOctahedronTransform(e,t){const{octahedronAttributes:n=[]}=t,r=e.attribute_type();if(n.map(e=>this.decoder[e]).includes(r)){const t=new this.draco.AttributeQuantizationTransform;try{if(t.InitFromAttribute(e))return{quantization_bits:t.quantization_bits()}}finally{this.draco.destroy(t)}}return null}}var et=n(1),tt=n(2);const nt={};async function rt(e,t=null,n={}){return t&&(e=function(e,t,n){if(e.startsWith("http"))return e;const r=n.modules||{};if(r[e])return r[e];if(!et.b)return`modules/${t}/dist/libs/${e}`;if(n.CDN)return function(e,t){if(!e)throw new Error(t||"loaders.gl assertion failed.")}(n.CDN.startsWith("http")),`${n.CDN}/${t}@3.1.0-alpha.4/dist/libs/${e}`;if(et.c)return"../src/libs/"+e;return`modules/${t}/src/libs/${e}`}(e,t,n)),nt[e]=nt[e]||async function(e){if(e.endsWith("wasm")){const t=await fetch(e);return await t.arrayBuffer()}if(!et.b)return tt.requireFromFile&&await tt.requireFromFile(e);if(et.c)return importScripts(e);const t=await fetch(e);return function(e,t){if(!et.b)return tt.requireFromString&&tt.requireFromString(e,t);if(et.c)return eval.call(et.a,e),null;const n=document.createElement("script");n.id=t;try{n.appendChild(document.createTextNode(e))}catch(t){n.text=e}return document.body.appendChild(n),null}(await t.text(),e)}(e),await nt[e]}let st;async function it(e){const t=e.modules||{};return st=t.draco3d?st||t.draco3d.createDecoderModule({}).then(e=>({draco:e})):st||async function(e){let t,n;switch(e.draco&&e.draco.decoderType){case"js":t=await rt("https://www.gstatic.com/draco/versioned/decoders/1.4.1/draco_decoder.js","draco",e);break;case"wasm":default:[t,n]=await Promise.all([await rt("https://www.gstatic.com/draco/versioned/decoders/1.4.1/draco_wasm_wrapper.js","draco",e),await rt("https://www.gstatic.com/draco/versioned/decoders/1.4.1/draco_decoder.wasm","draco",e)])}return t=t||globalThis.DracoDecoderModule,await function(e,t){const n={};t&&(n.wasmBinary=t);return new Promise(t=>{e({...n,onModuleLoaded:e=>t({draco:e})})})}(t,n)}(e),await st}const ot={...he,parse:async function(e,t){const{draco:n}=await it(t),r=new $e(n);try{return r.parseSync(e,null==t?void 0:t.draco)}finally{r.destroy()}}};function At(e){const{buffer:t,size:n,count:r}=function(e){let t=e,n=1,r=0;e&&e.value&&(t=e.value,n=e.size||1);t&&(ArrayBuffer.isView(t)||(t=function(e,t,n=!1){if(!e)return null;if(Array.isArray(e))return new t(e);if(n&&!(e instanceof t))return new t(e);return e}(t,Float32Array)),r=t.length/n);return{buffer:t,size:n,count:r}}(e);return{value:t,size:n,byteOffset:0,count:r,type:Y(n),componentType:W(t)}}const at="KHR_draco_mesh_compression";function Bt(e,t,n){const r=new q(e);for(const e of dt(r))r.getObjectExtension(e,"KHR_draco_mesh_compression")}async function ct(e,t,n){var r;if(null==t||null===(r=t.gltf)||void 0===r||!r.decompressMeshes)return;const s=new q(e),i=[];for(const e of dt(s))s.getObjectExtension(e,"KHR_draco_mesh_compression")&&i.push(Ct(s,e,t,n));await Promise.all(i),s.removeExtension("KHR_draco_mesh_compression")}function ut(e,t={}){const n=new q(e);for(const e of n.json.meshes||[])ft(e,t),n.addRequiredExtension("KHR_draco_mesh_compression")}async function Ct(e,t,n,r){const s=e.getObjectExtension(t,"KHR_draco_mesh_compression");if(!s)return;const i=e.getTypedArrayForBufferView(s.bufferView),o=w(i.buffer,i.byteOffset),{parse:A}=r,a={...n};delete a["3d-tiles"];const B=await A(o,ot,a,r),c=function(e){const t={};for(const n in e){const r=e[n];if("indices"!==n){const e=At(r);t[n]=e}}return t}(B.attributes);for(const[n,r]of Object.entries(c))if(n in t.attributes){const s=t.attributes[n],i=e.getAccessor(s);null!=i&&i.min&&null!=i&&i.max&&(r.min=i.min,r.max=i.max)}t.attributes=c,B.indices&&(t.indices=At(B.indices)),function(e){if(!e.attributes&&Object.keys(e.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}(t)}function ft(e,t,n=4,r,s){var i;if(!r.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");const o=r.DracoWriter.encodeSync({attributes:e}),A=null==s||null===(i=s.parseSync)||void 0===i?void 0:i.call(s,{attributes:e}),a=r._addFauxAttributes(A.attributes);return{primitives:[{attributes:a,mode:n,extensions:{KHR_draco_mesh_compression:{bufferView:r.addBufferView(o),attributes:a}}}]}}function*dt(e){for(const t of e.json.meshes||[])for(const e of t.primitives)yield e}const lt="KHR_lights_punctual";async function mt(e){const t=new q(e),{json:n}=t,r=t.getExtension("KHR_lights_punctual");r&&(t.json.lights=r.lights,t.removeExtension("KHR_lights_punctual"));for(const e of n.nodes||[]){const n=t.getObjectExtension(e,"KHR_lights_punctual");n&&(e.light=n.light),t.removeObjectExtension(e,"KHR_lights_punctual")}}async function ht(e){const t=new q(e),{json:n}=t;if(n.lights){const e=t.addExtension("KHR_lights_punctual");K(!e.lights),e.lights=n.lights,delete n.lights}if(t.json.lights){for(const e of t.json.lights){const n=e.node;t.addObjectExtension(n,"KHR_lights_punctual",e)}delete t.json.lights}}const Ft="KHR_materials_unlit";async function gt(e){const t=new q(e),{json:n}=t;t.removeExtension("KHR_materials_unlit");for(const e of n.materials||[]){e.extensions&&e.extensions.KHR_materials_unlit&&(e.unlit=!0),t.removeObjectExtension(e,"KHR_materials_unlit")}}function bt(e){const t=new q(e),{json:n}=t;if(t.materials)for(const e of n.materials||[])e.unlit&&(delete e.unlit,t.addObjectExtension(e,"KHR_materials_unlit",{}),t.addExtension("KHR_materials_unlit"))}const Gt="KHR_techniques_webgl";async function It(e){const t=new q(e),{json:n}=t,r=t.getExtension("KHR_techniques_webgl");if(r){const e=function(e,t){const{programs:n=[],shaders:r=[],techniques:s=[]}=e,i=new TextDecoder;return r.forEach(e=>{if(!Number.isFinite(e.bufferView))throw new Error("KHR_techniques_webgl: no shader code");e.code=i.decode(t.getTypedArrayForBufferView(e.bufferView))}),n.forEach(e=>{e.fragmentShader=r[e.fragmentShader],e.vertexShader=r[e.vertexShader]}),s.forEach(e=>{e.program=n[e.program]}),s}(r,t);for(const r of n.materials||[]){const n=t.getObjectExtension(r,"KHR_techniques_webgl");n&&(r.technique=Object.assign({},n,e[n.technique]),r.technique.values=Et(r.technique,t)),t.removeObjectExtension(r,"KHR_techniques_webgl")}t.removeExtension("KHR_techniques_webgl")}}async function Dt(e,t){}function Et(e,t){const n=Object.assign({},e.values);return Object.keys(e.uniforms||{}).forEach(t=>{e.uniforms[t].value&&!(t in n)&&(n[t]=e.uniforms[t].value)}),Object.keys(n).forEach(e=>{"object"==typeof n[e]&&void 0!==n[e].index&&(n[e].texture=t.getTexture(n[e].index))}),n}const Mt=[r,s,i,o,A,a,B];function yt(e,t){var n;const r=(null==t||null===(n=t.gltf)||void 0===n?void 0:n.excludeExtensions)||{};return!(e in r&&!r[e])}const Jt={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},Ht={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"};class pt{constructor(e){this.idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}}}normalize(e,t){this.json=e.json;const n=e.json;switch(n.asset&&n.asset.version){case"2.0":return;case void 0:case"1.0":break;default:return void console.warn("glTF: Unknown version "+n.asset.version)}if(!t.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(n),this._convertTopLevelObjectsToArrays(n),function(e){const t=new q(e),{json:n}=t;for(const e of n.images||[]){const n=t.getObjectExtension(e,"KHR_binary_glTF");n&&Object.assign(e,n),t.removeObjectExtension(e,"KHR_binary_glTF")}n.buffers&&n.buffers[0]&&delete n.buffers[0].uri,t.removeExtension("KHR_binary_glTF")}(e),this._convertObjectIdsToArrayIndices(n),this._updateObjects(n),this._updateMaterial(n)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(const t in Jt)this._convertTopLevelObjectToArray(e,t)}_convertTopLevelObjectToArray(e,t){const n=e[t];if(n&&!Array.isArray(n)){e[t]=[];for(const r in n){const s=n[r];s.id=s.id||r;const i=e[t].length;e[t].push(s),this.idToIndexMap[t][r]=i}}}_convertObjectIdsToArrayIndices(e){for(const t in Jt)this._convertIdsToIndices(e,t);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(const t of e.textures)this._convertTextureIds(t);for(const t of e.meshes)this._convertMeshIds(t);for(const t of e.nodes)this._convertNodeIds(t);for(const t of e.scenes)this._convertSceneIds(t)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(const t of e.primitives){const{attributes:e,indices:n,material:r}=t;for(const t in e)e[t]=this._convertIdToIndex(e[t],"accessor");n&&(t.indices=this._convertIdToIndex(n,"accessor")),r&&(t.material=this._convertIdToIndex(r,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(e=>this._convertIdToIndex(e,"node"))),e.meshes&&(e.meshes=e.meshes.map(e=>this._convertIdToIndex(e,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(e=>this._convertIdToIndex(e,"node")))}_convertIdsToIndices(e,t){e[t]||(console.warn("gltf v1: json doesn't contain attribute "+t),e[t]=[]);for(const n of e[t])for(const e in n){const t=n[e],r=this._convertIdToIndex(t,e);n[e]=r}}_convertIdToIndex(e,t){const n=Ht[t];if(n in this.idToIndexMap){const r=this.idToIndexMap[n][e];if(!Number.isFinite(r))throw new Error(`gltf v1: failed to resolve ${t} with id ${e}`);return r}return e}_updateObjects(e){for(const e of this.json.buffers)delete e.type}_updateMaterial(e){for(const t of e.materials){t.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};const n=t.values&&t.values.tex,r=e.textures.findIndex(e=>e.id===n);-1!==r&&(t.pbrMetallicRoughness.baseColorTexture={index:r})}}}const Rt={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Ut={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},Tt={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},Ot={magFilter:Tt.TEXTURE_MAG_FILTER,minFilter:Tt.TEXTURE_MIN_FILTER,wrapS:Tt.TEXTURE_WRAP_S,wrapT:Tt.TEXTURE_WRAP_T},wt={[Tt.TEXTURE_MAG_FILTER]:Tt.LINEAR,[Tt.TEXTURE_MIN_FILTER]:Tt.NEAREST_MIPMAP_LINEAR,[Tt.TEXTURE_WRAP_S]:Tt.REPEAT,[Tt.TEXTURE_WRAP_]:Tt.REPEAT};class Kt{postProcess(e,t={}){const{json:n,buffers:r=[],images:s=[],baseUri:i=""}=e;return K(n),this.baseUri=i,this.json=n,this.buffers=r,this.images=s,this._resolveTree(this.json,t),this.json}_resolveTree(e,t={}){e.bufferViews&&(e.bufferViews=e.bufferViews.map((e,t)=>this._resolveBufferView(e,t))),e.images&&(e.images=e.images.map((e,t)=>this._resolveImage(e,t))),e.samplers&&(e.samplers=e.samplers.map((e,t)=>this._resolveSampler(e,t))),e.textures&&(e.textures=e.textures.map((e,t)=>this._resolveTexture(e,t))),e.accessors&&(e.accessors=e.accessors.map((e,t)=>this._resolveAccessor(e,t))),e.materials&&(e.materials=e.materials.map((e,t)=>this._resolveMaterial(e,t))),e.meshes&&(e.meshes=e.meshes.map((e,t)=>this._resolveMesh(e,t))),e.nodes&&(e.nodes=e.nodes.map((e,t)=>this._resolveNode(e,t))),e.skins&&(e.skins=e.skins.map((e,t)=>this._resolveSkin(e,t))),e.scenes&&(e.scenes=e.scenes.map((e,t)=>this._resolveScene(e,t))),void 0!==e.scene&&(e.scene=e.scenes[this.json.scene])}getScene(e){return this._get("scenes",e)}getNode(e){return this._get("nodes",e)}getSkin(e){return this._get("skins",e)}getMesh(e){return this._get("meshes",e)}getMaterial(e){return this._get("materials",e)}getAccessor(e){return this._get("accessors",e)}getCamera(e){return null}getTexture(e){return this._get("textures",e)}getSampler(e){return this._get("samplers",e)}getImage(e){return this._get("images",e)}getBufferView(e){return this._get("bufferViews",e)}getBuffer(e){return this._get("buffers",e)}_get(e,t){if("object"==typeof t)return t;const n=this.json[e]&&this.json[e][t];return n||console.warn(`glTF file error: Could not find ${e}[${t}]`),n}_resolveScene(e,t){return e.id=e.id||"scene-"+t,e.nodes=(e.nodes||[]).map(e=>this.getNode(e)),e}_resolveNode(e,t){return e.id=e.id||"node-"+t,e.children&&(e.children=e.children.map(e=>this.getNode(e))),void 0!==e.mesh?e.mesh=this.getMesh(e.mesh):void 0!==e.meshes&&e.meshes.length&&(e.mesh=e.meshes.reduce((e,t)=>{const n=this.getMesh(t);return e.id=n.id,e.primitives=e.primitives.concat(n.primitives),e},{primitives:[]})),void 0!==e.camera&&(e.camera=this.getCamera(e.camera)),void 0!==e.skin&&(e.skin=this.getSkin(e.skin)),e}_resolveSkin(e,t){return e.id=e.id||"skin-"+t,e.inverseBindMatrices=this.getAccessor(e.inverseBindMatrices),e}_resolveMesh(e,t){return e.id=e.id||"mesh-"+t,e.primitives&&(e.primitives=e.primitives.map(e=>{const t=(e={...e}).attributes;e.attributes={};for(const n in t)e.attributes[n]=this.getAccessor(t[n]);return void 0!==e.indices&&(e.indices=this.getAccessor(e.indices)),void 0!==e.material&&(e.material=this.getMaterial(e.material)),e})),e}_resolveMaterial(e,t){if(e.id=e.id||"material-"+t,e.normalTexture&&(e.normalTexture={...e.normalTexture},e.normalTexture.texture=this.getTexture(e.normalTexture.index)),e.occlusionTexture&&(e.occlustionTexture={...e.occlustionTexture},e.occlusionTexture.texture=this.getTexture(e.occlusionTexture.index)),e.emissiveTexture&&(e.emmisiveTexture={...e.emmisiveTexture},e.emissiveTexture.texture=this.getTexture(e.emissiveTexture.index)),e.emissiveFactor||(e.emissiveFactor=e.emmisiveTexture?[1,1,1]:[0,0,0]),e.pbrMetallicRoughness){e.pbrMetallicRoughness={...e.pbrMetallicRoughness};const t=e.pbrMetallicRoughness;t.baseColorTexture&&(t.baseColorTexture={...t.baseColorTexture},t.baseColorTexture.texture=this.getTexture(t.baseColorTexture.index)),t.metallicRoughnessTexture&&(t.metallicRoughnessTexture={...t.metallicRoughnessTexture},t.metallicRoughnessTexture.texture=this.getTexture(t.metallicRoughnessTexture.index))}return e}_resolveAccessor(e,t){var n,r;if(e.id=e.id||"accessor-"+t,void 0!==e.bufferView&&(e.bufferView=this.getBufferView(e.bufferView)),e.bytesPerComponent=(n=e.componentType,Ut[n]),e.components=(r=e.type,Rt[r]),e.bytesPerElement=e.bytesPerComponent*e.components,e.bufferView){const t=e.bufferView.buffer,{ArrayType:n,byteLength:r}=Z(e,e.bufferView),s=(e.bufferView.byteOffset||0)+(e.byteOffset||0)+t.byteOffset,i=t.arrayBuffer.slice(s,s+r);e.value=new n(i)}return e}_resolveTexture(e,t){return e.id=e.id||"texture-"+t,e.sampler="sampler"in e?this.getSampler(e.sampler):wt,e.source=this.getImage(e.source),e}_resolveSampler(e,t){e.id=e.id||"sampler-"+t,e.parameters={};for(const t in e){const n=this._enumSamplerParameter(t);void 0!==n&&(e.parameters[n]=e[t])}return e}_enumSamplerParameter(e){return Ot[e]}_resolveImage(e,t){e.id=e.id||"image-"+t,void 0!==e.bufferView&&(e.bufferView=this.getBufferView(e.bufferView));const n=this.images[t];return n&&(e.image=n),e}_resolveBufferView(e,t){e.id=e.id||"bufferView-"+t;const n=e.buffer;e.buffer=this.buffers[n];const r=this.buffers[n].arrayBuffer;let s=this.buffers[n].byteOffset||0;return"byteOffset"in e&&(s+=e.byteOffset),e.data=new Uint8Array(r,s,e.byteLength),e}_resolveCamera(e,t){return e.id=e.id||"camera-"+t,e.perspective,e.orthographic,e}}function vt(e,t){return(new Kt).postProcess(e,t)}const Lt=1735152710;function jt(e,t=0,n={}){const r=new DataView(e),{magic:s=Lt}=n,i=r.getUint32(t,!1);return i===s||i===Lt}function Qt(e,t,n=0,r={}){const s=new DataView(t),i=function(e,t=0){return`${String.fromCharCode(e.getUint8(t+0))}${String.fromCharCode(e.getUint8(t+1))}${String.fromCharCode(e.getUint8(t+2))}${String.fromCharCode(e.getUint8(t+3))}`}(s,n+0),o=s.getUint32(n+4,!0),A=s.getUint32(n+8,!0);switch(Object.assign(e,{header:{byteOffset:n,byteLength:A,hasBinChunk:!1},type:i,version:o,json:{},binChunks:[]}),n+=12,e.version){case 1:return function(e,t,n){u(e.header.byteLength>20);const r=t.getUint32(n+0,!0),s=t.getUint32(n+4,!0);return n+=8,u(0===s),St(e,t,n,r),n+=r,n+=xt(e,t,n,e.header.byteLength)}(e,s,n);case 2:return function(e,t,n,r){return u(e.header.byteLength>20),function(e,t,n,r){for(;n+8<=e.header.byteLength;){const s=t.getUint32(n+0,!0),i=t.getUint32(n+4,!0);switch(n+=8,i){case 1313821514:St(e,t,n,s);break;case 5130562:xt(e,t,n,s);break;case 0:r.strict||St(e,t,n,s);break;case 1:r.strict||xt(e,t,n,s)}n+=j(s,4)}}(e,t,n,r),n+e.header.byteLength}(e,s,n,{});default:throw new Error(`Invalid GLB version ${e.version}. Only supports v1 and v2.`)}}function St(e,t,n,r){const s=new Uint8Array(t.buffer,n,r),i=new TextDecoder("utf8").decode(s);return e.json=JSON.parse(i),j(r,4)}function xt(e,t,n,r){return e.header.hasBinChunk=!0,e.binChunks.push({byteOffset:n,byteLength:r,arrayBuffer:t.buffer}),j(r,4)}async function _t(e,t,n=0,r,s){var i,o,A,a;!function(e,t,n,r){r.uri&&(e.baseUri=r.uri);if(t instanceof ArrayBuffer&&!jt(t,n,r)){const e=new TextDecoder;t=e.decode(t)}if("string"==typeof t)e.json=O(t);else if(t instanceof ArrayBuffer){const s={};n=Qt(s,t,n,r.glb),K("glTF"===s.type,"Invalid GLB magic string "+s.type),e._glb=s,e.json=s.json}else K(!1,"GLTF: must be ArrayBuffer or string");const s=e.json.buffers||[];if(e.buffers=new Array(s.length).fill(null),e._glb&&e._glb.header.hasBinChunk){const{binChunks:t}=e._glb;e.buffers[0]={arrayBuffer:t[0].arrayBuffer,byteOffset:t[0].byteOffset,byteLength:t[0].byteLength}}const i=e.json.images||[];e.images=new Array(i.length).fill({})}(e,t,n,r),function(e,t={}){(new pt).normalize(e,t)}(e,{normalize:null==r||null===(i=r.gltf)||void 0===i?void 0:i.normalize}),function(e,t={},n){const r=Mt.filter(e=>yt(e.name,t));for(const i of r){var s;null===(s=i.preprocess)||void 0===s||s.call(i,e,t,n)}}(e,r,s);const B=[];if(null!=r&&null!==(o=r.gltf)&&void 0!==o&&o.loadBuffers&&e.json.buffers&&await async function(e,t,n){const r=e.json.buffers||[];for(let o=0;o<r.length;++o){const A=r[o];if(A.uri){var s,i;const{fetch:r}=n;K(r);const a=v(A.uri,t),B=await(null==n||null===(s=n.fetch)||void 0===s?void 0:s.call(n,a)),c=await(null==B||null===(i=B.arrayBuffer)||void 0===i?void 0:i.call(B));e.buffers[o]={arrayBuffer:c,byteOffset:0,byteLength:c.byteLength},delete A.uri}}}(e,r,s),null!=r&&null!==(A=r.gltf)&&void 0!==A&&A.loadImages){const t=async function(e,t,n){const r=function(e){const t=new Set,n=e.json.textures||[];for(const e of n)void 0!==e.source&&t.add(e.source);return Array.from(t).sort()}(e),s=e.json.images||[],i=[];for(const o of r)i.push(Pt(e,s[o],o,t,n));return await Promise.all(i)}(e,r,s);B.push(t)}const c=async function(e,t={},n){const r=Mt.filter(e=>yt(e.name,t));for(const i of r){var s;await(null===(s=i.decode)||void 0===s?void 0:s.call(i,e,t,n))}}(e,r,s);return B.push(c),await Promise.all(B),null!=r&&null!==(a=r.gltf)&&void 0!==a&&a.postProcess?vt(e,r):e}async function Pt(e,t,n,r,s){const{fetch:i,parse:o}=s;let A;if(t.uri){const e=v(t.uri,r),n=await i(e);A=await n.arrayBuffer()}if(Number.isFinite(t.bufferView)){const n=L(e.json,e.buffers,t.bufferView);A=w(n.buffer,n.byteOffset,n.byteLength)}K(A,"glTF image has no data");const a=await o(A,U,{},s);e.images=e.images||[],e.images[n]=a}const Xt={name:"glTF",id:"gltf",module:"gltf",version:c,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:async function(e,t={},n){(t={...Xt.options,...t}).gltf={...Xt.options.gltf,...t.gltf};const{byteOffset:r=0}=t;return await _t({},e,r,t,n)},options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0,postProcess:!0},log:console},deprecatedOptions:{fetchImages:"gltf.loadImages",createImages:"gltf.loadImages",decompress:"gltf.decompressMeshes",postProcess:"gltf.postProcess",gltf:{decompress:"gltf.decompressMeshes"}}};function Nt(e,t,n,r){const s=j(n.byteLength,r),i=s-n.byteLength;if(e){const r=new Uint8Array(e.buffer,e.byteOffset+t,n.byteLength),s=new Uint8Array(n);r.set(s);for(let r=0;r<i;++r)e.setUint8(t+n.byteLength+r,32)}return t+=s}const Yt=1179937895;function Wt(e,t,n=0,r={}){const{magic:s=Yt,version:i=2,json:o={},binary:A}=e,a=n;t&&(t.setUint32(n+0,s,!0),t.setUint32(n+4,i,!0),t.setUint32(n+8,0,!0));const B=n+8,c=n+=12;t&&(t.setUint32(n+0,0,!0),t.setUint32(n+4,1313821514,!0));if(n=function(e,t,n,r){return t=Nt(e,t,(new TextEncoder).encode(n),r)}(t,n+=8,JSON.stringify(o),4),t){const e=n-c-8;t.setUint32(c+0,e,!0)}if(A){const e=n;if(t&&(t.setUint32(n+0,0,!0),t.setUint32(n+4,5130562,!0)),n=Nt(t,n+=8,A,4),t){const r=n-e-8;t.setUint32(e+0,r,!0)}}if(t){const e=n-a;t.setUint32(B,e,!0)}return n}function Zt(e,t,n,r){return function(e,{firstBuffer:t=0}={}){if(e.buffers&&e.buffers.length>t)throw new Error("encodeGLTF: multiple buffers not yet implemented")}(e),Wt(e,t,n,r)}const Vt={name:"glTF",id:"gltf",module:"gltf",version:c,extensions:["glb"],mimeTypes:["model/gltf-binary"],binary:!0,encodeSync:function(e,t={}){const{byteOffset:n=0}=t,r=Zt(e,null,n,t),s=new ArrayBuffer(r),i=new DataView(s);return Zt(e,i,n,t),s},options:{gltf:{}}};const kt={name:"GLB",id:"glb",module:"gltf",version:c,extensions:["glb"],mimeTypes:["model/gltf-binary"],binary:!0,parse:async function(e,t){return qt(e,t)},parseSync:qt,options:{glb:{strict:!1}}};function qt(e,t){const{byteOffset:n=0}=t||{},r={};return Qt(r,e,n,null==t?void 0:t.glb),r}const zt={name:"GLB",id:"glb",module:"gltf",version:c,extensions:["glb"],mimeTypes:["model/gltf-binary"],binary:!0,encodeSync:function(e,t){const{byteOffset:n=0}=t,r=Wt(e,null,n,t),s=new ArrayBuffer(r),i=new DataView(s);return Wt(e,i,n,t),s},options:{glb:{}}}},,,function(e,t,n){"use strict";(function(e,r){n.d(t,"a",(function(){return s}));"undefined"!=typeof self&&self,"undefined"!=typeof window&&window,"undefined"!=typeof document&&document;const s=Boolean("object"!=typeof r||"[object process]"!==String(r)||r.browser),i=void 0!==r&&r.version&&/v([0-9]*)/.exec(r.version);i&&parseFloat(i[1])}).call(this,n(6),n(7))}])}));
2
- //# sourceMappingURL=dist.min.js.map