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

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 (541) 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 +8894 -5137
  5. package/dist/dist.min.js +32 -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 +28640 -0
  195. package/dist/draco-worker-node.js.map +7 -0
  196. package/dist/draco-worker.js +18481 -0
  197. package/dist/draco-worker.js.map +7 -0
  198. package/dist/draco-writer-worker-node.cjs +28855 -0
  199. package/dist/draco-writer-worker-node.cjs.map +7 -0
  200. package/dist/draco-writer-worker.js +18617 -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 +11 -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/index.cjs +2 -0
  247. package/dist/gltf/index.cjs.map +2 -2
  248. package/dist/gltf/index.d.ts +2 -2
  249. package/dist/gltf/index.d.ts.map +1 -1
  250. package/dist/gltf/index.js +1 -1
  251. package/dist/gltf/index.js.map +1 -1
  252. package/dist/gltf/lib/api/gltf-extensions.cjs +7 -2
  253. package/dist/gltf/lib/api/gltf-extensions.cjs.map +2 -2
  254. package/dist/gltf/lib/api/gltf-extensions.d.ts.map +1 -1
  255. package/dist/gltf/lib/api/gltf-extensions.js +7 -5
  256. package/dist/gltf/lib/api/gltf-extensions.js.map +1 -1
  257. package/dist/gltf/lib/encoders/encode-gltf-draco.cjs +12 -2
  258. package/dist/gltf/lib/encoders/encode-gltf-draco.cjs.map +2 -2
  259. package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts +1 -1
  260. package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts.map +1 -1
  261. package/dist/gltf/lib/encoders/encode-gltf-draco.js +1 -1
  262. package/dist/gltf/lib/encoders/encode-gltf-draco.js.map +1 -1
  263. package/dist/gltf/lib/extensions/EXT_texture_webp.cjs +1 -0
  264. package/dist/gltf/lib/extensions/EXT_texture_webp.cjs.map +2 -2
  265. package/dist/gltf/lib/extensions/EXT_texture_webp.d.ts.map +1 -1
  266. package/dist/gltf/lib/extensions/EXT_texture_webp.js +3 -0
  267. package/dist/gltf/lib/extensions/EXT_texture_webp.js.map +1 -1
  268. package/dist/gltf/lib/extensions/KHR_accessor_float64.cjs +45 -0
  269. package/dist/gltf/lib/extensions/KHR_accessor_float64.cjs.map +7 -0
  270. package/dist/gltf/lib/extensions/KHR_accessor_float64.d.ts +6 -0
  271. package/dist/gltf/lib/extensions/KHR_accessor_float64.d.ts.map +1 -0
  272. package/dist/gltf/lib/extensions/KHR_accessor_float64.js +20 -0
  273. package/dist/gltf/lib/extensions/KHR_accessor_float64.js.map +1 -0
  274. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs +2 -2
  275. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs.map +2 -2
  276. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -1
  277. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js +1 -1
  278. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  279. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs +12 -3
  280. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs.map +2 -2
  281. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts +2 -1
  282. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts.map +1 -1
  283. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js +9 -3
  284. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js.map +1 -1
  285. package/dist/gltf/lib/extensions/MSFT_texture_dds.cjs +64 -0
  286. package/dist/gltf/lib/extensions/MSFT_texture_dds.cjs.map +7 -0
  287. package/dist/gltf/lib/extensions/MSFT_texture_dds.d.ts +12 -0
  288. package/dist/gltf/lib/extensions/MSFT_texture_dds.d.ts.map +1 -0
  289. package/dist/gltf/lib/extensions/MSFT_texture_dds.js +39 -0
  290. package/dist/gltf/lib/extensions/MSFT_texture_dds.js.map +1 -0
  291. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.cjs +1 -1
  292. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.cjs.map +2 -2
  293. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -1
  294. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.js +3 -1
  295. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.js.map +1 -1
  296. package/dist/gltf/lib/parsers/parse-gltf.cjs +27 -2
  297. package/dist/gltf/lib/parsers/parse-gltf.cjs.map +3 -3
  298. package/dist/gltf/lib/parsers/parse-gltf.d.ts.map +1 -1
  299. package/dist/gltf/lib/parsers/parse-gltf.js +23 -5
  300. package/dist/gltf/lib/parsers/parse-gltf.js.map +1 -1
  301. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.cjs.map +1 -1
  302. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.d.ts +1 -1
  303. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.d.ts.map +1 -1
  304. package/dist/gltf/lib/types/gltf-texture-procedurals.cjs +19 -0
  305. package/dist/gltf/lib/types/gltf-texture-procedurals.cjs.map +7 -0
  306. package/dist/gltf/lib/types/gltf-texture-procedurals.d.ts +45 -0
  307. package/dist/gltf/lib/types/gltf-texture-procedurals.d.ts.map +1 -0
  308. package/dist/gltf/lib/types/gltf-texture-procedurals.js +5 -0
  309. package/dist/gltf/lib/types/gltf-texture-procedurals.js.map +1 -0
  310. package/dist/gltf/lib/types/gltf-types.cjs.map +1 -1
  311. package/dist/gltf/lib/types/gltf-types.d.ts +7 -0
  312. package/dist/gltf/lib/types/gltf-types.d.ts.map +1 -1
  313. package/dist/gltf/lib/types/gltf-zod-schema.cjs +3 -0
  314. package/dist/gltf/lib/types/gltf-zod-schema.cjs.map +2 -2
  315. package/dist/gltf/lib/types/gltf-zod-schema.d.ts +6 -1
  316. package/dist/gltf/lib/types/gltf-zod-schema.d.ts.map +1 -1
  317. package/dist/gltf/lib/types/gltf-zod-schema.js +4 -0
  318. package/dist/gltf/lib/types/gltf-zod-schema.js.map +1 -1
  319. package/dist/gltf/lib/utils/version.cjs +1 -1
  320. package/dist/gltf/lib/utils/version.js +1 -1
  321. package/dist/gltf/schema.cjs +3 -0
  322. package/dist/gltf/schema.cjs.map +2 -2
  323. package/dist/gltf/schema.d.ts +1 -0
  324. package/dist/gltf/schema.d.ts.map +1 -1
  325. package/dist/gltf/schema.js +1 -0
  326. package/dist/gltf/schema.js.map +1 -1
  327. package/dist/gltf-loader-types.cjs +73 -0
  328. package/dist/gltf-loader-types.cjs.map +7 -0
  329. package/dist/gltf-loader-types.d.ts +2 -0
  330. package/dist/gltf-loader-types.d.ts.map +1 -0
  331. package/dist/gltf-loader-types.js +2 -0
  332. package/dist/gltf-loader-types.js.map +1 -0
  333. package/dist/gltf-loader.cjs +48 -0
  334. package/dist/gltf-loader.cjs.map +7 -0
  335. package/dist/gltf-loader.d.ts +2 -0
  336. package/dist/gltf-loader.d.ts.map +1 -0
  337. package/dist/gltf-loader.js +2 -0
  338. package/dist/gltf-loader.js.map +1 -0
  339. package/dist/gltf-source.cjs +238 -0
  340. package/dist/gltf-source.cjs.map +7 -0
  341. package/dist/gltf-source.d.ts +2 -0
  342. package/dist/gltf-source.d.ts.map +1 -0
  343. package/dist/gltf-source.js +2 -0
  344. package/dist/gltf-source.js.map +1 -0
  345. package/dist/gltf-writer.cjs +69 -0
  346. package/dist/gltf-writer.cjs.map +7 -0
  347. package/dist/gltf-writer.d.ts +2 -0
  348. package/dist/gltf-writer.d.ts.map +1 -0
  349. package/dist/gltf-writer.js +2 -0
  350. package/dist/gltf-writer.js.map +1 -0
  351. package/dist/index.cjs +16 -0
  352. package/dist/index.cjs.map +2 -2
  353. package/dist/index.d.ts +6 -0
  354. package/dist/index.d.ts.map +1 -1
  355. package/dist/index.js +4 -0
  356. package/dist/index.js.map +1 -1
  357. package/dist/libs/DRACO-LICENSE +252 -0
  358. package/dist/libs/README.md +20 -0
  359. package/dist/libs/draco_decoder.js +34 -0
  360. package/dist/libs/draco_decoder.mjs +37 -0
  361. package/dist/libs/draco_decoder.wasm +0 -0
  362. package/dist/libs/draco_decoder_gltf.wasm +0 -0
  363. package/dist/libs/draco_encoder.js +98 -0
  364. package/dist/libs/draco_encoder.mjs +101 -0
  365. package/dist/libs/draco_encoder.wasm +0 -0
  366. package/dist/libs/draco_wasm_wrapper.js +117 -0
  367. package/dist/libs/draco_wasm_wrapper.mjs +120 -0
  368. package/dist/libs/draco_wasm_wrapper_gltf.js +116 -0
  369. package/dist/libs/draco_wasm_wrapper_gltf.mjs +119 -0
  370. package/dist/materialx/parse-materialx.cjs +61 -0
  371. package/dist/materialx/parse-materialx.cjs.map +7 -0
  372. package/dist/materialx/parse-materialx.d.ts +23 -0
  373. package/dist/materialx/parse-materialx.d.ts.map +1 -0
  374. package/dist/materialx/parse-materialx.js +39 -0
  375. package/dist/materialx/parse-materialx.js.map +1 -0
  376. package/dist/materialx/procedural-graph.cjs +77 -0
  377. package/dist/materialx/procedural-graph.cjs.map +7 -0
  378. package/dist/materialx/procedural-graph.d.ts +40 -0
  379. package/dist/materialx/procedural-graph.d.ts.map +1 -0
  380. package/dist/materialx/procedural-graph.js +59 -0
  381. package/dist/materialx/procedural-graph.js.map +1 -0
  382. package/dist/materialx-loader-types.cjs +57 -0
  383. package/dist/materialx-loader-types.cjs.map +7 -0
  384. package/dist/materialx-loader-types.d.ts +34 -0
  385. package/dist/materialx-loader-types.d.ts.map +1 -0
  386. package/dist/materialx-loader-types.js +20 -0
  387. package/dist/materialx-loader-types.js.map +1 -0
  388. package/dist/materialx-loader.cjs +40 -0
  389. package/dist/materialx-loader.cjs.map +7 -0
  390. package/dist/materialx-loader.d.ts +19 -0
  391. package/dist/materialx-loader.d.ts.map +1 -0
  392. package/dist/materialx-loader.js +14 -0
  393. package/dist/materialx-loader.js.map +1 -0
  394. package/dist/mtl-loader-types.cjs +64 -0
  395. package/dist/mtl-loader-types.cjs.map +7 -0
  396. package/dist/mtl-loader-types.d.ts +2 -0
  397. package/dist/mtl-loader-types.d.ts.map +1 -0
  398. package/dist/mtl-loader-types.js +2 -0
  399. package/dist/mtl-loader-types.js.map +1 -0
  400. package/dist/mtl-loader.cjs +47 -0
  401. package/dist/mtl-loader.cjs.map +7 -0
  402. package/dist/mtl-loader.d.ts +2 -0
  403. package/dist/mtl-loader.d.ts.map +1 -0
  404. package/dist/mtl-loader.js +2 -0
  405. package/dist/mtl-loader.js.map +1 -0
  406. package/dist/obj/mtl-loader-types.cjs +2 -2
  407. package/dist/obj/mtl-loader-types.cjs.map +2 -2
  408. package/dist/obj/mtl-loader-types.d.ts +2 -2
  409. package/dist/obj/mtl-loader-types.js +2 -2
  410. package/dist/obj/mtl-loader-types.js.map +1 -1
  411. package/dist/obj/mtl-loader.cjs +1 -1
  412. package/dist/obj/mtl-loader.cjs.map +2 -2
  413. package/dist/obj/mtl-loader.js +1 -1
  414. package/dist/obj/mtl-loader.js.map +1 -1
  415. package/dist/obj/obj-loader-types.cjs +2 -2
  416. package/dist/obj/obj-loader-types.cjs.map +2 -2
  417. package/dist/obj/obj-loader-types.js +2 -2
  418. package/dist/obj/obj-loader-types.js.map +1 -1
  419. package/dist/obj/obj-writer.cjs +1 -1
  420. package/dist/obj/obj-writer.js +1 -1
  421. package/dist/obj-loader-types.cjs +71 -0
  422. package/dist/obj-loader-types.cjs.map +7 -0
  423. package/dist/obj-loader-types.d.ts +2 -0
  424. package/dist/obj-loader-types.d.ts.map +1 -0
  425. package/dist/obj-loader-types.js +2 -0
  426. package/dist/obj-loader-types.js.map +1 -0
  427. package/dist/obj-loader.cjs +163 -0
  428. package/dist/obj-loader.cjs.map +7 -0
  429. package/dist/obj-loader.d.ts +2 -0
  430. package/dist/obj-loader.d.ts.map +1 -0
  431. package/dist/obj-loader.js +2 -0
  432. package/dist/obj-loader.js.map +1 -0
  433. package/dist/obj-worker.js +586 -117
  434. package/dist/obj-writer.cjs +167 -0
  435. package/dist/obj-writer.cjs.map +7 -0
  436. package/dist/obj-writer.d.ts +2 -0
  437. package/dist/obj-writer.d.ts.map +1 -0
  438. package/dist/obj-writer.js +2 -0
  439. package/dist/obj-writer.js.map +1 -0
  440. package/dist/usd/usd-loader-types.cjs +2 -2
  441. package/dist/usd/usd-loader-types.cjs.map +2 -2
  442. package/dist/usd/usd-loader-types.js +2 -2
  443. package/dist/usd/usd-loader-types.js.map +1 -1
  444. package/dist/usd-loader-types.cjs +69 -0
  445. package/dist/usd-loader-types.cjs.map +7 -0
  446. package/dist/usd-loader-types.d.ts +2 -0
  447. package/dist/usd-loader-types.d.ts.map +1 -0
  448. package/dist/usd-loader-types.js +2 -0
  449. package/dist/usd-loader-types.js.map +1 -0
  450. package/dist/usd-loader.cjs +43 -0
  451. package/dist/usd-loader.cjs.map +7 -0
  452. package/dist/usd-loader.d.ts +2 -0
  453. package/dist/usd-loader.d.ts.map +1 -0
  454. package/dist/usd-loader.js +2 -0
  455. package/dist/usd-loader.js.map +1 -0
  456. package/package.json +136 -71
  457. package/src/draco/bundled.ts +10 -0
  458. package/src/draco/draco-format.ts +20 -0
  459. package/src/draco/draco-javascript-loader-with-parser.ts +26 -0
  460. package/src/draco/draco-libraries.ts +35 -0
  461. package/src/draco/draco-library-options.ts +76 -0
  462. package/src/draco/draco-loader-options.ts +33 -0
  463. package/src/draco/draco-loader-types.ts +78 -0
  464. package/src/draco/draco-loader.ts +45 -0
  465. package/src/draco/draco-wasm-loader-with-parser.ts +31 -0
  466. package/src/draco/draco-writer.ts +252 -0
  467. package/src/draco/draco3d/draco3d-types.ts +498 -0
  468. package/src/draco/draco3d-loader-with-parser.ts +34 -0
  469. package/src/draco/index.ts +46 -0
  470. package/src/draco/lib/draco-builder.ts +935 -0
  471. package/src/draco/lib/draco-library-loader.ts +38 -0
  472. package/src/draco/lib/draco-module-loader.ts +370 -0
  473. package/src/draco/lib/draco-parser.ts +776 -0
  474. package/src/draco/lib/draco-types.ts +72 -0
  475. package/src/draco/lib/parse-draco.ts +51 -0
  476. package/src/draco/lib/utils/get-draco-schema.ts +65 -0
  477. package/src/draco/lib/utils/version.ts +8 -0
  478. package/src/draco/libs/DRACO-LICENSE +252 -0
  479. package/src/draco/libs/README.md +20 -0
  480. package/src/draco/libs/draco_decoder.js +34 -0
  481. package/src/draco/libs/draco_decoder.wasm +0 -0
  482. package/src/draco/libs/draco_decoder_gltf.wasm +0 -0
  483. package/src/draco/libs/draco_encoder.js +98 -0
  484. package/src/draco/libs/draco_encoder.wasm +0 -0
  485. package/src/draco/libs/draco_wasm_wrapper.js +117 -0
  486. package/src/draco/libs/draco_wasm_wrapper_gltf.js +116 -0
  487. package/src/draco/unbundled.ts +6 -0
  488. package/src/draco/workers/draco-worker-node.ts +10 -0
  489. package/src/draco/workers/draco-worker.ts +8 -0
  490. package/src/draco/workers/draco-writer-worker-node.cjs +21 -0
  491. package/src/draco/workers/draco-writer-worker-node.ts +13 -0
  492. package/src/draco/workers/draco-writer-worker.ts +11 -0
  493. package/src/draco-javascript-loader.ts +2 -0
  494. package/src/draco-library-options.ts +6 -0
  495. package/src/draco-loader-types.ts +2 -0
  496. package/src/draco-loader.ts +2 -0
  497. package/src/draco-wasm-loader.ts +2 -0
  498. package/src/draco-writer.ts +2 -0
  499. package/src/draco3d-loader.ts +2 -0
  500. package/src/glb-loader-types.ts +1 -0
  501. package/src/glb-loader.ts +1 -0
  502. package/src/glb-writer.ts +1 -0
  503. package/src/gltf/glb-loader-types.ts +1 -1
  504. package/src/gltf/gltf-loader-types.ts +11 -5
  505. package/src/gltf/gltf-loader.ts +4 -4
  506. package/src/gltf/index.ts +4 -1
  507. package/src/gltf/lib/api/gltf-extensions.ts +7 -2
  508. package/src/gltf/lib/encoders/encode-gltf-draco.ts +2 -2
  509. package/src/gltf/lib/extensions/EXT_texture_webp.ts +3 -0
  510. package/src/gltf/lib/extensions/KHR_accessor_float64.ts +22 -0
  511. package/src/gltf/lib/extensions/KHR_draco_mesh_compression.ts +2 -1
  512. package/src/gltf/lib/extensions/KHR_gaussian_splatting.ts +17 -3
  513. package/src/gltf/lib/extensions/MSFT_texture_dds.ts +52 -0
  514. package/src/gltf/lib/extensions/utils/3d-tiles-utils.ts +5 -1
  515. package/src/gltf/lib/parsers/parse-gltf.ts +34 -5
  516. package/src/gltf/lib/types/gltf-ext-gaussian-splatting-schema.ts +1 -1
  517. package/src/gltf/lib/types/gltf-texture-procedurals.ts +67 -0
  518. package/src/gltf/lib/types/gltf-types.ts +8 -0
  519. package/src/gltf/lib/types/gltf-zod-schema.ts +5 -0
  520. package/src/gltf/schema.ts +1 -0
  521. package/src/gltf-loader-types.ts +1 -0
  522. package/src/gltf-loader.ts +1 -0
  523. package/src/gltf-source.ts +1 -0
  524. package/src/gltf-writer.ts +1 -0
  525. package/src/index.ts +8 -0
  526. package/src/materialx/README.md +5 -0
  527. package/src/materialx/parse-materialx.ts +70 -0
  528. package/src/materialx/procedural-graph.ts +94 -0
  529. package/src/materialx-loader-types.ts +24 -0
  530. package/src/materialx-loader.ts +15 -0
  531. package/src/mtl-loader-types.ts +1 -0
  532. package/src/mtl-loader.ts +1 -0
  533. package/src/obj/mtl-loader-types.ts +1 -1
  534. package/src/obj/mtl-loader.ts +1 -1
  535. package/src/obj/obj-loader-types.ts +1 -1
  536. package/src/obj-loader-types.ts +1 -0
  537. package/src/obj-loader.ts +1 -0
  538. package/src/obj-writer.ts +1 -0
  539. package/src/usd/usd-loader-types.ts +1 -1
  540. package/src/usd-loader-types.ts +1 -0
  541. package/src/usd-loader.ts +1 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/gltf/lib/extensions/utils/3d-tiles-utils.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/**\n * loaders.gl, MIT license\n *\n * Shared code for 3DTiles extensions:\n * * EXT_feature_metadata\n * * EXT_mesh_features\n * * EXT_structural_metadata\n */\n\nimport type {GLTFTextureInfoMetadata, GLTFMeshPrimitive} from '../../types/gltf-json-schema';\nimport type {BigTypedArray, TypedArray} from '@loaders.gl/core/schema';\nimport type {ImageType} from '@loaders.gl/images';\n\nimport {GLTFScenegraph} from '../../api/gltf-scenegraph';\nimport {GLTFIterator} from '../../api/gltf-iterator';\nimport {getComponentTypeFromArray} from '../../gltf-utils/gltf-utils';\nimport {getImageData} from '@loaders.gl/images';\nimport {ensureArrayBuffer} from '@loaders.gl/core/loader-utils';\n\nfunction emod(n: number): number {\n return ((n % 1) + 1) % 1;\n}\n\nexport type NumericComponentType =\n | 'INT8'\n | 'UINT8'\n | 'INT16'\n | 'UINT16'\n | 'INT32'\n | 'UINT32'\n | 'INT64'\n | 'UINT64'\n | 'FLOAT32'\n | 'FLOAT64';\n\nconst ATTRIBUTE_TYPE_TO_COMPONENTS = {\n SCALAR: 1,\n VEC2: 2,\n VEC3: 3,\n VEC4: 4,\n MAT2: 4,\n MAT3: 9,\n MAT4: 16,\n BOOLEAN: 1,\n STRING: 1,\n ENUM: 1\n};\n\nconst ATTRIBUTE_COMPONENT_TYPE_TO_ARRAY = {\n INT8: Int8Array,\n UINT8: Uint8Array,\n INT16: Int16Array,\n UINT16: Uint16Array,\n INT32: Int32Array,\n UINT32: Uint32Array,\n INT64: BigInt64Array,\n UINT64: BigUint64Array,\n FLOAT32: Float32Array,\n FLOAT64: Float64Array\n};\n\nconst ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE = {\n INT8: 1,\n UINT8: 1,\n INT16: 2,\n UINT16: 2,\n INT32: 4,\n UINT32: 4,\n INT64: 8,\n UINT64: 8,\n FLOAT32: 4,\n FLOAT64: 8\n};\n\nexport function getArrayElementByteSize(attributeType, componentType): number {\n return (\n ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE[componentType] *\n ATTRIBUTE_TYPE_TO_COMPONENTS[attributeType]\n );\n}\n\n/**\n * Gets offset array from `arrayOffsets` or `stringOffsets`.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param bufferViewIndex - Buffer view index\n * @param offsetType - The type of values in `arrayOffsets` or `stringOffsets`.\n * @param numberOfElements - The number of elements in each property array.\n * @returns Array of values offsets. The number of offsets in the array is equal to `numberOfElements` plus one.\n */\nexport function getOffsetsForProperty(\n scenegraph: GLTFScenegraph | GLTFIterator,\n bufferViewIndex: number,\n offsetType: 'UINT8' | 'UINT16' | 'UINT32' | 'UINT64' | string,\n numberOfElements: number\n): TypedArray | null {\n if (\n offsetType !== 'UINT8' &&\n offsetType !== 'UINT16' &&\n offsetType !== 'UINT32' &&\n offsetType !== 'UINT64'\n ) {\n return null;\n }\n const arrayOffsetsBytes = scenegraph.getTypedArrayForBufferView(bufferViewIndex);\n const arrayOffsets = convertRawBufferToMetadataArray(\n arrayOffsetsBytes,\n 'SCALAR', // offsets consist of ONE component\n offsetType,\n numberOfElements + 1 // The number of offsets is equal to the property table `count` plus one.\n );\n\n if (arrayOffsets instanceof BigInt64Array || arrayOffsets instanceof BigUint64Array) {\n const numericOffsets = new Float64Array(arrayOffsets.length);\n const maximumSafeOffset = BigInt(Number.MAX_SAFE_INTEGER);\n for (let index = 0; index < arrayOffsets.length; index++) {\n const offset = arrayOffsets[index];\n if (offset < 0n || offset > maximumSafeOffset) {\n throw new Error('EXT_structural_metadata: UINT64 offset exceeds the safe integer range');\n }\n numericOffsets[index] = Number(offset);\n }\n return numericOffsets;\n }\n return arrayOffsets;\n}\n\n/**\n * Converts raw bytes that are in the buffer to an array of the type defined by the schema.\n * @param data - Raw bytes in the buffer.\n * @param attributeType - SCALAR, VECN, MATN.\n * @param componentType - Type of the component in elements, e.g. 'UINT8' or 'FLOAT32'.\n * @param elementCount - Number of elements in the array. Default value is 1.\n * @returns Data array\n */\nexport function convertRawBufferToMetadataArray(\n data: Uint8Array,\n attributeType: string,\n componentType: NumericComponentType,\n elementCount: number = 1\n): BigTypedArray {\n const numberOfComponents = ATTRIBUTE_TYPE_TO_COMPONENTS[attributeType];\n const ArrayType = ATTRIBUTE_COMPONENT_TYPE_TO_ARRAY[componentType];\n const size = ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE[componentType];\n const length = elementCount * numberOfComponents;\n const byteLength = length * size;\n let buffer = data.buffer;\n let offset = data.byteOffset;\n if (offset % size !== 0) {\n const bufferArray = new Uint8Array(buffer);\n buffer = bufferArray.slice(offset, offset + byteLength).buffer;\n offset = 0;\n }\n return new ArrayType(ensureArrayBuffer(buffer), offset, length);\n}\n\n/**\n * Processes data encoded in the texture associated with the primitive.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param textureInfo - Reference to the texture where extension data are stored.\n * @param primitive - Primitive object in the mesh.\n * @returns Array of data taken. Null if data can't be taken from the texture.\n */\nexport function getPrimitiveTextureData(\n scenegraph: GLTFScenegraph | GLTFIterator,\n textureInfo: GLTFTextureInfoMetadata,\n primitive: GLTFMeshPrimitive\n): number[] {\n /*\n texture.index is an index for the \"textures\" array.\n The texture object referenced by this index looks like this:\n {\n \"sampler\": 0,\n \"source\": 0\n }\n \"sampler\" is an index for the \"samplers\" array\n \"source\" is an index for the \"images\" array that contains data stored in rgba channels of the image.\n\n texture.texCoord is a number-suffix (like 1) for an attribute like \"TEXCOORD_1\" in meshes.primitives\n The value of \"TEXCOORD_1\" is an accessor that is used to get coordinates.\n These coordinates are being used to get data from the image.\n\n Default for texture.texCoord is 0\n @see https://github.com/CesiumGS/glTF/blob/3d-tiles-next/specification/2.0/schema/textureInfo.schema.json\n */\n const texCoordAccessorKey = `TEXCOORD_${textureInfo.texCoord || 0}`;\n const texCoordAccessorIndex = primitive.attributes[texCoordAccessorKey];\n const textureCoordinates: TypedArray = scenegraph.getTypedArrayForAccessor(texCoordAccessorIndex);\n\n const json = scenegraph.gltf.json;\n const textureIndex: number = textureInfo.index;\n const imageIndex = json.textures?.[textureIndex]?.source;\n if (typeof imageIndex !== 'undefined') {\n const mimeType = json.images?.[imageIndex]?.mimeType;\n const parsedImage = scenegraph.gltf.images?.[imageIndex];\n // Checking for width is to prevent handling Un-processed images (e.g. [analyze] stage, where loadImages option is set to false)\n if (parsedImage && typeof parsedImage.width !== 'undefined') {\n const textureData: number[] = [];\n for (let index = 0; index < textureCoordinates.length; index += 2) {\n const value = getImageValueByCoordinates(\n parsedImage,\n mimeType,\n textureCoordinates,\n index,\n textureInfo.channels\n );\n textureData.push(value);\n }\n return textureData;\n }\n }\n return [];\n}\n\n/**\n * Puts property data to attributes.\n * It creates corresponding buffer, bufferView and accessor\n * so the data can be accessed like regular data stored in buffers.\n * @param scenegraph - Scenegraph object.\n * @param attributeName - Name of the attribute.\n * @param propertyData - Property data to store.\n * @param featureTable - Array where unique data from the property data are being stored.\n * @param primitive - Primitive object.\n */\nexport function primitivePropertyDataToAttributes(\n scenegraph: GLTFScenegraph | GLTFIterator,\n attributeName: string,\n propertyData: number[],\n featureTable: number[],\n primitive: GLTFMeshPrimitive\n): void {\n // No reason to create an empty buffer if there is no property data to store.\n if (!propertyData?.length) {\n return;\n }\n /*\n featureTable will contain unique values, e.g.\n propertyData = [24, 35, 28, 24]\n featureTable = [24, 35, 28]\n featureIndices will contain indices that refer featureTextureTable, e.g.\n featureIndices = [0, 1, 2, 0]\n */\n const featureIndices: number[] = [];\n for (const texelData of propertyData) {\n let index = featureTable.findIndex(item => item === texelData);\n if (index === -1) {\n index = featureTable.push(texelData) - 1;\n }\n featureIndices.push(index);\n }\n const typedArray = new Uint32Array(featureIndices);\n const iterator =\n scenegraph instanceof GLTFIterator ? scenegraph : new GLTFIterator(scenegraph.gltf);\n const bufferIndex = iterator.addBuffer(typedArray);\n const bufferViewIndex = iterator.addBufferView(bufferIndex, typedArray.byteLength);\n const accessorIndex = iterator.addAccessor(bufferViewIndex, {\n size: 1,\n componentType: getComponentTypeFromArray(typedArray),\n count: typedArray.length\n });\n primitive.attributes[attributeName] = accessorIndex;\n}\n\n/**\n * Gets the value from the texture by coordinates provided.\n * @param parsedImage - Image where the data are stored.\n * @param mimeType - MIME type.\n * @param textureCoordinates - uv coordinates to access data in the image.\n * @param index - Index of uv coordinates in the array textureCoordinates.\n * @param channels - Image channels where data are stored.\n * Channels of an RGBA texture are numbered 0..3 respectively.\n * For Ext_mesh_features and EXT_strucural_metadata the channels default is [0]\n * @see https://github.com/CesiumGS/glTF/blob/3d-tiles-next/extensions/2.0/Vendor/EXT_mesh_features/schema/featureIdTexture.schema.json\n * @see https://github.com/CesiumGS/glTF/blob/3d-tiles-next/extensions/2.0/Vendor/EXT_structural_metadata/schema/propertyTexture.property.schema.json\n * @returns Value taken from the image.\n */\nfunction getImageValueByCoordinates(\n parsedImage: ImageType,\n mimeType: string | undefined,\n textureCoordinates: TypedArray,\n index: number,\n channels: number[] | string = [0]\n) {\n const CHANNELS_MAP = {\n r: {offset: 0, shift: 0},\n g: {offset: 1, shift: 8},\n b: {offset: 2, shift: 16},\n a: {offset: 3, shift: 24}\n };\n\n const u = textureCoordinates[index];\n const v = textureCoordinates[index + 1];\n\n let components = 1;\n if (mimeType && (mimeType.indexOf('image/jpeg') !== -1 || mimeType.indexOf('image/png') !== -1))\n components = 4;\n const offset = coordinatesToOffset(u, v, parsedImage, components);\n let value: number = 0;\n for (const c of channels) {\n /*\n According to the EXT_feature_metadata extension specification:\n Channels are labeled by rgba and are swizzled with a string of 1-4 characters.\n According to the EXT_mesh_features extension specification:\n The channels array contains non-negative integer values corresponding to channels of the source texture that the feature ID consists of.\n Channels of an RGBA texture are numbered 0\u20133 respectively.\n Function getImageValueByCoordinates is used to process both extensions.\n So, there should be possible to get the element of CHANNELS_MAP by either index (0, 1, 2, 3) or key (r, g, b, a).\n */\n const map = typeof c === 'number' ? Object.values(CHANNELS_MAP)[c] : CHANNELS_MAP[c];\n const imageOffset = offset + map.offset;\n const imageData = getImageData(parsedImage);\n if (imageData.data.length <= imageOffset) {\n throw new Error(`${imageData.data.length} <= ${imageOffset}`);\n }\n const imageValue = imageData.data[imageOffset];\n value |= imageValue << map.shift;\n }\n return value;\n}\n\n/**\n * Retrieves the offset in the image where the data are stored.\n * @param u - u-coordinate.\n * @param v - v-coordinate.\n * @param parsedImage - Image where the data are stored.\n * @param componentsCount - Number of components the data consists of.\n * @returns Offset in the image where the data are stored.\n */\nfunction coordinatesToOffset(\n u: number,\n v: number,\n parsedImage: any,\n componentsCount: number = 1\n): number {\n const w = parsedImage.width;\n const iX = emod(u) * (w - 1);\n const indX = Math.round(iX);\n\n const h = parsedImage.height;\n const iY = emod(v) * (h - 1);\n const indY = Math.round(iY);\n const components = parsedImage.components ? parsedImage.components : componentsCount;\n // components is a number of channels in the image\n const offset = (indY * w + indX) * components;\n return offset;\n}\n\n/**\n * Parses variable-length array data.\n * In this case every value of the property in the table will be an array\n * of arbitrary length.\n * @param valuesData - Values in a flat typed array.\n * @param numberOfElements - Number of rows in the property table.\n * @param arrayOffsets - Offsets of nested arrays in the flat values array.\n * @param componentCount - Number of scalar components in each value.\n * @returns Array of typed arrays.\n */\nexport function parseVariableLengthArrayNumeric(\n valuesData: BigTypedArray,\n numberOfElements: number,\n arrayOffsets: TypedArray,\n componentCount = 1\n): BigTypedArray[] {\n const attributeValueArray: BigTypedArray[] = [];\n for (let index = 0; index < numberOfElements; index++) {\n const arrayOffset = Number(arrayOffsets[index]);\n const arrayLength = Number(arrayOffsets[index + 1]) - arrayOffset;\n if (\n !Number.isInteger(arrayOffset) ||\n !Number.isInteger(arrayLength) ||\n arrayOffset < 0 ||\n arrayLength < 0 ||\n (arrayOffset + arrayLength) * componentCount > valuesData.length\n ) {\n break;\n }\n const componentOffset = arrayOffset * componentCount;\n const componentLength = arrayLength * componentCount;\n attributeValueArray.push(valuesData.slice(componentOffset, componentOffset + componentLength));\n }\n return attributeValueArray;\n}\n\n/**\n * Parses fixed-length array data.\n * In this case every value of the property in the table will be an array\n * of constant length equal to `arrayCount`.\n * @param valuesData - Values in a flat typed array.\n * @param numberOfElements - Number of rows in the property table.\n * @param arrayCount - Nested arrays length.\n * @param componentCount - Number of scalar components in each array element.\n * @returns Array of typed arrays.\n */\nexport function parseFixedLengthArrayNumeric(\n valuesData: BigTypedArray,\n numberOfElements: number,\n arrayCount: number,\n componentCount = 1\n): BigTypedArray[] {\n const attributeValueArray: BigTypedArray[] = [];\n const rowComponentCount = arrayCount * componentCount;\n for (let index = 0; index < numberOfElements; index++) {\n const elementOffset = index * rowComponentCount;\n attributeValueArray.push(valuesData.slice(elementOffset, elementOffset + rowComponentCount));\n }\n return attributeValueArray;\n}\n\n/**\n * Decodes properties of string type from binary source.\n * @param numberOfElements - The number of elements in each property array that propertyTableProperty contains. It's a number of rows in the table.\n * @param valuesDataBytes - Data taken from values property of the property table property.\n * @param arrayOffsets - Offsets for variable-length arrays. It's null for fixed-length arrays or scalar types.\n * @param stringOffsets - Index of the buffer view containing offsets for strings. It should be available for string type.\n * @param fixedArrayCount - Number of strings in each fixed-length array row.\n * @returns String property values\n */\nexport function getPropertyDataString(\n numberOfElements: number,\n valuesDataBytes: Uint8Array,\n arrayOffsets: TypedArray | null,\n stringOffsets: TypedArray | null,\n fixedArrayCount?: number\n): string[] | string[][] {\n const textDecoder = new TextDecoder('utf8');\n\n // Variable-length string array (arrayOffsets + stringOffsets)\n // See: https://github.com/CesiumGS/3d-tiles/tree/main/specification/Metadata#strings\n if (arrayOffsets) {\n if (!stringOffsets) {\n throw new Error('stringOffsets is required for variable-length string arrays');\n }\n\n const result: string[][] = [];\n for (let featureId = 0; featureId < numberOfElements; featureId++) {\n const startStringIndex = arrayOffsets[featureId];\n const endStringIndex = arrayOffsets[featureId + 1];\n const strings: string[] = [];\n\n for (let stringIndex = startStringIndex; stringIndex < endStringIndex; stringIndex++) {\n const startByte = stringOffsets[stringIndex];\n const endByte = stringOffsets[stringIndex + 1];\n const stringData = valuesDataBytes.subarray(startByte, endByte);\n strings.push(textDecoder.decode(stringData));\n }\n\n result.push(strings);\n }\n return result;\n }\n\n // Simple strings (stringOffsets only)\n if (stringOffsets) {\n const stringsArray: string[] = [];\n const stringCount = numberOfElements * (fixedArrayCount || 1);\n for (let index = 0; index < stringCount; index++) {\n const startByte = Number(stringOffsets[index]);\n const endByte = Number(stringOffsets[index + 1]);\n if (startByte >= 0 && endByte >= startByte && endByte <= valuesDataBytes.length) {\n stringsArray.push(textDecoder.decode(valuesDataBytes.subarray(startByte, endByte)));\n }\n }\n return fixedArrayCount\n ? Array.from({length: numberOfElements}, (_unused, rowIndex) =>\n stringsArray.slice(rowIndex * fixedArrayCount, (rowIndex + 1) * fixedArrayCount)\n )\n : stringsArray;\n }\n return [];\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/**\n * loaders.gl, MIT license\n *\n * Shared code for 3DTiles extensions:\n * * EXT_feature_metadata\n * * EXT_mesh_features\n * * EXT_structural_metadata\n */\n\nimport type {GLTFTextureInfoMetadata, GLTFMeshPrimitive} from '../../types/gltf-json-schema';\nimport type {BigTypedArray, TypedArray} from '@loaders.gl/core/schema';\nimport type {ImageType} from '@loaders.gl/images';\n\nimport {GLTFScenegraph} from '../../api/gltf-scenegraph';\nimport {GLTFIterator} from '../../api/gltf-iterator';\nimport {getComponentTypeFromArray} from '../../gltf-utils/gltf-utils';\nimport {getImageData} from '@loaders.gl/images';\nimport {ensureArrayBuffer} from '@loaders.gl/core/loader-utils';\n\nfunction emod(n: number): number {\n return ((n % 1) + 1) % 1;\n}\n\nexport type NumericComponentType =\n | 'INT8'\n | 'UINT8'\n | 'INT16'\n | 'UINT16'\n | 'INT32'\n | 'UINT32'\n | 'INT64'\n | 'UINT64'\n | 'FLOAT32'\n | 'FLOAT64';\n\nconst ATTRIBUTE_TYPE_TO_COMPONENTS = {\n SCALAR: 1,\n VEC2: 2,\n VEC3: 3,\n VEC4: 4,\n MAT2: 4,\n MAT3: 9,\n MAT4: 16,\n BOOLEAN: 1,\n STRING: 1,\n ENUM: 1\n};\n\nconst ATTRIBUTE_COMPONENT_TYPE_TO_ARRAY = {\n INT8: Int8Array,\n UINT8: Uint8Array,\n INT16: Int16Array,\n UINT16: Uint16Array,\n INT32: Int32Array,\n UINT32: Uint32Array,\n INT64: BigInt64Array,\n UINT64: BigUint64Array,\n FLOAT32: Float32Array,\n FLOAT64: Float64Array\n};\n\nconst ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE = {\n INT8: 1,\n UINT8: 1,\n INT16: 2,\n UINT16: 2,\n INT32: 4,\n UINT32: 4,\n INT64: 8,\n UINT64: 8,\n FLOAT32: 4,\n FLOAT64: 8\n};\n\nexport function getArrayElementByteSize(attributeType, componentType): number {\n return (\n ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE[componentType] *\n ATTRIBUTE_TYPE_TO_COMPONENTS[attributeType]\n );\n}\n\n/**\n * Gets offset array from `arrayOffsets` or `stringOffsets`.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param bufferViewIndex - Buffer view index\n * @param offsetType - The type of values in `arrayOffsets` or `stringOffsets`.\n * @param numberOfElements - The number of elements in each property array.\n * @returns Array of values offsets. The number of offsets in the array is equal to `numberOfElements` plus one.\n */\nexport function getOffsetsForProperty(\n scenegraph: GLTFScenegraph | GLTFIterator,\n bufferViewIndex: number,\n offsetType: 'UINT8' | 'UINT16' | 'UINT32' | 'UINT64' | string,\n numberOfElements: number\n): TypedArray | null {\n if (\n offsetType !== 'UINT8' &&\n offsetType !== 'UINT16' &&\n offsetType !== 'UINT32' &&\n offsetType !== 'UINT64'\n ) {\n return null;\n }\n const arrayOffsetsBytes = scenegraph.getTypedArrayForBufferView(bufferViewIndex);\n const arrayOffsets = convertRawBufferToMetadataArray(\n arrayOffsetsBytes,\n 'SCALAR', // offsets consist of ONE component\n offsetType,\n numberOfElements + 1 // The number of offsets is equal to the property table `count` plus one.\n );\n\n if (arrayOffsets instanceof BigInt64Array || arrayOffsets instanceof BigUint64Array) {\n const numericOffsets = new Float64Array(arrayOffsets.length);\n const maximumSafeOffset = BigInt(Number.MAX_SAFE_INTEGER);\n for (let index = 0; index < arrayOffsets.length; index++) {\n const offset = arrayOffsets[index];\n if (offset < 0n || offset > maximumSafeOffset) {\n throw new Error('EXT_structural_metadata: UINT64 offset exceeds the safe integer range');\n }\n numericOffsets[index] = Number(offset);\n }\n return numericOffsets;\n }\n return arrayOffsets;\n}\n\n/**\n * Converts raw bytes that are in the buffer to an array of the type defined by the schema.\n * @param data - Raw bytes in the buffer.\n * @param attributeType - SCALAR, VECN, MATN.\n * @param componentType - Type of the component in elements, e.g. 'UINT8' or 'FLOAT32'.\n * @param elementCount - Number of elements in the array. Default value is 1.\n * @returns Data array\n */\nexport function convertRawBufferToMetadataArray(\n data: Uint8Array,\n attributeType: string,\n componentType: NumericComponentType,\n elementCount: number = 1\n): BigTypedArray {\n const numberOfComponents = ATTRIBUTE_TYPE_TO_COMPONENTS[attributeType];\n const ArrayType = ATTRIBUTE_COMPONENT_TYPE_TO_ARRAY[componentType];\n const size = ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE[componentType];\n const length = elementCount * numberOfComponents;\n const byteLength = length * size;\n let buffer = data.buffer;\n let offset = data.byteOffset;\n if (offset % size !== 0) {\n const bufferArray = new Uint8Array(buffer);\n buffer = bufferArray.slice(offset, offset + byteLength).buffer;\n offset = 0;\n }\n return new ArrayType(ensureArrayBuffer(buffer), offset, length);\n}\n\n/**\n * Processes data encoded in the texture associated with the primitive.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param textureInfo - Reference to the texture where extension data are stored.\n * @param primitive - Primitive object in the mesh.\n * @returns Array of data taken. Null if data can't be taken from the texture.\n */\nexport function getPrimitiveTextureData(\n scenegraph: GLTFScenegraph | GLTFIterator,\n textureInfo: GLTFTextureInfoMetadata,\n primitive: GLTFMeshPrimitive\n): number[] {\n /*\n texture.index is an index for the \"textures\" array.\n The texture object referenced by this index looks like this:\n {\n \"sampler\": 0,\n \"source\": 0\n }\n \"sampler\" is an index for the \"samplers\" array\n \"source\" is an index for the \"images\" array that contains data stored in rgba channels of the image.\n\n texture.texCoord is a number-suffix (like 1) for an attribute like \"TEXCOORD_1\" in meshes.primitives\n The value of \"TEXCOORD_1\" is an accessor that is used to get coordinates.\n These coordinates are being used to get data from the image.\n\n Default for texture.texCoord is 0\n @see https://github.com/CesiumGS/glTF/blob/3d-tiles-next/specification/2.0/schema/textureInfo.schema.json\n */\n const texCoordAccessorKey = `TEXCOORD_${textureInfo.texCoord || 0}`;\n const texCoordAccessorIndex = primitive.attributes[texCoordAccessorKey];\n const textureCoordinates: TypedArray = scenegraph.getTypedArrayForAccessor(texCoordAccessorIndex);\n\n const json = scenegraph.gltf.json;\n const textureIndex: number = textureInfo.index;\n const imageIndex = json.textures?.[textureIndex]?.source;\n if (typeof imageIndex !== 'undefined') {\n const mimeType = json.images?.[imageIndex]?.mimeType;\n const parsedImage = scenegraph.gltf.images?.[imageIndex];\n // Checking for width is to prevent handling Un-processed images (e.g. [analyze] stage, where loadImages option is set to false)\n if (\n parsedImage &&\n typeof parsedImage.width !== 'undefined' &&\n !('compressed' in parsedImage && parsedImage.compressed)\n ) {\n const textureData: number[] = [];\n for (let index = 0; index < textureCoordinates.length; index += 2) {\n const value = getImageValueByCoordinates(\n parsedImage,\n mimeType,\n textureCoordinates,\n index,\n textureInfo.channels\n );\n textureData.push(value);\n }\n return textureData;\n }\n }\n return [];\n}\n\n/**\n * Puts property data to attributes.\n * It creates corresponding buffer, bufferView and accessor\n * so the data can be accessed like regular data stored in buffers.\n * @param scenegraph - Scenegraph object.\n * @param attributeName - Name of the attribute.\n * @param propertyData - Property data to store.\n * @param featureTable - Array where unique data from the property data are being stored.\n * @param primitive - Primitive object.\n */\nexport function primitivePropertyDataToAttributes(\n scenegraph: GLTFScenegraph | GLTFIterator,\n attributeName: string,\n propertyData: number[],\n featureTable: number[],\n primitive: GLTFMeshPrimitive\n): void {\n // No reason to create an empty buffer if there is no property data to store.\n if (!propertyData?.length) {\n return;\n }\n /*\n featureTable will contain unique values, e.g.\n propertyData = [24, 35, 28, 24]\n featureTable = [24, 35, 28]\n featureIndices will contain indices that refer featureTextureTable, e.g.\n featureIndices = [0, 1, 2, 0]\n */\n const featureIndices: number[] = [];\n for (const texelData of propertyData) {\n let index = featureTable.findIndex(item => item === texelData);\n if (index === -1) {\n index = featureTable.push(texelData) - 1;\n }\n featureIndices.push(index);\n }\n const typedArray = new Uint32Array(featureIndices);\n const iterator =\n scenegraph instanceof GLTFIterator ? scenegraph : new GLTFIterator(scenegraph.gltf);\n const bufferIndex = iterator.addBuffer(typedArray);\n const bufferViewIndex = iterator.addBufferView(bufferIndex, typedArray.byteLength);\n const accessorIndex = iterator.addAccessor(bufferViewIndex, {\n size: 1,\n componentType: getComponentTypeFromArray(typedArray),\n count: typedArray.length\n });\n primitive.attributes[attributeName] = accessorIndex;\n}\n\n/**\n * Gets the value from the texture by coordinates provided.\n * @param parsedImage - Image where the data are stored.\n * @param mimeType - MIME type.\n * @param textureCoordinates - uv coordinates to access data in the image.\n * @param index - Index of uv coordinates in the array textureCoordinates.\n * @param channels - Image channels where data are stored.\n * Channels of an RGBA texture are numbered 0..3 respectively.\n * For Ext_mesh_features and EXT_strucural_metadata the channels default is [0]\n * @see https://github.com/CesiumGS/glTF/blob/3d-tiles-next/extensions/2.0/Vendor/EXT_mesh_features/schema/featureIdTexture.schema.json\n * @see https://github.com/CesiumGS/glTF/blob/3d-tiles-next/extensions/2.0/Vendor/EXT_structural_metadata/schema/propertyTexture.property.schema.json\n * @returns Value taken from the image.\n */\nfunction getImageValueByCoordinates(\n parsedImage: ImageType,\n mimeType: string | undefined,\n textureCoordinates: TypedArray,\n index: number,\n channels: number[] | string = [0]\n) {\n const CHANNELS_MAP = {\n r: {offset: 0, shift: 0},\n g: {offset: 1, shift: 8},\n b: {offset: 2, shift: 16},\n a: {offset: 3, shift: 24}\n };\n\n const u = textureCoordinates[index];\n const v = textureCoordinates[index + 1];\n\n let components = 1;\n if (mimeType && (mimeType.indexOf('image/jpeg') !== -1 || mimeType.indexOf('image/png') !== -1))\n components = 4;\n const offset = coordinatesToOffset(u, v, parsedImage, components);\n let value: number = 0;\n for (const c of channels) {\n /*\n According to the EXT_feature_metadata extension specification:\n Channels are labeled by rgba and are swizzled with a string of 1-4 characters.\n According to the EXT_mesh_features extension specification:\n The channels array contains non-negative integer values corresponding to channels of the source texture that the feature ID consists of.\n Channels of an RGBA texture are numbered 0\u20133 respectively.\n Function getImageValueByCoordinates is used to process both extensions.\n So, there should be possible to get the element of CHANNELS_MAP by either index (0, 1, 2, 3) or key (r, g, b, a).\n */\n const map = typeof c === 'number' ? Object.values(CHANNELS_MAP)[c] : CHANNELS_MAP[c];\n const imageOffset = offset + map.offset;\n const imageData = getImageData(parsedImage);\n if (imageData.data.length <= imageOffset) {\n throw new Error(`${imageData.data.length} <= ${imageOffset}`);\n }\n const imageValue = imageData.data[imageOffset];\n value |= imageValue << map.shift;\n }\n return value;\n}\n\n/**\n * Retrieves the offset in the image where the data are stored.\n * @param u - u-coordinate.\n * @param v - v-coordinate.\n * @param parsedImage - Image where the data are stored.\n * @param componentsCount - Number of components the data consists of.\n * @returns Offset in the image where the data are stored.\n */\nfunction coordinatesToOffset(\n u: number,\n v: number,\n parsedImage: any,\n componentsCount: number = 1\n): number {\n const w = parsedImage.width;\n const iX = emod(u) * (w - 1);\n const indX = Math.round(iX);\n\n const h = parsedImage.height;\n const iY = emod(v) * (h - 1);\n const indY = Math.round(iY);\n const components = parsedImage.components ? parsedImage.components : componentsCount;\n // components is a number of channels in the image\n const offset = (indY * w + indX) * components;\n return offset;\n}\n\n/**\n * Parses variable-length array data.\n * In this case every value of the property in the table will be an array\n * of arbitrary length.\n * @param valuesData - Values in a flat typed array.\n * @param numberOfElements - Number of rows in the property table.\n * @param arrayOffsets - Offsets of nested arrays in the flat values array.\n * @param componentCount - Number of scalar components in each value.\n * @returns Array of typed arrays.\n */\nexport function parseVariableLengthArrayNumeric(\n valuesData: BigTypedArray,\n numberOfElements: number,\n arrayOffsets: TypedArray,\n componentCount = 1\n): BigTypedArray[] {\n const attributeValueArray: BigTypedArray[] = [];\n for (let index = 0; index < numberOfElements; index++) {\n const arrayOffset = Number(arrayOffsets[index]);\n const arrayLength = Number(arrayOffsets[index + 1]) - arrayOffset;\n if (\n !Number.isInteger(arrayOffset) ||\n !Number.isInteger(arrayLength) ||\n arrayOffset < 0 ||\n arrayLength < 0 ||\n (arrayOffset + arrayLength) * componentCount > valuesData.length\n ) {\n break;\n }\n const componentOffset = arrayOffset * componentCount;\n const componentLength = arrayLength * componentCount;\n attributeValueArray.push(valuesData.slice(componentOffset, componentOffset + componentLength));\n }\n return attributeValueArray;\n}\n\n/**\n * Parses fixed-length array data.\n * In this case every value of the property in the table will be an array\n * of constant length equal to `arrayCount`.\n * @param valuesData - Values in a flat typed array.\n * @param numberOfElements - Number of rows in the property table.\n * @param arrayCount - Nested arrays length.\n * @param componentCount - Number of scalar components in each array element.\n * @returns Array of typed arrays.\n */\nexport function parseFixedLengthArrayNumeric(\n valuesData: BigTypedArray,\n numberOfElements: number,\n arrayCount: number,\n componentCount = 1\n): BigTypedArray[] {\n const attributeValueArray: BigTypedArray[] = [];\n const rowComponentCount = arrayCount * componentCount;\n for (let index = 0; index < numberOfElements; index++) {\n const elementOffset = index * rowComponentCount;\n attributeValueArray.push(valuesData.slice(elementOffset, elementOffset + rowComponentCount));\n }\n return attributeValueArray;\n}\n\n/**\n * Decodes properties of string type from binary source.\n * @param numberOfElements - The number of elements in each property array that propertyTableProperty contains. It's a number of rows in the table.\n * @param valuesDataBytes - Data taken from values property of the property table property.\n * @param arrayOffsets - Offsets for variable-length arrays. It's null for fixed-length arrays or scalar types.\n * @param stringOffsets - Index of the buffer view containing offsets for strings. It should be available for string type.\n * @param fixedArrayCount - Number of strings in each fixed-length array row.\n * @returns String property values\n */\nexport function getPropertyDataString(\n numberOfElements: number,\n valuesDataBytes: Uint8Array,\n arrayOffsets: TypedArray | null,\n stringOffsets: TypedArray | null,\n fixedArrayCount?: number\n): string[] | string[][] {\n const textDecoder = new TextDecoder('utf8');\n\n // Variable-length string array (arrayOffsets + stringOffsets)\n // See: https://github.com/CesiumGS/3d-tiles/tree/main/specification/Metadata#strings\n if (arrayOffsets) {\n if (!stringOffsets) {\n throw new Error('stringOffsets is required for variable-length string arrays');\n }\n\n const result: string[][] = [];\n for (let featureId = 0; featureId < numberOfElements; featureId++) {\n const startStringIndex = arrayOffsets[featureId];\n const endStringIndex = arrayOffsets[featureId + 1];\n const strings: string[] = [];\n\n for (let stringIndex = startStringIndex; stringIndex < endStringIndex; stringIndex++) {\n const startByte = stringOffsets[stringIndex];\n const endByte = stringOffsets[stringIndex + 1];\n const stringData = valuesDataBytes.subarray(startByte, endByte);\n strings.push(textDecoder.decode(stringData));\n }\n\n result.push(strings);\n }\n return result;\n }\n\n // Simple strings (stringOffsets only)\n if (stringOffsets) {\n const stringsArray: string[] = [];\n const stringCount = numberOfElements * (fixedArrayCount || 1);\n for (let index = 0; index < stringCount; index++) {\n const startByte = Number(stringOffsets[index]);\n const endByte = Number(stringOffsets[index + 1]);\n if (startByte >= 0 && endByte >= startByte && endByte <= valuesDataBytes.length) {\n stringsArray.push(textDecoder.decode(valuesDataBytes.subarray(startByte, endByte)));\n }\n }\n return fixedArrayCount\n ? Array.from({length: numberOfElements}, (_unused, rowIndex) =>\n stringsArray.slice(rowIndex * fixedArrayCount, (rowIndex + 1) * fixedArrayCount)\n )\n : stringsArray;\n }\n return [];\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"3d-tiles-utils.d.ts","sourceRoot":"","sources":["../../../../../src/gltf/lib/extensions/utils/3d-tiles-utils.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAC,uBAAuB,EAAE,iBAAiB,EAAC,wCAAqC;AAC7F,OAAO,KAAK,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAGvE,OAAO,EAAC,cAAc,EAAC,qCAAkC;AACzD,OAAO,EAAC,YAAY,EAAC,mCAAgC;AASrD,MAAM,MAAM,oBAAoB,GAC5B,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAyCd,wBAAgB,uBAAuB,CAAC,aAAa,KAAA,EAAE,aAAa,KAAA,GAAG,MAAM,CAK5E;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,GAAG,YAAY,EACzC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,EAC7D,gBAAgB,EAAE,MAAM,GACvB,UAAU,GAAG,IAAI,CA8BnB;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,oBAAoB,EACnC,YAAY,GAAE,MAAU,GACvB,aAAa,CAcf;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,cAAc,GAAG,YAAY,EACzC,WAAW,EAAE,uBAAuB,EACpC,SAAS,EAAE,iBAAiB,GAC3B,MAAM,EAAE,CA6CV;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,cAAc,GAAG,YAAY,EACzC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,iBAAiB,GAC3B,IAAI,CA+BN;AAsFD;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,aAAa,EACzB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,UAAU,EACxB,cAAc,SAAI,GACjB,aAAa,EAAE,CAmBjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,aAAa,EACzB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,cAAc,SAAI,GACjB,aAAa,EAAE,CAQjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,UAAU,EAC3B,YAAY,EAAE,UAAU,GAAG,IAAI,EAC/B,aAAa,EAAE,UAAU,GAAG,IAAI,EAChC,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CA8CvB"}
1
+ {"version":3,"file":"3d-tiles-utils.d.ts","sourceRoot":"","sources":["../../../../../src/gltf/lib/extensions/utils/3d-tiles-utils.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAC,uBAAuB,EAAE,iBAAiB,EAAC,wCAAqC;AAC7F,OAAO,KAAK,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAGvE,OAAO,EAAC,cAAc,EAAC,qCAAkC;AACzD,OAAO,EAAC,YAAY,EAAC,mCAAgC;AASrD,MAAM,MAAM,oBAAoB,GAC5B,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAyCd,wBAAgB,uBAAuB,CAAC,aAAa,KAAA,EAAE,aAAa,KAAA,GAAG,MAAM,CAK5E;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,GAAG,YAAY,EACzC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,EAC7D,gBAAgB,EAAE,MAAM,GACvB,UAAU,GAAG,IAAI,CA8BnB;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,oBAAoB,EACnC,YAAY,GAAE,MAAU,GACvB,aAAa,CAcf;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,cAAc,GAAG,YAAY,EACzC,WAAW,EAAE,uBAAuB,EACpC,SAAS,EAAE,iBAAiB,GAC3B,MAAM,EAAE,CAiDV;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,cAAc,GAAG,YAAY,EACzC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,iBAAiB,GAC3B,IAAI,CA+BN;AAsFD;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,aAAa,EACzB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,UAAU,EACxB,cAAc,SAAI,GACjB,aAAa,EAAE,CAmBjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,aAAa,EACzB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,cAAc,SAAI,GACjB,aAAa,EAAE,CAQjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,UAAU,EAC3B,YAAY,EAAE,UAAU,GAAG,IAAI,EAC/B,aAAa,EAAE,UAAU,GAAG,IAAI,EAChC,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CA8CvB"}
@@ -139,7 +139,9 @@ export function getPrimitiveTextureData(scenegraph, textureInfo, primitive) {
139
139
  const mimeType = json.images?.[imageIndex]?.mimeType;
140
140
  const parsedImage = scenegraph.gltf.images?.[imageIndex];
141
141
  // Checking for width is to prevent handling Un-processed images (e.g. [analyze] stage, where loadImages option is set to false)
142
- if (parsedImage && typeof parsedImage.width !== 'undefined') {
142
+ if (parsedImage &&
143
+ typeof parsedImage.width !== 'undefined' &&
144
+ !('compressed' in parsedImage && parsedImage.compressed)) {
143
145
  const textureData = [];
144
146
  for (let index = 0; index < textureCoordinates.length; index += 2) {
145
147
  const value = getImageValueByCoordinates(parsedImage, mimeType, textureCoordinates, index, textureInfo.channels);
@@ -1 +1 @@
1
- {"version":3,"file":"3d-tiles-utils.js","sourceRoot":"","sources":["../../../../../src/gltf/lib/extensions/utils/3d-tiles-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"3d-tiles-utils.js","sourceRoot":"","sources":["../../../../../src/gltf/lib/extensions/utils/3d-tiles-utils.ts"],"names":[],"mappings":"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"}
@@ -27,13 +27,14 @@ __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");
34
34
  var import_resolve_gltf_file = require("../gltf-utils/resolve-gltf-file.cjs");
35
35
  var import_get_typed_array = require("../gltf-utils/get-typed-array.cjs");
36
36
  var import_gltf_extensions = require("../api/gltf-extensions.cjs");
37
+ var import_MSFT_texture_dds = require("../extensions/MSFT_texture_dds.cjs");
37
38
  var import_normalize_gltf_v1 = require("../api/normalize-gltf-v1.cjs");
38
39
  function getGLTFImageOptions(options, mimeType) {
39
40
  const basisOptions = options.basis;
@@ -337,9 +338,33 @@ async function loadImage(gltf, image, index, options, context) {
337
338
  }
338
339
  (0, import_assert.assert)(arrayBuffer, "glTF image has no data");
339
340
  const gltfOptions = getGLTFImageOptions(options, image.mimeType);
341
+ const ddsLoader = (0, import_MSFT_texture_dds.getDDSLoader)(context);
342
+ const ddsSelected = Boolean(
343
+ ddsLoader && !options.gltf?.excludeExtensions?.includes("MSFT_texture_dds") && gltf.json.textures?.some(
344
+ (texture) => texture.source === index && texture.extensions?.MSFT_texture_dds?.source === index
345
+ )
346
+ );
347
+ if (ddsSelected) {
348
+ const levels = await (0, import_loader_utils.parseFromContext)(
349
+ arrayBuffer,
350
+ ddsLoader,
351
+ options,
352
+ context
353
+ );
354
+ (0, import_assert.assert)(levels.length > 0, "MSFT_texture_dds parser returned no texture levels");
355
+ gltf.images = gltf.images || [];
356
+ gltf.images[index] = {
357
+ compressed: true,
358
+ mipmaps: true,
359
+ width: levels[0].width,
360
+ height: levels[0].height,
361
+ data: levels
362
+ };
363
+ return;
364
+ }
340
365
  let parsedImage = await (0, import_loader_utils.parseFromContext)(
341
366
  arrayBuffer,
342
- [import_images.ImageBitmapLoader, import_textures.BasisLoader],
367
+ [import_images.ImageLoader, import_images2.BasisLoader],
343
368
  gltfOptions,
344
369
  context
345
370
  );
@@ -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 {getDDSLoader} from '../extensions/MSFT_texture_dds';\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 const ddsLoader = getDDSLoader(context);\n const ddsSelected = Boolean(\n ddsLoader &&\n !options.gltf?.excludeExtensions?.includes('MSFT_texture_dds') &&\n gltf.json.textures?.some(\n texture =>\n texture.source === index && texture.extensions?.MSFT_texture_dds?.source === index\n )\n );\n if (ddsSelected) {\n const levels = (await parseFromContext(\n arrayBuffer,\n ddsLoader!,\n options,\n context\n )) as TextureLevel[];\n assert(levels.length > 0, 'MSFT_texture_dds parser returned no texture levels');\n gltf.images = gltf.images || [];\n gltf.images[index] = {\n compressed: true,\n mipmaps: true,\n width: levels[0].width,\n height: levels[0].height,\n data: levels\n };\n return;\n }\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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse-gltf.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAC,iBAAiB,EAAC,mCAAgC;AAC/D,OAAO,KAAK,EAAC,IAAI,EAAC,qCAAkC;AACpD,OAAO,KAAK,EAAmB,eAAe,EAAC,+BAA4B;AAE3E,OAAO,KAAK,EAAC,eAAe,EAAC,uBAAoB;AAejD,OAAO;AACP,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,iGAAiG;IACjG,SAAS,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yGAAyG;IACzG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IAC1D,yEAAyE;IACzE,2BAA2B,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IACpE,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qGAAqG;IACrG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qGAAqG;IACrG,YAAY,CAAC,EAAE,CACb,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE;QAAC,sBAAsB,EAAE,KAAK,CAAC;QAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAAC,KACtE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAChB,iBAAiB,CAOnB;AAED,4DAA4D;AAC5D,wBAAgB,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAGpF;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,eAAe,EACrB,mBAAmB,KAAA,EACnB,UAAU,oBAAI,EACd,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,CAAC,CAE1B"}
1
+ {"version":3,"file":"parse-gltf.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAC,iBAAiB,EAAC,mCAAgC;AAC/D,OAAO,KAAK,EAAC,IAAI,EAAC,qCAAkC;AACpD,OAAO,KAAK,EAAmB,eAAe,EAAC,+BAA4B;AAE3E,OAAO,KAAK,EAAC,eAAe,EAAC,uBAAoB;AAgBjD,OAAO;AACP,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,iGAAiG;IACjG,SAAS,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yGAAyG;IACzG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IAC1D,yEAAyE;IACzE,2BAA2B,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IACpE,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qGAAqG;IACrG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qGAAqG;IACrG,YAAY,CAAC,EAAE,CACb,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE;QAAC,sBAAsB,EAAE,KAAK,CAAC;QAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAAC,KACtE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAChB,iBAAiB,CAOnB;AAED,4DAA4D;AAC5D,wBAAgB,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAGpF;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,eAAe,EACrB,mBAAmB,KAAA,EACnB,UAAU,oBAAI,EACd,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,CAAC,CAE1B"}
@@ -2,14 +2,15 @@
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";
10
10
  import { findGLTFFileIndex, resolveGLTFFile } from "../gltf-utils/resolve-gltf-file.js";
11
11
  import { getTypedArrayForBufferView } from "../gltf-utils/get-typed-array.js";
12
12
  import { preprocessExtensions, decodeExtensions } from "../api/gltf-extensions.js";
13
+ import { getDDSLoader } from "../extensions/MSFT_texture_dds.js";
13
14
  import { normalizeGLTFV1WithDeferredBuffers } from "../api/normalize-gltf-v1.js";
14
15
  /**
15
16
  * Creates options for parsing an image referenced by a glTF asset.
@@ -350,8 +351,25 @@ async function loadImage(gltf, image, index, options, context) {
350
351
  }
351
352
  assert(arrayBuffer, 'glTF image has no data');
352
353
  const gltfOptions = getGLTFImageOptions(options, image.mimeType);
354
+ const ddsLoader = getDDSLoader(context);
355
+ const ddsSelected = Boolean(ddsLoader &&
356
+ !options.gltf?.excludeExtensions?.includes('MSFT_texture_dds') &&
357
+ gltf.json.textures?.some(texture => texture.source === index && texture.extensions?.MSFT_texture_dds?.source === index));
358
+ if (ddsSelected) {
359
+ const levels = (await parseFromContext(arrayBuffer, ddsLoader, options, context));
360
+ assert(levels.length > 0, 'MSFT_texture_dds parser returned no texture levels');
361
+ gltf.images = gltf.images || [];
362
+ gltf.images[index] = {
363
+ compressed: true,
364
+ mipmaps: true,
365
+ width: levels[0].width,
366
+ height: levels[0].height,
367
+ data: levels
368
+ };
369
+ return;
370
+ }
353
371
  // Call `parse`
354
- let parsedImage = (await parseFromContext(arrayBuffer, [ImageBitmapLoader, BasisLoader], gltfOptions, context));
372
+ let parsedImage = (await parseFromContext(arrayBuffer, [ImageLoader, BasisLoader], gltfOptions, context));
355
373
  if (parsedImage && parsedImage[0]) {
356
374
  parsedImage = {
357
375
  compressed: true,
@@ -362,8 +380,8 @@ async function loadImage(gltf, image, index, options, context) {
362
380
  data: parsedImage[0]
363
381
  };
364
382
  }
365
- // TODO making sure ImageBitmapLoader is overridable by using array of loaders
366
- // const parsedImage = await parse(arrayBuffer, [ImageBitmapLoader]);
383
+ // TODO making sure ImageLoader is overridable by using array of loaders
384
+ // const parsedImage = await parse(arrayBuffer, [ImageLoader]);
367
385
  // Store the loaded image
368
386
  gltf.images = gltf.images || [];
369
387
  // @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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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/gltf/lib/types/gltf-ext-gaussian-splatting-schema.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\n\n/* eslint-disable camelcase */\n\n/** JSON representation of the ratified KHR_gaussian_splatting primitive extension. */\nexport type GLTF_KHR_gaussian_splatting = {\n /** Gaussian kernel name, currently `ellipse` for the ratified extension. */\n kernel: string;\n /** Color space of reconstructed splat colors. */\n colorSpace: string;\n /** Projection method, defaulting to perspective. */\n projection?: string;\n /** Sorting method, defaulting to cameraDistance. */\n sortingMethod?: string;\n /** Optional nested compression extensions. */\n extensions?: {\n KHR_gaussian_splatting_compression_spz_2?: GLTF_KHR_gaussian_splatting_compression_spz_2;\n [key: string]: unknown;\n };\n};\n\n/** JSON representation of the draft SPZ2 compression extension. */\nexport type GLTF_KHR_gaussian_splatting_compression_spz_2 = {\n /** Buffer view containing the complete SPZ payload. */\n bufferView: number;\n};\n\n/** A normalized reference to one Gaussian splat primitive in a glTF asset. */\nexport type GLTFGaussianSplatPrimitive = {\n /** Mesh index containing the primitive. */\n meshIndex: number;\n /** Primitive index within the mesh. */\n primitiveIndex: number;\n /** Accessor indices for the standard and KHR splat attributes. */\n attributes: Readonly<Record<string, number>>;\n /** Parsed base-extension declaration. */\n extension: GLTF_KHR_gaussian_splatting;\n /** Optional SPZ2 compressed buffer-view index. */\n compressedBufferView?: number;\n /** Preserved compressed SPZ2 bytes for native or GPU decoders. */\n compressedBytes?: Uint8Array;\n /** Result returned by an injected SPZ2 decoder, when one was supplied. */\n decoded?: unknown;\n};\n"],
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\n\n/* eslint-disable camelcase */\n\n/** JSON representation of the ratified KHR_gaussian_splatting primitive extension. */\nexport type GLTF_KHR_gaussian_splatting = {\n /** Gaussian kernel name, currently `ellipse` for the ratified extension. */\n kernel: string;\n /** Color space of reconstructed splat colors. */\n colorSpace: string;\n /** Projection method, defaulting to perspective. */\n projection?: string;\n /** Sorting method, defaulting to cameraDistance. */\n sortingMethod?: string;\n /** Optional nested compression extensions. */\n extensions?: {\n KHR_gaussian_splatting_compression_spz_2?: GLTF_KHR_gaussian_splatting_compression_spz_2;\n [key: string]: unknown;\n };\n};\n\n/** JSON representation of the draft SPZ2 compression extension. */\nexport type GLTF_KHR_gaussian_splatting_compression_spz_2 = {\n /** Buffer view containing the complete SPZ payload. */\n bufferView: number;\n};\n\n/** A normalized reference to one Gaussian splat primitive in a glTF asset. */\nexport type GLTFGaussianSplatPrimitive = {\n /** Mesh index containing the primitive. */\n meshIndex: number;\n /** Primitive index within the mesh. */\n primitiveIndex: number;\n /** Accessor indices for the standard and KHR splat attributes. */\n attributes: Readonly<Record<string, number>>;\n /** Parsed base-extension declaration. */\n extension: GLTF_KHR_gaussian_splatting;\n /** Optional SPZ2 compressed buffer-view index. */\n compressedBufferView?: number;\n /** Preserved compressed SPZ2 bytes for native or GPU decoders. */\n compressedBytes?: Uint8Array;\n /** Result returned by an injected SPZ loader or legacy decoder, when supplied. */\n decoded?: unknown;\n};\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -33,7 +33,7 @@ export type GLTFGaussianSplatPrimitive = {
33
33
  compressedBufferView?: number;
34
34
  /** Preserved compressed SPZ2 bytes for native or GPU decoders. */
35
35
  compressedBytes?: Uint8Array;
36
- /** Result returned by an injected SPZ2 decoder, when one was supplied. */
36
+ /** Result returned by an injected SPZ loader or legacy decoder, when supplied. */
37
37
  decoded?: unknown;
38
38
  };
39
39
  //# sourceMappingURL=gltf-ext-gaussian-splatting-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gltf-ext-gaussian-splatting-schema.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/types/gltf-ext-gaussian-splatting-schema.ts"],"names":[],"mappings":"AAMA,sFAAsF;AACtF,MAAM,MAAM,2BAA2B,GAAG;IACxC,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,UAAU,CAAC,EAAE;QACX,wCAAwC,CAAC,EAAE,6CAA6C,CAAC;QACzF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,6CAA6C,GAAG;IAC1D,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,8EAA8E;AAC9E,MAAM,MAAM,0BAA0B,GAAG;IACvC,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,yCAAyC;IACzC,SAAS,EAAE,2BAA2B,CAAC;IACvC,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kEAAkE;IAClE,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC"}
1
+ {"version":3,"file":"gltf-ext-gaussian-splatting-schema.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/types/gltf-ext-gaussian-splatting-schema.ts"],"names":[],"mappings":"AAMA,sFAAsF;AACtF,MAAM,MAAM,2BAA2B,GAAG;IACxC,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,UAAU,CAAC,EAAE;QACX,wCAAwC,CAAC,EAAE,6CAA6C,CAAC;QACzF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,6CAA6C,GAAG;IAC1D,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,8EAA8E;AAC9E,MAAM,MAAM,0BAA0B,GAAG;IACvC,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,yCAAyC;IACzC,SAAS,EAAE,2BAA2B,CAAC;IACvC,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kEAAkE;IAClE,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,kFAAkF;IAClF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/gltf/lib/types/gltf-texture-procedurals.ts
17
+ var gltf_texture_procedurals_exports = {};
18
+ module.exports = __toCommonJS(gltf_texture_procedurals_exports);
19
+ //# sourceMappingURL=gltf-texture-procedurals.cjs.map