@loaders.gl/gltf 3.1.0-alpha.2 → 3.1.0-beta.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 (304) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +4481 -5
  4. package/dist/es5/bundle.js +7 -0
  5. package/dist/es5/bundle.js.map +1 -0
  6. package/dist/es5/glb-loader.js +47 -0
  7. package/dist/es5/glb-loader.js.map +1 -0
  8. package/dist/es5/glb-writer.js +42 -0
  9. package/dist/es5/glb-writer.js.map +1 -0
  10. package/dist/es5/gltf-loader.js +59 -0
  11. package/dist/es5/gltf-loader.js.map +1 -0
  12. package/dist/es5/gltf-writer.js +40 -0
  13. package/dist/es5/gltf-writer.js.map +1 -0
  14. package/dist/es5/index.js +56 -0
  15. package/dist/es5/index.js.map +1 -0
  16. package/dist/es5/lib/api/gltf-extensions.js +58 -0
  17. package/dist/es5/lib/api/gltf-extensions.js.map +1 -0
  18. package/dist/es5/lib/api/gltf-scenegraph.js +529 -0
  19. package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -0
  20. package/dist/es5/lib/api/normalize-gltf-v1.js +264 -0
  21. package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -0
  22. package/dist/es5/lib/api/post-process-gltf.js +412 -0
  23. package/dist/es5/lib/api/post-process-gltf.js.map +1 -0
  24. package/dist/es5/lib/encoders/encode-glb.js +72 -0
  25. package/dist/es5/lib/encoders/encode-glb.js.map +1 -0
  26. package/dist/es5/lib/encoders/encode-gltf.js +24 -0
  27. package/dist/es5/lib/encoders/encode-gltf.js.map +1 -0
  28. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +72 -0
  29. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -0
  30. package/dist/es5/lib/extensions/EXT_texture_webp.js +46 -0
  31. package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -0
  32. package/dist/es5/lib/extensions/KHR_binary_gltf.js +39 -0
  33. package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -0
  34. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +146 -0
  35. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
  36. package/dist/es5/lib/extensions/KHR_texture_basisu.js +35 -0
  37. package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -0
  38. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +65 -0
  39. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  40. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +52 -0
  41. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  42. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +83 -0
  43. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  44. package/dist/es5/lib/gltf-utils/get-typed-array.js +26 -0
  45. package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -0
  46. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +83 -0
  47. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
  48. package/dist/es5/lib/gltf-utils/gltf-constants.js +48 -0
  49. package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -0
  50. package/dist/es5/lib/gltf-utils/gltf-utils.js +69 -0
  51. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -0
  52. package/dist/es5/lib/gltf-utils/resolve-url.js +23 -0
  53. package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -0
  54. package/dist/es5/lib/parsers/parse-glb.js +138 -0
  55. package/dist/es5/lib/parsers/parse-glb.js.map +1 -0
  56. package/dist/es5/lib/parsers/parse-gltf.js +193 -0
  57. package/dist/es5/lib/parsers/parse-gltf.js.map +1 -0
  58. package/dist/es5/lib/types/glb-types.js +2 -0
  59. package/dist/{lib → es5/lib}/types/glb-types.js.map +0 -0
  60. package/dist/es5/lib/types/gltf-json-schema.js +2 -0
  61. package/dist/{lib → es5/lib}/types/gltf-json-schema.js.map +0 -0
  62. package/dist/es5/lib/types/gltf-postprocessed-schema.js +2 -0
  63. package/dist/{lib → es5/lib}/types/gltf-postprocessed-schema.js.map +0 -0
  64. package/dist/es5/lib/types/gltf-types.js +2 -0
  65. package/dist/{lib → es5/lib}/types/gltf-types.js.map +0 -0
  66. package/dist/es5/lib/utils/assert.js +13 -0
  67. package/dist/es5/lib/utils/assert.js.map +1 -0
  68. package/dist/es5/lib/utils/version.js +9 -0
  69. package/dist/es5/lib/utils/version.js.map +1 -0
  70. package/dist/es5/meshopt/meshopt-decoder.js +119 -0
  71. package/dist/es5/meshopt/meshopt-decoder.js.map +1 -0
  72. package/dist/{meshopt → es5/meshopt}/meshopt-encoder.ts.disabled +0 -0
  73. package/dist/es5/webp/webp.js +36 -0
  74. package/dist/es5/webp/webp.js.map +1 -0
  75. package/dist/esm/bundle.js +5 -0
  76. package/dist/esm/bundle.js.map +1 -0
  77. package/dist/esm/glb-loader.js +34 -0
  78. package/dist/esm/glb-loader.js.map +1 -0
  79. package/dist/esm/glb-writer.js +29 -0
  80. package/dist/esm/glb-writer.js.map +1 -0
  81. package/dist/esm/gltf-loader.js +47 -0
  82. package/dist/esm/gltf-loader.js.map +1 -0
  83. package/dist/esm/gltf-writer.js +29 -0
  84. package/dist/esm/gltf-writer.js.map +1 -0
  85. package/dist/esm/index.js +7 -0
  86. package/dist/esm/index.js.map +1 -0
  87. package/dist/esm/lib/api/gltf-extensions.js +35 -0
  88. package/dist/esm/lib/api/gltf-extensions.js.map +1 -0
  89. package/dist/esm/lib/api/gltf-scenegraph.js +515 -0
  90. package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -0
  91. package/dist/esm/lib/api/normalize-gltf-v1.js +250 -0
  92. package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -0
  93. package/dist/esm/lib/api/post-process-gltf.js +403 -0
  94. package/dist/esm/lib/api/post-process-gltf.js.map +1 -0
  95. package/dist/esm/lib/encoders/encode-glb.js +63 -0
  96. package/dist/esm/lib/encoders/encode-glb.js.map +1 -0
  97. package/dist/esm/lib/encoders/encode-gltf.js +14 -0
  98. package/dist/esm/lib/encoders/encode-gltf.js.map +1 -0
  99. package/dist/esm/lib/extensions/EXT_meshopt_compression.js +56 -0
  100. package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -0
  101. package/dist/esm/lib/extensions/EXT_texture_webp.js +32 -0
  102. package/dist/esm/lib/extensions/EXT_texture_webp.js.map +1 -0
  103. package/dist/esm/lib/extensions/KHR_binary_gltf.js +26 -0
  104. package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +1 -0
  105. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js +126 -0
  106. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
  107. package/dist/esm/lib/extensions/KHR_texture_basisu.js +22 -0
  108. package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +1 -0
  109. package/dist/{lib/extensions → esm/lib/extensions/deprecated}/KHR_lights_punctual.js +4 -3
  110. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  111. package/dist/{lib/extensions → esm/lib/extensions/deprecated}/KHR_materials_unlit.js +3 -2
  112. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  113. package/dist/{lib/extensions → esm/lib/extensions/deprecated}/KHR_techniques_webgl.js +3 -2
  114. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  115. package/dist/esm/lib/gltf-utils/get-typed-array.js +16 -0
  116. package/dist/esm/lib/gltf-utils/get-typed-array.js.map +1 -0
  117. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js +73 -0
  118. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
  119. package/dist/esm/lib/gltf-utils/gltf-constants.js +37 -0
  120. package/dist/esm/lib/gltf-utils/gltf-constants.js.map +1 -0
  121. package/dist/esm/lib/gltf-utils/gltf-utils.js +56 -0
  122. package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -0
  123. package/dist/esm/lib/gltf-utils/resolve-url.js +16 -0
  124. package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -0
  125. package/dist/esm/lib/parsers/parse-glb.js +128 -0
  126. package/dist/esm/lib/parsers/parse-glb.js.map +1 -0
  127. package/dist/esm/lib/parsers/parse-gltf.js +170 -0
  128. package/dist/esm/lib/parsers/parse-gltf.js.map +1 -0
  129. package/dist/esm/lib/types/glb-types.js +2 -0
  130. package/dist/esm/lib/types/glb-types.js.map +1 -0
  131. package/dist/esm/lib/types/gltf-json-schema.js +2 -0
  132. package/dist/esm/lib/types/gltf-json-schema.js.map +1 -0
  133. package/dist/esm/lib/types/gltf-postprocessed-schema.js +2 -0
  134. package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +1 -0
  135. package/dist/esm/lib/types/gltf-types.js +2 -0
  136. package/dist/esm/lib/types/gltf-types.js.map +1 -0
  137. package/dist/esm/lib/utils/assert.js +6 -0
  138. package/dist/esm/lib/utils/assert.js.map +1 -0
  139. package/dist/esm/lib/utils/version.js +2 -0
  140. package/dist/esm/lib/utils/version.js.map +1 -0
  141. package/dist/esm/meshopt/meshopt-decoder.js +103 -0
  142. package/dist/esm/meshopt/meshopt-decoder.js.map +1 -0
  143. package/dist/esm/meshopt/meshopt-encoder.ts.disabled +409 -0
  144. package/dist/esm/webp/webp.js +29 -0
  145. package/dist/esm/webp/webp.js.map +1 -0
  146. package/dist/glb-loader.d.ts +13 -0
  147. package/dist/glb-loader.d.ts.map +1 -0
  148. package/dist/glb-loader.js +33 -28
  149. package/dist/glb-writer.d.ts +22 -0
  150. package/dist/glb-writer.d.ts.map +1 -0
  151. package/dist/glb-writer.js +34 -26
  152. package/dist/gltf-loader.d.ts +18 -0
  153. package/dist/gltf-loader.d.ts.map +1 -0
  154. package/dist/gltf-loader.js +46 -43
  155. package/dist/gltf-writer.d.ts +25 -0
  156. package/dist/gltf-writer.d.ts.map +1 -0
  157. package/dist/gltf-writer.js +29 -26
  158. package/dist/index.d.ts +11 -0
  159. package/dist/index.d.ts.map +1 -0
  160. package/dist/index.js +21 -8
  161. package/dist/lib/api/gltf-extensions.d.ts +26 -0
  162. package/dist/lib/api/gltf-extensions.d.ts.map +1 -0
  163. package/dist/lib/api/gltf-extensions.js +75 -0
  164. package/dist/lib/api/gltf-scenegraph.d.ts +183 -0
  165. package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -0
  166. package/dist/lib/api/gltf-scenegraph.js +550 -512
  167. package/dist/lib/api/normalize-gltf-v1.d.ts +2 -0
  168. package/dist/lib/api/normalize-gltf-v1.d.ts.map +1 -0
  169. package/dist/lib/api/normalize-gltf-v1.js +274 -226
  170. package/dist/lib/api/post-process-gltf.d.ts +2 -0
  171. package/dist/lib/api/post-process-gltf.d.ts.map +1 -0
  172. package/dist/lib/api/post-process-gltf.js +301 -347
  173. package/dist/lib/encoders/encode-glb.d.ts +2 -0
  174. package/dist/lib/encoders/encode-glb.d.ts.map +1 -0
  175. package/dist/lib/encoders/encode-glb.js +56 -58
  176. package/dist/lib/encoders/encode-gltf.d.ts +2 -0
  177. package/dist/lib/encoders/encode-gltf.d.ts.map +1 -0
  178. package/dist/lib/encoders/encode-gltf.js +25 -12
  179. package/dist/lib/extensions/EXT_meshopt_compression.d.ts +10 -0
  180. package/dist/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -0
  181. package/dist/lib/extensions/EXT_meshopt_compression.js +50 -44
  182. package/dist/lib/extensions/EXT_texture_webp.d.ts +12 -0
  183. package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -0
  184. package/dist/lib/extensions/EXT_texture_webp.js +38 -0
  185. package/dist/lib/extensions/KHR_binary_gltf.d.ts +7 -0
  186. package/dist/lib/extensions/KHR_binary_gltf.d.ts.map +1 -0
  187. package/dist/lib/extensions/KHR_binary_gltf.js +40 -24
  188. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts +13 -0
  189. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -0
  190. package/dist/lib/extensions/KHR_draco_mesh_compression.js +128 -105
  191. package/dist/lib/extensions/KHR_texture_basisu.d.ts +12 -0
  192. package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -0
  193. package/dist/lib/extensions/KHR_texture_basisu.js +31 -0
  194. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts +7 -0
  195. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts.map +1 -0
  196. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js +62 -0
  197. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts +7 -0
  198. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts.map +1 -0
  199. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +47 -0
  200. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts +7 -0
  201. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -0
  202. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +81 -0
  203. package/dist/lib/gltf-utils/get-typed-array.d.ts +3 -0
  204. package/dist/lib/gltf-utils/get-typed-array.d.ts.map +1 -0
  205. package/dist/lib/gltf-utils/get-typed-array.js +39 -14
  206. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts +6 -0
  207. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts.map +1 -0
  208. package/dist/lib/gltf-utils/gltf-attribute-utils.js +65 -65
  209. package/dist/lib/gltf-utils/gltf-constants.d.ts +4 -0
  210. package/dist/lib/gltf-utils/gltf-constants.d.ts.map +1 -0
  211. package/dist/lib/gltf-utils/gltf-constants.js +36 -36
  212. package/dist/lib/gltf-utils/gltf-utils.d.ts +8 -0
  213. package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -0
  214. package/dist/lib/gltf-utils/gltf-utils.js +52 -45
  215. package/dist/lib/gltf-utils/resolve-url.d.ts +2 -0
  216. package/dist/lib/gltf-utils/resolve-url.d.ts.map +1 -0
  217. package/dist/lib/gltf-utils/resolve-url.js +17 -15
  218. package/dist/lib/parsers/parse-glb.d.ts +8 -0
  219. package/dist/lib/parsers/parse-glb.d.ts.map +1 -0
  220. package/dist/lib/parsers/parse-glb.js +116 -107
  221. package/dist/lib/parsers/parse-gltf.d.ts +14 -0
  222. package/dist/lib/parsers/parse-gltf.d.ts.map +1 -0
  223. package/dist/lib/parsers/parse-gltf.js +177 -123
  224. package/dist/lib/types/glb-types.d.ts +17 -0
  225. package/dist/lib/types/glb-types.d.ts.map +1 -0
  226. package/dist/lib/types/glb-types.js +2 -2
  227. package/dist/lib/types/gltf-json-schema.d.ts +720 -0
  228. package/dist/lib/types/gltf-json-schema.d.ts.map +1 -0
  229. package/dist/lib/types/gltf-json-schema.js +4 -2
  230. package/dist/lib/types/gltf-postprocessed-schema.d.ts +685 -0
  231. package/dist/lib/types/gltf-postprocessed-schema.d.ts.map +1 -0
  232. package/dist/lib/types/gltf-postprocessed-schema.js +4 -2
  233. package/dist/lib/types/gltf-types.d.ts +10 -0
  234. package/dist/lib/types/gltf-types.d.ts.map +1 -0
  235. package/dist/lib/types/gltf-types.js +3 -2
  236. package/dist/lib/utils/assert.d.ts +2 -0
  237. package/dist/lib/utils/assert.d.ts.map +1 -0
  238. package/dist/lib/utils/assert.js +11 -5
  239. package/dist/lib/utils/version.d.ts +2 -0
  240. package/dist/lib/utils/version.d.ts.map +1 -0
  241. package/dist/lib/utils/version.js +7 -2
  242. package/dist/meshopt/meshopt-decoder.d.ts +6 -0
  243. package/dist/meshopt/meshopt-decoder.d.ts.map +1 -0
  244. package/dist/meshopt/meshopt-decoder.js +97 -82
  245. package/dist/webp/webp.d.ts +7 -0
  246. package/dist/webp/webp.d.ts.map +1 -0
  247. package/dist/webp/webp.js +38 -0
  248. package/package.json +13 -10
  249. package/src/bundle.ts +2 -3
  250. package/src/gltf-loader.ts +7 -4
  251. package/src/index.ts +8 -4
  252. package/src/lib/api/gltf-extensions.ts +71 -0
  253. package/src/lib/api/gltf-scenegraph.ts +4 -6
  254. package/src/lib/api/{normalize-gltf-v1.js → normalize-gltf-v1.ts} +20 -17
  255. package/src/lib/api/{post-process-gltf.js → post-process-gltf.ts} +8 -1
  256. package/src/lib/encoders/{encode-glb.js → encode-glb.ts} +0 -0
  257. package/src/lib/encoders/{encode-gltf.js → encode-gltf.ts} +0 -0
  258. package/src/lib/extensions/EXT_meshopt_compression.ts +32 -23
  259. package/src/lib/extensions/EXT_texture_webp.ts +45 -0
  260. package/src/lib/extensions/KHR_binary_gltf.ts +19 -10
  261. package/src/lib/extensions/KHR_draco_mesh_compression.ts +29 -4
  262. package/src/lib/extensions/KHR_texture_basisu.ts +36 -0
  263. package/src/lib/extensions/{KHR_lights_punctual.ts → deprecated/KHR_lights_punctual.ts} +7 -4
  264. package/src/lib/extensions/{KHR_materials_unlit.ts → deprecated/KHR_materials_unlit.ts} +6 -3
  265. package/src/lib/extensions/{KHR_techniques_webgl.ts → deprecated/KHR_techniques_webgl.ts} +6 -3
  266. package/src/lib/gltf-utils/gltf-constants.ts +0 -12
  267. package/src/lib/parsers/parse-gltf.ts +72 -20
  268. package/src/lib/types/gltf-json-schema.ts +96 -3
  269. package/src/lib/types/gltf-types.ts +19 -21
  270. package/src/lib/utils/{assert.js → assert.ts} +1 -1
  271. package/src/lib/utils/{version.js → version.ts} +0 -0
  272. package/src/webp/webp.ts +41 -0
  273. package/dist/bundle.js.map +0 -1
  274. package/dist/dist.min.js +0 -2
  275. package/dist/dist.min.js.map +0 -1
  276. package/dist/glb-loader.js.map +0 -1
  277. package/dist/glb-writer.js.map +0 -1
  278. package/dist/gltf-loader.js.map +0 -1
  279. package/dist/gltf-writer.js.map +0 -1
  280. package/dist/index.js.map +0 -1
  281. package/dist/lib/api/gltf-scenegraph.js.map +0 -1
  282. package/dist/lib/api/normalize-gltf-v1.js.map +0 -1
  283. package/dist/lib/api/post-process-gltf.js.map +0 -1
  284. package/dist/lib/encoders/encode-glb.js.map +0 -1
  285. package/dist/lib/encoders/encode-gltf.js.map +0 -1
  286. package/dist/lib/extensions/EXT_meshopt_compression.js.map +0 -1
  287. package/dist/lib/extensions/KHR_binary_gltf.js.map +0 -1
  288. package/dist/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
  289. package/dist/lib/extensions/KHR_lights_punctual.js.map +0 -1
  290. package/dist/lib/extensions/KHR_materials_unlit.js.map +0 -1
  291. package/dist/lib/extensions/KHR_techniques_webgl.js.map +0 -1
  292. package/dist/lib/extensions/gltf-extensions.js +0 -24
  293. package/dist/lib/extensions/gltf-extensions.js.map +0 -1
  294. package/dist/lib/gltf-utils/get-typed-array.js.map +0 -1
  295. package/dist/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
  296. package/dist/lib/gltf-utils/gltf-constants.js.map +0 -1
  297. package/dist/lib/gltf-utils/gltf-utils.js.map +0 -1
  298. package/dist/lib/gltf-utils/resolve-url.js.map +0 -1
  299. package/dist/lib/parsers/parse-glb.js.map +0 -1
  300. package/dist/lib/parsers/parse-gltf.js.map +0 -1
  301. package/dist/lib/utils/assert.js.map +0 -1
  302. package/dist/lib/utils/version.js.map +0 -1
  303. package/dist/meshopt/meshopt-decoder.js.map +0 -1
  304. package/src/lib/extensions/gltf-extensions.ts +0 -48
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=gltf-json-schema.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=gltf-postprocessed-schema.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=gltf-types.js.map
File without changes
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.assert = assert;
7
+
8
+ function assert(condition, message) {
9
+ if (!condition) {
10
+ throw new Error(message || 'assert failed: gltf');
11
+ }
12
+ }
13
+ //# sourceMappingURL=assert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/utils/assert.ts"],"names":["assert","condition","message","Error"],"mappings":";;;;;;;AAGO,SAASA,MAAT,CAAgBC,SAAhB,EAAoCC,OAApC,EAA4D;AACjE,MAAI,CAACD,SAAL,EAAgB;AACd,UAAM,IAAIE,KAAJ,CAAUD,OAAO,IAAI,qBAArB,CAAN;AACD;AACF","sourcesContent":["// Replacement for the external assert method to reduce bundle size\n// Note: We don't use the second \"message\" argument in calling code,\n// so no need to support it here\nexport function assert(condition: unknown, message?: string): void {\n if (!condition) {\n throw new Error(message || 'assert failed: gltf');\n }\n}\n"],"file":"assert.js"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.VERSION = void 0;
7
+ const VERSION = typeof "3.1.0-beta.1" !== 'undefined' ? "3.1.0-beta.1" : 'latest';
8
+ exports.VERSION = VERSION;
9
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/utils/version.ts"],"names":["VERSION"],"mappings":";;;;;;AAGO,MAAMA,OAAO,GAAG,0BAAuB,WAAvB,oBAAmD,QAAnE","sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"file":"version.js"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isMeshoptSupported = isMeshoptSupported;
7
+ exports.meshoptDecodeVertexBuffer = meshoptDecodeVertexBuffer;
8
+ exports.meshoptDecodeIndexBuffer = meshoptDecodeIndexBuffer;
9
+ exports.meshoptDecodeIndexSequence = meshoptDecodeIndexSequence;
10
+ exports.meshoptDecodeGltfBuffer = meshoptDecodeGltfBuffer;
11
+ const isWebAssemblySupported = typeof WebAssembly !== 'object';
12
+ const wasm_base = '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';
13
+ const wasm_simd = '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';
14
+ const detector = 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]);
15
+ const wasmpack = 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]);
16
+ const FILTERS = {
17
+ 0: '',
18
+ 1: 'meshopt_decodeFilterOct',
19
+ 2: 'meshopt_decodeFilterQuat',
20
+ 3: 'meshopt_decodeFilterExp',
21
+ NONE: '',
22
+ OCTAHEDRAL: 'meshopt_decodeFilterOct',
23
+ QUATERNION: 'meshopt_decodeFilterQuat',
24
+ EXPONENTIAL: 'meshopt_decodeFilterExp'
25
+ };
26
+ const DECODERS = {
27
+ 0: 'meshopt_decodeVertexBuffer',
28
+ 1: 'meshopt_decodeIndexBuffer',
29
+ 2: 'meshopt_decodeIndexSequence',
30
+ ATTRIBUTES: 'meshopt_decodeVertexBuffer',
31
+ TRIANGLES: 'meshopt_decodeIndexBuffer',
32
+ INDICES: 'meshopt_decodeIndexSequence'
33
+ };
34
+
35
+ function isMeshoptSupported() {
36
+ return isWebAssemblySupported;
37
+ }
38
+
39
+ async function meshoptDecodeVertexBuffer(target, count, size, source, filter = 'NONE') {
40
+ const instance = await loadWasmInstance();
41
+ decode(instance, instance.exports.meshopt_decodeVertexBuffer, target, count, size, source, instance.exports[FILTERS[filter]]);
42
+ }
43
+
44
+ async function meshoptDecodeIndexBuffer(target, count, size, source) {
45
+ const instance = await loadWasmInstance();
46
+ decode(instance, instance.exports.meshopt_decodeIndexBuffer, target, count, size, source);
47
+ }
48
+
49
+ async function meshoptDecodeIndexSequence(target, count, size, source) {
50
+ const instance = await loadWasmInstance();
51
+ decode(instance, instance.exports.meshopt_decodeIndexSequence, target, count, size, source);
52
+ }
53
+
54
+ async function meshoptDecodeGltfBuffer(target, count, size, source, mode, filter = 'NONE') {
55
+ const instance = await loadWasmInstance();
56
+ decode(instance, instance.exports[DECODERS[mode]], target, count, size, source, instance.exports[FILTERS[filter || 'NONE']]);
57
+ }
58
+
59
+ let wasmPromise;
60
+
61
+ async function loadWasmInstance() {
62
+ if (!wasmPromise) {
63
+ wasmPromise = loadWasmModule();
64
+ }
65
+
66
+ return wasmPromise;
67
+ }
68
+
69
+ async function loadWasmModule() {
70
+ let wasm = wasm_base;
71
+
72
+ if (WebAssembly.validate(detector)) {
73
+ wasm = wasm_simd;
74
+ console.log('Warning: meshopt_decoder is using experimental SIMD support');
75
+ }
76
+
77
+ const result = await WebAssembly.instantiate(unpack(wasm), {});
78
+ await result.instance.exports.__wasm_call_ctors();
79
+ return result.instance;
80
+ }
81
+
82
+ function unpack(data) {
83
+ const result = new Uint8Array(data.length);
84
+
85
+ for (let i = 0; i < data.length; ++i) {
86
+ const ch = data.charCodeAt(i);
87
+ result[i] = ch > 96 ? ch - 71 : ch > 64 ? ch - 65 : ch > 47 ? ch + 4 : ch > 46 ? 63 : 62;
88
+ }
89
+
90
+ let write = 0;
91
+
92
+ for (let i = 0; i < data.length; ++i) {
93
+ result[write++] = result[i] < 60 ? wasmpack[result[i]] : (result[i] - 60) * 64 + result[++i];
94
+ }
95
+
96
+ return result.buffer.slice(0, write);
97
+ }
98
+
99
+ function decode(instance, fun, target, count, size, source, filter) {
100
+ const sbrk = instance.exports.sbrk;
101
+ const count4 = count + 3 & ~3;
102
+ const tp = sbrk(count4 * size);
103
+ const sp = sbrk(source.length);
104
+ const heap = new Uint8Array(instance.exports.memory.buffer);
105
+ heap.set(source, sp);
106
+ const res = fun(tp, count, size, sp, source.length);
107
+
108
+ if (res === 0 && filter) {
109
+ filter(tp, count4, size);
110
+ }
111
+
112
+ target.set(heap.subarray(tp, tp + count * size));
113
+ sbrk(tp - sbrk(0));
114
+
115
+ if (res !== 0) {
116
+ throw new Error("Malformed buffer data: ".concat(res));
117
+ }
118
+ }
119
+ //# sourceMappingURL=meshopt-decoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/meshopt/meshopt-decoder.ts"],"names":["isWebAssemblySupported","WebAssembly","wasm_base","wasm_simd","detector","Uint8Array","wasmpack","FILTERS","NONE","OCTAHEDRAL","QUATERNION","EXPONENTIAL","DECODERS","ATTRIBUTES","TRIANGLES","INDICES","isMeshoptSupported","meshoptDecodeVertexBuffer","target","count","size","source","filter","instance","loadWasmInstance","decode","exports","meshopt_decodeVertexBuffer","meshoptDecodeIndexBuffer","meshopt_decodeIndexBuffer","meshoptDecodeIndexSequence","meshopt_decodeIndexSequence","meshoptDecodeGltfBuffer","mode","wasmPromise","loadWasmModule","wasm","validate","console","log","result","instantiate","unpack","__wasm_call_ctors","data","length","i","ch","charCodeAt","write","buffer","slice","fun","sbrk","count4","tp","sp","heap","memory","set","res","subarray","Error"],"mappings":"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","sourcesContent":["// This file is part of meshoptimizer library and is distributed under the terms of MIT License.\n// Copyright (C) 2016-2021, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)\n\n/* eslint-disable camelcase */\nconst isWebAssemblySupported = typeof WebAssembly !== 'object';\n\n// Built with clang version 11.0.0 (https://github.com/llvm/llvm-project.git 0160ad802e899c2922bc9b29564080c22eb0908c)\n// Built from meshoptimizer 0.16\nconst wasm_base =\n 'B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB';\nconst wasm_simd =\n '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';\n\n// Uses bulk-memory and simd extensions\nconst detector = new Uint8Array([\n 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,\n 12, 0, 65, 0, 65, 0, 65, 0, 252, 10, 0, 0, 11, 7, 0, 65, 0, 253, 15, 26, 11\n]);\n\n// Used to unpack wasm\nconst wasmpack = new Uint8Array([\n 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,\n 127, 15, 10, 21, 22, 14, 255, 66, 24, 54, 136, 107, 18, 23, 192, 26, 114, 118, 132, 17, 77, 101,\n 130, 144, 27, 87, 131, 44, 45, 74, 156, 154, 70, 167\n]);\n\nconst FILTERS = {\n // legacy index-based enums for glTF\n 0: '',\n 1: 'meshopt_decodeFilterOct',\n 2: 'meshopt_decodeFilterQuat',\n 3: 'meshopt_decodeFilterExp',\n // string-based enums for glTF\n NONE: '',\n OCTAHEDRAL: 'meshopt_decodeFilterOct',\n QUATERNION: 'meshopt_decodeFilterQuat',\n EXPONENTIAL: 'meshopt_decodeFilterExp'\n};\n\nconst DECODERS = {\n // legacy index-based enums for glTF\n 0: 'meshopt_decodeVertexBuffer',\n 1: 'meshopt_decodeIndexBuffer',\n 2: 'meshopt_decodeIndexSequence',\n // string-based enums for glTF\n ATTRIBUTES: 'meshopt_decodeVertexBuffer',\n TRIANGLES: 'meshopt_decodeIndexBuffer',\n INDICES: 'meshopt_decodeIndexSequence'\n};\n\nexport function isMeshoptSupported(): boolean {\n return isWebAssemblySupported;\n}\n\nexport async function meshoptDecodeVertexBuffer(\n target: Uint8Array,\n count: number,\n size: number,\n source: Uint8Array,\n filter: string | number = 'NONE'\n): Promise<void> {\n const instance = await loadWasmInstance();\n decode(\n instance,\n instance.exports.meshopt_decodeVertexBuffer,\n target,\n count,\n size,\n source,\n instance.exports[FILTERS[filter]]\n );\n}\n\nexport async function meshoptDecodeIndexBuffer(\n target: Uint8Array,\n count: number,\n size: number,\n source: Uint8Array\n): Promise<void> {\n const instance = await loadWasmInstance();\n decode(instance, instance.exports.meshopt_decodeIndexBuffer, target, count, size, source);\n}\n\nexport async function meshoptDecodeIndexSequence(\n target: Uint8Array,\n count: number,\n size: number,\n source: Uint8Array\n): Promise<void> {\n const instance = await loadWasmInstance();\n decode(instance, instance.exports.meshopt_decodeIndexSequence, target, count, size, source);\n}\n\n// eslint-disable-next-line max-params\nexport async function meshoptDecodeGltfBuffer(\n target: Uint8Array,\n count: number,\n size: number,\n source: Uint8Array,\n mode: string,\n filter: string | number = 'NONE'\n): Promise<void> {\n const instance = await loadWasmInstance();\n decode(\n instance,\n instance.exports[DECODERS[mode]],\n target,\n count,\n size,\n source,\n instance.exports[FILTERS[filter || 'NONE']]\n );\n}\n\nlet wasmPromise: Promise<WebAssembly.Instance>;\n\nasync function loadWasmInstance(): Promise<WebAssembly.Instance> {\n // eslint-disable-next-line\n if (!wasmPromise) {\n wasmPromise = loadWasmModule();\n }\n return wasmPromise;\n}\n\nasync function loadWasmModule(): Promise<WebAssembly.Instance> {\n let wasm = wasm_base;\n if (WebAssembly.validate(detector)) {\n wasm = wasm_simd;\n\n // eslint-disable-next-line no-console\n console.log('Warning: meshopt_decoder is using experimental SIMD support');\n }\n\n const result = await WebAssembly.instantiate(unpack(wasm), {});\n await (result.instance.exports as any).__wasm_call_ctors();\n return result.instance;\n}\n\nfunction unpack(data) {\n const result = new Uint8Array(data.length);\n for (let i = 0; i < data.length; ++i) {\n const ch = data.charCodeAt(i);\n result[i] = ch > 96 ? ch - 71 : ch > 64 ? ch - 65 : ch > 47 ? ch + 4 : ch > 46 ? 63 : 62;\n }\n let write = 0;\n for (let i = 0; i < data.length; ++i) {\n result[write++] = result[i] < 60 ? wasmpack[result[i]] : (result[i] - 60) * 64 + result[++i];\n }\n return result.buffer.slice(0, write);\n}\n\n// eslint-disable-next-line max-params\nfunction decode(instance, fun, target, count, size, source, filter?) {\n const sbrk = instance.exports.sbrk;\n const count4 = (count + 3) & ~3; // pad for SIMD filter\n const tp = sbrk(count4 * size);\n const sp = sbrk(source.length);\n const heap = new Uint8Array(instance.exports.memory.buffer);\n heap.set(source, sp);\n const res = fun(tp, count, size, sp, source.length);\n if (res === 0 && filter) {\n filter(tp, count4, size);\n }\n target.set(heap.subarray(tp, tp + count * size));\n sbrk(tp - sbrk(0));\n if (res !== 0) {\n throw new Error(`Malformed buffer data: ${res}`);\n }\n}\n"],"file":"meshopt-decoder.js"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isWebPSupported = isWebPSupported;
7
+ const WEBP_TEST_IMAGES = {
8
+ lossy: 'UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA',
9
+ lossless: 'UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==',
10
+ alpha: 'UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==',
11
+ animation: 'UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA'
12
+ };
13
+ const WEBP_FEATURES = ['lossy', 'lossless', 'alpha', 'animation'];
14
+
15
+ async function isWebPSupported(features = WEBP_FEATURES) {
16
+ const promises = features.map(feature => checkWebPFeature(feature));
17
+ const statuses = await Promise.all(promises);
18
+ return statuses.every(_ => _);
19
+ }
20
+
21
+ async function checkWebPFeature(feature) {
22
+ if (typeof Image === 'undefined') {
23
+ return false;
24
+ }
25
+
26
+ return await new Promise((resolve, reject) => {
27
+ const img = new Image();
28
+
29
+ img.onload = () => resolve(img.width > 0 && img.height > 0);
30
+
31
+ img.onerror = () => resolve(false);
32
+
33
+ img.src = "data:image/webp;base64,".concat(WEBP_TEST_IMAGES[feature]);
34
+ });
35
+ }
36
+ //# sourceMappingURL=webp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/webp/webp.ts"],"names":["WEBP_TEST_IMAGES","lossy","lossless","alpha","animation","WEBP_FEATURES","isWebPSupported","features","promises","map","feature","checkWebPFeature","statuses","Promise","all","every","_","Image","resolve","reject","img","onload","width","height","onerror","src"],"mappings":";;;;;;AAAA,MAAMA,gBAAgB,GAAG;AACvBC,EAAAA,KAAK,EAAE,0DADgB;AAEvBC,EAAAA,QAAQ,EAAE,kDAFa;AAGvBC,EAAAA,KAAK,EACH,kHAJqB;AAKvBC,EAAAA,SAAS,EACP;AANqB,CAAzB;AAWA,MAAMC,aAA4B,GAAG,CAAC,OAAD,EAAU,UAAV,EAAsB,OAAtB,EAA+B,WAA/B,CAArC;;AAMO,eAAeC,eAAf,CAA+BC,QAAuB,GAAGF,aAAzD,EAA0F;AAC/F,QAAMG,QAAQ,GAAGD,QAAQ,CAACE,GAAT,CAAcC,OAAD,IAAaC,gBAAgB,CAACD,OAAD,CAA1C,CAAjB;AACA,QAAME,QAAQ,GAAG,MAAMC,OAAO,CAACC,GAAR,CAAYN,QAAZ,CAAvB;AACA,SAAOI,QAAQ,CAACG,KAAT,CAAgBC,CAAD,IAAOA,CAAtB,CAAP;AACD;;AASD,eAAeL,gBAAf,CAAgCD,OAAhC,EAAwE;AACtE,MAAI,OAAOO,KAAP,KAAiB,WAArB,EAAkC;AAChC,WAAO,KAAP;AACD;;AACD,SAAO,MAAM,IAAIJ,OAAJ,CAAY,CAACK,OAAD,EAAUC,MAAV,KAAqB;AAC5C,UAAMC,GAAG,GAAG,IAAIH,KAAJ,EAAZ;;AACAG,IAAAA,GAAG,CAACC,MAAJ,GAAa,MAAMH,OAAO,CAACE,GAAG,CAACE,KAAJ,GAAY,CAAZ,IAAiBF,GAAG,CAACG,MAAJ,GAAa,CAA/B,CAA1B;;AACAH,IAAAA,GAAG,CAACI,OAAJ,GAAc,MAAMN,OAAO,CAAC,KAAD,CAA3B;;AACAE,IAAAA,GAAG,CAACK,GAAJ,oCAAoCzB,gBAAgB,CAACU,OAAD,CAApD;AACD,GALY,CAAb;AAMD","sourcesContent":["const WEBP_TEST_IMAGES = {\n lossy: 'UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA',\n lossless: 'UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==',\n alpha:\n 'UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==',\n animation:\n 'UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA'\n};\n\nexport type WebPFeature = 'lossy' | 'lossless' | 'alpha' | 'animation';\n\nconst WEBP_FEATURES: WebPFeature[] = ['lossy', 'lossless', 'alpha', 'animation'];\n\n/**\n * Checks if WebP is supported\n * @param features Array, can include 'lossy', 'lossless', 'alpha' or 'animation'\n */\nexport async function isWebPSupported(features: WebPFeature[] = WEBP_FEATURES): Promise<boolean> {\n const promises = features.map((feature) => checkWebPFeature(feature));\n const statuses = await Promise.all(promises);\n return statuses.every((_) => _);\n}\n\n/**\n * Checks if a specific WebP feature is supported\n * @param feature 'feature' can be one of 'lossy', 'lossless', 'alpha' or 'animation'.\n *\n * Based on Google's official recommended checks\n * @see https://developers.google.com/speed/webp/faq#how_can_i_detect_browser_support_for_webp\n */\nasync function checkWebPFeature(feature: WebPFeature): Promise<boolean> {\n if (typeof Image === 'undefined') {\n return false;\n }\n return await new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => resolve(img.width > 0 && img.height > 0);\n img.onerror = () => resolve(false);\n img.src = `data:image/webp;base64,${WEBP_TEST_IMAGES[feature]}`;\n });\n}\n"],"file":"webp.js"}
@@ -0,0 +1,5 @@
1
+ const moduleExports = require('./index');
2
+
3
+ globalThis.loaders = globalThis.loaders || {};
4
+ module.exports = Object.assign(globalThis.loaders, moduleExports);
5
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
@@ -0,0 +1,34 @@
1
+ import { VERSION } from './lib/utils/version';
2
+ import parseGLBSync from './lib/parsers/parse-glb';
3
+ export const GLBLoader = {
4
+ name: 'GLB',
5
+ id: 'glb',
6
+ module: 'gltf',
7
+ version: VERSION,
8
+ extensions: ['glb'],
9
+ mimeTypes: ['model/gltf-binary'],
10
+ binary: true,
11
+ parse,
12
+ parseSync,
13
+ options: {
14
+ glb: {
15
+ strict: false
16
+ }
17
+ }
18
+ };
19
+
20
+ async function parse(arrayBuffer, options) {
21
+ return parseSync(arrayBuffer, options);
22
+ }
23
+
24
+ function parseSync(arrayBuffer, options) {
25
+ const {
26
+ byteOffset = 0
27
+ } = options || {};
28
+ const glb = {};
29
+ parseGLBSync(glb, arrayBuffer, byteOffset, options === null || options === void 0 ? void 0 : options.glb);
30
+ return glb;
31
+ }
32
+
33
+ export const _TypecheckGLBLoader = GLBLoader;
34
+ //# sourceMappingURL=glb-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/glb-loader.ts"],"names":["VERSION","parseGLBSync","GLBLoader","name","id","module","version","extensions","mimeTypes","binary","parse","parseSync","options","glb","strict","arrayBuffer","byteOffset","_TypecheckGLBLoader"],"mappings":"AAGA,SAAQA,OAAR,QAAsB,qBAAtB;AACA,OAAOC,YAAP,MAAyB,yBAAzB;AAWA,OAAO,MAAMC,SAA2B,GAAG;AACzCC,EAAAA,IAAI,EAAE,KADmC;AAEzCC,EAAAA,EAAE,EAAE,KAFqC;AAGzCC,EAAAA,MAAM,EAAE,MAHiC;AAIzCC,EAAAA,OAAO,EAAEN,OAJgC;AAKzCO,EAAAA,UAAU,EAAE,CAAC,KAAD,CAL6B;AAMzCC,EAAAA,SAAS,EAAE,CAAC,mBAAD,CAN8B;AAOzCC,EAAAA,MAAM,EAAE,IAPiC;AAQzCC,EAAAA,KARyC;AASzCC,EAAAA,SATyC;AAUzCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AACHC,MAAAA,MAAM,EAAE;AADL;AADE;AAVgC,CAApC;;AAiBP,eAAeJ,KAAf,CAAqBK,WAArB,EAA+CH,OAA/C,EAAyF;AACvF,SAAOD,SAAS,CAACI,WAAD,EAAcH,OAAd,CAAhB;AACD;;AAED,SAASD,SAAT,CAAmBI,WAAnB,EAA6CH,OAA7C,EAA8E;AAC5E,QAAM;AAACI,IAAAA,UAAU,GAAG;AAAd,MAAmBJ,OAAO,IAAI,EAApC;AACA,QAAMC,GAAQ,GAAG,EAAjB;AACAZ,EAAAA,YAAY,CAACY,GAAD,EAAME,WAAN,EAAmBC,UAAnB,EAA+BJ,OAA/B,aAA+BA,OAA/B,uBAA+BA,OAAO,CAAEC,GAAxC,CAAZ;AACA,SAAOA,GAAP;AACD;;AAGD,OAAO,MAAMI,mBAAqC,GAAGf,SAA9C","sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {GLB} from './lib/types/glb-types';\nimport type {GLBParseOptions} from './lib/parsers/parse-glb';\nimport {VERSION} from './lib/utils/version';\nimport parseGLBSync from './lib/parsers/parse-glb';\n\nexport type GLBLoaderOptions = LoaderOptions & {\n glb?: GLBParseOptions;\n byteOffset?: number;\n};\n\n/**\n * GLB Loader -\n * GLB is the binary container format for GLTF\n */\nexport const GLBLoader: LoaderWithParser = {\n name: 'GLB',\n id: 'glb',\n module: 'gltf',\n version: VERSION,\n extensions: ['glb'],\n mimeTypes: ['model/gltf-binary'],\n binary: true,\n parse,\n parseSync,\n options: {\n glb: {\n strict: false // Enables deprecated XVIZ support (illegal CHUNK formats)\n }\n }\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: GLBLoaderOptions): Promise<GLB> {\n return parseSync(arrayBuffer, options);\n}\n\nfunction parseSync(arrayBuffer: ArrayBuffer, options?: GLBLoaderOptions): GLB {\n const {byteOffset = 0} = options || {};\n const glb: GLB = {} as GLB;\n parseGLBSync(glb, arrayBuffer, byteOffset, options?.glb);\n return glb;\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckGLBLoader: LoaderWithParser = GLBLoader;\n"],"file":"glb-loader.js"}
@@ -0,0 +1,29 @@
1
+ import { VERSION } from './lib/utils/version';
2
+ import encodeGLBSync from './lib/encoders/encode-glb';
3
+ export const GLBWriter = {
4
+ name: 'GLB',
5
+ id: 'glb',
6
+ module: 'gltf',
7
+ version: VERSION,
8
+ extensions: ['glb'],
9
+ mimeTypes: ['model/gltf-binary'],
10
+ binary: true,
11
+ encodeSync,
12
+ options: {
13
+ glb: {}
14
+ }
15
+ };
16
+
17
+ function encodeSync(glb, options) {
18
+ const {
19
+ byteOffset = 0
20
+ } = options;
21
+ const byteLength = encodeGLBSync(glb, null, byteOffset, options);
22
+ const arrayBuffer = new ArrayBuffer(byteLength);
23
+ const dataView = new DataView(arrayBuffer);
24
+ encodeGLBSync(glb, dataView, byteOffset, options);
25
+ return arrayBuffer;
26
+ }
27
+
28
+ export const _TypecheckGLBLoader = GLBWriter;
29
+ //# sourceMappingURL=glb-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/glb-writer.ts"],"names":["VERSION","encodeGLBSync","GLBWriter","name","id","module","version","extensions","mimeTypes","binary","encodeSync","options","glb","byteOffset","byteLength","arrayBuffer","ArrayBuffer","dataView","DataView","_TypecheckGLBLoader"],"mappings":"AACA,SAAQA,OAAR,QAAsB,qBAAtB;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AAMA,OAAO,MAAMC,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,KADiB;AAEvBC,EAAAA,EAAE,EAAE,KAFmB;AAGvBC,EAAAA,MAAM,EAAE,MAHe;AAIvBC,EAAAA,OAAO,EAAEN,OAJc;AAMvBO,EAAAA,UAAU,EAAE,CAAC,KAAD,CANW;AAOvBC,EAAAA,SAAS,EAAE,CAAC,mBAAD,CAPY;AAQvBC,EAAAA,MAAM,EAAE,IARe;AAUvBC,EAAAA,UAVuB;AAYvBC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AADE;AAZc,CAAlB;;AAiBP,SAASF,UAAT,CAAoBE,GAApB,EAAyBD,OAAzB,EAAkC;AAChC,QAAM;AAACE,IAAAA,UAAU,GAAG;AAAd,MAAmBF,OAAzB;AAGA,QAAMG,UAAU,GAAGb,aAAa,CAACW,GAAD,EAAM,IAAN,EAAYC,UAAZ,EAAwBF,OAAxB,CAAhC;AACA,QAAMI,WAAW,GAAG,IAAIC,WAAJ,CAAgBF,UAAhB,CAApB;AAGA,QAAMG,QAAQ,GAAG,IAAIC,QAAJ,CAAaH,WAAb,CAAjB;AACAd,EAAAA,aAAa,CAACW,GAAD,EAAMK,QAAN,EAAgBJ,UAAhB,EAA4BF,OAA5B,CAAb;AAEA,SAAOI,WAAP;AACD;;AAGD,OAAO,MAAMI,mBAA2B,GAAGjB,SAApC","sourcesContent":["import type {Writer} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport encodeGLBSync from './lib/encoders/encode-glb';\n\n/**\n * GLB exporter\n * GLB is the binary container format for GLTF\n */\nexport const GLBWriter = {\n name: 'GLB',\n id: 'glb',\n module: 'gltf',\n version: VERSION,\n\n extensions: ['glb'],\n mimeTypes: ['model/gltf-binary'],\n binary: true,\n\n encodeSync,\n\n options: {\n glb: {}\n }\n};\n\nfunction encodeSync(glb, options) {\n const {byteOffset = 0} = options;\n\n // Calculate length and allocate buffer\n const byteLength = encodeGLBSync(glb, null, byteOffset, options);\n const arrayBuffer = new ArrayBuffer(byteLength);\n\n // Encode into buffer\n const dataView = new DataView(arrayBuffer);\n encodeGLBSync(glb, dataView, byteOffset, options);\n\n return arrayBuffer;\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckGLBLoader: Writer = GLBWriter;\n"],"file":"glb-writer.js"}
@@ -0,0 +1,47 @@
1
+ import { VERSION } from './lib/utils/version';
2
+ import { parseGLTF } from './lib/parsers/parse-gltf';
3
+ export const GLTFLoader = {
4
+ name: 'glTF',
5
+ id: 'gltf',
6
+ module: 'gltf',
7
+ version: VERSION,
8
+ extensions: ['gltf', 'glb'],
9
+ mimeTypes: ['model/gltf+json', 'model/gltf-binary'],
10
+ text: true,
11
+ binary: true,
12
+ tests: ['glTF'],
13
+ parse,
14
+ options: {
15
+ gltf: {
16
+ normalize: true,
17
+ loadBuffers: true,
18
+ loadImages: true,
19
+ decompressMeshes: true,
20
+ postProcess: true
21
+ },
22
+ log: console
23
+ },
24
+ deprecatedOptions: {
25
+ fetchImages: 'gltf.loadImages',
26
+ createImages: 'gltf.loadImages',
27
+ decompress: 'gltf.decompressMeshes',
28
+ postProcess: 'gltf.postProcess',
29
+ gltf: {
30
+ decompress: 'gltf.decompressMeshes'
31
+ }
32
+ }
33
+ };
34
+ export async function parse(arrayBuffer, options = {}, context) {
35
+ options = { ...GLTFLoader.options,
36
+ ...options
37
+ };
38
+ options.gltf = { ...GLTFLoader.options.gltf,
39
+ ...options.gltf
40
+ };
41
+ const {
42
+ byteOffset = 0
43
+ } = options;
44
+ const gltf = {};
45
+ return await parseGLTF(gltf, arrayBuffer, byteOffset, options, context);
46
+ }
47
+ //# sourceMappingURL=gltf-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/gltf-loader.ts"],"names":["VERSION","parseGLTF","GLTFLoader","name","id","module","version","extensions","mimeTypes","text","binary","tests","parse","options","gltf","normalize","loadBuffers","loadImages","decompressMeshes","postProcess","log","console","deprecatedOptions","fetchImages","createImages","decompress","arrayBuffer","context","byteOffset"],"mappings":"AAEA,SAAQA,OAAR,QAAsB,qBAAtB;AAKA,SAAQC,SAAR,QAAwB,0BAAxB;AAiBA,OAAO,MAAMC,UAA4B,GAAG;AAC1CC,EAAAA,IAAI,EAAE,MADoC;AAE1CC,EAAAA,EAAE,EAAE,MAFsC;AAG1CC,EAAAA,MAAM,EAAE,MAHkC;AAI1CC,EAAAA,OAAO,EAAEN,OAJiC;AAK1CO,EAAAA,UAAU,EAAE,CAAC,MAAD,EAAS,KAAT,CAL8B;AAM1CC,EAAAA,SAAS,EAAE,CAAC,iBAAD,EAAoB,mBAApB,CAN+B;AAQ1CC,EAAAA,IAAI,EAAE,IARoC;AAS1CC,EAAAA,MAAM,EAAE,IATkC;AAU1CC,EAAAA,KAAK,EAAE,CAAC,MAAD,CAVmC;AAW1CC,EAAAA,KAX0C;AAa1CC,EAAAA,OAAO,EAAE;AACPC,IAAAA,IAAI,EAAE;AACJC,MAAAA,SAAS,EAAE,IADP;AAEJC,MAAAA,WAAW,EAAE,IAFT;AAGJC,MAAAA,UAAU,EAAE,IAHR;AAIJC,MAAAA,gBAAgB,EAAE,IAJd;AAKJC,MAAAA,WAAW,EAAE;AALT,KADC;AAUPC,IAAAA,GAAG,EAAEC;AAVE,GAbiC;AAyB1CC,EAAAA,iBAAiB,EAAE;AACjBC,IAAAA,WAAW,EAAE,iBADI;AAEjBC,IAAAA,YAAY,EAAE,iBAFG;AAGjBC,IAAAA,UAAU,EAAE,uBAHK;AAIjBN,IAAAA,WAAW,EAAE,kBAJI;AAKjBL,IAAAA,IAAI,EAAE;AACJW,MAAAA,UAAU,EAAE;AADR;AALW;AAzBuB,CAArC;AAoCP,OAAO,eAAeb,KAAf,CAAqBc,WAArB,EAAkCb,OAA0B,GAAG,EAA/D,EAAmEc,OAAnE,EAA4E;AAEjFd,EAAAA,OAAO,GAAG,EAAC,GAAGX,UAAU,CAACW,OAAf;AAAwB,OAAGA;AAA3B,GAAV;AAEAA,EAAAA,OAAO,CAACC,IAAR,GAAe,EAAC,GAAGZ,UAAU,CAACW,OAAX,CAAmBC,IAAvB;AAA6B,OAAGD,OAAO,CAACC;AAAxC,GAAf;AAEA,QAAM;AAACc,IAAAA,UAAU,GAAG;AAAd,MAAmBf,OAAzB;AACA,QAAMC,IAAI,GAAG,EAAb;AACA,SAAO,MAAMb,SAAS,CAACa,IAAD,EAA0BY,WAA1B,EAAuCE,UAAvC,EAAmDf,OAAnD,EAA4Dc,OAA5D,CAAtB;AACD","sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {DracoLoaderOptions} from '@loaders.gl/draco';\nimport {VERSION} from './lib/utils/version';\nimport type {ImageLoaderOptions} from '@loaders.gl/images';\nimport type {TextureLoaderOptions} from '@loaders.gl/textures';\nimport type {GLTFParseOptions} from './lib/parsers/parse-gltf';\nimport type {GLTFWithBuffers} from './lib/types/gltf-types';\nimport {parseGLTF} from './lib/parsers/parse-gltf';\nimport {GLBLoaderOptions} from './glb-loader';\n\n/**\n * GLTF loader options\n */\nexport type GLTFLoaderOptions = LoaderOptions &\n ImageLoaderOptions &\n TextureLoaderOptions &\n GLBLoaderOptions &\n DracoLoaderOptions & {\n gltf?: GLTFParseOptions;\n };\n\n/**\n * GLTF loader\n */\nexport const GLTFLoader: LoaderWithParser = {\n name: 'glTF',\n id: 'gltf',\n module: 'gltf',\n version: VERSION,\n extensions: ['gltf', 'glb'],\n mimeTypes: ['model/gltf+json', 'model/gltf-binary'],\n\n text: true,\n binary: true,\n tests: ['glTF'],\n parse,\n\n options: {\n gltf: {\n normalize: true, // Normalize glTF v1 to glTF v2 format (not yet stable)\n loadBuffers: true, // Fetch any linked .BIN buffers, decode base64\n loadImages: true, // Create image objects\n decompressMeshes: true, // Decompress Draco encoded meshes\n postProcess: true // Postprocess glTF and return json structure directly\n },\n\n // common?\n log: console // eslint-disable-line\n },\n deprecatedOptions: {\n fetchImages: 'gltf.loadImages',\n createImages: 'gltf.loadImages',\n decompress: 'gltf.decompressMeshes',\n postProcess: 'gltf.postProcess',\n gltf: {\n decompress: 'gltf.decompressMeshes'\n }\n }\n};\n\nexport async function parse(arrayBuffer, options: GLTFLoaderOptions = {}, context) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GLTFLoader.options, ...options};\n // @ts-ignore\n options.gltf = {...GLTFLoader.options.gltf, ...options.gltf};\n\n const {byteOffset = 0} = options;\n const gltf = {};\n return await parseGLTF(gltf as GLTFWithBuffers, arrayBuffer, byteOffset, options, context);\n}\n"],"file":"gltf-loader.js"}
@@ -0,0 +1,29 @@
1
+ import { VERSION } from './lib/utils/version';
2
+ import { encodeGLTFSync } from './lib/encoders/encode-gltf';
3
+ export const GLTFWriter = {
4
+ name: 'glTF',
5
+ id: 'gltf',
6
+ module: 'gltf',
7
+ version: VERSION,
8
+ extensions: ['glb'],
9
+ mimeTypes: ['model/gltf-binary'],
10
+ binary: true,
11
+ encodeSync,
12
+ options: {
13
+ gltf: {}
14
+ }
15
+ };
16
+
17
+ function encodeSync(gltf, options = {}) {
18
+ const {
19
+ byteOffset = 0
20
+ } = options;
21
+ const byteLength = encodeGLTFSync(gltf, null, byteOffset, options);
22
+ const arrayBuffer = new ArrayBuffer(byteLength);
23
+ const dataView = new DataView(arrayBuffer);
24
+ encodeGLTFSync(gltf, dataView, byteOffset, options);
25
+ return arrayBuffer;
26
+ }
27
+
28
+ export const _TypecheckGLBLoader = GLTFWriter;
29
+ //# sourceMappingURL=gltf-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/gltf-writer.ts"],"names":["VERSION","encodeGLTFSync","GLTFWriter","name","id","module","version","extensions","mimeTypes","binary","encodeSync","options","gltf","byteOffset","byteLength","arrayBuffer","ArrayBuffer","dataView","DataView","_TypecheckGLBLoader"],"mappings":"AACA,SAAQA,OAAR,QAAsB,qBAAtB;AACA,SAAQC,cAAR,QAA6B,4BAA7B;AAUA,OAAO,MAAMC,UAAU,GAAG;AACxBC,EAAAA,IAAI,EAAE,MADkB;AAExBC,EAAAA,EAAE,EAAE,MAFoB;AAGxBC,EAAAA,MAAM,EAAE,MAHgB;AAIxBC,EAAAA,OAAO,EAAEN,OAJe;AAMxBO,EAAAA,UAAU,EAAE,CAAC,KAAD,CANY;AAOxBC,EAAAA,SAAS,EAAE,CAAC,mBAAD,CAPa;AAQxBC,EAAAA,MAAM,EAAE,IARgB;AAUxBC,EAAAA,UAVwB;AAYxBC,EAAAA,OAAO,EAAE;AACPC,IAAAA,IAAI,EAAE;AADC;AAZe,CAAnB;;AAiBP,SAASF,UAAT,CAAoBE,IAApB,EAA0BD,OAA0B,GAAG,EAAvD,EAA2D;AACzD,QAAM;AAACE,IAAAA,UAAU,GAAG;AAAd,MAAmBF,OAAzB;AAGA,QAAMG,UAAU,GAAGb,cAAc,CAACW,IAAD,EAAO,IAAP,EAAaC,UAAb,EAAyBF,OAAzB,CAAjC;AACA,QAAMI,WAAW,GAAG,IAAIC,WAAJ,CAAgBF,UAAhB,CAApB;AACA,QAAMG,QAAQ,GAAG,IAAIC,QAAJ,CAAaH,WAAb,CAAjB;AACAd,EAAAA,cAAc,CAACW,IAAD,EAAOK,QAAP,EAAiBJ,UAAjB,EAA6BF,OAA7B,CAAd;AAEA,SAAOI,WAAP;AACD;;AAGD,OAAO,MAAMI,mBAA2B,GAAGjB,UAApC","sourcesContent":["import type {Writer} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {encodeGLTFSync} from './lib/encoders/encode-gltf';\n\nexport type GLTFWriterOptions = {\n gltf?: {};\n byteOffset?: number;\n};\n\n/**\n * GLTF exporter\n */\nexport const GLTFWriter = {\n name: 'glTF',\n id: 'gltf',\n module: 'gltf',\n version: VERSION,\n\n extensions: ['glb'], // We only support encoding to binary GLB, not to JSON GLTF\n mimeTypes: ['model/gltf-binary'], // 'model/gltf+json',\n binary: true,\n\n encodeSync,\n\n options: {\n gltf: {}\n }\n};\n\nfunction encodeSync(gltf, options: GLTFWriterOptions = {}) {\n const {byteOffset = 0} = options;\n\n // Calculate length, then create arraybuffer and encode\n const byteLength = encodeGLTFSync(gltf, null, byteOffset, options);\n const arrayBuffer = new ArrayBuffer(byteLength);\n const dataView = new DataView(arrayBuffer);\n encodeGLTFSync(gltf, dataView, byteOffset, options);\n\n return arrayBuffer;\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckGLBLoader: Writer = GLTFWriter;\n"],"file":"gltf-writer.js"}
@@ -0,0 +1,7 @@
1
+ export { GLTFLoader } from './gltf-loader';
2
+ export { GLTFWriter } from './gltf-writer';
3
+ export { GLBLoader } from './glb-loader';
4
+ export { GLBWriter } from './glb-writer';
5
+ export { default as GLTFScenegraph } from './lib/api/gltf-scenegraph';
6
+ export { postProcessGLTF } from './lib/api/post-process-gltf';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts"],"names":["GLTFLoader","GLTFWriter","GLBLoader","GLBWriter","default","GLTFScenegraph","postProcessGLTF"],"mappings":"AAyBA,SAAQA,UAAR,QAAyB,eAAzB;AACA,SAAQC,UAAR,QAAyB,eAAzB;AAGA,SAAQC,SAAR,QAAwB,cAAxB;AACA,SAAQC,SAAR,QAAwB,cAAxB;AAGA,SAAQC,OAAO,IAAIC,cAAnB,QAAwC,2BAAxC;AACA,SAAQC,eAAR,QAA8B,6BAA9B","sourcesContent":["/* eslint-disable camelcase, indent */\nexport type {GLB} from './lib/types/glb-types';\nexport type {\n GLTF,\n GLTFAccessor,\n GLTFBuffer,\n GLTFBufferView,\n GLTFMeshPrimitive,\n GLTFMesh,\n GLTFNode,\n GLTFMaterial,\n GLTFSampler,\n GLTFScene,\n GLTFSkin,\n GLTFTexture,\n GLTFImage,\n // The following extensions are handled by the GLTFLoader and removed from the parsed glTF (disable via options.gltf.excludeExtensions)\n GLTF_KHR_binary_glTF,\n GLTF_KHR_draco_mesh_compression,\n GLTF_KHR_texture_basisu,\n GLTF_EXT_meshopt_compression,\n GLTF_EXT_texture_webp\n} from './lib/types/gltf-types';\n\n// glTF loader/writer definition objects\nexport {GLTFLoader} from './gltf-loader';\nexport {GLTFWriter} from './gltf-writer';\n\n// GLB Loader & Writer (for custom formats that want to leverage the GLB binary \"envelope\")\nexport {GLBLoader} from './glb-loader';\nexport {GLBWriter} from './glb-writer';\n\n// glTF Data Access Helper Class\nexport {default as GLTFScenegraph} from './lib/api/gltf-scenegraph';\nexport {postProcessGLTF} from './lib/api/post-process-gltf';\nexport type {Mesh} from './lib/types/gltf-json-schema';\nexport type {GLTFObject} from './lib/types/gltf-types';\n"],"file":"index.js"}
@@ -0,0 +1,35 @@
1
+ import * as EXT_meshopt_compression from '../extensions/EXT_meshopt_compression';
2
+ import * as EXT_texture_webp from '../extensions/EXT_texture_webp';
3
+ import * as KHR_texture_basisu from '../extensions/KHR_texture_basisu';
4
+ import * as KHR_draco_mesh_compression from '../extensions/KHR_draco_mesh_compression';
5
+ import * as KHR_lights_punctual from '../extensions/deprecated/KHR_lights_punctual';
6
+ import * as KHR_materials_unlit from '../extensions/deprecated/KHR_materials_unlit';
7
+ import * as KHR_techniques_webgl from '../extensions/deprecated/KHR_techniques_webgl';
8
+ export const EXTENSIONS = [EXT_meshopt_compression, EXT_texture_webp, KHR_texture_basisu, KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_unlit, KHR_techniques_webgl];
9
+ export function preprocessExtensions(gltf, options = {}, context) {
10
+ const extensions = EXTENSIONS.filter(extension => useExtension(extension.name, options));
11
+
12
+ for (const extension of extensions) {
13
+ var _extension$preprocess;
14
+
15
+ (_extension$preprocess = extension.preprocess) === null || _extension$preprocess === void 0 ? void 0 : _extension$preprocess.call(extension, gltf, options, context);
16
+ }
17
+ }
18
+ export async function decodeExtensions(gltf, options = {}, context) {
19
+ const extensions = EXTENSIONS.filter(extension => useExtension(extension.name, options));
20
+
21
+ for (const extension of extensions) {
22
+ var _extension$decode;
23
+
24
+ await ((_extension$decode = extension.decode) === null || _extension$decode === void 0 ? void 0 : _extension$decode.call(extension, gltf, options, context));
25
+ }
26
+ }
27
+
28
+ function useExtension(extensionName, options) {
29
+ var _options$gltf;
30
+
31
+ const excludes = (options === null || options === void 0 ? void 0 : (_options$gltf = options.gltf) === null || _options$gltf === void 0 ? void 0 : _options$gltf.excludeExtensions) || {};
32
+ const exclude = extensionName in excludes && !excludes[extensionName];
33
+ return !exclude;
34
+ }
35
+ //# sourceMappingURL=gltf-extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/api/gltf-extensions.ts"],"names":["EXT_meshopt_compression","EXT_texture_webp","KHR_texture_basisu","KHR_draco_mesh_compression","KHR_lights_punctual","KHR_materials_unlit","KHR_techniques_webgl","EXTENSIONS","preprocessExtensions","gltf","options","context","extensions","filter","extension","useExtension","name","preprocess","decodeExtensions","decode","extensionName","excludes","excludeExtensions","exclude"],"mappings":"AAQA,OAAO,KAAKA,uBAAZ,MAAyC,uCAAzC;AACA,OAAO,KAAKC,gBAAZ,MAAkC,gCAAlC;AACA,OAAO,KAAKC,kBAAZ,MAAoC,kCAApC;AACA,OAAO,KAAKC,0BAAZ,MAA4C,0CAA5C;AAGA,OAAO,KAAKC,mBAAZ,MAAqC,8CAArC;AACA,OAAO,KAAKC,mBAAZ,MAAqC,8CAArC;AACA,OAAO,KAAKC,oBAAZ,MAAsC,+CAAtC;AAgBA,OAAO,MAAMC,UAAiC,GAAG,CAM/CP,uBAN+C,EAO/CC,gBAP+C,EAS/CC,kBAT+C,EAU/CC,0BAV+C,EAW/CC,mBAX+C,EAY/CC,mBAZ+C,EAa/CC,oBAb+C,CAA1C;AAiBP,OAAO,SAASE,oBAAT,CAA8BC,IAA9B,EAAoCC,OAA0B,GAAG,EAAjE,EAAqEC,OAArE,EAA+E;AACpF,QAAMC,UAAU,GAAGL,UAAU,CAACM,MAAX,CAAmBC,SAAD,IAAeC,YAAY,CAACD,SAAS,CAACE,IAAX,EAAiBN,OAAjB,CAA7C,CAAnB;;AACA,OAAK,MAAMI,SAAX,IAAwBF,UAAxB,EAAoC;AAAA;;AAClC,6BAAAE,SAAS,CAACG,UAAV,qFAAAH,SAAS,EAAcL,IAAd,EAAoBC,OAApB,EAA6BC,OAA7B,CAAT;AACD;AACF;AAGD,OAAO,eAAeO,gBAAf,CAAgCT,IAAhC,EAAsCC,OAA0B,GAAG,EAAnE,EAAuEC,OAAvE,EAAiF;AACtF,QAAMC,UAAU,GAAGL,UAAU,CAACM,MAAX,CAAmBC,SAAD,IAAeC,YAAY,CAACD,SAAS,CAACE,IAAX,EAAiBN,OAAjB,CAA7C,CAAnB;;AACA,OAAK,MAAMI,SAAX,IAAwBF,UAAxB,EAAoC;AAAA;;AAGlC,gCAAME,SAAS,CAACK,MAAhB,sDAAM,uBAAAL,SAAS,EAAUL,IAAV,EAAgBC,OAAhB,EAAyBC,OAAzB,CAAf;AACD;AACF;;AAED,SAASI,YAAT,CAAsBK,aAAtB,EAA6CV,OAA7C,EAAyE;AAAA;;AACvE,QAAMW,QAAQ,GAAG,CAAAX,OAAO,SAAP,IAAAA,OAAO,WAAP,6BAAAA,OAAO,CAAED,IAAT,gEAAea,iBAAf,KAAoC,EAArD;AACA,QAAMC,OAAO,GAAGH,aAAa,IAAIC,QAAjB,IAA6B,CAACA,QAAQ,CAACD,aAAD,CAAtD;AACA,SAAO,CAACG,OAAR;AACD","sourcesContent":["/* eslint-disable camelcase */\nimport {GLTF} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\n\n// GLTF 1.0 extensions (decode only)\n// import * as KHR_binary_gltf from './KHR_draco_mesh_compression';\n\n// GLTF 2.0 Khronos extensions (decode/encode)\nimport * as EXT_meshopt_compression from '../extensions/EXT_meshopt_compression';\nimport * as EXT_texture_webp from '../extensions/EXT_texture_webp';\nimport * as KHR_texture_basisu from '../extensions/KHR_texture_basisu';\nimport * as KHR_draco_mesh_compression from '../extensions/KHR_draco_mesh_compression';\n\n// Deprecated. These should be handled by rendering library (e.g. luma.gl), not the loader.\nimport * as KHR_lights_punctual from '../extensions/deprecated/KHR_lights_punctual';\nimport * as KHR_materials_unlit from '../extensions/deprecated/KHR_materials_unlit';\nimport * as KHR_techniques_webgl from '../extensions/deprecated/KHR_techniques_webgl';\n\n// Vendor extensions\n\ntype GLTFExtensionPlugin = {\n name: string;\n preprocess?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => void;\n decode?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => Promise<void>;\n encode?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions) => void;\n};\n\n/**\n * List of extensions processed by the GLTFLoader\n * Note that may extensions can only be handled on the rendering stage and are left out here\n * These are just extensions that can be handled fully or partially during loading.\n */\nexport const EXTENSIONS: GLTFExtensionPlugin[] = [\n // 1.0\n // KHR_binary_gltf is handled separately - must be processed before other parsing starts\n // KHR_binary_gltf,\n\n // 2.0\n EXT_meshopt_compression,\n EXT_texture_webp,\n // Basisu should come after webp, we want basisu to be preferred if both are provided\n KHR_texture_basisu,\n KHR_draco_mesh_compression,\n KHR_lights_punctual,\n KHR_materials_unlit,\n KHR_techniques_webgl\n];\n\n/** Call before any resource loading starts */\nexport function preprocessExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n extension.preprocess?.(gltf, options, context);\n }\n}\n\n/** Call after resource loading */\nexport async function decodeExtensions(gltf, options: GLTFLoaderOptions = {}, context?) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n // Note: We decode async extensions sequentially, this might not be necessary\n // Currently we only have Draco, but when we add Basis we may revisit\n await extension.decode?.(gltf, options, context);\n }\n}\n\nfunction useExtension(extensionName: string, options: GLTFLoaderOptions) {\n const excludes = options?.gltf?.excludeExtensions || {};\n const exclude = extensionName in excludes && !excludes[extensionName];\n return !exclude;\n}\n"],"file":"gltf-extensions.js"}