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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/DRACO-README.md +15 -0
  2. package/README.md +7 -1
  3. package/THIRD-PARTY-NOTICES.md +4 -1
  4. package/dist/dist.dev.js +5708 -4937
  5. package/dist/dist.min.js +24 -24
  6. package/dist/draco/bundled.cjs +37 -0
  7. package/dist/draco/bundled.cjs.map +7 -0
  8. package/dist/draco/bundled.d.ts +6 -0
  9. package/dist/draco/bundled.d.ts.map +1 -0
  10. package/dist/draco/bundled.js +7 -0
  11. package/dist/draco/bundled.js.map +1 -0
  12. package/dist/draco/draco-format.cjs +41 -0
  13. package/dist/draco/draco-format.cjs.map +7 -0
  14. package/dist/draco/draco-format.d.ts +15 -0
  15. package/dist/draco/draco-format.d.ts.map +1 -0
  16. package/dist/draco/draco-format.js +18 -0
  17. package/dist/draco/draco-format.js.map +1 -0
  18. package/dist/draco/draco-javascript-loader-with-parser.cjs +44 -0
  19. package/dist/draco/draco-javascript-loader-with-parser.cjs.map +7 -0
  20. package/dist/draco/draco-javascript-loader-with-parser.d.ts +34 -0
  21. package/dist/draco/draco-javascript-loader-with-parser.d.ts.map +1 -0
  22. package/dist/draco/draco-javascript-loader-with-parser.js +14 -0
  23. package/dist/draco/draco-javascript-loader-with-parser.js.map +1 -0
  24. package/dist/draco/draco-libraries.cjs +61 -0
  25. package/dist/draco/draco-libraries.cjs.map +7 -0
  26. package/dist/draco/draco-libraries.d.ts +28 -0
  27. package/dist/draco/draco-libraries.d.ts.map +1 -0
  28. package/dist/draco/draco-libraries.js +33 -0
  29. package/dist/draco/draco-libraries.js.map +1 -0
  30. package/dist/draco/draco-library-options.cjs +80 -0
  31. package/dist/draco/draco-library-options.cjs.map +7 -0
  32. package/dist/draco/draco-library-options.d.ts +16 -0
  33. package/dist/draco/draco-library-options.d.ts.map +1 -0
  34. package/dist/draco/draco-library-options.js +52 -0
  35. package/dist/draco/draco-library-options.js.map +1 -0
  36. package/dist/draco/draco-loader-options.cjs +37 -0
  37. package/dist/draco/draco-loader-options.cjs.map +7 -0
  38. package/dist/draco/draco-loader-options.d.ts +27 -0
  39. package/dist/draco/draco-loader-options.d.ts.map +1 -0
  40. package/dist/draco/draco-loader-options.js +12 -0
  41. package/dist/draco/draco-loader-options.js.map +1 -0
  42. package/dist/draco/draco-loader-types.cjs +88 -0
  43. package/dist/draco/draco-loader-types.cjs.map +7 -0
  44. package/dist/draco/draco-loader-types.d.ts +69 -0
  45. package/dist/draco/draco-loader-types.d.ts.map +1 -0
  46. package/dist/draco/draco-loader-types.js +54 -0
  47. package/dist/draco/draco-loader-types.js.map +1 -0
  48. package/dist/draco/draco-loader.cjs +51 -0
  49. package/dist/draco/draco-loader.cjs.map +7 -0
  50. package/dist/draco/draco-loader.d.ts +39 -0
  51. package/dist/draco/draco-loader.d.ts.map +1 -0
  52. package/dist/draco/draco-loader.js +22 -0
  53. package/dist/draco/draco-loader.js.map +1 -0
  54. package/dist/draco/draco-wasm-loader-with-parser.cjs +48 -0
  55. package/dist/draco/draco-wasm-loader-with-parser.cjs.map +7 -0
  56. package/dist/draco/draco-wasm-loader-with-parser.d.ts +34 -0
  57. package/dist/draco/draco-wasm-loader-with-parser.d.ts.map +1 -0
  58. package/dist/draco/draco-wasm-loader-with-parser.js +14 -0
  59. package/dist/draco/draco-wasm-loader-with-parser.js.map +1 -0
  60. package/dist/draco/draco-writer.cjs +183 -0
  61. package/dist/draco/draco-writer.cjs.map +7 -0
  62. package/dist/draco/draco-writer.d.ts +97 -0
  63. package/dist/draco/draco-writer.d.ts.map +1 -0
  64. package/dist/draco/draco-writer.js +166 -0
  65. package/dist/draco/draco-writer.js.map +1 -0
  66. package/dist/draco/draco3d/draco3d-types.cjs +76 -0
  67. package/dist/draco/draco3d/draco3d-types.cjs.map +7 -0
  68. package/dist/draco/draco3d/draco3d-types.d.ts +303 -0
  69. package/dist/draco/draco3d/draco3d-types.d.ts.map +1 -0
  70. package/dist/draco/draco3d/draco3d-types.js +47 -0
  71. package/dist/draco/draco3d/draco3d-types.js.map +1 -0
  72. package/dist/draco/draco3d-loader-with-parser.cjs +50 -0
  73. package/dist/draco/draco3d-loader-with-parser.cjs.map +7 -0
  74. package/dist/draco/draco3d-loader-with-parser.d.ts +34 -0
  75. package/dist/draco/draco3d-loader-with-parser.d.ts.map +1 -0
  76. package/dist/draco/draco3d-loader-with-parser.js +21 -0
  77. package/dist/draco/draco3d-loader-with-parser.js.map +1 -0
  78. package/dist/draco/index.cjs +54 -0
  79. package/dist/draco/index.cjs.map +7 -0
  80. package/dist/draco/index.d.ts +13 -0
  81. package/dist/draco/index.d.ts.map +1 -0
  82. package/dist/draco/index.js +13 -0
  83. package/dist/draco/index.js.map +1 -0
  84. package/dist/draco/lib/draco-builder.cjs +660 -0
  85. package/dist/draco/lib/draco-builder.cjs.map +7 -0
  86. package/dist/draco/lib/draco-builder.d.ts +175 -0
  87. package/dist/draco/lib/draco-builder.d.ts.map +1 -0
  88. package/dist/draco/lib/draco-builder.js +612 -0
  89. package/dist/draco/lib/draco-builder.js.map +1 -0
  90. package/dist/draco/lib/draco-library-loader.cjs +47 -0
  91. package/dist/draco/lib/draco-library-loader.cjs.map +7 -0
  92. package/dist/draco/lib/draco-library-loader.d.ts +5 -0
  93. package/dist/draco/lib/draco-library-loader.d.ts.map +1 -0
  94. package/dist/draco/lib/draco-library-loader.js +23 -0
  95. package/dist/draco/lib/draco-library-loader.js.map +1 -0
  96. package/dist/draco/lib/draco-module-loader.cjs +281 -0
  97. package/dist/draco/lib/draco-module-loader.cjs.map +7 -0
  98. package/dist/draco/lib/draco-module-loader.d.ts +25 -0
  99. package/dist/draco/lib/draco-module-loader.d.ts.map +1 -0
  100. package/dist/draco/lib/draco-module-loader.js +220 -0
  101. package/dist/draco/lib/draco-module-loader.js.map +1 -0
  102. package/dist/draco/lib/draco-parser.cjs +598 -0
  103. package/dist/draco/lib/draco-parser.cjs.map +7 -0
  104. package/dist/draco/lib/draco-parser.d.ts +142 -0
  105. package/dist/draco/lib/draco-parser.d.ts.map +1 -0
  106. package/dist/draco/lib/draco-parser.js +595 -0
  107. package/dist/draco/lib/draco-parser.js.map +1 -0
  108. package/dist/draco/lib/draco-types.cjs +19 -0
  109. package/dist/draco/lib/draco-types.cjs.map +7 -0
  110. package/dist/draco/lib/draco-types.d.ts +59 -0
  111. package/dist/draco/lib/draco-types.d.ts.map +1 -0
  112. package/dist/draco/lib/draco-types.js +5 -0
  113. package/dist/draco/lib/draco-types.js.map +1 -0
  114. package/dist/draco/lib/parse-draco.cjs +59 -0
  115. package/dist/draco/lib/parse-draco.cjs.map +7 -0
  116. package/dist/draco/lib/parse-draco.d.ts +22 -0
  117. package/dist/draco/lib/parse-draco.d.ts.map +1 -0
  118. package/dist/draco/lib/parse-draco.js +32 -0
  119. package/dist/draco/lib/parse-draco.js.map +1 -0
  120. package/dist/draco/lib/utils/get-draco-schema.cjs +74 -0
  121. package/dist/draco/lib/utils/get-draco-schema.cjs.map +7 -0
  122. package/dist/draco/lib/utils/get-draco-schema.d.ts +7 -0
  123. package/dist/draco/lib/utils/get-draco-schema.d.ts.map +1 -0
  124. package/dist/draco/lib/utils/get-draco-schema.js +45 -0
  125. package/dist/draco/lib/utils/get-draco-schema.js.map +1 -0
  126. package/dist/draco/lib/utils/version.cjs +31 -0
  127. package/dist/draco/lib/utils/version.cjs.map +7 -0
  128. package/dist/draco/lib/utils/version.d.ts +2 -0
  129. package/dist/draco/lib/utils/version.d.ts.map +1 -0
  130. package/dist/draco/lib/utils/version.js +8 -0
  131. package/dist/draco/lib/utils/version.js.map +1 -0
  132. package/dist/draco/unbundled.cjs +33 -0
  133. package/dist/draco/unbundled.cjs.map +7 -0
  134. package/dist/draco/unbundled.d.ts +3 -0
  135. package/dist/draco/unbundled.d.ts.map +1 -0
  136. package/dist/draco/unbundled.js +5 -0
  137. package/dist/draco/unbundled.js.map +1 -0
  138. package/dist/draco/workers/draco-worker-node.cjs +8 -0
  139. package/dist/draco/workers/draco-worker-node.cjs.map +7 -0
  140. package/dist/draco/workers/draco-worker-node.d.ts +2 -0
  141. package/dist/draco/workers/draco-worker-node.d.ts.map +1 -0
  142. package/dist/draco/workers/draco-worker-node.js +9 -0
  143. package/dist/draco/workers/draco-worker-node.js.map +1 -0
  144. package/dist/draco/workers/draco-worker.cjs +7 -0
  145. package/dist/draco/workers/draco-worker.cjs.map +7 -0
  146. package/dist/draco/workers/draco-worker.d.ts +2 -0
  147. package/dist/draco/workers/draco-worker.d.ts.map +1 -0
  148. package/dist/draco/workers/draco-worker.js +7 -0
  149. package/dist/draco/workers/draco-worker.js.map +1 -0
  150. package/dist/draco/workers/draco-writer-worker-node.cjs +11 -0
  151. package/dist/draco/workers/draco-writer-worker-node.cjs.map +7 -0
  152. package/dist/draco/workers/draco-writer-worker-node.d.cts +2 -0
  153. package/dist/draco/workers/draco-writer-worker-node.d.cts.map +1 -0
  154. package/dist/draco/workers/draco-writer-worker-node.d.ts +2 -0
  155. package/dist/draco/workers/draco-writer-worker-node.d.ts.map +1 -0
  156. package/dist/draco/workers/draco-writer-worker-node.js +9 -0
  157. package/dist/draco/workers/draco-writer-worker-node.js.map +1 -0
  158. package/dist/draco/workers/draco-writer-worker.cjs +10 -0
  159. package/dist/draco/workers/draco-writer-worker.cjs.map +7 -0
  160. package/dist/draco/workers/draco-writer-worker.d.ts +2 -0
  161. package/dist/draco/workers/draco-writer-worker.d.ts.map +1 -0
  162. package/dist/draco/workers/draco-writer-worker.js +7 -0
  163. package/dist/draco/workers/draco-writer-worker.js.map +1 -0
  164. package/dist/draco-javascript-loader.cjs +25 -0
  165. package/dist/draco-javascript-loader.cjs.map +7 -0
  166. package/dist/draco-javascript-loader.d.ts +2 -0
  167. package/dist/draco-javascript-loader.d.ts.map +1 -0
  168. package/dist/draco-javascript-loader.js +3 -0
  169. package/dist/draco-javascript-loader.js.map +1 -0
  170. package/dist/draco-library-options.cjs +36 -0
  171. package/dist/draco-library-options.cjs.map +7 -0
  172. package/dist/draco-library-options.d.ts +3 -0
  173. package/dist/draco-library-options.d.ts.map +1 -0
  174. package/dist/draco-library-options.js +4 -0
  175. package/dist/draco-library-options.js.map +1 -0
  176. package/dist/draco-loader-types.cjs +25 -0
  177. package/dist/draco-loader-types.cjs.map +7 -0
  178. package/dist/draco-loader-types.d.ts +2 -0
  179. package/dist/draco-loader-types.d.ts.map +1 -0
  180. package/dist/draco-loader-types.js +3 -0
  181. package/dist/draco-loader-types.js.map +1 -0
  182. package/dist/draco-loader.cjs +25 -0
  183. package/dist/draco-loader.cjs.map +7 -0
  184. package/dist/draco-loader.d.ts +2 -0
  185. package/dist/draco-loader.d.ts.map +1 -0
  186. package/dist/draco-loader.js +3 -0
  187. package/dist/draco-loader.js.map +1 -0
  188. package/dist/draco-wasm-loader.cjs +25 -0
  189. package/dist/draco-wasm-loader.cjs.map +7 -0
  190. package/dist/draco-wasm-loader.d.ts +2 -0
  191. package/dist/draco-wasm-loader.d.ts.map +1 -0
  192. package/dist/draco-wasm-loader.js +3 -0
  193. package/dist/draco-wasm-loader.js.map +1 -0
  194. package/dist/draco-worker-node.js +28279 -0
  195. package/dist/draco-worker-node.js.map +7 -0
  196. package/dist/draco-worker.js +18145 -0
  197. package/dist/draco-worker.js.map +7 -0
  198. package/dist/draco-writer-worker-node.cjs +27521 -0
  199. package/dist/draco-writer-worker-node.cjs.map +7 -0
  200. package/dist/draco-writer-worker.js +17339 -0
  201. package/dist/draco-writer-worker.js.map +7 -0
  202. package/dist/draco-writer.cjs +25 -0
  203. package/dist/draco-writer.cjs.map +7 -0
  204. package/dist/draco-writer.d.ts +2 -0
  205. package/dist/draco-writer.d.ts.map +1 -0
  206. package/dist/draco-writer.js +3 -0
  207. package/dist/draco-writer.js.map +1 -0
  208. package/dist/draco3d-loader.cjs +25 -0
  209. package/dist/draco3d-loader.cjs.map +7 -0
  210. package/dist/draco3d-loader.d.ts +2 -0
  211. package/dist/draco3d-loader.d.ts.map +1 -0
  212. package/dist/draco3d-loader.js +3 -0
  213. package/dist/draco3d-loader.js.map +1 -0
  214. package/dist/glb-loader-types.cjs +61 -0
  215. package/dist/glb-loader-types.cjs.map +7 -0
  216. package/dist/glb-loader-types.d.ts +2 -0
  217. package/dist/glb-loader-types.d.ts.map +1 -0
  218. package/dist/glb-loader-types.js +2 -0
  219. package/dist/glb-loader-types.js.map +1 -0
  220. package/dist/glb-loader.cjs +48 -0
  221. package/dist/glb-loader.cjs.map +7 -0
  222. package/dist/glb-loader.d.ts +2 -0
  223. package/dist/glb-loader.d.ts.map +1 -0
  224. package/dist/glb-loader.js +2 -0
  225. package/dist/glb-loader.js.map +1 -0
  226. package/dist/glb-writer.cjs +53 -0
  227. package/dist/glb-writer.cjs.map +7 -0
  228. package/dist/glb-writer.d.ts +2 -0
  229. package/dist/glb-writer.d.ts.map +1 -0
  230. package/dist/glb-writer.js +2 -0
  231. package/dist/glb-writer.js.map +1 -0
  232. package/dist/gltf/glb-loader-types.cjs +1 -1
  233. package/dist/gltf/glb-loader-types.cjs.map +2 -2
  234. package/dist/gltf/glb-loader-types.d.ts +2 -2
  235. package/dist/gltf/glb-loader-types.js +1 -1
  236. package/dist/gltf/glb-loader-types.js.map +1 -1
  237. package/dist/gltf/gltf-loader-types.cjs +1 -1
  238. package/dist/gltf/gltf-loader-types.cjs.map +2 -2
  239. package/dist/gltf/gltf-loader-types.d.ts +5 -5
  240. package/dist/gltf/gltf-loader-types.d.ts.map +1 -1
  241. package/dist/gltf/gltf-loader-types.js +1 -1
  242. package/dist/gltf/gltf-loader-types.js.map +1 -1
  243. package/dist/gltf/gltf-loader.cjs.map +1 -1
  244. package/dist/gltf/gltf-loader.d.ts +4 -4
  245. package/dist/gltf/gltf-loader.d.ts.map +1 -1
  246. package/dist/gltf/lib/encoders/encode-gltf-draco.cjs +12 -2
  247. package/dist/gltf/lib/encoders/encode-gltf-draco.cjs.map +2 -2
  248. package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts +1 -1
  249. package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts.map +1 -1
  250. package/dist/gltf/lib/encoders/encode-gltf-draco.js +1 -1
  251. package/dist/gltf/lib/encoders/encode-gltf-draco.js.map +1 -1
  252. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs +2 -2
  253. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs.map +2 -2
  254. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -1
  255. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js +1 -1
  256. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
  257. package/dist/gltf/lib/parsers/parse-gltf.cjs +2 -2
  258. package/dist/gltf/lib/parsers/parse-gltf.cjs.map +3 -3
  259. package/dist/gltf/lib/parsers/parse-gltf.js +5 -5
  260. package/dist/gltf/lib/parsers/parse-gltf.js.map +1 -1
  261. package/dist/gltf/lib/types/gltf-zod-schema.d.ts +1 -1
  262. package/dist/gltf/lib/utils/version.cjs +1 -1
  263. package/dist/gltf/lib/utils/version.js +1 -1
  264. package/dist/gltf-loader-types.cjs +73 -0
  265. package/dist/gltf-loader-types.cjs.map +7 -0
  266. package/dist/gltf-loader-types.d.ts +2 -0
  267. package/dist/gltf-loader-types.d.ts.map +1 -0
  268. package/dist/gltf-loader-types.js +2 -0
  269. package/dist/gltf-loader-types.js.map +1 -0
  270. package/dist/gltf-loader.cjs +48 -0
  271. package/dist/gltf-loader.cjs.map +7 -0
  272. package/dist/gltf-loader.d.ts +2 -0
  273. package/dist/gltf-loader.d.ts.map +1 -0
  274. package/dist/gltf-loader.js +2 -0
  275. package/dist/gltf-loader.js.map +1 -0
  276. package/dist/gltf-source.cjs +238 -0
  277. package/dist/gltf-source.cjs.map +7 -0
  278. package/dist/gltf-source.d.ts +2 -0
  279. package/dist/gltf-source.d.ts.map +1 -0
  280. package/dist/gltf-source.js +2 -0
  281. package/dist/gltf-source.js.map +1 -0
  282. package/dist/gltf-writer.cjs +69 -0
  283. package/dist/gltf-writer.cjs.map +7 -0
  284. package/dist/gltf-writer.d.ts +2 -0
  285. package/dist/gltf-writer.d.ts.map +1 -0
  286. package/dist/gltf-writer.js +2 -0
  287. package/dist/gltf-writer.js.map +1 -0
  288. package/dist/index.cjs +13 -0
  289. package/dist/index.cjs.map +2 -2
  290. package/dist/index.d.ts +4 -0
  291. package/dist/index.d.ts.map +1 -1
  292. package/dist/index.js +3 -0
  293. package/dist/index.js.map +1 -1
  294. package/dist/libs/DRACO-LICENSE +252 -0
  295. package/dist/libs/README.md +20 -0
  296. package/dist/libs/draco_decoder.js +34 -0
  297. package/dist/libs/draco_decoder.mjs +37 -0
  298. package/dist/libs/draco_decoder.wasm +0 -0
  299. package/dist/libs/draco_decoder_gltf.wasm +0 -0
  300. package/dist/libs/draco_encoder.js +98 -0
  301. package/dist/libs/draco_encoder.mjs +101 -0
  302. package/dist/libs/draco_encoder.wasm +0 -0
  303. package/dist/libs/draco_wasm_wrapper.js +117 -0
  304. package/dist/libs/draco_wasm_wrapper.mjs +120 -0
  305. package/dist/libs/draco_wasm_wrapper_gltf.js +116 -0
  306. package/dist/libs/draco_wasm_wrapper_gltf.mjs +119 -0
  307. package/dist/mtl-loader-types.cjs +64 -0
  308. package/dist/mtl-loader-types.cjs.map +7 -0
  309. package/dist/mtl-loader-types.d.ts +2 -0
  310. package/dist/mtl-loader-types.d.ts.map +1 -0
  311. package/dist/mtl-loader-types.js +2 -0
  312. package/dist/mtl-loader-types.js.map +1 -0
  313. package/dist/mtl-loader.cjs +47 -0
  314. package/dist/mtl-loader.cjs.map +7 -0
  315. package/dist/mtl-loader.d.ts +2 -0
  316. package/dist/mtl-loader.d.ts.map +1 -0
  317. package/dist/mtl-loader.js +2 -0
  318. package/dist/mtl-loader.js.map +1 -0
  319. package/dist/obj/mtl-loader-types.cjs +2 -2
  320. package/dist/obj/mtl-loader-types.cjs.map +2 -2
  321. package/dist/obj/mtl-loader-types.d.ts +2 -2
  322. package/dist/obj/mtl-loader-types.js +2 -2
  323. package/dist/obj/mtl-loader-types.js.map +1 -1
  324. package/dist/obj/mtl-loader.cjs +1 -1
  325. package/dist/obj/mtl-loader.cjs.map +2 -2
  326. package/dist/obj/mtl-loader.js +1 -1
  327. package/dist/obj/mtl-loader.js.map +1 -1
  328. package/dist/obj/obj-loader-types.cjs +2 -2
  329. package/dist/obj/obj-loader-types.cjs.map +2 -2
  330. package/dist/obj/obj-loader-types.js +2 -2
  331. package/dist/obj/obj-loader-types.js.map +1 -1
  332. package/dist/obj/obj-writer.cjs +1 -1
  333. package/dist/obj/obj-writer.js +1 -1
  334. package/dist/obj-loader-types.cjs +71 -0
  335. package/dist/obj-loader-types.cjs.map +7 -0
  336. package/dist/obj-loader-types.d.ts +2 -0
  337. package/dist/obj-loader-types.d.ts.map +1 -0
  338. package/dist/obj-loader-types.js +2 -0
  339. package/dist/obj-loader-types.js.map +1 -0
  340. package/dist/obj-loader.cjs +163 -0
  341. package/dist/obj-loader.cjs.map +7 -0
  342. package/dist/obj-loader.d.ts +2 -0
  343. package/dist/obj-loader.d.ts.map +1 -0
  344. package/dist/obj-loader.js +2 -0
  345. package/dist/obj-loader.js.map +1 -0
  346. package/dist/obj-worker.js +204 -71
  347. package/dist/obj-writer.cjs +167 -0
  348. package/dist/obj-writer.cjs.map +7 -0
  349. package/dist/obj-writer.d.ts +2 -0
  350. package/dist/obj-writer.d.ts.map +1 -0
  351. package/dist/obj-writer.js +2 -0
  352. package/dist/obj-writer.js.map +1 -0
  353. package/dist/usd/usd-loader-types.cjs +2 -2
  354. package/dist/usd/usd-loader-types.cjs.map +2 -2
  355. package/dist/usd/usd-loader-types.js +2 -2
  356. package/dist/usd/usd-loader-types.js.map +1 -1
  357. package/dist/usd-loader-types.cjs +69 -0
  358. package/dist/usd-loader-types.cjs.map +7 -0
  359. package/dist/usd-loader-types.d.ts +2 -0
  360. package/dist/usd-loader-types.d.ts.map +1 -0
  361. package/dist/usd-loader-types.js +2 -0
  362. package/dist/usd-loader-types.js.map +1 -0
  363. package/dist/usd-loader.cjs +43 -0
  364. package/dist/usd-loader.cjs.map +7 -0
  365. package/dist/usd-loader.d.ts +2 -0
  366. package/dist/usd-loader.d.ts.map +1 -0
  367. package/dist/usd-loader.js +2 -0
  368. package/dist/usd-loader.js.map +1 -0
  369. package/package.json +130 -71
  370. package/src/draco/bundled.ts +10 -0
  371. package/src/draco/draco-format.ts +20 -0
  372. package/src/draco/draco-javascript-loader-with-parser.ts +26 -0
  373. package/src/draco/draco-libraries.ts +35 -0
  374. package/src/draco/draco-library-options.ts +76 -0
  375. package/src/draco/draco-loader-options.ts +33 -0
  376. package/src/draco/draco-loader-types.ts +78 -0
  377. package/src/draco/draco-loader.ts +45 -0
  378. package/src/draco/draco-wasm-loader-with-parser.ts +31 -0
  379. package/src/draco/draco-writer.ts +252 -0
  380. package/src/draco/draco3d/draco3d-types.ts +498 -0
  381. package/src/draco/draco3d-loader-with-parser.ts +34 -0
  382. package/src/draco/index.ts +46 -0
  383. package/src/draco/lib/draco-builder.ts +935 -0
  384. package/src/draco/lib/draco-library-loader.ts +38 -0
  385. package/src/draco/lib/draco-module-loader.ts +370 -0
  386. package/src/draco/lib/draco-parser.ts +776 -0
  387. package/src/draco/lib/draco-types.ts +72 -0
  388. package/src/draco/lib/parse-draco.ts +51 -0
  389. package/src/draco/lib/utils/get-draco-schema.ts +65 -0
  390. package/src/draco/lib/utils/version.ts +8 -0
  391. package/src/draco/libs/DRACO-LICENSE +252 -0
  392. package/src/draco/libs/README.md +20 -0
  393. package/src/draco/libs/draco_decoder.js +34 -0
  394. package/src/draco/libs/draco_decoder.wasm +0 -0
  395. package/src/draco/libs/draco_decoder_gltf.wasm +0 -0
  396. package/src/draco/libs/draco_encoder.js +98 -0
  397. package/src/draco/libs/draco_encoder.wasm +0 -0
  398. package/src/draco/libs/draco_wasm_wrapper.js +117 -0
  399. package/src/draco/libs/draco_wasm_wrapper_gltf.js +116 -0
  400. package/src/draco/unbundled.ts +6 -0
  401. package/src/draco/workers/draco-worker-node.ts +10 -0
  402. package/src/draco/workers/draco-worker.ts +8 -0
  403. package/src/draco/workers/draco-writer-worker-node.cjs +21 -0
  404. package/src/draco/workers/draco-writer-worker-node.ts +13 -0
  405. package/src/draco/workers/draco-writer-worker.ts +11 -0
  406. package/src/draco-javascript-loader.ts +2 -0
  407. package/src/draco-library-options.ts +6 -0
  408. package/src/draco-loader-types.ts +2 -0
  409. package/src/draco-loader.ts +2 -0
  410. package/src/draco-wasm-loader.ts +2 -0
  411. package/src/draco-writer.ts +2 -0
  412. package/src/draco3d-loader.ts +2 -0
  413. package/src/glb-loader-types.ts +1 -0
  414. package/src/glb-loader.ts +1 -0
  415. package/src/glb-writer.ts +1 -0
  416. package/src/gltf/glb-loader-types.ts +1 -1
  417. package/src/gltf/gltf-loader-types.ts +5 -5
  418. package/src/gltf/gltf-loader.ts +4 -4
  419. package/src/gltf/lib/encoders/encode-gltf-draco.ts +2 -2
  420. package/src/gltf/lib/extensions/KHR_draco_mesh_compression.ts +2 -1
  421. package/src/gltf/lib/parsers/parse-gltf.ts +5 -5
  422. package/src/gltf-loader-types.ts +1 -0
  423. package/src/gltf-loader.ts +1 -0
  424. package/src/gltf-source.ts +1 -0
  425. package/src/gltf-writer.ts +1 -0
  426. package/src/index.ts +5 -0
  427. package/src/mtl-loader-types.ts +1 -0
  428. package/src/mtl-loader.ts +1 -0
  429. package/src/obj/mtl-loader-types.ts +1 -1
  430. package/src/obj/mtl-loader.ts +1 -1
  431. package/src/obj/obj-loader-types.ts +1 -1
  432. package/src/obj-loader-types.ts +1 -0
  433. package/src/obj-loader.ts +1 -0
  434. package/src/obj-writer.ts +1 -0
  435. package/src/usd/usd-loader-types.ts +1 -1
  436. package/src/usd-loader-types.ts +1 -0
  437. package/src/usd-loader.ts +1 -0
