@loaders.gl/scene 5.0.0-beta.1 → 5.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/DRACO-README.md +15 -0
  2. package/README.md +7 -1
  3. package/THIRD-PARTY-NOTICES.md +4 -1
  4. package/dist/dist.dev.js +5708 -4937
  5. package/dist/dist.min.js +24 -24
  6. package/dist/draco/bundled.cjs +37 -0
  7. package/dist/draco/bundled.cjs.map +7 -0
  8. package/dist/draco/bundled.d.ts +6 -0
  9. package/dist/draco/bundled.d.ts.map +1 -0
  10. package/dist/draco/bundled.js +7 -0
  11. package/dist/draco/bundled.js.map +1 -0
  12. package/dist/draco/draco-format.cjs +41 -0
  13. package/dist/draco/draco-format.cjs.map +7 -0
  14. package/dist/draco/draco-format.d.ts +15 -0
  15. package/dist/draco/draco-format.d.ts.map +1 -0
  16. package/dist/draco/draco-format.js +18 -0
  17. package/dist/draco/draco-format.js.map +1 -0
  18. package/dist/draco/draco-javascript-loader-with-parser.cjs +44 -0
  19. package/dist/draco/draco-javascript-loader-with-parser.cjs.map +7 -0
  20. package/dist/draco/draco-javascript-loader-with-parser.d.ts +34 -0
  21. package/dist/draco/draco-javascript-loader-with-parser.d.ts.map +1 -0
  22. package/dist/draco/draco-javascript-loader-with-parser.js +14 -0
  23. package/dist/draco/draco-javascript-loader-with-parser.js.map +1 -0
  24. package/dist/draco/draco-libraries.cjs +61 -0
  25. package/dist/draco/draco-libraries.cjs.map +7 -0
  26. package/dist/draco/draco-libraries.d.ts +28 -0
  27. package/dist/draco/draco-libraries.d.ts.map +1 -0
  28. package/dist/draco/draco-libraries.js +33 -0
  29. package/dist/draco/draco-libraries.js.map +1 -0
  30. package/dist/draco/draco-library-options.cjs +80 -0
  31. package/dist/draco/draco-library-options.cjs.map +7 -0
  32. package/dist/draco/draco-library-options.d.ts +16 -0
  33. package/dist/draco/draco-library-options.d.ts.map +1 -0
  34. package/dist/draco/draco-library-options.js +52 -0
  35. package/dist/draco/draco-library-options.js.map +1 -0
  36. package/dist/draco/draco-loader-options.cjs +37 -0
  37. package/dist/draco/draco-loader-options.cjs.map +7 -0
  38. package/dist/draco/draco-loader-options.d.ts +27 -0
  39. package/dist/draco/draco-loader-options.d.ts.map +1 -0
  40. package/dist/draco/draco-loader-options.js +12 -0
  41. package/dist/draco/draco-loader-options.js.map +1 -0
  42. package/dist/draco/draco-loader-types.cjs +88 -0
  43. package/dist/draco/draco-loader-types.cjs.map +7 -0
  44. package/dist/draco/draco-loader-types.d.ts +69 -0
  45. package/dist/draco/draco-loader-types.d.ts.map +1 -0
  46. package/dist/draco/draco-loader-types.js +54 -0
  47. package/dist/draco/draco-loader-types.js.map +1 -0
  48. package/dist/draco/draco-loader.cjs +51 -0
  49. package/dist/draco/draco-loader.cjs.map +7 -0
  50. package/dist/draco/draco-loader.d.ts +39 -0
  51. package/dist/draco/draco-loader.d.ts.map +1 -0
  52. package/dist/draco/draco-loader.js +22 -0
  53. package/dist/draco/draco-loader.js.map +1 -0
  54. package/dist/draco/draco-wasm-loader-with-parser.cjs +48 -0
  55. package/dist/draco/draco-wasm-loader-with-parser.cjs.map +7 -0
  56. package/dist/draco/draco-wasm-loader-with-parser.d.ts +34 -0
  57. package/dist/draco/draco-wasm-loader-with-parser.d.ts.map +1 -0
  58. package/dist/draco/draco-wasm-loader-with-parser.js +14 -0
  59. package/dist/draco/draco-wasm-loader-with-parser.js.map +1 -0
  60. package/dist/draco/draco-writer.cjs +183 -0
  61. package/dist/draco/draco-writer.cjs.map +7 -0
  62. package/dist/draco/draco-writer.d.ts +97 -0
  63. package/dist/draco/draco-writer.d.ts.map +1 -0
  64. package/dist/draco/draco-writer.js +166 -0
  65. package/dist/draco/draco-writer.js.map +1 -0
  66. package/dist/draco/draco3d/draco3d-types.cjs +76 -0
  67. package/dist/draco/draco3d/draco3d-types.cjs.map +7 -0
  68. package/dist/draco/draco3d/draco3d-types.d.ts +303 -0
  69. package/dist/draco/draco3d/draco3d-types.d.ts.map +1 -0
  70. package/dist/draco/draco3d/draco3d-types.js +47 -0
  71. package/dist/draco/draco3d/draco3d-types.js.map +1 -0
  72. package/dist/draco/draco3d-loader-with-parser.cjs +50 -0
  73. package/dist/draco/draco3d-loader-with-parser.cjs.map +7 -0
  74. package/dist/draco/draco3d-loader-with-parser.d.ts +34 -0
  75. package/dist/draco/draco3d-loader-with-parser.d.ts.map +1 -0
  76. package/dist/draco/draco3d-loader-with-parser.js +21 -0
  77. package/dist/draco/draco3d-loader-with-parser.js.map +1 -0
  78. package/dist/draco/index.cjs +54 -0
  79. package/dist/draco/index.cjs.map +7 -0
  80. package/dist/draco/index.d.ts +13 -0
  81. package/dist/draco/index.d.ts.map +1 -0
  82. package/dist/draco/index.js +13 -0
  83. package/dist/draco/index.js.map +1 -0
  84. package/dist/draco/lib/draco-builder.cjs +660 -0
  85. package/dist/draco/lib/draco-builder.cjs.map +7 -0
  86. package/dist/draco/lib/draco-builder.d.ts +175 -0
  87. package/dist/draco/lib/draco-builder.d.ts.map +1 -0
  88. package/dist/draco/lib/draco-builder.js +612 -0
  89. package/dist/draco/lib/draco-builder.js.map +1 -0
  90. package/dist/draco/lib/draco-library-loader.cjs +47 -0
  91. package/dist/draco/lib/draco-library-loader.cjs.map +7 -0
  92. package/dist/draco/lib/draco-library-loader.d.ts +5 -0
  93. package/dist/draco/lib/draco-library-loader.d.ts.map +1 -0
  94. package/dist/draco/lib/draco-library-loader.js +23 -0
  95. package/dist/draco/lib/draco-library-loader.js.map +1 -0
  96. package/dist/draco/lib/draco-module-loader.cjs +281 -0
  97. package/dist/draco/lib/draco-module-loader.cjs.map +7 -0
  98. package/dist/draco/lib/draco-module-loader.d.ts +25 -0
  99. package/dist/draco/lib/draco-module-loader.d.ts.map +1 -0
  100. package/dist/draco/lib/draco-module-loader.js +220 -0
  101. package/dist/draco/lib/draco-module-loader.js.map +1 -0
  102. package/dist/draco/lib/draco-parser.cjs +598 -0
  103. package/dist/draco/lib/draco-parser.cjs.map +7 -0
  104. package/dist/draco/lib/draco-parser.d.ts +142 -0
  105. package/dist/draco/lib/draco-parser.d.ts.map +1 -0
  106. package/dist/draco/lib/draco-parser.js +595 -0
  107. package/dist/draco/lib/draco-parser.js.map +1 -0
  108. package/dist/draco/lib/draco-types.cjs +19 -0
  109. package/dist/draco/lib/draco-types.cjs.map +7 -0
  110. package/dist/draco/lib/draco-types.d.ts +59 -0
  111. package/dist/draco/lib/draco-types.d.ts.map +1 -0
  112. package/dist/draco/lib/draco-types.js +5 -0
  113. package/dist/draco/lib/draco-types.js.map +1 -0
  114. package/dist/draco/lib/parse-draco.cjs +59 -0
  115. package/dist/draco/lib/parse-draco.cjs.map +7 -0
  116. package/dist/draco/lib/parse-draco.d.ts +22 -0
  117. package/dist/draco/lib/parse-draco.d.ts.map +1 -0
  118. package/dist/draco/lib/parse-draco.js +32 -0
  119. package/dist/draco/lib/parse-draco.js.map +1 -0
  120. package/dist/draco/lib/utils/get-draco-schema.cjs +74 -0
  121. package/dist/draco/lib/utils/get-draco-schema.cjs.map +7 -0
  122. package/dist/draco/lib/utils/get-draco-schema.d.ts +7 -0
  123. package/dist/draco/lib/utils/get-draco-schema.d.ts.map +1 -0
  124. package/dist/draco/lib/utils/get-draco-schema.js +45 -0
  125. package/dist/draco/lib/utils/get-draco-schema.js.map +1 -0
  126. package/dist/draco/lib/utils/version.cjs +31 -0
  127. package/dist/draco/lib/utils/version.cjs.map +7 -0
  128. package/dist/draco/lib/utils/version.d.ts +2 -0
  129. package/dist/draco/lib/utils/version.d.ts.map +1 -0
  130. package/dist/draco/lib/utils/version.js +8 -0
  131. package/dist/draco/lib/utils/version.js.map +1 -0
  132. package/dist/draco/unbundled.cjs +33 -0
  133. package/dist/draco/unbundled.cjs.map +7 -0
  134. package/dist/draco/unbundled.d.ts +3 -0
  135. package/dist/draco/unbundled.d.ts.map +1 -0
  136. package/dist/draco/unbundled.js +5 -0
  137. package/dist/draco/unbundled.js.map +1 -0
  138. package/dist/draco/workers/draco-worker-node.cjs +8 -0
  139. package/dist/draco/workers/draco-worker-node.cjs.map +7 -0
  140. package/dist/draco/workers/draco-worker-node.d.ts +2 -0
  141. package/dist/draco/workers/draco-worker-node.d.ts.map +1 -0
  142. package/dist/draco/workers/draco-worker-node.js +9 -0
  143. package/dist/draco/workers/draco-worker-node.js.map +1 -0
  144. package/dist/draco/workers/draco-worker.cjs +7 -0
  145. package/dist/draco/workers/draco-worker.cjs.map +7 -0
  146. package/dist/draco/workers/draco-worker.d.ts +2 -0
  147. package/dist/draco/workers/draco-worker.d.ts.map +1 -0
  148. package/dist/draco/workers/draco-worker.js +7 -0
  149. package/dist/draco/workers/draco-worker.js.map +1 -0
  150. package/dist/draco/workers/draco-writer-worker-node.cjs +11 -0
  151. package/dist/draco/workers/draco-writer-worker-node.cjs.map +7 -0
  152. package/dist/draco/workers/draco-writer-worker-node.d.cts +2 -0
  153. package/dist/draco/workers/draco-writer-worker-node.d.cts.map +1 -0
  154. package/dist/draco/workers/draco-writer-worker-node.d.ts +2 -0
  155. package/dist/draco/workers/draco-writer-worker-node.d.ts.map +1 -0
  156. package/dist/draco/workers/draco-writer-worker-node.js +9 -0
  157. package/dist/draco/workers/draco-writer-worker-node.js.map +1 -0
  158. package/dist/draco/workers/draco-writer-worker.cjs +10 -0
  159. package/dist/draco/workers/draco-writer-worker.cjs.map +7 -0
  160. package/dist/draco/workers/draco-writer-worker.d.ts +2 -0
  161. package/dist/draco/workers/draco-writer-worker.d.ts.map +1 -0
  162. package/dist/draco/workers/draco-writer-worker.js +7 -0
  163. package/dist/draco/workers/draco-writer-worker.js.map +1 -0
  164. package/dist/draco-javascript-loader.cjs +25 -0
  165. package/dist/draco-javascript-loader.cjs.map +7 -0
  166. package/dist/draco-javascript-loader.d.ts +2 -0
  167. package/dist/draco-javascript-loader.d.ts.map +1 -0
  168. package/dist/draco-javascript-loader.js +3 -0
  169. package/dist/draco-javascript-loader.js.map +1 -0
  170. package/dist/draco-library-options.cjs +36 -0
  171. package/dist/draco-library-options.cjs.map +7 -0
  172. package/dist/draco-library-options.d.ts +3 -0
  173. package/dist/draco-library-options.d.ts.map +1 -0
  174. package/dist/draco-library-options.js +4 -0
  175. package/dist/draco-library-options.js.map +1 -0
  176. package/dist/draco-loader-types.cjs +25 -0
  177. package/dist/draco-loader-types.cjs.map +7 -0
  178. package/dist/draco-loader-types.d.ts +2 -0
  179. package/dist/draco-loader-types.d.ts.map +1 -0
  180. package/dist/draco-loader-types.js +3 -0
  181. package/dist/draco-loader-types.js.map +1 -0
  182. package/dist/draco-loader.cjs +25 -0
  183. package/dist/draco-loader.cjs.map +7 -0
  184. package/dist/draco-loader.d.ts +2 -0
  185. package/dist/draco-loader.d.ts.map +1 -0
  186. package/dist/draco-loader.js +3 -0
  187. package/dist/draco-loader.js.map +1 -0
  188. package/dist/draco-wasm-loader.cjs +25 -0
  189. package/dist/draco-wasm-loader.cjs.map +7 -0
  190. package/dist/draco-wasm-loader.d.ts +2 -0
  191. package/dist/draco-wasm-loader.d.ts.map +1 -0
  192. package/dist/draco-wasm-loader.js +3 -0
  193. package/dist/draco-wasm-loader.js.map +1 -0
  194. package/dist/draco-worker-node.js +28279 -0
  195. package/dist/draco-worker-node.js.map +7 -0
  196. package/dist/draco-worker.js +18145 -0
  197. package/dist/draco-worker.js.map +7 -0
  198. package/dist/draco-writer-worker-node.cjs +27521 -0
  199. package/dist/draco-writer-worker-node.cjs.map +7 -0
  200. package/dist/draco-writer-worker.js +17339 -0
  201. package/dist/draco-writer-worker.js.map +7 -0
  202. package/dist/draco-writer.cjs +25 -0
  203. package/dist/draco-writer.cjs.map +7 -0
  204. package/dist/draco-writer.d.ts +2 -0
  205. package/dist/draco-writer.d.ts.map +1 -0
  206. package/dist/draco-writer.js +3 -0
  207. package/dist/draco-writer.js.map +1 -0
  208. package/dist/draco3d-loader.cjs +25 -0
  209. package/dist/draco3d-loader.cjs.map +7 -0
  210. package/dist/draco3d-loader.d.ts +2 -0
  211. package/dist/draco3d-loader.d.ts.map +1 -0
  212. package/dist/draco3d-loader.js +3 -0
  213. package/dist/draco3d-loader.js.map +1 -0
  214. package/dist/glb-loader-types.cjs +61 -0
  215. package/dist/glb-loader-types.cjs.map +7 -0
  216. package/dist/glb-loader-types.d.ts +2 -0
  217. package/dist/glb-loader-types.d.ts.map +1 -0
  218. package/dist/glb-loader-types.js +2 -0
  219. package/dist/glb-loader-types.js.map +1 -0
  220. package/dist/glb-loader.cjs +48 -0
  221. package/dist/glb-loader.cjs.map +7 -0
  222. package/dist/glb-loader.d.ts +2 -0
  223. package/dist/glb-loader.d.ts.map +1 -0
  224. package/dist/glb-loader.js +2 -0
  225. package/dist/glb-loader.js.map +1 -0
  226. package/dist/glb-writer.cjs +53 -0
  227. package/dist/glb-writer.cjs.map +7 -0
  228. package/dist/glb-writer.d.ts +2 -0
  229. package/dist/glb-writer.d.ts.map +1 -0
  230. package/dist/glb-writer.js +2 -0
  231. package/dist/glb-writer.js.map +1 -0
  232. package/dist/gltf/glb-loader-types.cjs +1 -1
  233. package/dist/gltf/glb-loader-types.cjs.map +2 -2
  234. package/dist/gltf/glb-loader-types.d.ts +2 -2
  235. package/dist/gltf/glb-loader-types.js +1 -1
  236. package/dist/gltf/glb-loader-types.js.map +1 -1
  237. package/dist/gltf/gltf-loader-types.cjs +1 -1
  238. package/dist/gltf/gltf-loader-types.cjs.map +2 -2
  239. package/dist/gltf/gltf-loader-types.d.ts +5 -5
  240. package/dist/gltf/gltf-loader-types.d.ts.map +1 -1
  241. package/dist/gltf/gltf-loader-types.js +1 -1
  242. package/dist/gltf/gltf-loader-types.js.map +1 -1
  243. package/dist/gltf/gltf-loader.cjs.map +1 -1
  244. package/dist/gltf/gltf-loader.d.ts +4 -4
  245. package/dist/gltf/gltf-loader.d.ts.map +1 -1
  246. package/dist/gltf/lib/encoders/encode-gltf-draco.cjs +12 -2
  247. package/dist/gltf/lib/encoders/encode-gltf-draco.cjs.map +2 -2
  248. package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts +1 -1
  249. package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts.map +1 -1
  250. package/dist/gltf/lib/encoders/encode-gltf-draco.js +1 -1
  251. package/dist/gltf/lib/encoders/encode-gltf-draco.js.map +1 -1
  252. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs +2 -2
  253. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs.map +2 -2
  254. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -1
  255. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js +1 -1
  256. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  257. package/dist/gltf/lib/parsers/parse-gltf.cjs +2 -2
  258. package/dist/gltf/lib/parsers/parse-gltf.cjs.map +3 -3
  259. package/dist/gltf/lib/parsers/parse-gltf.js +5 -5
  260. package/dist/gltf/lib/parsers/parse-gltf.js.map +1 -1
  261. package/dist/gltf/lib/types/gltf-zod-schema.d.ts +1 -1
  262. package/dist/gltf/lib/utils/version.cjs +1 -1
  263. package/dist/gltf/lib/utils/version.js +1 -1
  264. package/dist/gltf-loader-types.cjs +73 -0
  265. package/dist/gltf-loader-types.cjs.map +7 -0
  266. package/dist/gltf-loader-types.d.ts +2 -0
  267. package/dist/gltf-loader-types.d.ts.map +1 -0
  268. package/dist/gltf-loader-types.js +2 -0
  269. package/dist/gltf-loader-types.js.map +1 -0
  270. package/dist/gltf-loader.cjs +48 -0
  271. package/dist/gltf-loader.cjs.map +7 -0
  272. package/dist/gltf-loader.d.ts +2 -0
  273. package/dist/gltf-loader.d.ts.map +1 -0
  274. package/dist/gltf-loader.js +2 -0
  275. package/dist/gltf-loader.js.map +1 -0
  276. package/dist/gltf-source.cjs +238 -0
  277. package/dist/gltf-source.cjs.map +7 -0
  278. package/dist/gltf-source.d.ts +2 -0
  279. package/dist/gltf-source.d.ts.map +1 -0
  280. package/dist/gltf-source.js +2 -0
  281. package/dist/gltf-source.js.map +1 -0
  282. package/dist/gltf-writer.cjs +69 -0
  283. package/dist/gltf-writer.cjs.map +7 -0
  284. package/dist/gltf-writer.d.ts +2 -0
  285. package/dist/gltf-writer.d.ts.map +1 -0
  286. package/dist/gltf-writer.js +2 -0
  287. package/dist/gltf-writer.js.map +1 -0
  288. package/dist/index.cjs +13 -0
  289. package/dist/index.cjs.map +2 -2
  290. package/dist/index.d.ts +4 -0
  291. package/dist/index.d.ts.map +1 -1
  292. package/dist/index.js +3 -0
  293. package/dist/index.js.map +1 -1
  294. package/dist/libs/DRACO-LICENSE +252 -0
  295. package/dist/libs/README.md +20 -0
  296. package/dist/libs/draco_decoder.js +34 -0
  297. package/dist/libs/draco_decoder.mjs +37 -0
  298. package/dist/libs/draco_decoder.wasm +0 -0
  299. package/dist/libs/draco_decoder_gltf.wasm +0 -0
  300. package/dist/libs/draco_encoder.js +98 -0
  301. package/dist/libs/draco_encoder.mjs +101 -0
  302. package/dist/libs/draco_encoder.wasm +0 -0
  303. package/dist/libs/draco_wasm_wrapper.js +117 -0
  304. package/dist/libs/draco_wasm_wrapper.mjs +120 -0
  305. package/dist/libs/draco_wasm_wrapper_gltf.js +116 -0
  306. package/dist/libs/draco_wasm_wrapper_gltf.mjs +119 -0
  307. package/dist/mtl-loader-types.cjs +64 -0
  308. package/dist/mtl-loader-types.cjs.map +7 -0
  309. package/dist/mtl-loader-types.d.ts +2 -0
  310. package/dist/mtl-loader-types.d.ts.map +1 -0
  311. package/dist/mtl-loader-types.js +2 -0
  312. package/dist/mtl-loader-types.js.map +1 -0
  313. package/dist/mtl-loader.cjs +47 -0
  314. package/dist/mtl-loader.cjs.map +7 -0
  315. package/dist/mtl-loader.d.ts +2 -0
  316. package/dist/mtl-loader.d.ts.map +1 -0
  317. package/dist/mtl-loader.js +2 -0
  318. package/dist/mtl-loader.js.map +1 -0
  319. package/dist/obj/mtl-loader-types.cjs +2 -2
  320. package/dist/obj/mtl-loader-types.cjs.map +2 -2
  321. package/dist/obj/mtl-loader-types.d.ts +2 -2
  322. package/dist/obj/mtl-loader-types.js +2 -2
  323. package/dist/obj/mtl-loader-types.js.map +1 -1
  324. package/dist/obj/mtl-loader.cjs +1 -1
  325. package/dist/obj/mtl-loader.cjs.map +2 -2
  326. package/dist/obj/mtl-loader.js +1 -1
  327. package/dist/obj/mtl-loader.js.map +1 -1
  328. package/dist/obj/obj-loader-types.cjs +2 -2
  329. package/dist/obj/obj-loader-types.cjs.map +2 -2
  330. package/dist/obj/obj-loader-types.js +2 -2
  331. package/dist/obj/obj-loader-types.js.map +1 -1
  332. package/dist/obj/obj-writer.cjs +1 -1
  333. package/dist/obj/obj-writer.js +1 -1
  334. package/dist/obj-loader-types.cjs +71 -0
  335. package/dist/obj-loader-types.cjs.map +7 -0
  336. package/dist/obj-loader-types.d.ts +2 -0
  337. package/dist/obj-loader-types.d.ts.map +1 -0
  338. package/dist/obj-loader-types.js +2 -0
  339. package/dist/obj-loader-types.js.map +1 -0
  340. package/dist/obj-loader.cjs +163 -0
  341. package/dist/obj-loader.cjs.map +7 -0
  342. package/dist/obj-loader.d.ts +2 -0
  343. package/dist/obj-loader.d.ts.map +1 -0
  344. package/dist/obj-loader.js +2 -0
  345. package/dist/obj-loader.js.map +1 -0
  346. package/dist/obj-worker.js +204 -71
  347. package/dist/obj-writer.cjs +167 -0
  348. package/dist/obj-writer.cjs.map +7 -0
  349. package/dist/obj-writer.d.ts +2 -0
  350. package/dist/obj-writer.d.ts.map +1 -0
  351. package/dist/obj-writer.js +2 -0
  352. package/dist/obj-writer.js.map +1 -0
  353. package/dist/usd/usd-loader-types.cjs +2 -2
  354. package/dist/usd/usd-loader-types.cjs.map +2 -2
  355. package/dist/usd/usd-loader-types.js +2 -2
  356. package/dist/usd/usd-loader-types.js.map +1 -1
  357. package/dist/usd-loader-types.cjs +69 -0
  358. package/dist/usd-loader-types.cjs.map +7 -0
  359. package/dist/usd-loader-types.d.ts +2 -0
  360. package/dist/usd-loader-types.d.ts.map +1 -0
  361. package/dist/usd-loader-types.js +2 -0
  362. package/dist/usd-loader-types.js.map +1 -0
  363. package/dist/usd-loader.cjs +43 -0
  364. package/dist/usd-loader.cjs.map +7 -0
  365. package/dist/usd-loader.d.ts +2 -0
  366. package/dist/usd-loader.d.ts.map +1 -0
  367. package/dist/usd-loader.js +2 -0
  368. package/dist/usd-loader.js.map +1 -0
  369. package/package.json +130 -71
  370. package/src/draco/bundled.ts +10 -0
  371. package/src/draco/draco-format.ts +20 -0
  372. package/src/draco/draco-javascript-loader-with-parser.ts +26 -0
  373. package/src/draco/draco-libraries.ts +35 -0
  374. package/src/draco/draco-library-options.ts +76 -0
  375. package/src/draco/draco-loader-options.ts +33 -0
  376. package/src/draco/draco-loader-types.ts +78 -0
  377. package/src/draco/draco-loader.ts +45 -0
  378. package/src/draco/draco-wasm-loader-with-parser.ts +31 -0
  379. package/src/draco/draco-writer.ts +252 -0
  380. package/src/draco/draco3d/draco3d-types.ts +498 -0
  381. package/src/draco/draco3d-loader-with-parser.ts +34 -0
  382. package/src/draco/index.ts +46 -0
  383. package/src/draco/lib/draco-builder.ts +935 -0
  384. package/src/draco/lib/draco-library-loader.ts +38 -0
  385. package/src/draco/lib/draco-module-loader.ts +370 -0
  386. package/src/draco/lib/draco-parser.ts +776 -0
  387. package/src/draco/lib/draco-types.ts +72 -0
  388. package/src/draco/lib/parse-draco.ts +51 -0
  389. package/src/draco/lib/utils/get-draco-schema.ts +65 -0
  390. package/src/draco/lib/utils/version.ts +8 -0
  391. package/src/draco/libs/DRACO-LICENSE +252 -0
  392. package/src/draco/libs/README.md +20 -0
  393. package/src/draco/libs/draco_decoder.js +34 -0
  394. package/src/draco/libs/draco_decoder.wasm +0 -0
  395. package/src/draco/libs/draco_decoder_gltf.wasm +0 -0
  396. package/src/draco/libs/draco_encoder.js +98 -0
  397. package/src/draco/libs/draco_encoder.wasm +0 -0
  398. package/src/draco/libs/draco_wasm_wrapper.js +117 -0
  399. package/src/draco/libs/draco_wasm_wrapper_gltf.js +116 -0
  400. package/src/draco/unbundled.ts +6 -0
  401. package/src/draco/workers/draco-worker-node.ts +10 -0
  402. package/src/draco/workers/draco-worker.ts +8 -0
  403. package/src/draco/workers/draco-writer-worker-node.cjs +21 -0
  404. package/src/draco/workers/draco-writer-worker-node.ts +13 -0
  405. package/src/draco/workers/draco-writer-worker.ts +11 -0
  406. package/src/draco-javascript-loader.ts +2 -0
  407. package/src/draco-library-options.ts +6 -0
  408. package/src/draco-loader-types.ts +2 -0
  409. package/src/draco-loader.ts +2 -0
  410. package/src/draco-wasm-loader.ts +2 -0
  411. package/src/draco-writer.ts +2 -0
  412. package/src/draco3d-loader.ts +2 -0
  413. package/src/glb-loader-types.ts +1 -0
  414. package/src/glb-loader.ts +1 -0
  415. package/src/glb-writer.ts +1 -0
  416. package/src/gltf/glb-loader-types.ts +1 -1
  417. package/src/gltf/gltf-loader-types.ts +5 -5
  418. package/src/gltf/gltf-loader.ts +4 -4
  419. package/src/gltf/lib/encoders/encode-gltf-draco.ts +2 -2
  420. package/src/gltf/lib/extensions/KHR_draco_mesh_compression.ts +2 -1
  421. package/src/gltf/lib/parsers/parse-gltf.ts +5 -5
  422. package/src/gltf-loader-types.ts +1 -0
  423. package/src/gltf-loader.ts +1 -0
  424. package/src/gltf-source.ts +1 -0
  425. package/src/gltf-writer.ts +1 -0
  426. package/src/index.ts +5 -0
  427. package/src/mtl-loader-types.ts +1 -0
  428. package/src/mtl-loader.ts +1 -0
  429. package/src/obj/mtl-loader-types.ts +1 -1
  430. package/src/obj/mtl-loader.ts +1 -1
  431. package/src/obj/obj-loader-types.ts +1 -1
  432. package/src/obj-loader-types.ts +1 -0
  433. package/src/obj-loader.ts +1 -0
  434. package/src/obj-writer.ts +1 -0
  435. package/src/usd/usd-loader-types.ts +1 -1
  436. package/src/usd-loader-types.ts +1 -0
  437. package/src/usd-loader.ts +1 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/gltf/lib/encoders/encode-gltf-draco.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {DracoBuildOptions, DracoBuilderMesh, DracoEncodingResult} from '@loaders.gl/draco';\nimport {encodeDraco} from '@loaders.gl/draco';\nimport type {TypedArray} from '@loaders.gl/core/schema';\nimport type {GLTFWriterOptions} from '../../gltf-writer';\nimport type {GLTFMeshPrimitive} from '../types/gltf-json-schema';\nimport type {GLTFWithBuffers} from '../types/gltf-types';\nimport {getTypedArrayForAccessor} from '../gltf-utils/get-typed-array';\n\nconst KHR_DRACO_MESH_COMPRESSION = 'KHR_draco_mesh_compression';\n\n/** Draco options accepted by the glTF writer. */\nexport type GLTFDracoWriterOptions = DracoBuildOptions & {\n /** Enable generation of `KHR_draco_mesh_compression` buffer views. */\n enabled?: boolean;\n /** Leave unsupported primitive modes unchanged instead of throwing. */\n skipUnsupportedPrimitives?: boolean;\n};\n\n/**\n * Creates a Draco-compressed glTF copy.\n *\n * The input JSON and loaded buffers are never modified. Compressed payloads\n * are appended to buffer 0 and referenced by `KHR_draco_mesh_compression`;\n * the original accessors remain available for consumers that do not decode the\n * extension.\n */\nexport async function compressGLTFWithDraco(\n gltf: GLTFWithBuffers,\n options: GLTFWriterOptions = {}\n): Promise<GLTFWithBuffers> {\n const dracoOptions = options.gltf?.draco;\n if (!dracoOptions?.enabled) {\n return gltf;\n }\n if ((gltf.buffers?.length || 0) > 1) {\n throw new Error('GLTF Draco writer requires a single buffer');\n }\n\n const json = cloneGLTFJson(gltf.json);\n const buffers = cloneBuffers(gltf.buffers || []);\n const output: GLTFWithBuffers = {...gltf, json, buffers};\n const primitives: Array<{\n primitive: GLTFMeshPrimitive;\n result: DracoEncodingResult;\n }> = [];\n\n for (const mesh of json.meshes || []) {\n for (const primitive of mesh.primitives || []) {\n const mode = primitive.mode ?? 4;\n if (mode !== 4) {\n if (dracoOptions.skipUnsupportedPrimitives ?? true) {\n continue;\n }\n throw new Error(\n `GLTF Draco writer cannot compress primitive mode ${mode}; only TRIANGLES (4) is supported`\n );\n }\n if (primitive.extensions?.[KHR_DRACO_MESH_COMPRESSION]) {\n throw new Error('GLTF Draco writer refuses to replace an existing Draco extension');\n }\n const meshData = getPrimitiveMesh(gltf, primitive);\n const result = await encodeDraco(meshData, {\n core: options.core,\n modules: options.modules,\n draco: dracoOptions\n });\n primitives.push({primitive, result});\n }\n }\n\n if (primitives.length === 0) {\n return output;\n }\n\n const originalBytes = getBufferBytes(buffers);\n let byteLength = originalBytes.byteLength;\n for (const {result} of primitives) {\n byteLength = alignTo4(byteLength) + result.data.byteLength;\n }\n const combinedBytes = new Uint8Array(byteLength);\n combinedBytes.set(originalBytes);\n\n json.bufferViews = json.bufferViews || [];\n json.buffers = json.buffers || [{byteLength: 0}];\n let byteOffset = alignTo4(originalBytes.byteLength);\n for (const {primitive, result} of primitives) {\n new Uint8Array(combinedBytes.buffer, byteOffset, result.data.byteLength).set(\n new Uint8Array(result.data)\n );\n const bufferView = json.bufferViews.length;\n json.bufferViews.push({buffer: 0, byteOffset, byteLength: result.data.byteLength});\n primitive.extensions = {\n ...(primitive.extensions || {}),\n [KHR_DRACO_MESH_COMPRESSION]: {\n bufferView,\n attributes: Object.fromEntries(\n Object.entries(result.report.attributes).map(([attributeName, attribute]) => [\n attributeName,\n attribute.id\n ])\n )\n }\n };\n byteOffset = alignTo4(byteOffset + result.data.byteLength);\n }\n\n const finalBytes = combinedBytes;\n output.buffers[0] = {\n ...(output.buffers[0] || {byteOffset: 0}),\n arrayBuffer: finalBytes.buffer,\n byteOffset: 0,\n byteLength: finalBytes.byteLength\n };\n json.buffers[0] = {...(json.buffers[0] || {}), byteLength: finalBytes.byteLength};\n json.extensionsUsed = addExtension(json.extensionsUsed, KHR_DRACO_MESH_COMPRESSION);\n return output;\n}\n\n/** Builds Draco input from one raw glTF primitive. */\nfunction getPrimitiveMesh(gltf: GLTFWithBuffers, primitive: GLTFMeshPrimitive): DracoBuilderMesh {\n if (!primitive.attributes || primitive.attributes.POSITION === undefined) {\n throw new Error('GLTF Draco writer requires a POSITION attribute');\n }\n const attributes: Record<\n string,\n TypedArray | {value: TypedArray; size: number; normalized?: boolean}\n > = {};\n for (const [attributeName, accessorIndex] of Object.entries(primitive.attributes)) {\n const accessor = gltf.json.accessors?.[accessorIndex];\n if (!accessor) {\n throw new Error(`GLTF Draco writer could not resolve accessor ${accessorIndex}`);\n }\n if (accessor.sparse) {\n throw new Error(`GLTF Draco writer does not support sparse accessor ${accessorIndex}`);\n }\n const value = getStandardTypedArray(gltf, accessorIndex, accessor.componentType);\n attributes[attributeName] = {\n value,\n size: getComponentCount(accessor.type),\n ...(accessor.normalized === undefined ? {} : {normalized: accessor.normalized})\n };\n }\n\n let indices: TypedArray;\n if (primitive.indices !== undefined) {\n const accessor = gltf.json.accessors?.[primitive.indices];\n if (!accessor) {\n throw new Error(`GLTF Draco writer could not resolve index accessor ${primitive.indices}`);\n }\n if (accessor.sparse) {\n throw new Error(`GLTF Draco writer does not support sparse accessor ${primitive.indices}`);\n }\n indices = getStandardTypedArray(gltf, primitive.indices, accessor.componentType);\n } else {\n const positionAccessor = gltf.json.accessors?.[primitive.attributes.POSITION];\n if (!positionAccessor || positionAccessor.count % 3 !== 0) {\n throw new Error('GLTF Draco writer requires triangle-aligned POSITION data without indices');\n }\n indices = new Uint32Array(positionAccessor.count);\n for (let index = 0; index < indices.length; index++) {\n indices[index] = index;\n }\n }\n return {attributes, indices};\n}\n\n/** Returns an accessor array type accepted by the official Draco JS binding. */\nfunction getStandardTypedArray(\n gltf: GLTFWithBuffers,\n accessorIndex: number,\n componentType: number\n): TypedArray {\n const value = getTypedArrayForAccessor(gltf.json, gltf.buffers, accessorIndex);\n if (\n value instanceof BigInt64Array ||\n value instanceof BigUint64Array ||\n value instanceof Float64Array\n ) {\n throw new Error(\n `GLTF Draco writer does not support 64-bit accessor ${accessorIndex} (componentType ${componentType}); the official 1.5.7 encoder binding has no 64-bit attribute API`\n );\n }\n return value;\n}\n\n/** Clones the plain JSON portion without retaining caller-owned object identity. */\nfunction cloneGLTFJson<T>(json: T): T {\n return JSON.parse(JSON.stringify(json)) as T;\n}\n\n/** Copies loaded buffer storage so appending compressed data cannot mutate input. */\nfunction cloneBuffers(buffers: GLTFWithBuffers['buffers']): GLTFWithBuffers['buffers'] {\n return buffers.map(buffer => ({\n ...buffer,\n arrayBuffer: buffer.arrayBuffer.slice(0)\n }));\n}\n\n/** Returns the active bytes of the first loaded glTF buffer. */\nfunction getBufferBytes(buffers: GLTFWithBuffers['buffers']): Uint8Array {\n const buffer = buffers[0] || {arrayBuffer: new ArrayBuffer(0), byteOffset: 0, byteLength: 0};\n return new Uint8Array(buffer.arrayBuffer, buffer.byteOffset || 0, buffer.byteLength);\n}\n\n/** Aligns a byte offset to the glTF-required four-byte boundary. */\nfunction alignTo4(value: number): number {\n return Math.ceil(value / 4) * 4;\n}\n\n/** Adds an extension name once while preserving the existing declaration order. */\nfunction addExtension(extensions: string[] | undefined, extension: string): string[] {\n return extensions?.includes(extension) ? extensions : [...(extensions || []), extension];\n}\n\n/** Returns the number of scalar components represented by a glTF accessor type. */\nfunction getComponentCount(type: string): number {\n switch (type) {\n case 'SCALAR':\n return 1;\n case 'VEC2':\n return 2;\n case 'VEC3':\n return 3;\n case 'VEC4':\n return 4;\n case 'MAT2':\n return 4;\n case 'MAT3':\n return 9;\n case 'MAT4':\n return 16;\n default:\n throw new Error(`GLTF Draco writer does not recognize accessor type ${type}`);\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {DracoBuildOptions, DracoBuilderMesh, DracoEncodingResult} from '@loaders.gl/scene';\nimport type {TypedArray} from '@loaders.gl/core/schema';\nimport type {GLTFWriterOptions} from '../../gltf-writer';\nimport type {GLTFMeshPrimitive} from '../types/gltf-json-schema';\nimport type {GLTFWithBuffers} from '../types/gltf-types';\nimport {getTypedArrayForAccessor} from '../gltf-utils/get-typed-array';\n\nconst KHR_DRACO_MESH_COMPRESSION = 'KHR_draco_mesh_compression';\n\n/** Draco options accepted by the glTF writer. */\nexport type GLTFDracoWriterOptions = DracoBuildOptions & {\n /** Enable generation of `KHR_draco_mesh_compression` buffer views. */\n enabled?: boolean;\n /** Leave unsupported primitive modes unchanged instead of throwing. */\n skipUnsupportedPrimitives?: boolean;\n};\n\n/**\n * Creates a Draco-compressed glTF copy.\n *\n * The input JSON and loaded buffers are never modified. Compressed payloads\n * are appended to buffer 0 and referenced by `KHR_draco_mesh_compression`;\n * the original accessors remain available for consumers that do not decode the\n * extension.\n */\nexport async function compressGLTFWithDraco(\n gltf: GLTFWithBuffers,\n options: GLTFWriterOptions = {}\n): Promise<GLTFWithBuffers> {\n const dracoOptions = options.gltf?.draco;\n if (!dracoOptions?.enabled) {\n return gltf;\n }\n if ((gltf.buffers?.length || 0) > 1) {\n throw new Error('GLTF Draco writer requires a single buffer');\n }\n\n const json = cloneGLTFJson(gltf.json);\n const buffers = cloneBuffers(gltf.buffers || []);\n const output: GLTFWithBuffers = {...gltf, json, buffers};\n const primitives: Array<{\n primitive: GLTFMeshPrimitive;\n result: DracoEncodingResult;\n }> = [];\n\n for (const mesh of json.meshes || []) {\n for (const primitive of mesh.primitives || []) {\n const mode = primitive.mode ?? 4;\n if (mode !== 4) {\n if (dracoOptions.skipUnsupportedPrimitives ?? true) {\n continue;\n }\n throw new Error(\n `GLTF Draco writer cannot compress primitive mode ${mode}; only TRIANGLES (4) is supported`\n );\n }\n if (primitive.extensions?.[KHR_DRACO_MESH_COMPRESSION]) {\n throw new Error('GLTF Draco writer refuses to replace an existing Draco extension');\n }\n const meshData = getPrimitiveMesh(gltf, primitive);\n const {encodeDraco} = await import('@loaders.gl/scene/draco-writer');\n const result = await encodeDraco(meshData, {\n core: options.core,\n modules: options.modules,\n draco: dracoOptions\n });\n primitives.push({primitive, result});\n }\n }\n\n if (primitives.length === 0) {\n return output;\n }\n\n const originalBytes = getBufferBytes(buffers);\n let byteLength = originalBytes.byteLength;\n for (const {result} of primitives) {\n byteLength = alignTo4(byteLength) + result.data.byteLength;\n }\n const combinedBytes = new Uint8Array(byteLength);\n combinedBytes.set(originalBytes);\n\n json.bufferViews = json.bufferViews || [];\n json.buffers = json.buffers || [{byteLength: 0}];\n let byteOffset = alignTo4(originalBytes.byteLength);\n for (const {primitive, result} of primitives) {\n new Uint8Array(combinedBytes.buffer, byteOffset, result.data.byteLength).set(\n new Uint8Array(result.data)\n );\n const bufferView = json.bufferViews.length;\n json.bufferViews.push({buffer: 0, byteOffset, byteLength: result.data.byteLength});\n primitive.extensions = {\n ...(primitive.extensions || {}),\n [KHR_DRACO_MESH_COMPRESSION]: {\n bufferView,\n attributes: Object.fromEntries(\n Object.entries(result.report.attributes).map(([attributeName, attribute]) => [\n attributeName,\n attribute.id\n ])\n )\n }\n };\n byteOffset = alignTo4(byteOffset + result.data.byteLength);\n }\n\n const finalBytes = combinedBytes;\n output.buffers[0] = {\n ...(output.buffers[0] || {byteOffset: 0}),\n arrayBuffer: finalBytes.buffer,\n byteOffset: 0,\n byteLength: finalBytes.byteLength\n };\n json.buffers[0] = {...(json.buffers[0] || {}), byteLength: finalBytes.byteLength};\n json.extensionsUsed = addExtension(json.extensionsUsed, KHR_DRACO_MESH_COMPRESSION);\n return output;\n}\n\n/** Builds Draco input from one raw glTF primitive. */\nfunction getPrimitiveMesh(gltf: GLTFWithBuffers, primitive: GLTFMeshPrimitive): DracoBuilderMesh {\n if (!primitive.attributes || primitive.attributes.POSITION === undefined) {\n throw new Error('GLTF Draco writer requires a POSITION attribute');\n }\n const attributes: Record<\n string,\n TypedArray | {value: TypedArray; size: number; normalized?: boolean}\n > = {};\n for (const [attributeName, accessorIndex] of Object.entries(primitive.attributes)) {\n const accessor = gltf.json.accessors?.[accessorIndex];\n if (!accessor) {\n throw new Error(`GLTF Draco writer could not resolve accessor ${accessorIndex}`);\n }\n if (accessor.sparse) {\n throw new Error(`GLTF Draco writer does not support sparse accessor ${accessorIndex}`);\n }\n const value = getStandardTypedArray(gltf, accessorIndex, accessor.componentType);\n attributes[attributeName] = {\n value,\n size: getComponentCount(accessor.type),\n ...(accessor.normalized === undefined ? {} : {normalized: accessor.normalized})\n };\n }\n\n let indices: TypedArray;\n if (primitive.indices !== undefined) {\n const accessor = gltf.json.accessors?.[primitive.indices];\n if (!accessor) {\n throw new Error(`GLTF Draco writer could not resolve index accessor ${primitive.indices}`);\n }\n if (accessor.sparse) {\n throw new Error(`GLTF Draco writer does not support sparse accessor ${primitive.indices}`);\n }\n indices = getStandardTypedArray(gltf, primitive.indices, accessor.componentType);\n } else {\n const positionAccessor = gltf.json.accessors?.[primitive.attributes.POSITION];\n if (!positionAccessor || positionAccessor.count % 3 !== 0) {\n throw new Error('GLTF Draco writer requires triangle-aligned POSITION data without indices');\n }\n indices = new Uint32Array(positionAccessor.count);\n for (let index = 0; index < indices.length; index++) {\n indices[index] = index;\n }\n }\n return {attributes, indices};\n}\n\n/** Returns an accessor array type accepted by the official Draco JS binding. */\nfunction getStandardTypedArray(\n gltf: GLTFWithBuffers,\n accessorIndex: number,\n componentType: number\n): TypedArray {\n const value = getTypedArrayForAccessor(gltf.json, gltf.buffers, accessorIndex);\n if (\n value instanceof BigInt64Array ||\n value instanceof BigUint64Array ||\n value instanceof Float64Array\n ) {\n throw new Error(\n `GLTF Draco writer does not support 64-bit accessor ${accessorIndex} (componentType ${componentType}); the official 1.5.7 encoder binding has no 64-bit attribute API`\n );\n }\n return value;\n}\n\n/** Clones the plain JSON portion without retaining caller-owned object identity. */\nfunction cloneGLTFJson<T>(json: T): T {\n return JSON.parse(JSON.stringify(json)) as T;\n}\n\n/** Copies loaded buffer storage so appending compressed data cannot mutate input. */\nfunction cloneBuffers(buffers: GLTFWithBuffers['buffers']): GLTFWithBuffers['buffers'] {\n return buffers.map(buffer => ({\n ...buffer,\n arrayBuffer: buffer.arrayBuffer.slice(0)\n }));\n}\n\n/** Returns the active bytes of the first loaded glTF buffer. */\nfunction getBufferBytes(buffers: GLTFWithBuffers['buffers']): Uint8Array {\n const buffer = buffers[0] || {arrayBuffer: new ArrayBuffer(0), byteOffset: 0, byteLength: 0};\n return new Uint8Array(buffer.arrayBuffer, buffer.byteOffset || 0, buffer.byteLength);\n}\n\n/** Aligns a byte offset to the glTF-required four-byte boundary. */\nfunction alignTo4(value: number): number {\n return Math.ceil(value / 4) * 4;\n}\n\n/** Adds an extension name once while preserving the existing declaration order. */\nfunction addExtension(extensions: string[] | undefined, extension: string): string[] {\n return extensions?.includes(extension) ? extensions : [...(extensions || []), extension];\n}\n\n/** Returns the number of scalar components represented by a glTF accessor type. */\nfunction getComponentCount(type: string): number {\n switch (type) {\n case 'SCALAR':\n return 1;\n case 'VEC2':\n return 2;\n case 'VEC3':\n return 3;\n case 'VEC4':\n return 4;\n case 'MAT2':\n return 4;\n case 'MAT3':\n return 9;\n case 'MAT4':\n return 16;\n default:\n throw new Error(`GLTF Draco writer does not recognize accessor type ${type}`);\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,4 @@
1
- import type { DracoBuildOptions } from '@loaders.gl/draco';
1
+ import type { DracoBuildOptions } from '@loaders.gl/scene';
2
2
  import type { GLTFWriterOptions } from "../../gltf-writer.js";
3
3
  import type { GLTFWithBuffers } from "../types/gltf-types.js";
4
4
  /** Draco options accepted by the glTF writer. */
@@ -1 +1 @@
1
- {"version":3,"file":"encode-gltf-draco.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/encoders/encode-gltf-draco.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,iBAAiB,EAAwC,MAAM,mBAAmB,CAAC;AAGhG,OAAO,KAAK,EAAC,iBAAiB,EAAC,6BAA0B;AAEzD,OAAO,KAAK,EAAC,eAAe,EAAC,+BAA4B;AAKzD,iDAAiD;AACjD,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,GAAG;IACvD,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,eAAe,EACrB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,eAAe,CAAC,CAuF1B"}
1
+ {"version":3,"file":"encode-gltf-draco.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/encoders/encode-gltf-draco.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,iBAAiB,EAAwC,MAAM,mBAAmB,CAAC;AAEhG,OAAO,KAAK,EAAC,iBAAiB,EAAC,6BAA0B;AAEzD,OAAO,KAAK,EAAC,eAAe,EAAC,+BAA4B;AAKzD,iDAAiD;AACjD,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,GAAG;IACvD,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,eAAe,EACrB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,eAAe,CAAC,CAwF1B"}
@@ -1,7 +1,6 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { encodeDraco } from '@loaders.gl/draco';
5
4
  import { getTypedArrayForAccessor } from "../gltf-utils/get-typed-array.js";
6
5
  const KHR_DRACO_MESH_COMPRESSION = 'KHR_draco_mesh_compression';
7
6
  /**
@@ -37,6 +36,7 @@ export async function compressGLTFWithDraco(gltf, options = {}) {
37
36
  throw new Error('GLTF Draco writer refuses to replace an existing Draco extension');
38
37
  }
39
38
  const meshData = getPrimitiveMesh(gltf, primitive);
39
+ const { encodeDraco } = await import('@loaders.gl/scene/draco-writer');
40
40
  const result = await encodeDraco(meshData, {
41
41
  core: options.core,
42
42
  modules: options.modules,
@@ -1 +1 @@
1
- {"version":3,"file":"encode-gltf-draco.js","sourceRoot":"","sources":["../../../../src/gltf/lib/encoders/encode-gltf-draco.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encode-gltf-draco.js","sourceRoot":"","sources":["../../../../src/gltf/lib/encoders/encode-gltf-draco.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ __export(KHR_draco_mesh_compression_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(KHR_draco_mesh_compression_exports);
28
28
  var import_loader_utils = require("@loaders.gl/core/loader-utils");
29
- var import_draco = require("@loaders.gl/draco");
29
+ var import_draco_loader_types = require("@loaders.gl/scene/draco-loader-types");
30
30
  var import_gltf_iterator = require("../api/gltf-iterator.cjs");
31
31
  var import_gltf_attribute_utils = require("../gltf-utils/gltf-attribute-utils.cjs");
32
32
  var import_get_typed_array = require("../gltf-utils/get-typed-array.cjs");
@@ -86,7 +86,7 @@ async function decompressPrimitive(iterator, primitive, options, context) {
86
86
  delete dracoOptions["3d-tiles"];
87
87
  const decodedData = await (0, import_loader_utils.parseFromContext)(
88
88
  compressedData,
89
- import_draco.DracoLoader,
89
+ import_draco_loader_types.DracoLoader,
90
90
  dracoOptions,
91
91
  context
92
92
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/gltf/lib/extensions/KHR_draco_mesh_compression.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression\n// Only TRIANGLES: 0x0004 and TRIANGLE_STRIP: 0x0005 are supported\n/* eslint-disable camelcase */\n\nimport type {LoaderContext} from '@loaders.gl/core/loader-utils';\nimport {sliceArrayBuffer, parseFromContext} from '@loaders.gl/core/loader-utils';\n\nimport {DracoLoader, DracoLoaderOptions, type DracoMesh} from '@loaders.gl/draco';\n\nimport type {\n GLTFWithBuffers,\n GLTFAccessor,\n GLTFMeshPrimitive,\n GLTF_KHR_draco_mesh_compression\n} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader-types';\n\nimport {GLTFIterator} from '../api/gltf-iterator';\nimport {getGLTFAccessors, getGLTFAccessor} from '../gltf-utils/gltf-attribute-utils';\nimport {getTypedArrayForBufferView} from '../gltf-utils/get-typed-array';\n\nconst KHR_DRACO_MESH_COMPRESSION = 'KHR_draco_mesh_compression';\n\n/** Extension name */\nexport const name = KHR_DRACO_MESH_COMPRESSION;\n\nexport function preprocess(\n gltfData: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): void {\n const iterator = new GLTFIterator(gltfData);\n for (const mesh of iterator.meshes) {\n for (const primitive of iterator.getReferences(mesh).primitives) {\n if (iterator.getExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {\n // TODO - Remove fallback accessors to make sure we don't load unnecessary buffers\n }\n }\n }\n}\n\nexport async function decode(\n gltfData: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<void> {\n if (!options?.gltf?.decompressMeshes) {\n return;\n }\n\n const iterator = new GLTFIterator(gltfData);\n const promises: Promise<void>[] = [];\n for (const mesh of iterator.meshes) {\n for (const primitive of iterator.getReferences(mesh).primitives) {\n if (iterator.getExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {\n promises.push(decompressPrimitive(iterator, primitive, options, context));\n }\n }\n }\n\n // Decompress meshes in parallel\n await Promise.all(promises);\n\n // We have now decompressed all primitives, so remove the top-level extension\n iterator.removeExtension(KHR_DRACO_MESH_COMPRESSION);\n}\n\n// DECODE\n\n// Unpacks one mesh primitive and removes the extension from the primitive\n// DracoDecoder needs to be imported and registered by app\n// Returns: Promise that resolves when all pending draco decoder jobs for this mesh complete\n\n// TODO - Implement fallback behavior per KHR_DRACO_MESH_COMPRESSION spec\n\nasync function decompressPrimitive(\n iterator: GLTFIterator,\n primitive: GLTFMeshPrimitive,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<void> {\n const dracoExtension = iterator.getExtension<GLTF_KHR_draco_mesh_compression>(\n primitive,\n KHR_DRACO_MESH_COMPRESSION\n );\n if (!dracoExtension) {\n return;\n }\n\n const buffer = getTypedArrayForBufferView(\n iterator.data,\n iterator.gltf.buffers,\n dracoExtension.bufferView\n );\n // A decoder worker can transfer its input, so it must not own the shared glTF buffer.\n const compressedData = sliceArrayBuffer(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n\n const dracoOptions: DracoLoaderOptions = {\n ...options,\n draco: {\n ...options.draco,\n // Internal glTF decoding consumes the legacy mesh contract.\n shape: 'mesh',\n // Normalize compressed strips to the triangle indices returned below.\n topology: 'triangle-list',\n decoderProfile: options.draco?.decoderProfile || 'gltf',\n extraAttributes: dracoExtension.attributes\n }\n };\n\n // TODO - remove hack: The entire tileset might be included, too expensive to serialize\n delete dracoOptions['3d-tiles'];\n const decodedData = (await parseFromContext(\n compressedData,\n DracoLoader,\n dracoOptions,\n context\n )) as DracoMesh;\n\n const decodedAttributes: {[key: string]: GLTFAccessor} = getGLTFAccessors(decodedData.attributes);\n\n // A declared compressed attribute cannot fall back to its raw accessor: it may have no buffer view.\n for (const attributeName of Object.keys(dracoExtension.attributes)) {\n if (!Object.hasOwn(decodedAttributes, attributeName)) {\n throw new Error(`glTF: Draco decompression did not produce attribute ${attributeName}`);\n }\n }\n\n // Restore accessor bounds and integer normalization from the glTF declaration.\n for (const [attributeName, decodedAttribute] of Object.entries(decodedAttributes)) {\n if (attributeName in primitive.attributes) {\n const accessorIndex: number = primitive.attributes[attributeName];\n const accessor = iterator.data.accessors?.[accessorIndex];\n if (accessor?.normalized !== undefined) {\n decodedAttribute.normalized = accessor.normalized;\n }\n if (accessor?.min && accessor?.max) {\n decodedAttribute.min = accessor.min;\n decodedAttribute.max = accessor.max;\n }\n }\n }\n\n // Attributes outside the Draco bitstream still reference ordinary glTF accessors.\n // @ts-ignore\n primitive.attributes = {...primitive.attributes, ...decodedAttributes};\n if (decodedData.indices) {\n // @ts-ignore\n primitive.indices = getGLTFAccessor(decodedData.indices);\n primitive.mode = 4;\n }\n\n // Extension has been processed, delete it\n iterator.removeExtension(primitive, KHR_DRACO_MESH_COMPRESSION);\n\n checkPrimitive(primitive);\n}\n\n// UTILS\n\nfunction checkPrimitive(primitive: GLTFMeshPrimitive): void {\n if (!primitive.attributes || Object.keys(primitive.attributes).length === 0) {\n throw new Error('glTF: Empty primitive detected: Draco decompression failure?');\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression\n// Only TRIANGLES: 0x0004 and TRIANGLE_STRIP: 0x0005 are supported\n/* eslint-disable camelcase */\n\nimport type {LoaderContext} from '@loaders.gl/core/loader-utils';\nimport {sliceArrayBuffer, parseFromContext} from '@loaders.gl/core/loader-utils';\n\nimport {DracoLoader} from '@loaders.gl/scene/draco-loader-types';\nimport type {DracoLoaderOptions, DracoMesh} from '@loaders.gl/scene';\n\nimport type {\n GLTFWithBuffers,\n GLTFAccessor,\n GLTFMeshPrimitive,\n GLTF_KHR_draco_mesh_compression\n} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader-types';\n\nimport {GLTFIterator} from '../api/gltf-iterator';\nimport {getGLTFAccessors, getGLTFAccessor} from '../gltf-utils/gltf-attribute-utils';\nimport {getTypedArrayForBufferView} from '../gltf-utils/get-typed-array';\n\nconst KHR_DRACO_MESH_COMPRESSION = 'KHR_draco_mesh_compression';\n\n/** Extension name */\nexport const name = KHR_DRACO_MESH_COMPRESSION;\n\nexport function preprocess(\n gltfData: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): void {\n const iterator = new GLTFIterator(gltfData);\n for (const mesh of iterator.meshes) {\n for (const primitive of iterator.getReferences(mesh).primitives) {\n if (iterator.getExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {\n // TODO - Remove fallback accessors to make sure we don't load unnecessary buffers\n }\n }\n }\n}\n\nexport async function decode(\n gltfData: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<void> {\n if (!options?.gltf?.decompressMeshes) {\n return;\n }\n\n const iterator = new GLTFIterator(gltfData);\n const promises: Promise<void>[] = [];\n for (const mesh of iterator.meshes) {\n for (const primitive of iterator.getReferences(mesh).primitives) {\n if (iterator.getExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {\n promises.push(decompressPrimitive(iterator, primitive, options, context));\n }\n }\n }\n\n // Decompress meshes in parallel\n await Promise.all(promises);\n\n // We have now decompressed all primitives, so remove the top-level extension\n iterator.removeExtension(KHR_DRACO_MESH_COMPRESSION);\n}\n\n// DECODE\n\n// Unpacks one mesh primitive and removes the extension from the primitive\n// DracoDecoder needs to be imported and registered by app\n// Returns: Promise that resolves when all pending draco decoder jobs for this mesh complete\n\n// TODO - Implement fallback behavior per KHR_DRACO_MESH_COMPRESSION spec\n\nasync function decompressPrimitive(\n iterator: GLTFIterator,\n primitive: GLTFMeshPrimitive,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<void> {\n const dracoExtension = iterator.getExtension<GLTF_KHR_draco_mesh_compression>(\n primitive,\n KHR_DRACO_MESH_COMPRESSION\n );\n if (!dracoExtension) {\n return;\n }\n\n const buffer = getTypedArrayForBufferView(\n iterator.data,\n iterator.gltf.buffers,\n dracoExtension.bufferView\n );\n // A decoder worker can transfer its input, so it must not own the shared glTF buffer.\n const compressedData = sliceArrayBuffer(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n\n const dracoOptions: DracoLoaderOptions = {\n ...options,\n draco: {\n ...options.draco,\n // Internal glTF decoding consumes the legacy mesh contract.\n shape: 'mesh',\n // Normalize compressed strips to the triangle indices returned below.\n topology: 'triangle-list',\n decoderProfile: options.draco?.decoderProfile || 'gltf',\n extraAttributes: dracoExtension.attributes\n }\n };\n\n // TODO - remove hack: The entire tileset might be included, too expensive to serialize\n delete dracoOptions['3d-tiles'];\n const decodedData = (await parseFromContext(\n compressedData,\n DracoLoader,\n dracoOptions,\n context\n )) as DracoMesh;\n\n const decodedAttributes: {[key: string]: GLTFAccessor} = getGLTFAccessors(decodedData.attributes);\n\n // A declared compressed attribute cannot fall back to its raw accessor: it may have no buffer view.\n for (const attributeName of Object.keys(dracoExtension.attributes)) {\n if (!Object.hasOwn(decodedAttributes, attributeName)) {\n throw new Error(`glTF: Draco decompression did not produce attribute ${attributeName}`);\n }\n }\n\n // Restore accessor bounds and integer normalization from the glTF declaration.\n for (const [attributeName, decodedAttribute] of Object.entries(decodedAttributes)) {\n if (attributeName in primitive.attributes) {\n const accessorIndex: number = primitive.attributes[attributeName];\n const accessor = iterator.data.accessors?.[accessorIndex];\n if (accessor?.normalized !== undefined) {\n decodedAttribute.normalized = accessor.normalized;\n }\n if (accessor?.min && accessor?.max) {\n decodedAttribute.min = accessor.min;\n decodedAttribute.max = accessor.max;\n }\n }\n }\n\n // Attributes outside the Draco bitstream still reference ordinary glTF accessors.\n // @ts-ignore\n primitive.attributes = {...primitive.attributes, ...decodedAttributes};\n if (decodedData.indices) {\n // @ts-ignore\n primitive.indices = getGLTFAccessor(decodedData.indices);\n primitive.mode = 4;\n }\n\n // Extension has been processed, delete it\n iterator.removeExtension(primitive, KHR_DRACO_MESH_COMPRESSION);\n\n checkPrimitive(primitive);\n}\n\n// UTILS\n\nfunction checkPrimitive(primitive: GLTFMeshPrimitive): void {\n if (!primitive.attributes || Object.keys(primitive.attributes).length === 0) {\n throw new Error('glTF: Empty primitive detected: Draco decompression failure?');\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"KHR_draco_mesh_compression.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/extensions/KHR_draco_mesh_compression.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAKjE,OAAO,KAAK,EACV,eAAe,EAIhB,+BAA4B;AAC7B,OAAO,KAAK,EAAC,iBAAiB,EAAC,mCAAgC;AAQ/D,qBAAqB;AACrB,eAAO,MAAM,IAAI,+BAA6B,CAAC;AAE/C,wBAAgB,UAAU,CACxB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,aAAa,GACrB,IAAI,CASN;AAED,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAoBf"}
1
+ {"version":3,"file":"KHR_draco_mesh_compression.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/extensions/KHR_draco_mesh_compression.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAMjE,OAAO,KAAK,EACV,eAAe,EAIhB,+BAA4B;AAC7B,OAAO,KAAK,EAAC,iBAAiB,EAAC,mCAAgC;AAQ/D,qBAAqB;AACrB,eAAO,MAAM,IAAI,+BAA6B,CAAC;AAE/C,wBAAgB,UAAU,CACxB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,aAAa,GACrB,IAAI,CASN;AAED,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAoBf"}
@@ -2,7 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { sliceArrayBuffer, parseFromContext } from '@loaders.gl/core/loader-utils';
5
- import { DracoLoader } from '@loaders.gl/draco';
5
+ import { DracoLoader } from '@loaders.gl/scene/draco-loader-types';
6
6
  import { GLTFIterator } from "../api/gltf-iterator.js";
7
7
  import { getGLTFAccessors, getGLTFAccessor } from "../gltf-utils/gltf-attribute-utils.js";
8
8
  import { getTypedArrayForBufferView } from "../gltf-utils/get-typed-array.js";
@@ -1 +1 @@
1
- {"version":3,"file":"KHR_draco_mesh_compression.js","sourceRoot":"","sources":["../../../../src/gltf/lib/extensions/KHR_draco_mesh_compression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KHR_draco_mesh_compression.js","sourceRoot":"","sources":["../../../../src/gltf/lib/extensions/KHR_draco_mesh_compression.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ __export(parse_gltf_exports, {
27
27
  module.exports = __toCommonJS(parse_gltf_exports);
28
28
  var import_loader_utils = require("@loaders.gl/core/loader-utils");
29
29
  var import_images = require("@loaders.gl/images");
30
- var import_textures = require("@loaders.gl/textures");
30
+ var import_images2 = require("@loaders.gl/images");
31
31
  var import_assert = require("../utils/assert.cjs");
32
32
  var import_parse_glb = require("./parse-glb.cjs");
33
33
  var import_resolve_url = require("../gltf-utils/resolve-url.cjs");
@@ -339,7 +339,7 @@ async function loadImage(gltf, image, index, options, context) {
339
339
  const gltfOptions = getGLTFImageOptions(options, image.mimeType);
340
340
  let parsedImage = await (0, import_loader_utils.parseFromContext)(
341
341
  arrayBuffer,
342
- [import_images.ImageBitmapLoader, import_textures.BasisLoader],
342
+ [import_images.ImageLoader, import_images2.BasisLoader],
343
343
  gltfOptions,
344
344
  context
345
345
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/gltf/lib/parsers/parse-gltf.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable camelcase, max-statements, no-restricted-globals */\nimport type {LoaderContext} from '@loaders.gl/core/loader-utils';\nimport type {GLTFLoaderOptions} from '../../gltf-loader-types';\nimport type {GLTF} from '../types/gltf-json-schema';\nimport type {GLTFExternalFile, GLTFWithBuffers} from '../types/gltf-types';\nimport type {GLB} from '../types/glb-types';\nimport type {ParseGLBOptions} from './parse-glb';\n\nimport type {ImageType, TextureLevel} from '@loaders.gl/core/schema';\nimport {parseJSON, sliceArrayBuffer, parseFromContext} from '@loaders.gl/core/loader-utils';\nimport {ImageBitmapLoader} from '@loaders.gl/images';\nimport {BasisLoader} from '@loaders.gl/textures';\n\nimport {assert} from '../utils/assert';\nimport {isGLB, parseGLBSync} from './parse-glb';\nimport {canonicalizeUrl, resolveUrl} from '../gltf-utils/resolve-url';\nimport {findGLTFFileIndex, resolveGLTFFile} from '../gltf-utils/resolve-gltf-file';\nimport {getTypedArrayForBufferView} from '../gltf-utils/get-typed-array';\nimport {preprocessExtensions, decodeExtensions} from '../api/gltf-extensions';\nimport {normalizeGLTFV1WithDeferredBuffers} from '../api/normalize-gltf-v1';\n\n/** */\nexport type ParseGLTFOptions = ParseGLBOptions & {\n /** Best-effort glTF 1 conversion; strict rejects reported unsupported features. @default true */\n normalize?: boolean | 'best-effort' | 'strict';\n loadImages?: boolean;\n /** Load encoded KHR_audio_emitter clips independently of loadBuffers, without playback. @default true */\n loadAudio?: boolean;\n /** Load linked and embedded buffers; required for meshopt decompression. @default true */\n loadBuffers?: boolean;\n /** @internal Restrict linked-buffer loading after the glTF JSON is available. */\n loadBufferIndices?: number[] | ((json: GLTF) => number[]);\n /** @internal Restrict meshopt decompression to selected buffer views. */\n decompressBufferViewIndices?: number[] | ((json: GLTF) => number[]);\n /** Resolve draft glTF 2.1 `files` entries. */\n loadFiles?: boolean;\n /** Recursively parse draft glTF 2.1 external assets referenced by nodes. */\n loadExternalAssets?: boolean;\n /** Decompress Draco, `EXT_meshopt_compression`, and `KHR_meshopt_compression` data. @default true */\n decompressMeshes?: boolean;\n /** Optional decoder for embedded SPZ2 Gaussian payloads; bytes are explicitly in LUF coordinates. */\n splatDecoder?: (\n data: ArrayBuffer,\n options: {sourceCoordinateSystem: 'LUF'; targetCoordinateSystem?: string}\n ) => unknown | Promise<unknown>;\n excludeExtensions?: string[];\n};\n\n/**\n * Creates options for parsing an image referenced by a glTF asset.\n * Preserves automatic Basis format selection until the worker can inspect the source codec.\n * @param options - glTF loader options.\n * @param mimeType - MIME type declared by the glTF image.\n * @returns Loader options for the referenced image.\n */\nexport function getGLTFImageOptions(\n options: GLTFLoaderOptions,\n mimeType?: string\n): GLTFLoaderOptions {\n const basisOptions = options.basis;\n return {\n ...options,\n core: {...options.core, mimeType},\n basis: {...basisOptions, format: basisOptions?.format || 'auto'}\n };\n}\n\n/** Check if an array buffer appears to contain GLTF data */\nexport function isGLTF(arrayBuffer: ArrayBuffer, options?: ParseGLTFOptions): boolean {\n const byteOffset = 0;\n return isGLB(arrayBuffer, byteOffset, options);\n}\n\nexport async function parseGLTF(\n gltf: GLTFWithBuffers,\n arrayBufferOrString,\n byteOffset = 0,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<GLTFWithBuffers> {\n return await parseGLTFWithExternalAssets(gltf, arrayBufferOrString, byteOffset, options, context);\n}\n\n/** Parse glTF data while carrying recursion state through nested external assets. */\nasync function parseGLTFWithExternalAssets(\n gltf: GLTFWithBuffers,\n arrayBufferOrString,\n byteOffset: number,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n externalAssetLoadState?: ExternalAssetLoadState\n): Promise<GLTFWithBuffers> {\n parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);\n\n const finishNormalization = normalizeGLTFV1WithDeferredBuffers(gltf, {\n normalize: options?.gltf?.normalize,\n log: options?.core?.log\n });\n\n await preprocessExtensions(gltf, options, context);\n\n // Load linked buffers asynchronously and decodes base64 buffers in parallel\n if (options?.gltf?.loadBuffers && gltf.json.buffers) {\n await loadBuffers(gltf, options, context, options.gltf.loadBufferIndices);\n }\n finishNormalization();\n\n if (options?.gltf?.loadFiles && gltf.json.files) {\n await loadFiles(gltf, options, context);\n }\n\n if (options?.gltf?.loadExternalAssets && gltf.json.externalAssets) {\n await loadExternalAssets(gltf, options, context, externalAssetLoadState);\n }\n\n // loadImages and decodeExtensions should not be running in parallel, because\n // decodeExtensions uses data from images taken during the loadImages call.\n if (options?.gltf?.loadImages) {\n await loadImages(gltf, options, context);\n }\n\n await decodeExtensions(gltf, options, context);\n\n return gltf;\n}\n\n/**\n *\n * @param gltf\n * @param data - can be ArrayBuffer (GLB), ArrayBuffer (Binary JSON), String (JSON), or Object (parsed JSON)\n * @param byteOffset\n * @param options\n */\nfunction parseGLTFContainerSync(gltf, data, byteOffset, options: GLTFLoaderOptions) {\n // Initialize gltf container\n if (options.core?.baseUrl) {\n gltf.baseUri = options.core?.baseUrl;\n }\n\n // If data is binary and starting with magic bytes, assume binary JSON text, convert to string\n if (data instanceof ArrayBuffer && !isGLB(data, byteOffset, options.glb)) {\n const textDecoder = new TextDecoder();\n data = textDecoder.decode(data);\n }\n\n if (typeof data === 'string') {\n // If string, try to parse as JSON\n gltf.json = parseJSON(data);\n } else if (data instanceof ArrayBuffer) {\n // If still ArrayBuffer, parse as GLB container\n const glb: GLB = {} as GLB;\n byteOffset = parseGLBSync(glb, data, byteOffset, options.glb);\n\n assert(glb.type === 'glTF', `Invalid GLB magic string ${glb.type}`);\n\n gltf._glb = glb;\n gltf.json = glb.json;\n } else if (data && typeof data === 'object') {\n // Callers that already decoded JSON can retain the parsed object. This avoids a second\n // serialization/parsing pass while preserving the normal extension and external-asset flow.\n gltf.json = data;\n } else {\n assert(false, 'GLTF: must be ArrayBuffer, string, or parsed JSON object');\n }\n\n // Populate buffers\n // Create an external buffers array to hold binary data\n const buffers = gltf.json.buffers || [];\n const bufferDefinitions = Array.isArray(buffers) ? buffers : [];\n const bufferIds = Array.isArray(buffers) ? [] : Object.keys(buffers);\n gltf.buffers = new Array(Array.isArray(buffers) ? buffers.length : bufferIds.length).fill(null);\n\n // Resolve GLB chunks into the parallel buffers array.\n if (gltf._glb) {\n const {binChunks} = gltf._glb;\n\n for (let bufferIndex = 0; bufferIndex < bufferDefinitions.length; bufferIndex++) {\n const buffer = bufferDefinitions[bufferIndex];\n if (buffer.chunk === undefined) {\n continue;\n }\n\n assert(gltf._glb.version === 3, 'glTF buffer.chunk requires a GLB v3 container.');\n assert(\n buffer.uri === undefined,\n `glTF buffer ${bufferIndex} cannot define both uri and chunk.`\n );\n const binChunk = binChunks.find(chunk => chunk.chunkIndex === buffer.chunk);\n assert(\n binChunk,\n `glTF buffer ${bufferIndex} references missing GLB BIN chunk ${buffer.chunk}.`\n );\n assert(\n buffer.byteLength <= binChunk.byteLength,\n `glTF buffer ${bufferIndex} is larger than GLB BIN chunk ${buffer.chunk}.`\n );\n gltf.buffers[bufferIndex] = {\n arrayBuffer: binChunk.arrayBuffer,\n byteOffset: binChunk.byteOffset,\n byteLength: buffer.byteLength\n };\n }\n\n const uriLessBufferIndices = bufferDefinitions\n .map((buffer, bufferIndex) => (buffer.uri === undefined ? bufferIndex : -1))\n .filter(bufferIndex => bufferIndex !== -1);\n const implicitBinChunk = binChunks.find(chunk => chunk.chunkIndex === 1);\n const usesLegacyImplicitBuffer =\n gltf._glb.version < 3 ||\n (gltf._glb.jsonChunkIndex === 0 &&\n bufferDefinitions[0]?.chunk === undefined &&\n uriLessBufferIndices.length === 1 &&\n uriLessBufferIndices[0] === 0 &&\n Boolean(implicitBinChunk));\n const legacyImplicitBinChunk = gltf._glb.version < 3 ? binChunks[0] : implicitBinChunk;\n // glTF 1 dictionaries have no required key order. Normalization subsequently moves\n // the named body and its payload to index zero for glTF 2.\n const binaryBufferIndex =\n gltf._glb.version === 1 && !Array.isArray(buffers) ? bufferIds.indexOf('binary_glTF') : 0;\n\n if (usesLegacyImplicitBuffer && legacyImplicitBinChunk && binaryBufferIndex >= 0) {\n gltf.buffers[binaryBufferIndex] = {\n arrayBuffer: legacyImplicitBinChunk.arrayBuffer,\n byteOffset: legacyImplicitBinChunk.byteOffset,\n byteLength: legacyImplicitBinChunk.byteLength\n };\n }\n\n if (gltf._glb.version === 3) {\n for (const bufferIndex of uriLessBufferIndices) {\n assert(\n gltf.buffers[bufferIndex],\n `glTF buffer ${bufferIndex} without a uri must define a valid GLB v3 chunk.`\n );\n }\n }\n\n // TODO - this modifies JSON and is a post processing thing\n // gltf.json.buffers[0].data = gltf.buffers[0].arrayBuffer;\n // gltf.json.buffers[0].byteOffset = gltf.buffers[0].byteOffset;\n }\n\n if (!gltf._glb) {\n const chunkBufferIndex = bufferDefinitions.findIndex(buffer => buffer.chunk !== undefined);\n assert(chunkBufferIndex === -1, `glTF buffer ${chunkBufferIndex} uses chunk outside a GLB.`);\n }\n\n // Populate images\n const images = gltf.json.images || [];\n gltf.images = new Array(images.length).fill({});\n\n const files = gltf.json.files || [];\n gltf.files = new Array(files.length).fill(null);\n\n const externalAssets = gltf.json.externalAssets || [];\n gltf.externalAssets = new Array(externalAssets.length).fill(null);\n}\n\ntype ExternalAssetLoadState = {\n /** Parsed assets keyed by their resolved URI. */\n cache: Map<string, Promise<GLTFWithBuffers>>;\n /** Resolved URIs in the current recursion chain. */\n ancestors: Set<string>;\n /** Shared counter used to isolate virtual package URL namespaces. */\n packageIds: {next: number};\n};\n\nconst PACKAGE_URL_PREFIX = 'gltf-package://';\n\n/** Recursively resolve external assets instantiated by nodes. */\nasync function loadExternalAssets(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n inheritedState?: ExternalAssetLoadState\n): Promise<void> {\n const externalAssets = gltf.json.externalAssets || [];\n const referencedIndices = new Set<number>();\n for (const node of gltf.json.nodes || []) {\n if (node.externalAsset !== undefined) {\n assert(\n node.externalAsset >= 0 && node.externalAsset < externalAssets.length,\n `glTF node references missing external asset ${node.externalAsset}.`\n );\n referencedIndices.add(node.externalAsset);\n }\n }\n\n const state =\n inheritedState ||\n createExternalAssetLoadState(context.url ? new Set([canonicalizeUrl(context.url)]) : new Set());\n for (const externalAssetIndex of referencedIndices) {\n await loadExternalAsset(gltf, externalAssetIndex, options, context, state);\n }\n}\n\n/** Parse one external asset and cache repeated file references. */\nasync function loadExternalAsset(\n gltf: GLTFWithBuffers,\n externalAssetIndex: number,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n state: ExternalAssetLoadState\n): Promise<void> {\n const externalAsset = gltf.json.externalAssets?.[externalAssetIndex];\n if (!externalAsset) {\n throw new Error(`Missing glTF external asset ${externalAssetIndex}.`);\n }\n assert(\n Number.isInteger(externalAsset.file) &&\n externalAsset.file >= 0 &&\n externalAsset.file < (gltf.json.files?.length || 0),\n `glTF external asset ${externalAssetIndex} references missing file ${externalAsset.file}.`\n );\n\n const file = await resolveGLTFFile(gltf, externalAsset.file, options, context);\n const assetKey = file.url;\n assert(\n !assetKey || !state.ancestors.has(assetKey),\n `glTF external asset cycle detected at ${assetKey}.`\n );\n\n let parsedAsset = assetKey ? state.cache.get(assetKey) : undefined;\n if (!parsedAsset) {\n const childContext = createExternalAssetContext(gltf, file, options, context, state);\n const childState: ExternalAssetLoadState = {\n ...state,\n ancestors: new Set(state.ancestors)\n };\n if (assetKey) {\n childState.ancestors.add(assetKey);\n }\n const data = sliceArrayBuffer(file.arrayBuffer, file.byteOffset, file.byteLength);\n parsedAsset = parseGLTFWithExternalAssets(\n {} as GLTFWithBuffers,\n data,\n 0,\n options,\n childContext,\n childState\n );\n if (assetKey) {\n state.cache.set(assetKey, parsedAsset);\n }\n }\n\n gltf.externalAssets = gltf.externalAssets || [];\n gltf.externalAssets[externalAssetIndex] = await parsedAsset;\n}\n\n/** Create recursive loading state for an external-asset tree. */\nfunction createExternalAssetLoadState(ancestors: Set<string>): ExternalAssetLoadState {\n return {cache: new Map(), ancestors, packageIds: {next: 0}};\n}\n\n/** Create URL and fetch semantics for a nested external asset. */\nfunction createExternalAssetContext(\n parent: GLTFWithBuffers,\n file: GLTFExternalFile,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n state: ExternalAssetLoadState\n): LoaderContext {\n if (file.url && !file.url.startsWith('data:')) {\n return {\n ...context,\n url: file.url,\n filename: getUrlFilename(file.url),\n baseUrl: getUrlBase(file.url)\n };\n }\n\n const packageBaseUrl = `${PACKAGE_URL_PREFIX}${state.packageIds.next++}`;\n const packageUrlPrefix = `${packageBaseUrl}/`;\n return {\n ...context,\n url: file.name,\n filename: file.name,\n baseUrl: packageBaseUrl,\n fetch: async (resource: string, init?: RequestInit) => {\n const url = resource;\n if (url.startsWith('data:')) {\n return await context.fetch(resource, init);\n }\n const reference = url.startsWith(packageUrlPrefix) ? url.slice(packageUrlPrefix.length) : url;\n const fileIndex = findGLTFFileIndex(parent, reference);\n assert(fileIndex >= 0, `glTF package does not contain file ${reference}.`);\n const resolvedFile = await resolveGLTFFile(parent, fileIndex, options, context);\n const data = sliceArrayBuffer(\n resolvedFile.arrayBuffer,\n resolvedFile.byteOffset,\n resolvedFile.byteLength\n );\n return new Response(data, {headers: {'content-type': resolvedFile.mimeType}});\n }\n };\n}\n\n/** Return the containing directory for a URL. */\nfunction getUrlBase(url: string): string {\n const slashIndex = url.lastIndexOf('/');\n return slashIndex >= 0 ? url.slice(0, slashIndex) : '';\n}\n\n/** Return the file name component for a URL. */\nfunction getUrlFilename(url: string): string {\n const slashIndex = url.lastIndexOf('/');\n return slashIndex >= 0 ? url.slice(slashIndex + 1) : url;\n}\n\n/** Resolve all draft glTF 2.1 unified file references. */\nasync function loadFiles(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<void> {\n const files = gltf.json.files || [];\n await Promise.all(\n files.map((_, fileIndex) => resolveGLTFFile(gltf, fileIndex, options, context))\n );\n}\n\n/** Asynchronously fetch and parse buffers, store in buffers array outside of json\n * TODO - traverse gltf and determine which buffers are actually needed\n */\nasync function loadBuffers(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n configuredBufferIndices?: number[] | ((json: GLTF) => number[])\n) {\n // TODO\n const buffers = gltf.json.buffers || [];\n const selectedBufferIndices = configuredBufferIndices\n ? new Set(\n typeof configuredBufferIndices === 'function'\n ? configuredBufferIndices(gltf.json)\n : configuredBufferIndices\n )\n : undefined;\n for (let i = 0; i < buffers.length; ++i) {\n if (selectedBufferIndices && !selectedBufferIndices.has(i)) {\n continue;\n }\n const buffer = buffers[i];\n if (buffer.uri) {\n const {fetch} = context;\n assert(fetch);\n\n const uri = resolveUrl(buffer.uri, options, context);\n const response = await context?.fetch?.(uri);\n const arrayBuffer = await response?.arrayBuffer?.();\n\n gltf.buffers[i] = {\n arrayBuffer,\n byteOffset: 0,\n byteLength: arrayBuffer.byteLength\n };\n\n delete buffer.uri;\n } else if (gltf.buffers[i] === null) {\n gltf.buffers[i] = {\n arrayBuffer: new ArrayBuffer(buffer.byteLength),\n byteOffset: 0,\n byteLength: buffer.byteLength\n };\n }\n }\n}\n\n/**\n * Loads all images\n * TODO - traverse gltf and determine which images are actually needed\n * @param gltf\n * @param options\n * @param context\n * @returns\n */\nasync function loadImages(gltf: GLTFWithBuffers, options, context: LoaderContext) {\n const imageIndices = getReferencesImageIndices(gltf);\n\n const images = gltf.json.images || [];\n\n const promises: Promise<any>[] = [];\n for (const imageIndex of imageIndices) {\n promises.push(loadImage(gltf, images[imageIndex], imageIndex, options, context));\n }\n\n return await Promise.all(promises);\n}\n\n/** Return image indices referenced by textures or draft glTF 2.1 asset metadata. */\nfunction getReferencesImageIndices(gltf: GLTFWithBuffers): number[] {\n const imageIndices = new Set<number>();\n\n if (gltf.json.asset.thumbnail !== undefined) {\n imageIndices.add(gltf.json.asset.thumbnail);\n }\n\n const textures = gltf.json.textures || [];\n for (const texture of textures) {\n if (texture.source !== undefined) {\n imageIndices.add(texture.source);\n }\n }\n\n return Array.from(imageIndices).sort();\n}\n\n/** Asynchronously fetches and parses one image, store in images array outside of json */\nasync function loadImage(\n gltf: GLTFWithBuffers,\n image,\n index: number,\n options,\n context: LoaderContext\n) {\n let arrayBuffer;\n\n if (image.uri && !image.hasOwnProperty('bufferView')) {\n const uri = resolveUrl(image.uri, options, context);\n\n const {fetch} = context;\n const response = await fetch(uri);\n\n arrayBuffer = await response.arrayBuffer();\n image.bufferView = {\n data: arrayBuffer\n };\n }\n\n if (Number.isFinite(image.bufferView)) {\n const array = getTypedArrayForBufferView(gltf.json, gltf.buffers, image.bufferView);\n arrayBuffer = sliceArrayBuffer(array.buffer, array.byteOffset, array.byteLength);\n }\n\n assert(arrayBuffer, 'glTF image has no data');\n\n const gltfOptions = getGLTFImageOptions(options, image.mimeType);\n\n // Call `parse`\n let parsedImage = (await parseFromContext(\n arrayBuffer,\n [ImageBitmapLoader, BasisLoader],\n gltfOptions,\n context\n )) as ImageType | TextureLevel[][];\n\n if (parsedImage && parsedImage[0]) {\n parsedImage = {\n compressed: true,\n // @ts-expect-error\n mipmaps: false,\n width: parsedImage[0].width,\n height: parsedImage[0].height,\n data: parsedImage[0]\n };\n }\n // TODO making sure ImageBitmapLoader is overridable by using array of loaders\n // const parsedImage = await parse(arrayBuffer, [ImageBitmapLoader]);\n\n // Store the loaded image\n gltf.images = gltf.images || [];\n // @ts-expect-error TODO - sort out image typing asap\n gltf.images[index] = parsedImage;\n}\n"],
5
- "mappings": "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",
6
- "names": []
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable camelcase, max-statements, no-restricted-globals */\nimport type {LoaderContext} from '@loaders.gl/core/loader-utils';\nimport type {GLTFLoaderOptions} from '../../gltf-loader-types';\nimport type {GLTF} from '../types/gltf-json-schema';\nimport type {GLTFExternalFile, GLTFWithBuffers} from '../types/gltf-types';\nimport type {GLB} from '../types/glb-types';\nimport type {ParseGLBOptions} from './parse-glb';\n\nimport type {ImageType, TextureLevel} from '@loaders.gl/core/schema';\nimport {parseJSON, sliceArrayBuffer, parseFromContext} from '@loaders.gl/core/loader-utils';\nimport {ImageLoader} from '@loaders.gl/images';\nimport {BasisLoader} from '@loaders.gl/images';\n\nimport {assert} from '../utils/assert';\nimport {isGLB, parseGLBSync} from './parse-glb';\nimport {canonicalizeUrl, resolveUrl} from '../gltf-utils/resolve-url';\nimport {findGLTFFileIndex, resolveGLTFFile} from '../gltf-utils/resolve-gltf-file';\nimport {getTypedArrayForBufferView} from '../gltf-utils/get-typed-array';\nimport {preprocessExtensions, decodeExtensions} from '../api/gltf-extensions';\nimport {normalizeGLTFV1WithDeferredBuffers} from '../api/normalize-gltf-v1';\n\n/** */\nexport type ParseGLTFOptions = ParseGLBOptions & {\n /** Best-effort glTF 1 conversion; strict rejects reported unsupported features. @default true */\n normalize?: boolean | 'best-effort' | 'strict';\n loadImages?: boolean;\n /** Load encoded KHR_audio_emitter clips independently of loadBuffers, without playback. @default true */\n loadAudio?: boolean;\n /** Load linked and embedded buffers; required for meshopt decompression. @default true */\n loadBuffers?: boolean;\n /** @internal Restrict linked-buffer loading after the glTF JSON is available. */\n loadBufferIndices?: number[] | ((json: GLTF) => number[]);\n /** @internal Restrict meshopt decompression to selected buffer views. */\n decompressBufferViewIndices?: number[] | ((json: GLTF) => number[]);\n /** Resolve draft glTF 2.1 `files` entries. */\n loadFiles?: boolean;\n /** Recursively parse draft glTF 2.1 external assets referenced by nodes. */\n loadExternalAssets?: boolean;\n /** Decompress Draco, `EXT_meshopt_compression`, and `KHR_meshopt_compression` data. @default true */\n decompressMeshes?: boolean;\n /** Optional decoder for embedded SPZ2 Gaussian payloads; bytes are explicitly in LUF coordinates. */\n splatDecoder?: (\n data: ArrayBuffer,\n options: {sourceCoordinateSystem: 'LUF'; targetCoordinateSystem?: string}\n ) => unknown | Promise<unknown>;\n excludeExtensions?: string[];\n};\n\n/**\n * Creates options for parsing an image referenced by a glTF asset.\n * Preserves automatic Basis format selection until the worker can inspect the source codec.\n * @param options - glTF loader options.\n * @param mimeType - MIME type declared by the glTF image.\n * @returns Loader options for the referenced image.\n */\nexport function getGLTFImageOptions(\n options: GLTFLoaderOptions,\n mimeType?: string\n): GLTFLoaderOptions {\n const basisOptions = options.basis;\n return {\n ...options,\n core: {...options.core, mimeType},\n basis: {...basisOptions, format: basisOptions?.format || 'auto'}\n };\n}\n\n/** Check if an array buffer appears to contain GLTF data */\nexport function isGLTF(arrayBuffer: ArrayBuffer, options?: ParseGLTFOptions): boolean {\n const byteOffset = 0;\n return isGLB(arrayBuffer, byteOffset, options);\n}\n\nexport async function parseGLTF(\n gltf: GLTFWithBuffers,\n arrayBufferOrString,\n byteOffset = 0,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<GLTFWithBuffers> {\n return await parseGLTFWithExternalAssets(gltf, arrayBufferOrString, byteOffset, options, context);\n}\n\n/** Parse glTF data while carrying recursion state through nested external assets. */\nasync function parseGLTFWithExternalAssets(\n gltf: GLTFWithBuffers,\n arrayBufferOrString,\n byteOffset: number,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n externalAssetLoadState?: ExternalAssetLoadState\n): Promise<GLTFWithBuffers> {\n parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);\n\n const finishNormalization = normalizeGLTFV1WithDeferredBuffers(gltf, {\n normalize: options?.gltf?.normalize,\n log: options?.core?.log\n });\n\n await preprocessExtensions(gltf, options, context);\n\n // Load linked buffers asynchronously and decodes base64 buffers in parallel\n if (options?.gltf?.loadBuffers && gltf.json.buffers) {\n await loadBuffers(gltf, options, context, options.gltf.loadBufferIndices);\n }\n finishNormalization();\n\n if (options?.gltf?.loadFiles && gltf.json.files) {\n await loadFiles(gltf, options, context);\n }\n\n if (options?.gltf?.loadExternalAssets && gltf.json.externalAssets) {\n await loadExternalAssets(gltf, options, context, externalAssetLoadState);\n }\n\n // loadImages and decodeExtensions should not be running in parallel, because\n // decodeExtensions uses data from images taken during the loadImages call.\n if (options?.gltf?.loadImages) {\n await loadImages(gltf, options, context);\n }\n\n await decodeExtensions(gltf, options, context);\n\n return gltf;\n}\n\n/**\n *\n * @param gltf\n * @param data - can be ArrayBuffer (GLB), ArrayBuffer (Binary JSON), String (JSON), or Object (parsed JSON)\n * @param byteOffset\n * @param options\n */\nfunction parseGLTFContainerSync(gltf, data, byteOffset, options: GLTFLoaderOptions) {\n // Initialize gltf container\n if (options.core?.baseUrl) {\n gltf.baseUri = options.core?.baseUrl;\n }\n\n // If data is binary and starting with magic bytes, assume binary JSON text, convert to string\n if (data instanceof ArrayBuffer && !isGLB(data, byteOffset, options.glb)) {\n const textDecoder = new TextDecoder();\n data = textDecoder.decode(data);\n }\n\n if (typeof data === 'string') {\n // If string, try to parse as JSON\n gltf.json = parseJSON(data);\n } else if (data instanceof ArrayBuffer) {\n // If still ArrayBuffer, parse as GLB container\n const glb: GLB = {} as GLB;\n byteOffset = parseGLBSync(glb, data, byteOffset, options.glb);\n\n assert(glb.type === 'glTF', `Invalid GLB magic string ${glb.type}`);\n\n gltf._glb = glb;\n gltf.json = glb.json;\n } else if (data && typeof data === 'object') {\n // Callers that already decoded JSON can retain the parsed object. This avoids a second\n // serialization/parsing pass while preserving the normal extension and external-asset flow.\n gltf.json = data;\n } else {\n assert(false, 'GLTF: must be ArrayBuffer, string, or parsed JSON object');\n }\n\n // Populate buffers\n // Create an external buffers array to hold binary data\n const buffers = gltf.json.buffers || [];\n const bufferDefinitions = Array.isArray(buffers) ? buffers : [];\n const bufferIds = Array.isArray(buffers) ? [] : Object.keys(buffers);\n gltf.buffers = new Array(Array.isArray(buffers) ? buffers.length : bufferIds.length).fill(null);\n\n // Resolve GLB chunks into the parallel buffers array.\n if (gltf._glb) {\n const {binChunks} = gltf._glb;\n\n for (let bufferIndex = 0; bufferIndex < bufferDefinitions.length; bufferIndex++) {\n const buffer = bufferDefinitions[bufferIndex];\n if (buffer.chunk === undefined) {\n continue;\n }\n\n assert(gltf._glb.version === 3, 'glTF buffer.chunk requires a GLB v3 container.');\n assert(\n buffer.uri === undefined,\n `glTF buffer ${bufferIndex} cannot define both uri and chunk.`\n );\n const binChunk = binChunks.find(chunk => chunk.chunkIndex === buffer.chunk);\n assert(\n binChunk,\n `glTF buffer ${bufferIndex} references missing GLB BIN chunk ${buffer.chunk}.`\n );\n assert(\n buffer.byteLength <= binChunk.byteLength,\n `glTF buffer ${bufferIndex} is larger than GLB BIN chunk ${buffer.chunk}.`\n );\n gltf.buffers[bufferIndex] = {\n arrayBuffer: binChunk.arrayBuffer,\n byteOffset: binChunk.byteOffset,\n byteLength: buffer.byteLength\n };\n }\n\n const uriLessBufferIndices = bufferDefinitions\n .map((buffer, bufferIndex) => (buffer.uri === undefined ? bufferIndex : -1))\n .filter(bufferIndex => bufferIndex !== -1);\n const implicitBinChunk = binChunks.find(chunk => chunk.chunkIndex === 1);\n const usesLegacyImplicitBuffer =\n gltf._glb.version < 3 ||\n (gltf._glb.jsonChunkIndex === 0 &&\n bufferDefinitions[0]?.chunk === undefined &&\n uriLessBufferIndices.length === 1 &&\n uriLessBufferIndices[0] === 0 &&\n Boolean(implicitBinChunk));\n const legacyImplicitBinChunk = gltf._glb.version < 3 ? binChunks[0] : implicitBinChunk;\n // glTF 1 dictionaries have no required key order. Normalization subsequently moves\n // the named body and its payload to index zero for glTF 2.\n const binaryBufferIndex =\n gltf._glb.version === 1 && !Array.isArray(buffers) ? bufferIds.indexOf('binary_glTF') : 0;\n\n if (usesLegacyImplicitBuffer && legacyImplicitBinChunk && binaryBufferIndex >= 0) {\n gltf.buffers[binaryBufferIndex] = {\n arrayBuffer: legacyImplicitBinChunk.arrayBuffer,\n byteOffset: legacyImplicitBinChunk.byteOffset,\n byteLength: legacyImplicitBinChunk.byteLength\n };\n }\n\n if (gltf._glb.version === 3) {\n for (const bufferIndex of uriLessBufferIndices) {\n assert(\n gltf.buffers[bufferIndex],\n `glTF buffer ${bufferIndex} without a uri must define a valid GLB v3 chunk.`\n );\n }\n }\n\n // TODO - this modifies JSON and is a post processing thing\n // gltf.json.buffers[0].data = gltf.buffers[0].arrayBuffer;\n // gltf.json.buffers[0].byteOffset = gltf.buffers[0].byteOffset;\n }\n\n if (!gltf._glb) {\n const chunkBufferIndex = bufferDefinitions.findIndex(buffer => buffer.chunk !== undefined);\n assert(chunkBufferIndex === -1, `glTF buffer ${chunkBufferIndex} uses chunk outside a GLB.`);\n }\n\n // Populate images\n const images = gltf.json.images || [];\n gltf.images = new Array(images.length).fill({});\n\n const files = gltf.json.files || [];\n gltf.files = new Array(files.length).fill(null);\n\n const externalAssets = gltf.json.externalAssets || [];\n gltf.externalAssets = new Array(externalAssets.length).fill(null);\n}\n\ntype ExternalAssetLoadState = {\n /** Parsed assets keyed by their resolved URI. */\n cache: Map<string, Promise<GLTFWithBuffers>>;\n /** Resolved URIs in the current recursion chain. */\n ancestors: Set<string>;\n /** Shared counter used to isolate virtual package URL namespaces. */\n packageIds: {next: number};\n};\n\nconst PACKAGE_URL_PREFIX = 'gltf-package://';\n\n/** Recursively resolve external assets instantiated by nodes. */\nasync function loadExternalAssets(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n inheritedState?: ExternalAssetLoadState\n): Promise<void> {\n const externalAssets = gltf.json.externalAssets || [];\n const referencedIndices = new Set<number>();\n for (const node of gltf.json.nodes || []) {\n if (node.externalAsset !== undefined) {\n assert(\n node.externalAsset >= 0 && node.externalAsset < externalAssets.length,\n `glTF node references missing external asset ${node.externalAsset}.`\n );\n referencedIndices.add(node.externalAsset);\n }\n }\n\n const state =\n inheritedState ||\n createExternalAssetLoadState(context.url ? new Set([canonicalizeUrl(context.url)]) : new Set());\n for (const externalAssetIndex of referencedIndices) {\n await loadExternalAsset(gltf, externalAssetIndex, options, context, state);\n }\n}\n\n/** Parse one external asset and cache repeated file references. */\nasync function loadExternalAsset(\n gltf: GLTFWithBuffers,\n externalAssetIndex: number,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n state: ExternalAssetLoadState\n): Promise<void> {\n const externalAsset = gltf.json.externalAssets?.[externalAssetIndex];\n if (!externalAsset) {\n throw new Error(`Missing glTF external asset ${externalAssetIndex}.`);\n }\n assert(\n Number.isInteger(externalAsset.file) &&\n externalAsset.file >= 0 &&\n externalAsset.file < (gltf.json.files?.length || 0),\n `glTF external asset ${externalAssetIndex} references missing file ${externalAsset.file}.`\n );\n\n const file = await resolveGLTFFile(gltf, externalAsset.file, options, context);\n const assetKey = file.url;\n assert(\n !assetKey || !state.ancestors.has(assetKey),\n `glTF external asset cycle detected at ${assetKey}.`\n );\n\n let parsedAsset = assetKey ? state.cache.get(assetKey) : undefined;\n if (!parsedAsset) {\n const childContext = createExternalAssetContext(gltf, file, options, context, state);\n const childState: ExternalAssetLoadState = {\n ...state,\n ancestors: new Set(state.ancestors)\n };\n if (assetKey) {\n childState.ancestors.add(assetKey);\n }\n const data = sliceArrayBuffer(file.arrayBuffer, file.byteOffset, file.byteLength);\n parsedAsset = parseGLTFWithExternalAssets(\n {} as GLTFWithBuffers,\n data,\n 0,\n options,\n childContext,\n childState\n );\n if (assetKey) {\n state.cache.set(assetKey, parsedAsset);\n }\n }\n\n gltf.externalAssets = gltf.externalAssets || [];\n gltf.externalAssets[externalAssetIndex] = await parsedAsset;\n}\n\n/** Create recursive loading state for an external-asset tree. */\nfunction createExternalAssetLoadState(ancestors: Set<string>): ExternalAssetLoadState {\n return {cache: new Map(), ancestors, packageIds: {next: 0}};\n}\n\n/** Create URL and fetch semantics for a nested external asset. */\nfunction createExternalAssetContext(\n parent: GLTFWithBuffers,\n file: GLTFExternalFile,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n state: ExternalAssetLoadState\n): LoaderContext {\n if (file.url && !file.url.startsWith('data:')) {\n return {\n ...context,\n url: file.url,\n filename: getUrlFilename(file.url),\n baseUrl: getUrlBase(file.url)\n };\n }\n\n const packageBaseUrl = `${PACKAGE_URL_PREFIX}${state.packageIds.next++}`;\n const packageUrlPrefix = `${packageBaseUrl}/`;\n return {\n ...context,\n url: file.name,\n filename: file.name,\n baseUrl: packageBaseUrl,\n fetch: async (resource: string, init?: RequestInit) => {\n const url = resource;\n if (url.startsWith('data:')) {\n return await context.fetch(resource, init);\n }\n const reference = url.startsWith(packageUrlPrefix) ? url.slice(packageUrlPrefix.length) : url;\n const fileIndex = findGLTFFileIndex(parent, reference);\n assert(fileIndex >= 0, `glTF package does not contain file ${reference}.`);\n const resolvedFile = await resolveGLTFFile(parent, fileIndex, options, context);\n const data = sliceArrayBuffer(\n resolvedFile.arrayBuffer,\n resolvedFile.byteOffset,\n resolvedFile.byteLength\n );\n return new Response(data, {headers: {'content-type': resolvedFile.mimeType}});\n }\n };\n}\n\n/** Return the containing directory for a URL. */\nfunction getUrlBase(url: string): string {\n const slashIndex = url.lastIndexOf('/');\n return slashIndex >= 0 ? url.slice(0, slashIndex) : '';\n}\n\n/** Return the file name component for a URL. */\nfunction getUrlFilename(url: string): string {\n const slashIndex = url.lastIndexOf('/');\n return slashIndex >= 0 ? url.slice(slashIndex + 1) : url;\n}\n\n/** Resolve all draft glTF 2.1 unified file references. */\nasync function loadFiles(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<void> {\n const files = gltf.json.files || [];\n await Promise.all(\n files.map((_, fileIndex) => resolveGLTFFile(gltf, fileIndex, options, context))\n );\n}\n\n/** Asynchronously fetch and parse buffers, store in buffers array outside of json\n * TODO - traverse gltf and determine which buffers are actually needed\n */\nasync function loadBuffers(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n configuredBufferIndices?: number[] | ((json: GLTF) => number[])\n) {\n // TODO\n const buffers = gltf.json.buffers || [];\n const selectedBufferIndices = configuredBufferIndices\n ? new Set(\n typeof configuredBufferIndices === 'function'\n ? configuredBufferIndices(gltf.json)\n : configuredBufferIndices\n )\n : undefined;\n for (let i = 0; i < buffers.length; ++i) {\n if (selectedBufferIndices && !selectedBufferIndices.has(i)) {\n continue;\n }\n const buffer = buffers[i];\n if (buffer.uri) {\n const {fetch} = context;\n assert(fetch);\n\n const uri = resolveUrl(buffer.uri, options, context);\n const response = await context?.fetch?.(uri);\n const arrayBuffer = await response?.arrayBuffer?.();\n\n gltf.buffers[i] = {\n arrayBuffer,\n byteOffset: 0,\n byteLength: arrayBuffer.byteLength\n };\n\n delete buffer.uri;\n } else if (gltf.buffers[i] === null) {\n gltf.buffers[i] = {\n arrayBuffer: new ArrayBuffer(buffer.byteLength),\n byteOffset: 0,\n byteLength: buffer.byteLength\n };\n }\n }\n}\n\n/**\n * Loads all images\n * TODO - traverse gltf and determine which images are actually needed\n * @param gltf\n * @param options\n * @param context\n * @returns\n */\nasync function loadImages(gltf: GLTFWithBuffers, options, context: LoaderContext) {\n const imageIndices = getReferencesImageIndices(gltf);\n\n const images = gltf.json.images || [];\n\n const promises: Promise<any>[] = [];\n for (const imageIndex of imageIndices) {\n promises.push(loadImage(gltf, images[imageIndex], imageIndex, options, context));\n }\n\n return await Promise.all(promises);\n}\n\n/** Return image indices referenced by textures or draft glTF 2.1 asset metadata. */\nfunction getReferencesImageIndices(gltf: GLTFWithBuffers): number[] {\n const imageIndices = new Set<number>();\n\n if (gltf.json.asset.thumbnail !== undefined) {\n imageIndices.add(gltf.json.asset.thumbnail);\n }\n\n const textures = gltf.json.textures || [];\n for (const texture of textures) {\n if (texture.source !== undefined) {\n imageIndices.add(texture.source);\n }\n }\n\n return Array.from(imageIndices).sort();\n}\n\n/** Asynchronously fetches and parses one image, store in images array outside of json */\nasync function loadImage(\n gltf: GLTFWithBuffers,\n image,\n index: number,\n options,\n context: LoaderContext\n) {\n let arrayBuffer;\n\n if (image.uri && !image.hasOwnProperty('bufferView')) {\n const uri = resolveUrl(image.uri, options, context);\n\n const {fetch} = context;\n const response = await fetch(uri);\n\n arrayBuffer = await response.arrayBuffer();\n image.bufferView = {\n data: arrayBuffer\n };\n }\n\n if (Number.isFinite(image.bufferView)) {\n const array = getTypedArrayForBufferView(gltf.json, gltf.buffers, image.bufferView);\n arrayBuffer = sliceArrayBuffer(array.buffer, array.byteOffset, array.byteLength);\n }\n\n assert(arrayBuffer, 'glTF image has no data');\n\n const gltfOptions = getGLTFImageOptions(options, image.mimeType);\n\n // Call `parse`\n let parsedImage = (await parseFromContext(\n arrayBuffer,\n [ImageLoader, BasisLoader],\n gltfOptions,\n context\n )) as ImageType | TextureLevel[][];\n\n if (parsedImage && parsedImage[0]) {\n parsedImage = {\n compressed: true,\n // @ts-expect-error\n mipmaps: false,\n width: parsedImage[0].width,\n height: parsedImage[0].height,\n data: parsedImage[0]\n };\n }\n // TODO making sure ImageLoader is overridable by using array of loaders\n // const parsedImage = await parse(arrayBuffer, [ImageLoader]);\n\n // Store the loaded image\n gltf.images = gltf.images || [];\n // @ts-expect-error TODO - sort out image typing asap\n gltf.images[index] = parsedImage;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_images"]
7
7
  }
@@ -2,8 +2,8 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { parseJSON, sliceArrayBuffer, parseFromContext } from '@loaders.gl/core/loader-utils';
5
- import { ImageBitmapLoader } from '@loaders.gl/images';
6
- import { BasisLoader } from '@loaders.gl/textures';
5
+ import { ImageLoader } from '@loaders.gl/images';
6
+ import { BasisLoader } from '@loaders.gl/images';
7
7
  import { assert } from "../utils/assert.js";
8
8
  import { isGLB, parseGLBSync } from "./parse-glb.js";
9
9
  import { canonicalizeUrl, resolveUrl } from "../gltf-utils/resolve-url.js";
@@ -351,7 +351,7 @@ async function loadImage(gltf, image, index, options, context) {
351
351
  assert(arrayBuffer, 'glTF image has no data');
352
352
  const gltfOptions = getGLTFImageOptions(options, image.mimeType);
353
353
  // Call `parse`
354
- let parsedImage = (await parseFromContext(arrayBuffer, [ImageBitmapLoader, BasisLoader], gltfOptions, context));
354
+ let parsedImage = (await parseFromContext(arrayBuffer, [ImageLoader, BasisLoader], gltfOptions, context));
355
355
  if (parsedImage && parsedImage[0]) {
356
356
  parsedImage = {
357
357
  compressed: true,
@@ -362,8 +362,8 @@ async function loadImage(gltf, image, index, options, context) {
362
362
  data: parsedImage[0]
363
363
  };
364
364
  }
365
- // TODO making sure ImageBitmapLoader is overridable by using array of loaders
366
- // const parsedImage = await parse(arrayBuffer, [ImageBitmapLoader]);
365
+ // TODO making sure ImageLoader is overridable by using array of loaders
366
+ // const parsedImage = await parse(arrayBuffer, [ImageLoader]);
367
367
  // Store the loaded image
368
368
  gltf.images = gltf.images || [];
369
369
  // @ts-expect-error TODO - sort out image typing asap
@@ -1 +1 @@
1
- {"version":3,"file":"parse-gltf.js","sourceRoot":"","sources":["../../../../src/gltf/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-gltf.js","sourceRoot":"","sources":["../../../../src/gltf/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"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"}
@@ -1574,11 +1574,11 @@ export declare const GLTFKHRMeshoptCompressionSchema: z.ZodObject<{
1574
1574
  INDICES: "INDICES";
1575
1575
  }>;
1576
1576
  filter: z.ZodOptional<z.ZodEnum<{
1577
+ COLOR: "COLOR";
1577
1578
  NONE: "NONE";
1578
1579
  OCTAHEDRAL: "OCTAHEDRAL";
1579
1580
  QUATERNION: "QUATERNION";
1580
1581
  EXPONENTIAL: "EXPONENTIAL";
1581
- COLOR: "COLOR";
1582
1582
  }>>;
1583
1583
  extras: z.ZodOptional<z.ZodUnknown>;
1584
1584
  }, z.core.$catchall<z.ZodUnknown>>;
@@ -23,7 +23,7 @@ __export(version_exports, {
23
23
  VERSION: () => VERSION
24
24
  });
25
25
  module.exports = __toCommonJS(version_exports);
26
- var VERSION = true ? "5.0.0-beta.1" : "latest";
26
+ var VERSION = true ? "5.0.0-beta.2" : "latest";
27
27
  // Annotate the CommonJS export names for ESM import in node:
28
28
  0 && (module.exports = {
29
29
  VERSION
@@ -4,5 +4,5 @@
4
4
  // Version constant cannot be imported, it needs to correspond to the build version of **this** module.
5
5
  // __VERSION__ is injected by babel-plugin-version-inline
6
6
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
7
- export const VERSION = typeof "5.0.0-beta.1" !== 'undefined' ? "5.0.0-beta.1" : 'latest';
7
+ export const VERSION = typeof "5.0.0-beta.2" !== 'undefined' ? "5.0.0-beta.2" : 'latest';
8
8
  //# sourceMappingURL=version.js.map