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

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