@@ -0,0 +1,595 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { getMeshBoundingBox } from '@loaders.gl/core/schema-utils';
5
+ import { getDracoSchema } from "./utils/get-draco-schema.js";
6
+ // Native Draco attribute names to GLTF attribute names.
7
+ const DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP = {
8
+ POSITION: 'POSITION',
9
+ NORMAL: 'NORMAL',
10
+ COLOR: 'COLOR_0',
11
+ TEX_COORD: 'TEXCOORD_0'
12
+ };
13
+ const DRACO_DATA_TYPE_TO_TYPED_ARRAY_MAP = {
14
+ 1: Int8Array,
15
+ 2: Uint8Array,
16
+ 3: Int16Array,
17
+ 4: Uint16Array,
18
+ 5: Int32Array,
19
+ 6: Uint32Array,
20
+ // 7: BigInt64Array,
21
+ // 8: BigUint64Array,
22
+ 9: Float32Array
23
+ // 10: Float64Array
24
+ // 11: BOOL - What array type do we use for this?
25
+ };
26
+ const UINT16_INDEX_ITEM_SIZE = 2;
27
+ const UINT32_INDEX_ITEM_SIZE = 4;
28
+ export default class DracoParser {
29
+ draco;
30
+ decoder;
31
+ metadataQuerier;
32
+ // draco - the draco decoder, either import `draco3d` or load dynamically
33
+ constructor(draco) {
34
+ this.draco = draco;
35
+ this.decoder = new this.draco.Decoder();
36
+ this.metadataQuerier = new this.draco.MetadataQuerier();
37
+ }
38
+ /**
39
+ * Destroy draco resources
40
+ */
41
+ destroy() {
42
+ this.draco.destroy(this.decoder);
43
+ this.draco.destroy(this.metadataQuerier);
44
+ }
45
+ /**
46
+ * NOTE: caller must call `destroyGeometry` on the return value after using it
47
+ * @param arrayBuffer
48
+ * @param options
49
+ */
50
+ parseSync(arrayBuffer, options = {}) {
51
+ validateAttributeSelection(options);
52
+ const encodedData = ArrayBuffer.isView(arrayBuffer)
53
+ ? new Int8Array(arrayBuffer.buffer, arrayBuffer.byteOffset, arrayBuffer.byteLength)
54
+ : new Int8Array(arrayBuffer);
55
+ this._disableAttributeTransforms(options);
56
+ const geometry_type = this.decoder.GetEncodedGeometryType(encodedData);
57
+ const dracoGeometry = geometry_type === this.draco.TRIANGULAR_MESH
58
+ ? new this.draco.Mesh()
59
+ : new this.draco.PointCloud();
60
+ let dracoStatus = null;
61
+ try {
62
+ switch (geometry_type) {
63
+ case this.draco.TRIANGULAR_MESH:
64
+ dracoStatus = this.decoder.DecodeArrayToMesh(encodedData, encodedData.byteLength, dracoGeometry);
65
+ break;
66
+ case this.draco.POINT_CLOUD:
67
+ dracoStatus = this.decoder.DecodeArrayToPointCloud(encodedData, encodedData.byteLength, dracoGeometry);
68
+ break;
69
+ default:
70
+ throw new Error('DRACO: Unknown geometry type.');
71
+ }
72
+ if (!dracoStatus.ok() || !dracoGeometry.ptr) {
73
+ const message = `DRACO decompression failed: ${dracoStatus.error_msg()}`;
74
+ // console.error(message);
75
+ throw new Error(message);
76
+ }
77
+ const loaderData = this._getDracoLoaderData(dracoGeometry, geometry_type, options);
78
+ const geometry = this._getMeshData(dracoGeometry, loaderData, options);
79
+ const boundingBox = getTransformedMeshBoundingBox(geometry.attributes);
80
+ const schema = getDracoSchema(geometry.attributes, loaderData, geometry.indices);
81
+ const data = {
82
+ loader: 'draco',
83
+ loaderData,
84
+ header: {
85
+ vertexCount: dracoGeometry.num_points(),
86
+ boundingBox
87
+ },
88
+ ...geometry,
89
+ schema
90
+ };
91
+ return data;
92
+ }
93
+ finally {
94
+ if (dracoStatus) {
95
+ this.draco.destroy(dracoStatus);
96
+ }
97
+ if (dracoGeometry) {
98
+ this.draco.destroy(dracoGeometry);
99
+ }
100
+ }
101
+ }
102
+ // Draco specific "loader data"
103
+ /**
104
+ * Extract
105
+ * @param dracoGeometry
106
+ * @param geometry_type
107
+ * @param options
108
+ * @returns
109
+ */
110
+ _getDracoLoaderData(dracoGeometry, geometry_type, options) {
111
+ const metadata = this._getTopLevelMetadata(dracoGeometry);
112
+ const attributes = this._getDracoAttributes(dracoGeometry, options);
113
+ return {
114
+ geometry_type,
115
+ num_attributes: dracoGeometry.num_attributes(),
116
+ num_points: dracoGeometry.num_points(),
117
+ num_faces: dracoGeometry instanceof this.draco.Mesh ? dracoGeometry.num_faces() : 0,
118
+ metadata,
119
+ attributes
120
+ };
121
+ }
122
+ /**
123
+ * Extract all draco provided information and metadata for each attribute
124
+ * @param dracoGeometry
125
+ * @param options
126
+ * @returns
127
+ */
128
+ _getDracoAttributes(dracoGeometry, options) {
129
+ const dracoAttributes = {};
130
+ for (let attributeId = 0; attributeId < dracoGeometry.num_attributes(); attributeId++) {
131
+ // Note: Draco docs do not seem clear on `GetAttribute` ids just being a zero-based index,
132
+ // but it does seems to work this way
133
+ const dracoAttribute = this.decoder.GetAttribute(dracoGeometry, attributeId);
134
+ const metadata = this._getAttributeMetadata(dracoGeometry, attributeId);
135
+ dracoAttributes[dracoAttribute.unique_id()] = {
136
+ unique_id: dracoAttribute.unique_id(),
137
+ attribute_type: dracoAttribute.attribute_type(),
138
+ data_type: dracoAttribute.data_type(),
139
+ num_components: dracoAttribute.num_components(),
140
+ byte_offset: dracoAttribute.byte_offset(),
141
+ byte_stride: dracoAttribute.byte_stride(),
142
+ normalized: dracoAttribute.normalized(),
143
+ attribute_index: attributeId,
144
+ metadata
145
+ };
146
+ // Add transformation parameters for any attributes app wants untransformed
147
+ const quantization = this._getQuantizationTransform(dracoAttribute, options);
148
+ if (quantization) {
149
+ dracoAttributes[dracoAttribute.unique_id()].quantization_transform = quantization;
150
+ }
151
+ const octahedron = this._getOctahedronTransform(dracoAttribute, options);
152
+ if (octahedron) {
153
+ dracoAttributes[dracoAttribute.unique_id()].octahedron_transform = octahedron;
154
+ }
155
+ }
156
+ return dracoAttributes;
157
+ }
158
+ /**
159
+ * Get standard loaders.gl mesh category data
160
+ * Extracts the geometry from draco
161
+ * @param dracoGeometry
162
+ * @param options
163
+ */
164
+ _getMeshData(dracoGeometry, loaderData, options) {
165
+ const attributes = this._getMeshAttributes(loaderData, dracoGeometry, options);
166
+ const positionAttribute = attributes.POSITION;
167
+ if (!positionAttribute) {
168
+ throw new Error('DRACO: No position attribute found.');
169
+ }
170
+ // For meshes, we need indices to define the faces.
171
+ if (dracoGeometry instanceof this.draco.Mesh) {
172
+ switch (options.topology) {
173
+ case 'triangle-strip':
174
+ return {
175
+ topology: 'triangle-strip',
176
+ mode: 5, // GL.TRIANGLE_STRIP
177
+ attributes,
178
+ indices: {
179
+ value: this._getTriangleStripIndices(dracoGeometry),
180
+ size: 1
181
+ }
182
+ };
183
+ case 'triangle-list':
184
+ default:
185
+ return {
186
+ topology: 'triangle-list',
187
+ mode: 4, // GL.TRIANGLES
188
+ attributes,
189
+ indices: {
190
+ value: this._getTriangleListIndices(dracoGeometry),
191
+ size: 1
192
+ }
193
+ };
194
+ }
195
+ }
196
+ // PointCloud - must come last as Mesh inherits from PointCloud
197
+ return {
198
+ topology: 'point-list',
199
+ mode: 0, // GL.POINTS
200
+ attributes
201
+ };
202
+ }
203
+ _getMeshAttributes(loaderData, dracoGeometry, options) {
204
+ const attributes = {};
205
+ const usedAttributeNames = {};
206
+ const loaderAttributes = Object.values(loaderData.attributes).sort((left, right) => left.attribute_index - right.attribute_index);
207
+ const namedAttributes = loaderAttributes.map(loaderAttribute => {
208
+ const deducedAttributeName = this._deduceAttributeName(loaderAttribute, options);
209
+ const attributeName = getUniqueAttributeName(deducedAttributeName, usedAttributeNames);
210
+ usedAttributeNames[attributeName] = true;
211
+ loaderAttribute.name = attributeName;
212
+ return { attributeName, loaderAttribute };
213
+ });
214
+ validateSelectedAttributeNames(options, Object.keys(usedAttributeNames));
215
+ for (const { attributeName, loaderAttribute } of namedAttributes) {
216
+ if (!this._shouldExtractAttribute(attributeName, loaderAttribute, options)) {
217
+ continue;
218
+ }
219
+ const values = this._getAttributeValues(dracoGeometry, loaderAttribute);
220
+ if (values) {
221
+ const { value, size } = values;
222
+ attributes[attributeName] = {
223
+ value,
224
+ size,
225
+ byteOffset: loaderAttribute.byte_offset,
226
+ byteStride: loaderAttribute.byte_stride,
227
+ normalized: loaderAttribute.normalized,
228
+ transform: getMeshAttributeTransform(loaderAttribute)
229
+ };
230
+ }
231
+ }
232
+ return attributes;
233
+ }
234
+ /** Returns true when an attribute should be copied from WASM into the requested output. */
235
+ _shouldExtractAttribute(attributeName, attribute, options) {
236
+ if (attribute.attribute_type === this.draco.POSITION) {
237
+ if (options.excludeAttributes?.includes(attributeName)) {
238
+ throw new Error(`DracoLoader: position attribute "${attributeName}" cannot be excluded`);
239
+ }
240
+ return true;
241
+ }
242
+ if (options.includeAttributes && !options.includeAttributes.includes(attributeName)) {
243
+ return false;
244
+ }
245
+ return !options.excludeAttributes?.includes(attributeName);
246
+ }
247
+ // MESH INDICES EXTRACTION
248
+ /**
249
+ * For meshes, we need indices to define the faces.
250
+ * @param dracoGeometry
251
+ */
252
+ _getTriangleListIndices(dracoGeometry) {
253
+ // Example on how to retrieve mesh and attributes.
254
+ const numFaces = dracoGeometry.num_faces();
255
+ const numIndices = numFaces * 3;
256
+ const useUint16 = dracoGeometry.num_points() <= 65536;
257
+ const byteLength = numIndices * (useUint16 ? UINT16_INDEX_ITEM_SIZE : UINT32_INDEX_ITEM_SIZE);
258
+ const ptr = this.draco._malloc(byteLength);
259
+ try {
260
+ if (useUint16) {
261
+ const decoded = this.decoder.GetTrianglesUInt16Array(dracoGeometry, byteLength, ptr);
262
+ if (!decoded) {
263
+ throw new Error('DRACO: Failed to decode triangle indices.');
264
+ }
265
+ return new Uint16Array(this.draco.HEAPU8.buffer, ptr, numIndices).slice();
266
+ }
267
+ const decoded = this.decoder.GetTrianglesUInt32Array(dracoGeometry, byteLength, ptr);
268
+ if (!decoded) {
269
+ throw new Error('DRACO: Failed to decode triangle indices.');
270
+ }
271
+ return new Uint32Array(this.draco.HEAPU8.buffer, ptr, numIndices).slice();
272
+ }
273
+ finally {
274
+ this.draco._free(ptr);
275
+ }
276
+ }
277
+ /**
278
+ * For meshes, we need indices to define the faces.
279
+ * @param dracoGeometry
280
+ */
281
+ _getTriangleStripIndices(dracoGeometry) {
282
+ const dracoArray = new this.draco.DracoInt32Array();
283
+ try {
284
+ /* const numStrips = */ this.decoder.GetTriangleStripsFromMesh(dracoGeometry, dracoArray);
285
+ return getUint32Array(dracoArray);
286
+ }
287
+ finally {
288
+ this.draco.destroy(dracoArray);
289
+ }
290
+ }
291
+ /**
292
+ *
293
+ * @param dracoGeometry
294
+ * @param dracoAttribute
295
+ * @param attributeName
296
+ */
297
+ _getAttributeValues(dracoGeometry, attribute) {
298
+ const TypedArrayCtor = DRACO_DATA_TYPE_TO_TYPED_ARRAY_MAP[attribute.data_type];
299
+ if (!TypedArrayCtor) {
300
+ // eslint-disable-next-line no-console
301
+ console.warn(`DRACO: Unsupported attribute type ${attribute.data_type}`);
302
+ return null;
303
+ }
304
+ const numComponents = attribute.num_components;
305
+ const numPoints = dracoGeometry.num_points();
306
+ const numValues = numPoints * numComponents;
307
+ const byteLength = numValues * TypedArrayCtor.BYTES_PER_ELEMENT;
308
+ const dataType = getDracoDataType(this.draco, TypedArrayCtor);
309
+ let value;
310
+ const ptr = this.draco._malloc(byteLength);
311
+ try {
312
+ const dracoAttribute = this.decoder.GetAttribute(dracoGeometry, attribute.attribute_index);
313
+ const decoded = this.decoder.GetAttributeDataArrayForAllPoints(dracoGeometry, dracoAttribute, dataType, byteLength, ptr);
314
+ if (!decoded) {
315
+ throw new Error(`DRACO: Failed to decode attribute ${attribute.unique_id}.`);
316
+ }
317
+ value = new TypedArrayCtor(this.draco.HEAPU8.buffer, ptr, numValues).slice();
318
+ }
319
+ finally {
320
+ this.draco._free(ptr);
321
+ }
322
+ return { value, size: numComponents };
323
+ }
324
+ // Attribute names
325
+ /**
326
+ * DRACO does not store attribute names - We need to deduce an attribute name
327
+ * for each attribute
328
+ _getAttributeNames(
329
+ dracoGeometry: Mesh | PointCloud,
330
+ options: DracoParseOptions
331
+ ): {[unique_id: number]: string} {
332
+ const attributeNames: {[unique_id: number]: string} = {};
333
+ for (let attributeId = 0; attributeId < dracoGeometry.num_attributes(); attributeId++) {
334
+ const dracoAttribute = this.decoder.GetAttribute(dracoGeometry, attributeId);
335
+ const attributeName = this._deduceAttributeName(dracoAttribute, options);
336
+ attributeNames[attributeName] = attributeName;
337
+ }
338
+ return attributeNames;
339
+ }
340
+ */
341
+ /**
342
+ * Deduce an attribute name.
343
+ * @note DRACO does not save attribute names, just general type (POSITION, COLOR)
344
+ * to help optimize compression. We generate GLTF compatible names for the Draco-recognized
345
+ * types
346
+ * @param attributeData
347
+ */
348
+ _deduceAttributeName(attribute, options) {
349
+ // Deduce name based on application provided map
350
+ const uniqueId = attribute.unique_id;
351
+ for (const [attributeName, attributeUniqueId] of Object.entries(options.extraAttributes || {})) {
352
+ if (attributeUniqueId === uniqueId) {
353
+ return attributeName;
354
+ }
355
+ }
356
+ // Prefer the application name preserved by a Draco writer.
357
+ const entryName = options.attributeNameEntry || 'name';
358
+ if (attribute.metadata[entryName]) {
359
+ const attributeName = attribute.metadata[entryName].string;
360
+ // DracoWriter versions before v5 stored these category names instead of glTF semantics.
361
+ if (attributeName === 'COLOR') {
362
+ return 'COLOR_0';
363
+ }
364
+ if (attributeName === 'TEX_COORD') {
365
+ return 'TEXCOORD_0';
366
+ }
367
+ return attributeName;
368
+ }
369
+ // Deduce name based on attribute type
370
+ const thisAttributeType = attribute.attribute_type;
371
+ for (const dracoAttributeConstant in DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP) {
372
+ const attributeType = this.draco[dracoAttributeConstant];
373
+ if (attributeType === thisAttributeType) {
374
+ // TODO - Return unique names if there multiple attributes per type
375
+ // (e.g. multiple TEX_COORDS or COLORS)
376
+ return DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP[dracoAttributeConstant];
377
+ }
378
+ }
379
+ // Attribute of "GENERIC" type, we need to assign some name
380
+ return `CUSTOM_ATTRIBUTE_${uniqueId}`;
381
+ }
382
+ // METADATA EXTRACTION
383
+ /** Get top level metadata */
384
+ _getTopLevelMetadata(dracoGeometry) {
385
+ const dracoMetadata = this.decoder.GetMetadata(dracoGeometry);
386
+ return this._getDracoMetadata(dracoMetadata);
387
+ }
388
+ /** Get per attribute metadata */
389
+ _getAttributeMetadata(dracoGeometry, attributeId) {
390
+ const dracoMetadata = this.decoder.GetAttributeMetadata(dracoGeometry, attributeId);
391
+ return this._getDracoMetadata(dracoMetadata);
392
+ }
393
+ /**
394
+ * Extract metadata field values
395
+ * @param dracoMetadata
396
+ * @returns
397
+ */
398
+ _getDracoMetadata(dracoMetadata) {
399
+ // The not so wonderful world of undocumented Draco APIs :(
400
+ if (!dracoMetadata || !dracoMetadata.ptr) {
401
+ return {};
402
+ }
403
+ const result = {};
404
+ const numEntries = this.metadataQuerier.NumEntries(dracoMetadata);
405
+ for (let entryIndex = 0; entryIndex < numEntries; entryIndex++) {
406
+ const entryName = this.metadataQuerier.GetEntryName(dracoMetadata, entryIndex);
407
+ result[entryName] = this._getDracoMetadataField(dracoMetadata, entryName);
408
+ }
409
+ return result;
410
+ }
411
+ /**
412
+ * Extracts possible values for one metadata entry by name
413
+ * @param dracoMetadata
414
+ * @param entryName
415
+ */
416
+ _getDracoMetadataField(dracoMetadata, entryName) {
417
+ const dracoArray = new this.draco.DracoInt32Array();
418
+ try {
419
+ // Draco metadata fields can hold int32 arrays
420
+ this.metadataQuerier.GetIntEntryArray(dracoMetadata, entryName, dracoArray);
421
+ const intArray = getInt32Array(dracoArray);
422
+ return {
423
+ int: this.metadataQuerier.GetIntEntry(dracoMetadata, entryName),
424
+ string: this.metadataQuerier.GetStringEntry(dracoMetadata, entryName),
425
+ double: this.metadataQuerier.GetDoubleEntry(dracoMetadata, entryName),
426
+ intArray
427
+ };
428
+ }
429
+ finally {
430
+ this.draco.destroy(dracoArray);
431
+ }
432
+ }
433
+ // QUANTIZED ATTRIBUTE SUPPORT (NO DECOMPRESSION)
434
+ /** Skip transforms for specific attribute types */
435
+ _disableAttributeTransforms(options) {
436
+ const { quantizedAttributes = [], octahedronAttributes = [] } = options;
437
+ const skipAttributes = [...quantizedAttributes, ...octahedronAttributes];
438
+ for (const dracoAttributeName of skipAttributes) {
439
+ this.decoder.SkipAttributeTransform(this.draco[dracoAttributeName]);
440
+ }
441
+ }
442
+ /**
443
+ * Extract (and apply?) Position Transform
444
+ * @todo not used
445
+ */
446
+ _getQuantizationTransform(dracoAttribute, options) {
447
+ const { quantizedAttributes = [] } = options;
448
+ const attribute_type = dracoAttribute.attribute_type();
449
+ const skip = quantizedAttributes.map(type => this.draco[type]).includes(attribute_type);
450
+ if (skip) {
451
+ const transform = new this.draco.AttributeQuantizationTransform();
452
+ try {
453
+ if (transform.InitFromAttribute(dracoAttribute)) {
454
+ return {
455
+ quantization_bits: transform.quantization_bits(),
456
+ range: transform.range(),
457
+ min_values: Float32Array.from({ length: dracoAttribute.num_components() }, (_, componentIndex) => transform.min_value(componentIndex))
458
+ };
459
+ }
460
+ }
461
+ finally {
462
+ this.draco.destroy(transform);
463
+ }
464
+ }
465
+ return null;
466
+ }
467
+ _getOctahedronTransform(dracoAttribute, options) {
468
+ const { octahedronAttributes = [] } = options;
469
+ const attribute_type = dracoAttribute.attribute_type();
470
+ const octahedron = octahedronAttributes.map(type => this.draco[type]).includes(attribute_type);
471
+ if (octahedron) {
472
+ const transform = new this.draco.AttributeOctahedronTransform();
473
+ try {
474
+ if (transform.InitFromAttribute(dracoAttribute)) {
475
+ return {
476
+ quantization_bits: transform.quantization_bits()
477
+ };
478
+ }
479
+ }
480
+ finally {
481
+ this.draco.destroy(transform);
482
+ }
483
+ }
484
+ return null;
485
+ }
486
+ }
487
+ /**
488
+ * Get draco specific data type by TypedArray constructor type
489
+ * @param attributeType
490
+ * @returns draco specific data type
491
+ */
492
+ function getDracoDataType(draco, attributeType) {
493
+ switch (attributeType) {
494
+ case Float32Array:
495
+ return draco.DT_FLOAT32;
496
+ case Int8Array:
497
+ return draco.DT_INT8;
498
+ case Int16Array:
499
+ return draco.DT_INT16;
500
+ case Int32Array:
501
+ return draco.DT_INT32;
502
+ case Uint8Array:
503
+ return draco.DT_UINT8;
504
+ case Uint16Array:
505
+ return draco.DT_UINT16;
506
+ case Uint32Array:
507
+ return draco.DT_UINT32;
508
+ default:
509
+ return draco.DT_INVALID;
510
+ }
511
+ }
512
+ /**
513
+ * Copy a Draco int32 array into a JS typed array
514
+ */
515
+ function getInt32Array(dracoArray) {
516
+ const numValues = dracoArray.size();
517
+ const intArray = new Int32Array(numValues);
518
+ for (let i = 0; i < numValues; i++) {
519
+ intArray[i] = dracoArray.GetValue(i);
520
+ }
521
+ return intArray;
522
+ }
523
+ /**
524
+ * Copy a Draco int32 array into a JS typed array
525
+ */
526
+ function getUint32Array(dracoArray) {
527
+ const numValues = dracoArray.size();
528
+ const intArray = new Uint32Array(numValues);
529
+ for (let i = 0; i < numValues; i++) {
530
+ intArray[i] = dracoArray.GetValue(i);
531
+ }
532
+ return intArray;
533
+ }
534
+ /** Returns a collision-free output name without discarding an earlier decoded attribute. */
535
+ function getUniqueAttributeName(attributeName, attributes) {
536
+ if (!Object.prototype.hasOwnProperty.call(attributes, attributeName)) {
537
+ return attributeName;
538
+ }
539
+ const suffixMatch = /^(.*)_([0-9]+)$/.exec(attributeName);
540
+ const baseName = suffixMatch ? suffixMatch[1] : attributeName;
541
+ let suffix = suffixMatch ? BigInt(suffixMatch[2]) + 1n : 1n;
542
+ while (Object.prototype.hasOwnProperty.call(attributes, `${baseName}_${suffix}`)) {
543
+ suffix++;
544
+ }
545
+ return `${baseName}_${suffix}`;
546
+ }
547
+ /** Converts Draco-specific transform metadata into the shared Mesh attribute representation. */
548
+ function getMeshAttributeTransform(attribute) {
549
+ if (attribute.quantization_transform) {
550
+ const { quantization_bits, min_values, range } = attribute.quantization_transform;
551
+ if (quantization_bits !== undefined && min_values && range !== undefined) {
552
+ return {
553
+ type: 'quantization',
554
+ bits: quantization_bits,
555
+ origin: Array.from(min_values),
556
+ range
557
+ };
558
+ }
559
+ }
560
+ if (attribute.octahedron_transform?.quantization_bits !== undefined) {
561
+ return {
562
+ type: 'octahedron',
563
+ bits: attribute.octahedron_transform.quantization_bits
564
+ };
565
+ }
566
+ return undefined;
567
+ }
568
+ /** Validates mutually exclusive attribute selection options. */
569
+ function validateAttributeSelection(options) {
570
+ if (options.includeAttributes && options.excludeAttributes) {
571
+ throw new Error('DracoLoader: includeAttributes and excludeAttributes cannot be combined');
572
+ }
573
+ }
574
+ /** Rejects selection entries that do not match decoded application attribute names. */
575
+ function validateSelectedAttributeNames(options, attributeNames) {
576
+ for (const attributeName of options.includeAttributes || options.excludeAttributes || []) {
577
+ if (!attributeNames.includes(attributeName)) {
578
+ throw new Error(`DracoLoader: selected attribute "${attributeName}" does not exist`);
579
+ }
580
+ }
581
+ }
582
+ /** Returns a logical bounding box when quantized positions remain encoded. */
583
+ function getTransformedMeshBoundingBox(attributes) {
584
+ const boundingBox = getMeshBoundingBox(attributes);
585
+ if (!boundingBox)
586
+ throw new Error('Decoded mesh is missing positions');
587
+ const position = attributes.POSITION;
588
+ if (position?.transform?.type !== 'quantization') {
589
+ return boundingBox;
590
+ }
591
+ const { bits, origin, range } = position.transform;
592
+ const scale = range / (2 ** bits - 1);
593
+ return boundingBox.map(bounds => bounds.map((value, componentIndex) => origin[componentIndex] + value * scale));
594
+ }
595
+ //# sourceMappingURL=draco-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-parser.js","sourceRoot":"","sources":["../../../src/draco/lib/draco-parser.ts"],"names":[],"mappings":"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"}
@@ -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/draco/lib/draco-types.ts
17
+ var draco_types_exports = {};
18
+ module.exports = __toCommonJS(draco_types_exports);
19
+ //# sourceMappingURL=draco-types.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/draco/lib/draco-types.ts"],
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable camelcase */\n\nimport {Mesh} from '@loaders.gl/core/schema';\n\n// DRACO FORMAT SPECIFIC DATA\n\nexport type DracoMetadataEntry = {\n int: number;\n string: string;\n double: number;\n intArray: Int32Array;\n};\n\n/** For attributes that have not been fully decompressed */\nexport type DracoQuantizationTransform = {\n quantization_bits?: number;\n range?: number;\n min_values?: Float32Array;\n};\n\n/** For attributes that have not been fully decompressed */\nexport type DracoOctahedronTransform = {\n quantization_bits?: number;\n};\n\n/** Draco attribute fields */\nexport type DracoAttribute = {\n unique_id: number;\n\n num_components: number; // Duplicate of size\n attribute_type: number;\n data_type: number;\n\n byte_offset: number;\n byte_stride: number;\n normalized: boolean;\n name?: string;\n\n quantization_transform?: DracoQuantizationTransform;\n octahedron_transform?: DracoOctahedronTransform;\n\n metadata: {[key: string]: DracoMetadataEntry};\n attribute_index: number;\n};\n\n/**\n * Draco format specific data\n * The `data.loaderData` field will have this layout when `data.loader === 'draco'`.\n * @todo Metadata should also be available in normalized form in a standard `Schema`.\n */\nexport type DracoLoaderData = {\n geometry_type: number;\n num_attributes: number;\n num_points: number;\n num_faces: number;\n metadata: {[entry: string]: DracoMetadataEntry};\n attributes: {[unique_id: number]: DracoAttribute};\n // attribute_names?: {[unique_id: number]: string};\n // unique_ids?: {[attributeName: string]: number};\n};\n\n/**\n * loaders.gl Mesh with Draco specific data\n */\nexport type DracoMesh = Mesh & {\n loader: 'draco';\n loaderData: DracoLoaderData; // Draco specific data\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;",
6
+ "names": []
7
+ }