@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,167 @@
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 __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/obj-writer.ts
21
+ var obj_writer_exports = {};
22
+ __export(obj_writer_exports, {
23
+ OBJWriter: () => OBJWriter
24
+ });
25
+ module.exports = __toCommonJS(obj_writer_exports);
26
+
27
+ // src/obj/obj-writer.ts
28
+ var import_schema_utils = require("@loaders.gl/core/schema-utils");
29
+ var import_obj_format = require("./obj-format.cjs");
30
+ var VERSION = true ? "5.0.0-beta.10" : "latest";
31
+ var OBJWriter = {
32
+ ...import_obj_format.OBJFormat,
33
+ dataType: null,
34
+ batchType: null,
35
+ version: VERSION,
36
+ options: {
37
+ obj: {}
38
+ },
39
+ text: true,
40
+ encode: async (data, options) => encodeOBJSync(data, options),
41
+ encodeSync: encodeOBJSync,
42
+ encodeTextSync: encodeOBJ
43
+ };
44
+ function encodeOBJSync(data, options) {
45
+ const text = encodeOBJ(data, options);
46
+ return new TextEncoder().encode(text).buffer;
47
+ }
48
+ function encodeOBJ(data, options) {
49
+ const mesh = (0, import_schema_utils.convertTableToMesh)(normalizeMeshArrowTable(data));
50
+ const positionAttribute = getRequiredAttribute(mesh, "POSITION");
51
+ const normalAttribute = mesh.attributes.NORMAL;
52
+ const textureCoordinateAttribute = mesh.attributes.TEXCOORD_0;
53
+ const colorAttribute = mesh.attributes.COLOR_0;
54
+ const vertexCount = positionAttribute.value.length / positionAttribute.size;
55
+ const lines = ["# loaders.gl OBJ"];
56
+ for (let vertexIndex = 0; vertexIndex < vertexCount; vertexIndex++) {
57
+ const vertex = [
58
+ getComponent(positionAttribute, vertexIndex, 0),
59
+ getComponent(positionAttribute, vertexIndex, 1),
60
+ getComponent(positionAttribute, vertexIndex, 2)
61
+ ];
62
+ if (colorAttribute) {
63
+ vertex.push(
64
+ getColorComponent(colorAttribute, vertexIndex, 0),
65
+ getColorComponent(colorAttribute, vertexIndex, 1),
66
+ getColorComponent(colorAttribute, vertexIndex, 2)
67
+ );
68
+ }
69
+ lines.push(`v ${vertex.join(" ")}`);
70
+ }
71
+ if (textureCoordinateAttribute) {
72
+ for (let vertexIndex = 0; vertexIndex < vertexCount; vertexIndex++) {
73
+ lines.push(
74
+ `vt ${getComponent(textureCoordinateAttribute, vertexIndex, 0)} ${getComponent(
75
+ textureCoordinateAttribute,
76
+ vertexIndex,
77
+ 1
78
+ )}`
79
+ );
80
+ }
81
+ }
82
+ if (normalAttribute) {
83
+ for (let vertexIndex = 0; vertexIndex < vertexCount; vertexIndex++) {
84
+ lines.push(
85
+ `vn ${getComponent(normalAttribute, vertexIndex, 0)} ${getComponent(
86
+ normalAttribute,
87
+ vertexIndex,
88
+ 1
89
+ )} ${getComponent(normalAttribute, vertexIndex, 2)}`
90
+ );
91
+ }
92
+ }
93
+ const triangleIndices = getTriangleIndices(mesh, vertexCount);
94
+ for (let triangleIndex = 0; triangleIndex < triangleIndices.length; triangleIndex += 3) {
95
+ const face = [
96
+ getFaceVertex(
97
+ triangleIndices[triangleIndex],
98
+ Boolean(textureCoordinateAttribute),
99
+ Boolean(normalAttribute)
100
+ ),
101
+ getFaceVertex(
102
+ triangleIndices[triangleIndex + 1],
103
+ Boolean(textureCoordinateAttribute),
104
+ Boolean(normalAttribute)
105
+ ),
106
+ getFaceVertex(
107
+ triangleIndices[triangleIndex + 2],
108
+ Boolean(textureCoordinateAttribute),
109
+ Boolean(normalAttribute)
110
+ )
111
+ ];
112
+ lines.push(`f ${face.join(" ")}`);
113
+ }
114
+ return `${lines.join("\n")}
115
+ `;
116
+ }
117
+ function normalizeMeshArrowTable(data) {
118
+ if (!("attributes" in data)) {
119
+ return data;
120
+ }
121
+ return (0, import_schema_utils.convertMeshToArrowTableWrapper)(data);
122
+ }
123
+ function getRequiredAttribute(mesh, attributeName) {
124
+ const attribute = mesh.attributes[attributeName];
125
+ if (!attribute) {
126
+ throw new Error(`OBJWriter: ${attributeName} attribute is required`);
127
+ }
128
+ return attribute;
129
+ }
130
+ function getComponent(attribute, vertexIndex, componentIndex) {
131
+ return attribute.value[vertexIndex * attribute.size + componentIndex] || 0;
132
+ }
133
+ function getColorComponent(attribute, vertexIndex, componentIndex) {
134
+ const value = getComponent(attribute, vertexIndex, componentIndex);
135
+ return attribute.normalized || value > 1 ? value / 255 : value;
136
+ }
137
+ function getTriangleIndices(mesh, vertexCount) {
138
+ if (mesh.indices?.value?.length) {
139
+ return Array.from(mesh.indices.value);
140
+ }
141
+ if (mesh.mode !== 4 && mesh.topology !== "triangle-list") {
142
+ return [];
143
+ }
144
+ const triangleIndices = [];
145
+ for (let vertexIndex = 0; vertexIndex + 2 < vertexCount; vertexIndex += 3) {
146
+ triangleIndices.push(vertexIndex, vertexIndex + 1, vertexIndex + 2);
147
+ }
148
+ return triangleIndices;
149
+ }
150
+ function getFaceVertex(vertexIndex, hasTextureCoordinates, hasNormals) {
151
+ const faceIndex = vertexIndex + 1;
152
+ if (hasTextureCoordinates && hasNormals) {
153
+ return `${faceIndex}/${faceIndex}/${faceIndex}`;
154
+ }
155
+ if (hasTextureCoordinates) {
156
+ return `${faceIndex}/${faceIndex}`;
157
+ }
158
+ if (hasNormals) {
159
+ return `${faceIndex}//${faceIndex}`;
160
+ }
161
+ return String(faceIndex);
162
+ }
163
+ // Annotate the CommonJS export names for ESM import in node:
164
+ 0 && (module.exports = {
165
+ OBJWriter
166
+ });
167
+ //# sourceMappingURL=obj-writer.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/obj-writer.ts", "../src/obj/obj-writer.ts"],
4
+ "sourcesContent": ["export * from './obj/obj-writer.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Table} from 'apache-arrow';\nimport type {WriterOptions, WriterWithEncoder} from '@loaders.gl/core/loader-utils';\nimport type {Mesh, MeshArrowTable, MeshAttribute} from '@loaders.gl/core/schema';\nimport {convertMeshToArrowTableWrapper, convertTableToMesh} from '@loaders.gl/core/schema-utils';\nimport {OBJFormat} from './obj-format';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/** Options for `OBJWriter`. */\nexport type OBJWriterOptions = WriterOptions & {\n /** Reserved for future OBJ writer options. */\n obj?: Record<string, never>;\n};\n\n/**\n * Writer for the OBJ geometry format.\n */\nexport const OBJWriter = {\n ...OBJFormat,\n dataType: null as unknown as Mesh | MeshArrowTable | Table,\n batchType: null as never,\n version: VERSION,\n options: {\n obj: {}\n },\n text: true,\n encode: async (data, options) => encodeOBJSync(data, options),\n encodeSync: encodeOBJSync,\n encodeTextSync: encodeOBJ\n} as const satisfies WriterWithEncoder<Mesh | MeshArrowTable | Table, never, OBJWriterOptions>;\n\n/** Encode mesh category data as OBJ bytes. */\nfunction encodeOBJSync(\n data: Mesh | MeshArrowTable | Table,\n options?: OBJWriterOptions\n): ArrayBuffer {\n const text = encodeOBJ(data, options);\n return new TextEncoder().encode(text).buffer;\n}\n\n/** Encode mesh category data as OBJ text. */\nfunction encodeOBJ(data: Mesh | MeshArrowTable | Table, options?: OBJWriterOptions): string {\n const mesh = convertTableToMesh(normalizeMeshArrowTable(data));\n const positionAttribute = getRequiredAttribute(mesh, 'POSITION');\n const normalAttribute = mesh.attributes.NORMAL;\n const textureCoordinateAttribute = mesh.attributes.TEXCOORD_0;\n const colorAttribute = mesh.attributes.COLOR_0;\n const vertexCount = positionAttribute.value.length / positionAttribute.size;\n const lines: string[] = ['# loaders.gl OBJ'];\n\n for (let vertexIndex = 0; vertexIndex < vertexCount; vertexIndex++) {\n const vertex = [\n getComponent(positionAttribute, vertexIndex, 0),\n getComponent(positionAttribute, vertexIndex, 1),\n getComponent(positionAttribute, vertexIndex, 2)\n ];\n\n if (colorAttribute) {\n vertex.push(\n getColorComponent(colorAttribute, vertexIndex, 0),\n getColorComponent(colorAttribute, vertexIndex, 1),\n getColorComponent(colorAttribute, vertexIndex, 2)\n );\n }\n\n lines.push(`v ${vertex.join(' ')}`);\n }\n\n if (textureCoordinateAttribute) {\n for (let vertexIndex = 0; vertexIndex < vertexCount; vertexIndex++) {\n lines.push(\n `vt ${getComponent(textureCoordinateAttribute, vertexIndex, 0)} ${getComponent(\n textureCoordinateAttribute,\n vertexIndex,\n 1\n )}`\n );\n }\n }\n\n if (normalAttribute) {\n for (let vertexIndex = 0; vertexIndex < vertexCount; vertexIndex++) {\n lines.push(\n `vn ${getComponent(normalAttribute, vertexIndex, 0)} ${getComponent(\n normalAttribute,\n vertexIndex,\n 1\n )} ${getComponent(normalAttribute, vertexIndex, 2)}`\n );\n }\n }\n\n const triangleIndices = getTriangleIndices(mesh, vertexCount);\n for (let triangleIndex = 0; triangleIndex < triangleIndices.length; triangleIndex += 3) {\n const face = [\n getFaceVertex(\n triangleIndices[triangleIndex],\n Boolean(textureCoordinateAttribute),\n Boolean(normalAttribute)\n ),\n getFaceVertex(\n triangleIndices[triangleIndex + 1],\n Boolean(textureCoordinateAttribute),\n Boolean(normalAttribute)\n ),\n getFaceVertex(\n triangleIndices[triangleIndex + 2],\n Boolean(textureCoordinateAttribute),\n Boolean(normalAttribute)\n )\n ];\n lines.push(`f ${face.join(' ')}`);\n }\n\n return `${lines.join('\\n')}\\n`;\n}\n\n/** Return mesh data as a MeshArrowTable, converting plain Mesh data first. */\nfunction normalizeMeshArrowTable(data: Mesh | MeshArrowTable | Table): MeshArrowTable | Table {\n if (!('attributes' in data)) {\n return data;\n }\n return convertMeshToArrowTableWrapper(data as Mesh);\n}\n\n/** Return a required mesh attribute or throw a format-specific error. */\nfunction getRequiredAttribute(mesh: Mesh, attributeName: string): MeshAttribute {\n const attribute = mesh.attributes[attributeName];\n if (!attribute) {\n throw new Error(`OBJWriter: ${attributeName} attribute is required`);\n }\n return attribute;\n}\n\n/** Return a single attribute component with 0 as the missing component fallback. */\nfunction getComponent(\n attribute: MeshAttribute,\n vertexIndex: number,\n componentIndex: number\n): number {\n return attribute.value[vertexIndex * attribute.size + componentIndex] || 0;\n}\n\n/** Return a color component normalized for OBJ vertex colors. */\nfunction getColorComponent(\n attribute: MeshAttribute,\n vertexIndex: number,\n componentIndex: number\n): number {\n const value = getComponent(attribute, vertexIndex, componentIndex);\n return attribute.normalized || value > 1 ? value / 255 : value;\n}\n\n/** Return triangle indices for indexed or sequential triangle-list meshes. */\nfunction getTriangleIndices(mesh: Mesh, vertexCount: number): number[] {\n if (mesh.indices?.value?.length) {\n return Array.from(mesh.indices.value);\n }\n\n if (mesh.mode !== 4 && mesh.topology !== 'triangle-list') {\n return [];\n }\n\n const triangleIndices: number[] = [];\n for (let vertexIndex = 0; vertexIndex + 2 < vertexCount; vertexIndex += 3) {\n triangleIndices.push(vertexIndex, vertexIndex + 1, vertexIndex + 2);\n }\n return triangleIndices;\n}\n\n/** Return an OBJ face vertex reference. */\nfunction getFaceVertex(\n vertexIndex: number,\n hasTextureCoordinates: boolean,\n hasNormals: boolean\n): string {\n const faceIndex = vertexIndex + 1;\n if (hasTextureCoordinates && hasNormals) {\n return `${faceIndex}/${faceIndex}/${faceIndex}`;\n }\n if (hasTextureCoordinates) {\n return `${faceIndex}/${faceIndex}`;\n }\n if (hasNormals) {\n return `${faceIndex}//${faceIndex}`;\n }\n return String(faceIndex);\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ export * from './obj/obj-writer.js';
2
+ //# sourceMappingURL=obj-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obj-writer.d.ts","sourceRoot":"","sources":["../src/obj-writer.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './obj/obj-writer.js';
2
+ //# sourceMappingURL=obj-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obj-writer.js","sourceRoot":"","sources":["../src/obj-writer.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,100 @@
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 __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/stl/parse-stl.ts
21
+ var parse_stl_exports = {};
22
+ __export(parse_stl_exports, {
23
+ parseSTL: () => parseSTL
24
+ });
25
+ module.exports = __toCommonJS(parse_stl_exports);
26
+ var import_schema_utils = require("@loaders.gl/core/schema-utils");
27
+ function parseSTL(data) {
28
+ const view = new DataView(data);
29
+ const binary = data.byteLength >= 84 && 84 + view.getUint32(80, true) * 50 === data.byteLength;
30
+ let positions;
31
+ let normals;
32
+ let header;
33
+ if (binary) {
34
+ const triangleCount = view.getUint32(80, true);
35
+ positions = new Float32Array(triangleCount * 9);
36
+ normals = new Float32Array(triangleCount * 9);
37
+ header = new TextDecoder().decode(data.slice(0, 80));
38
+ for (let triangle = 0; triangle < triangleCount; triangle++) {
39
+ const offset = 84 + triangle * 50;
40
+ for (let component = 0; component < 9; component++) {
41
+ positions[triangle * 9 + component] = view.getFloat32(offset + 12 + component * 4, true);
42
+ normals[triangle * 9 + component] = view.getFloat32(offset + component % 3 * 4, true);
43
+ }
44
+ }
45
+ } else {
46
+ const lines = new TextDecoder().decode(data).trim().split(/\r?\n/).map((line) => line.trim()).filter(Boolean);
47
+ const vertices = [];
48
+ const normalValues = [];
49
+ header = lines[0] || "";
50
+ let lineIndex = 0;
51
+ while (lineIndex < lines.length) {
52
+ if (!/^solid(?:\s|$)/i.test(lines[lineIndex++]))
53
+ throw new Error("STL: expected solid header or exact binary length");
54
+ while (lineIndex < lines.length && !/^endsolid(?:\s|$)/i.test(lines[lineIndex])) {
55
+ const normal = parseVector(lines[lineIndex++], "facet normal");
56
+ if (!/^outer\s+loop$/i.test(lines[lineIndex++] || ""))
57
+ throw new Error("STL: expected outer loop");
58
+ for (let vertex = 0; vertex < 3; vertex++) {
59
+ vertices.push(...parseVector(lines[lineIndex++], "vertex"));
60
+ normalValues.push(...normal);
61
+ }
62
+ if (!/^endloop$/i.test(lines[lineIndex++] || "") || !/^endfacet$/i.test(lines[lineIndex++] || ""))
63
+ throw new Error("STL: incomplete facet");
64
+ }
65
+ if (lineIndex >= lines.length) throw new Error("STL: missing endsolid");
66
+ lineIndex++;
67
+ }
68
+ if (!lines.length) throw new Error("STL: empty input");
69
+ positions = new Float32Array(vertices);
70
+ normals = new Float32Array(normalValues);
71
+ }
72
+ if (!positions.every(Number.isFinite) || !normals.every(Number.isFinite))
73
+ throw new Error("STL: non-finite coordinates");
74
+ const attributes = { POSITION: { value: positions, size: 3 }, NORMAL: { value: normals, size: 3 } };
75
+ return {
76
+ topology: "triangle-list",
77
+ mode: 4,
78
+ attributes,
79
+ schema: (0, import_schema_utils.deduceMeshSchema)(attributes),
80
+ header: {
81
+ vertexCount: positions.length / 3,
82
+ boundingBox: (0, import_schema_utils.getMeshBoundingBox)(attributes) ?? void 0
83
+ },
84
+ loaderData: { header, format: binary ? "binary" : "ascii" }
85
+ };
86
+ }
87
+ function parseVector(line, prefix) {
88
+ const tokens = line?.split(/\s+/) || [];
89
+ const prefixTokens = prefix.split(" ");
90
+ const components = tokens.slice(prefixTokens.length);
91
+ if (prefixTokens.some((token, index) => tokens[index]?.toLowerCase() !== token) || components.length !== 3 || components.some((value) => !/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i.test(value))) {
92
+ throw new Error(`STL: invalid ${prefix} record`);
93
+ }
94
+ return components.map(Number);
95
+ }
96
+ // Annotate the CommonJS export names for ESM import in node:
97
+ 0 && (module.exports = {
98
+ parseSTL
99
+ });
100
+ //# sourceMappingURL=parse-stl.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/stl/parse-stl.ts"],
4
+ "sourcesContent": ["// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// loaders.gl\nimport type {Mesh} from '@loaders.gl/core/schema';\nimport {deduceMeshSchema, getMeshBoundingBox} from '@loaders.gl/core/schema-utils';\n\n/** Parses ASCII or little-endian binary STL without changing authored normals. */\nexport function parseSTL(data: ArrayBuffer): Mesh {\n const view = new DataView(data);\n const binary = data.byteLength >= 84 && 84 + view.getUint32(80, true) * 50 === data.byteLength;\n let positions: Float32Array;\n let normals: Float32Array;\n let header: string;\n if (binary) {\n const triangleCount = view.getUint32(80, true);\n positions = new Float32Array(triangleCount * 9);\n normals = new Float32Array(triangleCount * 9);\n header = new TextDecoder().decode(data.slice(0, 80));\n for (let triangle = 0; triangle < triangleCount; triangle++) {\n const offset = 84 + triangle * 50;\n for (let component = 0; component < 9; component++) {\n positions[triangle * 9 + component] = view.getFloat32(offset + 12 + component * 4, true);\n normals[triangle * 9 + component] = view.getFloat32(offset + (component % 3) * 4, true);\n }\n }\n } else {\n const lines = new TextDecoder()\n .decode(data)\n .trim()\n .split(/\\r?\\n/)\n .map(line => line.trim())\n .filter(Boolean);\n const vertices: number[] = [];\n const normalValues: number[] = [];\n header = lines[0] || '';\n let lineIndex = 0;\n while (lineIndex < lines.length) {\n if (!/^solid(?:\\s|$)/i.test(lines[lineIndex++]))\n throw new Error('STL: expected solid header or exact binary length');\n while (lineIndex < lines.length && !/^endsolid(?:\\s|$)/i.test(lines[lineIndex])) {\n const normal = parseVector(lines[lineIndex++], 'facet normal');\n if (!/^outer\\s+loop$/i.test(lines[lineIndex++] || ''))\n throw new Error('STL: expected outer loop');\n for (let vertex = 0; vertex < 3; vertex++) {\n vertices.push(...parseVector(lines[lineIndex++], 'vertex'));\n normalValues.push(...normal);\n }\n if (\n !/^endloop$/i.test(lines[lineIndex++] || '') ||\n !/^endfacet$/i.test(lines[lineIndex++] || '')\n )\n throw new Error('STL: incomplete facet');\n }\n if (lineIndex >= lines.length) throw new Error('STL: missing endsolid');\n lineIndex++;\n }\n if (!lines.length) throw new Error('STL: empty input');\n positions = new Float32Array(vertices);\n normals = new Float32Array(normalValues);\n }\n if (!positions.every(Number.isFinite) || !normals.every(Number.isFinite))\n throw new Error('STL: non-finite coordinates');\n const attributes = {POSITION: {value: positions, size: 3}, NORMAL: {value: normals, size: 3}};\n return {\n topology: 'triangle-list',\n mode: 4,\n attributes,\n schema: deduceMeshSchema(attributes),\n header: {\n vertexCount: positions.length / 3,\n boundingBox: getMeshBoundingBox(attributes) ?? undefined\n },\n loaderData: {header, format: binary ? 'binary' : 'ascii'}\n };\n}\n\n/** Reads exactly three finite decimal components after an ASCII record prefix. */\nfunction parseVector(line: string | undefined, prefix: string): number[] {\n const tokens = line?.split(/\\s+/) || [];\n const prefixTokens = prefix.split(' ');\n const components = tokens.slice(prefixTokens.length);\n if (\n prefixTokens.some((token, index) => tokens[index]?.toLowerCase() !== token) ||\n components.length !== 3 ||\n components.some(value => !/^[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i.test(value))\n ) {\n throw new Error(`STL: invalid ${prefix} record`);\n }\n return components.map(Number);\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,4 @@
1
+ import type { Mesh } from '@loaders.gl/core/schema';
2
+ /** Parses ASCII or little-endian binary STL without changing authored normals. */
3
+ export declare function parseSTL(data: ArrayBuffer): Mesh;
4
+ //# sourceMappingURL=parse-stl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-stl.d.ts","sourceRoot":"","sources":["../../src/stl/parse-stl.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,yBAAyB,CAAC;AAGlD,kFAAkF;AAClF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAmEhD"}
@@ -0,0 +1,84 @@
1
+ import { deduceMeshSchema, getMeshBoundingBox } from '@loaders.gl/core/schema-utils';
2
+ /** Parses ASCII or little-endian binary STL without changing authored normals. */
3
+ export function parseSTL(data) {
4
+ const view = new DataView(data);
5
+ const binary = data.byteLength >= 84 && 84 + view.getUint32(80, true) * 50 === data.byteLength;
6
+ let positions;
7
+ let normals;
8
+ let header;
9
+ if (binary) {
10
+ const triangleCount = view.getUint32(80, true);
11
+ positions = new Float32Array(triangleCount * 9);
12
+ normals = new Float32Array(triangleCount * 9);
13
+ header = new TextDecoder().decode(data.slice(0, 80));
14
+ for (let triangle = 0; triangle < triangleCount; triangle++) {
15
+ const offset = 84 + triangle * 50;
16
+ for (let component = 0; component < 9; component++) {
17
+ positions[triangle * 9 + component] = view.getFloat32(offset + 12 + component * 4, true);
18
+ normals[triangle * 9 + component] = view.getFloat32(offset + (component % 3) * 4, true);
19
+ }
20
+ }
21
+ }
22
+ else {
23
+ const lines = new TextDecoder()
24
+ .decode(data)
25
+ .trim()
26
+ .split(/\r?\n/)
27
+ .map(line => line.trim())
28
+ .filter(Boolean);
29
+ const vertices = [];
30
+ const normalValues = [];
31
+ header = lines[0] || '';
32
+ let lineIndex = 0;
33
+ while (lineIndex < lines.length) {
34
+ if (!/^solid(?:\s|$)/i.test(lines[lineIndex++]))
35
+ throw new Error('STL: expected solid header or exact binary length');
36
+ while (lineIndex < lines.length && !/^endsolid(?:\s|$)/i.test(lines[lineIndex])) {
37
+ const normal = parseVector(lines[lineIndex++], 'facet normal');
38
+ if (!/^outer\s+loop$/i.test(lines[lineIndex++] || ''))
39
+ throw new Error('STL: expected outer loop');
40
+ for (let vertex = 0; vertex < 3; vertex++) {
41
+ vertices.push(...parseVector(lines[lineIndex++], 'vertex'));
42
+ normalValues.push(...normal);
43
+ }
44
+ if (!/^endloop$/i.test(lines[lineIndex++] || '') ||
45
+ !/^endfacet$/i.test(lines[lineIndex++] || ''))
46
+ throw new Error('STL: incomplete facet');
47
+ }
48
+ if (lineIndex >= lines.length)
49
+ throw new Error('STL: missing endsolid');
50
+ lineIndex++;
51
+ }
52
+ if (!lines.length)
53
+ throw new Error('STL: empty input');
54
+ positions = new Float32Array(vertices);
55
+ normals = new Float32Array(normalValues);
56
+ }
57
+ if (!positions.every(Number.isFinite) || !normals.every(Number.isFinite))
58
+ throw new Error('STL: non-finite coordinates');
59
+ const attributes = { POSITION: { value: positions, size: 3 }, NORMAL: { value: normals, size: 3 } };
60
+ return {
61
+ topology: 'triangle-list',
62
+ mode: 4,
63
+ attributes,
64
+ schema: deduceMeshSchema(attributes),
65
+ header: {
66
+ vertexCount: positions.length / 3,
67
+ boundingBox: getMeshBoundingBox(attributes) ?? undefined
68
+ },
69
+ loaderData: { header, format: binary ? 'binary' : 'ascii' }
70
+ };
71
+ }
72
+ /** Reads exactly three finite decimal components after an ASCII record prefix. */
73
+ function parseVector(line, prefix) {
74
+ const tokens = line?.split(/\s+/) || [];
75
+ const prefixTokens = prefix.split(' ');
76
+ const components = tokens.slice(prefixTokens.length);
77
+ if (prefixTokens.some((token, index) => tokens[index]?.toLowerCase() !== token) ||
78
+ components.length !== 3 ||
79
+ components.some(value => !/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i.test(value))) {
80
+ throw new Error(`STL: invalid ${prefix} record`);
81
+ }
82
+ return components.map(Number);
83
+ }
84
+ //# sourceMappingURL=parse-stl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-stl.js","sourceRoot":"","sources":["../../src/stl/parse-stl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/stl-loader-types.ts
31
+ var stl_loader_types_exports = {};
32
+ __export(stl_loader_types_exports, {
33
+ STLLoader: () => STLLoader
34
+ });
35
+ module.exports = __toCommonJS(stl_loader_types_exports);
36
+ var VERSION = true ? "5.0.0-beta.10" : "latest";
37
+ async function preload() {
38
+ const { STLLoaderWithParser } = await import("@loaders.gl/scene/stl-loader");
39
+ return STLLoaderWithParser;
40
+ }
41
+ var STLLoader = {
42
+ name: "STL",
43
+ id: "stl",
44
+ module: "scene",
45
+ version: VERSION,
46
+ extensions: ["stl"],
47
+ mimeTypes: ["model/stl"],
48
+ binary: true,
49
+ dataType: null,
50
+ batchType: null,
51
+ options: {},
52
+ preload
53
+ };
54
+ // Annotate the CommonJS export names for ESM import in node:
55
+ 0 && (module.exports = {
56
+ STLLoader
57
+ });
58
+ //# sourceMappingURL=stl-loader-types.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/stl-loader-types.ts"],
4
+ "sourcesContent": ["// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/** Package version injected by the build. */\n// @ts-ignore __VERSION__ is injected during compilation.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n// loaders.gl\nimport type {Mesh} from '@loaders.gl/core/schema';\n\n/** Loads the STL parser on demand. */\nasync function preload() {\n const {STLLoaderWithParser} = await import('@loaders.gl/scene/stl-loader');\n return STLLoaderWithParser;\n}\n\n/** Metadata-only loader for ASCII and binary STL triangle meshes. */\nexport const STLLoader = {\n name: 'STL',\n id: 'stl',\n module: 'scene',\n version: VERSION,\n extensions: ['stl'],\n mimeTypes: ['model/stl'],\n binary: true,\n dataType: null as unknown as Mesh,\n batchType: null as never,\n options: {},\n preload\n} as const;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,IAAM,UAAU,OAAqC,kBAAc;AAKnE,eAAe,UAAU;AACvB,QAAM,EAAC,oBAAmB,IAAI,MAAM,OAAO,8BAA8B;AACzE,SAAO;AACT;AAGO,IAAM,YAAY;AAAA,EACvB,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,YAAY,CAAC,KAAK;AAAA,EAClB,WAAW,CAAC,WAAW;AAAA,EACvB,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAAS,CAAC;AAAA,EACV;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,32 @@
1
+ import type { Mesh } from '@loaders.gl/core/schema';
2
+ /** Loads the STL parser on demand. */
3
+ declare function preload(): Promise<{
4
+ readonly parse: (data: ArrayBuffer) => Promise<Mesh>;
5
+ readonly parseSync: typeof import("./stl/parse-stl").parseSTL;
6
+ readonly name: "STL";
7
+ readonly id: "stl";
8
+ readonly module: "scene";
9
+ readonly version: any;
10
+ readonly extensions: readonly ["stl"];
11
+ readonly mimeTypes: readonly ["model/stl"];
12
+ readonly binary: true;
13
+ readonly dataType: Mesh;
14
+ readonly batchType: never;
15
+ readonly options: {};
16
+ }>;
17
+ /** Metadata-only loader for ASCII and binary STL triangle meshes. */
18
+ export declare const STLLoader: {
19
+ readonly name: "STL";
20
+ readonly id: "stl";
21
+ readonly module: "scene";
22
+ readonly version: any;
23
+ readonly extensions: readonly ["stl"];
24
+ readonly mimeTypes: readonly ["model/stl"];
25
+ readonly binary: true;
26
+ readonly dataType: Mesh;
27
+ readonly batchType: never;
28
+ readonly options: {};
29
+ readonly preload: typeof preload;
30
+ };
31
+ export {};
32
+ //# sourceMappingURL=stl-loader-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stl-loader-types.d.ts","sourceRoot":"","sources":["../src/stl-loader-types.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,yBAAyB,CAAC;AAElD,sCAAsC;AACtC,iBAAe,OAAO;;;;;;;;;;uBAcS,IAAI;wBACd,KAAK;;GAZzB;AAED,qEAAqE;AACrE,eAAO,MAAM,SAAS;;;;;;;;uBAQS,IAAI;wBACd,KAAK;;;CAGhB,CAAC"}
@@ -0,0 +1,25 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Copyright (c) vis.gl contributors
3
+ /** Package version injected by the build. */
4
+ // @ts-ignore __VERSION__ is injected during compilation.
5
+ const VERSION = typeof "5.0.0-beta.10" !== 'undefined' ? "5.0.0-beta.10" : 'latest';
6
+ /** Loads the STL parser on demand. */
7
+ async function preload() {
8
+ const { STLLoaderWithParser } = await import('@loaders.gl/scene/stl-loader');
9
+ return STLLoaderWithParser;
10
+ }
11
+ /** Metadata-only loader for ASCII and binary STL triangle meshes. */
12
+ export const STLLoader = {
13
+ name: 'STL',
14
+ id: 'stl',
15
+ module: 'scene',
16
+ version: VERSION,
17
+ extensions: ['stl'],
18
+ mimeTypes: ['model/stl'],
19
+ binary: true,
20
+ dataType: null,
21
+ batchType: null,
22
+ options: {},
23
+ preload
24
+ };
25
+ //# sourceMappingURL=stl-loader-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stl-loader-types.js","sourceRoot":"","sources":["../src/stl-loader-types.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,oCAAoC;AACpC,6CAA6C;AAC7C,yDAAyD;AACzD,MAAM,OAAO,GAAG,sBAAkB,KAAK,WAAW,CAAC,CAAC,iBAAa,CAAC,CAAC,QAAQ,CAAC;AAI5E,sCAAsC;AACtC,KAAK,UAAU,OAAO;IACpB,MAAM,EAAC,mBAAmB,EAAC,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;IAC3E,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,qEAAqE;AACrE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,KAAK;IACX,EAAE,EAAE,KAAK;IACT,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,CAAC,WAAW,CAAC;IACxB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAuB;IACjC,SAAS,EAAE,IAAa;IACxB,OAAO,EAAE,EAAE;IACX,OAAO;CACC,CAAC"}
@@ -0,0 +1,38 @@
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 __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/stl-loader.ts
21
+ var stl_loader_exports = {};
22
+ __export(stl_loader_exports, {
23
+ STLLoaderWithParser: () => STLLoaderWithParser
24
+ });
25
+ module.exports = __toCommonJS(stl_loader_exports);
26
+ var import_stl_loader_types = require("./stl-loader-types.cjs");
27
+ var import_parse_stl = require("./stl/parse-stl.cjs");
28
+ var { preload: _preload, ...metadata } = import_stl_loader_types.STLLoader;
29
+ var STLLoaderWithParser = {
30
+ ...metadata,
31
+ parse: async (data) => (0, import_parse_stl.parseSTL)(data),
32
+ parseSync: import_parse_stl.parseSTL
33
+ };
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ STLLoaderWithParser
37
+ });
38
+ //# sourceMappingURL=stl-loader.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/stl-loader.ts"],
4
+ "sourcesContent": ["// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// loaders.gl\nimport {STLLoader} from './stl-loader-types';\nimport {parseSTL} from './stl/parse-stl';\nconst {preload: _preload, ...metadata} = STLLoader;\n/** Parser-bearing STL loader returning renderer-independent triangle meshes. */\nexport const STLLoaderWithParser = {\n ...metadata,\n parse: async (data: ArrayBuffer) => parseSTL(data),\n parseSync: parseSTL\n} as const;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,8BAAwB;AACxB,uBAAuB;AACvB,IAAM,EAAC,SAAS,UAAU,GAAG,SAAQ,IAAI;AAElC,IAAM,sBAAsB;AAAA,EACjC,GAAG;AAAA,EACH,OAAO,OAAO,aAAsB,2BAAS,IAAI;AAAA,EACjD,WAAW;AACb;",
6
+ "names": []
7
+ }
@@ -0,0 +1,17 @@
1
+ import { parseSTL } from "./stl/parse-stl.js";
2
+ /** Parser-bearing STL loader returning renderer-independent triangle meshes. */
3
+ export declare const STLLoaderWithParser: {
4
+ readonly parse: (data: ArrayBuffer) => Promise<import("@loaders.gl/core/schema").Mesh>;
5
+ readonly parseSync: typeof parseSTL;
6
+ readonly name: "STL";
7
+ readonly id: "stl";
8
+ readonly module: "scene";
9
+ readonly version: any;
10
+ readonly extensions: readonly ["stl"];
11
+ readonly mimeTypes: readonly ["model/stl"];
12
+ readonly binary: true;
13
+ readonly dataType: import("@loaders.gl/core/schema").Mesh;
14
+ readonly batchType: never;
15
+ readonly options: {};
16
+ };
17
+ //# sourceMappingURL=stl-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stl-loader.d.ts","sourceRoot":"","sources":["../src/stl-loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,QAAQ,EAAC,2BAAwB;AAEzC,gFAAgF;AAChF,eAAO,MAAM,mBAAmB;2BAEV,WAAW;;;;;;;;;;;;CAEvB,CAAC"}