@loaders.gl/gltf 4.0.0-alpha.5 → 4.0.0-alpha.7

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 (315) hide show
  1. package/dist/bundle.js +2 -2
  2. package/dist/dist.min.js +3545 -2445
  3. package/dist/es5/bundle.js +6 -0
  4. package/dist/es5/bundle.js.map +1 -0
  5. package/dist/es5/glb-loader.js +56 -0
  6. package/dist/es5/glb-loader.js.map +1 -0
  7. package/dist/es5/glb-writer.js +34 -0
  8. package/dist/es5/glb-writer.js.map +1 -0
  9. package/dist/es5/gltf-loader.js +81 -0
  10. package/dist/es5/gltf-loader.js.map +1 -0
  11. package/dist/es5/gltf-writer.js +35 -0
  12. package/dist/es5/gltf-writer.js.map +1 -0
  13. package/dist/es5/index.js +55 -0
  14. package/dist/es5/index.js.map +1 -0
  15. package/dist/es5/lib/api/gltf-extensions.js +109 -0
  16. package/dist/es5/lib/api/gltf-extensions.js.map +1 -0
  17. package/dist/es5/lib/api/gltf-scenegraph.js +595 -0
  18. package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -0
  19. package/dist/es5/lib/api/normalize-gltf-v1.js +331 -0
  20. package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -0
  21. package/dist/es5/lib/api/post-process-gltf.js +470 -0
  22. package/dist/es5/lib/api/post-process-gltf.js.map +1 -0
  23. package/dist/es5/lib/encoders/encode-glb.js +61 -0
  24. package/dist/es5/lib/encoders/encode-glb.js.map +1 -0
  25. package/dist/es5/lib/encoders/encode-gltf.js +20 -0
  26. package/dist/es5/lib/encoders/encode-gltf.js.map +1 -0
  27. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +94 -0
  28. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -0
  29. package/dist/es5/lib/extensions/EXT_texture_webp.js +43 -0
  30. package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -0
  31. package/dist/es5/lib/extensions/KHR_binary_gltf.js +39 -0
  32. package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -0
  33. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +247 -0
  34. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
  35. package/dist/es5/lib/extensions/KHR_texture_basisu.js +36 -0
  36. package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -0
  37. package/dist/es5/lib/extensions/KHR_texture_transform.js +230 -0
  38. package/dist/es5/lib/extensions/KHR_texture_transform.js.map +1 -0
  39. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +103 -0
  40. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
  41. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +99 -0
  42. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  43. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +76 -0
  44. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  45. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +113 -0
  46. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  47. package/dist/es5/lib/gltf-utils/get-typed-array.js +23 -0
  48. package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -0
  49. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +68 -0
  50. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
  51. package/dist/es5/lib/gltf-utils/gltf-constants.js +48 -0
  52. package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -0
  53. package/dist/es5/lib/gltf-utils/gltf-utils.js +86 -0
  54. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -0
  55. package/dist/es5/lib/gltf-utils/resolve-url.js +18 -0
  56. package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -0
  57. package/dist/es5/lib/parsers/parse-glb.js +120 -0
  58. package/dist/es5/lib/parsers/parse-glb.js.map +1 -0
  59. package/dist/es5/lib/parsers/parse-gltf.js +283 -0
  60. package/dist/es5/lib/parsers/parse-gltf.js.map +1 -0
  61. package/dist/es5/lib/types/glb-types.js +2 -0
  62. package/dist/es5/lib/types/glb-types.js.map +1 -0
  63. package/dist/es5/lib/types/gltf-json-schema.js +2 -0
  64. package/dist/es5/lib/types/gltf-json-schema.js.map +1 -0
  65. package/dist/es5/lib/types/gltf-postprocessed-schema.js +2 -0
  66. package/dist/es5/lib/types/gltf-postprocessed-schema.js.map +1 -0
  67. package/dist/es5/lib/types/gltf-types.js +2 -0
  68. package/dist/es5/lib/types/gltf-types.js.map +1 -0
  69. package/dist/es5/lib/utils/assert.js +12 -0
  70. package/dist/es5/lib/utils/assert.js.map +1 -0
  71. package/dist/es5/lib/utils/version.js +9 -0
  72. package/dist/es5/lib/utils/version.js.map +1 -0
  73. package/dist/es5/meshopt/meshopt-decoder.js +215 -0
  74. package/dist/es5/meshopt/meshopt-decoder.js.map +1 -0
  75. package/dist/es5/webp/webp.js +83 -0
  76. package/dist/es5/webp/webp.js.map +1 -0
  77. package/dist/esm/bundle.js +4 -0
  78. package/dist/esm/bundle.js.map +1 -0
  79. package/dist/esm/glb-loader.js +31 -0
  80. package/dist/esm/glb-loader.js.map +1 -0
  81. package/dist/esm/glb-writer.js +27 -0
  82. package/dist/esm/glb-writer.js.map +1 -0
  83. package/dist/esm/gltf-loader.js +51 -0
  84. package/dist/esm/gltf-loader.js.map +1 -0
  85. package/dist/esm/gltf-writer.js +28 -0
  86. package/dist/esm/gltf-writer.js.map +1 -0
  87. package/dist/esm/index.js +8 -0
  88. package/dist/esm/index.js.map +1 -0
  89. package/dist/esm/lib/api/gltf-extensions.js +35 -0
  90. package/dist/esm/lib/api/gltf-extensions.js.map +1 -0
  91. package/dist/esm/lib/api/gltf-scenegraph.js +452 -0
  92. package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -0
  93. package/dist/esm/lib/api/normalize-gltf-v1.js +204 -0
  94. package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -0
  95. package/dist/esm/lib/api/post-process-gltf.js +396 -0
  96. package/dist/esm/lib/api/post-process-gltf.js.map +1 -0
  97. package/dist/esm/lib/encoders/encode-glb.js +54 -0
  98. package/dist/esm/lib/encoders/encode-glb.js.map +1 -0
  99. package/dist/esm/lib/encoders/encode-gltf.js +14 -0
  100. package/dist/esm/lib/encoders/encode-gltf.js.map +1 -0
  101. package/dist/esm/lib/extensions/EXT_meshopt_compression.js +41 -0
  102. package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -0
  103. package/dist/esm/lib/extensions/EXT_texture_webp.js +25 -0
  104. package/dist/esm/lib/extensions/EXT_texture_webp.js.map +1 -0
  105. package/dist/esm/lib/extensions/KHR_binary_gltf.js +21 -0
  106. package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +1 -0
  107. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js +111 -0
  108. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
  109. package/dist/esm/lib/extensions/KHR_texture_basisu.js +18 -0
  110. package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +1 -0
  111. package/dist/esm/lib/extensions/KHR_texture_transform.js +182 -0
  112. package/dist/esm/lib/extensions/KHR_texture_transform.js.map +1 -0
  113. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js +77 -0
  114. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
  115. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js +42 -0
  116. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  117. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js +33 -0
  118. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  119. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js +61 -0
  120. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  121. package/dist/esm/lib/gltf-utils/get-typed-array.js +16 -0
  122. package/dist/esm/lib/gltf-utils/get-typed-array.js.map +1 -0
  123. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js +62 -0
  124. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
  125. package/dist/esm/lib/gltf-utils/gltf-constants.js +37 -0
  126. package/dist/esm/lib/gltf-utils/gltf-constants.js.map +1 -0
  127. package/dist/esm/lib/gltf-utils/gltf-utils.js +74 -0
  128. package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -0
  129. package/dist/esm/lib/gltf-utils/resolve-url.js +12 -0
  130. package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -0
  131. package/dist/esm/lib/parsers/parse-glb.js +114 -0
  132. package/dist/esm/lib/parsers/parse-glb.js.map +1 -0
  133. package/dist/esm/lib/parsers/parse-gltf.js +155 -0
  134. package/dist/esm/lib/parsers/parse-gltf.js.map +1 -0
  135. package/dist/esm/lib/types/glb-types.js +2 -0
  136. package/dist/esm/lib/types/glb-types.js.map +1 -0
  137. package/dist/esm/lib/types/gltf-json-schema.js +2 -0
  138. package/dist/esm/lib/types/gltf-json-schema.js.map +1 -0
  139. package/dist/esm/lib/types/gltf-postprocessed-schema.js +2 -0
  140. package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +1 -0
  141. package/dist/esm/lib/types/gltf-types.js +2 -0
  142. package/dist/esm/lib/types/gltf-types.js.map +1 -0
  143. package/dist/esm/lib/utils/assert.js +6 -0
  144. package/dist/esm/lib/utils/assert.js.map +1 -0
  145. package/dist/esm/lib/utils/version.js +2 -0
  146. package/dist/esm/lib/utils/version.js.map +1 -0
  147. package/dist/esm/meshopt/meshopt-decoder.js +91 -0
  148. package/dist/esm/meshopt/meshopt-decoder.js.map +1 -0
  149. package/dist/esm/meshopt/meshopt-encoder.ts.disabled +409 -0
  150. package/dist/esm/webp/webp.js +25 -0
  151. package/dist/esm/webp/webp.js.map +1 -0
  152. package/dist/glb-loader.d.ts +5 -4
  153. package/dist/glb-loader.d.ts.map +1 -1
  154. package/dist/glb-loader.js +30 -28
  155. package/dist/glb-writer.d.ts +7 -16
  156. package/dist/glb-writer.d.ts.map +1 -1
  157. package/dist/glb-writer.js +32 -26
  158. package/dist/gltf-loader.d.ts +7 -6
  159. package/dist/gltf-loader.d.ts.map +1 -1
  160. package/dist/gltf-loader.js +46 -43
  161. package/dist/gltf-writer.d.ts +2 -2
  162. package/dist/gltf-writer.d.ts.map +1 -1
  163. package/dist/gltf-writer.js +29 -26
  164. package/dist/index.d.ts +8 -4
  165. package/dist/index.d.ts.map +1 -1
  166. package/dist/index.js +28 -7
  167. package/dist/lib/api/gltf-extensions.d.ts +7 -2
  168. package/dist/lib/api/gltf-extensions.d.ts.map +1 -1
  169. package/dist/lib/api/gltf-extensions.js +79 -31
  170. package/dist/lib/api/gltf-scenegraph.d.ts +10 -14
  171. package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -1
  172. package/dist/lib/api/gltf-scenegraph.js +577 -513
  173. package/dist/lib/api/normalize-gltf-v1.d.ts.map +1 -1
  174. package/dist/lib/api/normalize-gltf-v1.js +278 -229
  175. package/dist/lib/api/post-process-gltf.d.ts +4 -1
  176. package/dist/lib/api/post-process-gltf.d.ts.map +1 -1
  177. package/dist/lib/api/post-process-gltf.js +385 -374
  178. package/dist/lib/encoders/encode-glb.d.ts +14 -1
  179. package/dist/lib/encoders/encode-glb.d.ts.map +1 -1
  180. package/dist/lib/encoders/encode-glb.js +67 -58
  181. package/dist/lib/encoders/encode-gltf.d.ts +18 -0
  182. package/dist/lib/encoders/encode-gltf.d.ts.map +1 -1
  183. package/dist/lib/encoders/encode-gltf.js +30 -12
  184. package/dist/lib/extensions/EXT_meshopt_compression.d.ts +1 -4
  185. package/dist/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -1
  186. package/dist/lib/extensions/EXT_meshopt_compression.js +35 -50
  187. package/dist/lib/extensions/EXT_texture_webp.d.ts +1 -1
  188. package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -1
  189. package/dist/lib/extensions/EXT_texture_webp.js +32 -28
  190. package/dist/lib/extensions/KHR_binary_gltf.d.ts +1 -1
  191. package/dist/lib/extensions/KHR_binary_gltf.d.ts.map +1 -1
  192. package/dist/lib/extensions/KHR_binary_gltf.js +36 -23
  193. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts +1 -1
  194. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -1
  195. package/dist/lib/extensions/KHR_draco_mesh_compression.js +123 -111
  196. package/dist/lib/extensions/KHR_texture_basisu.d.ts +1 -1
  197. package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -1
  198. package/dist/lib/extensions/KHR_texture_basisu.js +26 -19
  199. package/dist/lib/extensions/KHR_texture_transform.d.ts +13 -0
  200. package/dist/lib/extensions/KHR_texture_transform.d.ts.map +1 -0
  201. package/dist/lib/extensions/KHR_texture_transform.js +227 -0
  202. package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts +6 -0
  203. package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -0
  204. package/dist/lib/extensions/deprecated/EXT_feature_metadata.js +115 -0
  205. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts +1 -1
  206. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts.map +1 -1
  207. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js +54 -44
  208. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts +1 -1
  209. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts.map +1 -1
  210. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +39 -32
  211. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts +1 -1
  212. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -1
  213. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +73 -62
  214. package/dist/lib/gltf-utils/get-typed-array.js +39 -14
  215. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts +1 -1
  216. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts.map +1 -1
  217. package/dist/lib/gltf-utils/gltf-attribute-utils.js +65 -65
  218. package/dist/lib/gltf-utils/gltf-constants.d.ts +17 -0
  219. package/dist/lib/gltf-utils/gltf-constants.d.ts.map +1 -1
  220. package/dist/lib/gltf-utils/gltf-constants.js +38 -32
  221. package/dist/lib/gltf-utils/gltf-utils.d.ts +7 -0
  222. package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -1
  223. package/dist/lib/gltf-utils/gltf-utils.js +79 -45
  224. package/dist/lib/gltf-utils/resolve-url.js +17 -15
  225. package/dist/lib/parsers/parse-glb.d.ts +15 -3
  226. package/dist/lib/parsers/parse-glb.d.ts.map +1 -1
  227. package/dist/lib/parsers/parse-glb.js +143 -105
  228. package/dist/lib/parsers/parse-gltf.d.ts +8 -4
  229. package/dist/lib/parsers/parse-gltf.d.ts.map +1 -1
  230. package/dist/lib/parsers/parse-gltf.js +166 -154
  231. package/dist/lib/types/glb-types.d.ts +3 -3
  232. package/dist/lib/types/glb-types.d.ts.map +1 -1
  233. package/dist/lib/types/glb-types.js +2 -2
  234. package/dist/lib/types/gltf-json-schema.d.ts +530 -132
  235. package/dist/lib/types/gltf-json-schema.d.ts.map +1 -1
  236. package/dist/lib/types/gltf-json-schema.js +4 -2
  237. package/dist/lib/types/gltf-postprocessed-schema.d.ts +175 -210
  238. package/dist/lib/types/gltf-postprocessed-schema.d.ts.map +1 -1
  239. package/dist/lib/types/gltf-postprocessed-schema.js +4 -2
  240. package/dist/lib/types/gltf-types.d.ts +22 -7
  241. package/dist/lib/types/gltf-types.d.ts.map +1 -1
  242. package/dist/lib/types/gltf-types.js +3 -2
  243. package/dist/lib/utils/assert.js +11 -5
  244. package/dist/lib/utils/version.js +7 -2
  245. package/dist/meshopt/meshopt-decoder.js +97 -82
  246. package/dist/webp/webp.d.ts +1 -1
  247. package/dist/webp/webp.d.ts.map +1 -1
  248. package/dist/webp/webp.js +32 -23
  249. package/package.json +9 -8
  250. package/src/glb-loader.ts +4 -4
  251. package/src/glb-writer.ts +11 -3
  252. package/src/gltf-loader.ts +12 -8
  253. package/src/gltf-writer.ts +2 -2
  254. package/src/index.ts +34 -6
  255. package/src/lib/api/gltf-extensions.ts +14 -3
  256. package/src/lib/api/gltf-scenegraph.ts +61 -34
  257. package/src/lib/api/normalize-gltf-v1.ts +2 -1
  258. package/src/lib/api/post-process-gltf.ts +275 -150
  259. package/src/lib/encoders/encode-glb.ts +21 -4
  260. package/src/lib/encoders/encode-gltf.ts +19 -10
  261. package/src/lib/extensions/EXT_meshopt_compression.ts +16 -25
  262. package/src/lib/extensions/EXT_texture_webp.ts +5 -4
  263. package/src/lib/extensions/KHR_binary_gltf.ts +3 -3
  264. package/src/lib/extensions/KHR_draco_mesh_compression.ts +8 -8
  265. package/src/lib/extensions/KHR_texture_basisu.ts +4 -3
  266. package/src/lib/extensions/KHR_texture_transform.ts +308 -0
  267. package/src/lib/extensions/deprecated/EXT_feature_metadata.ts +163 -0
  268. package/src/lib/extensions/deprecated/KHR_lights_punctual.ts +2 -2
  269. package/src/lib/extensions/deprecated/KHR_materials_unlit.ts +5 -5
  270. package/src/lib/extensions/deprecated/KHR_techniques_webgl.ts +3 -2
  271. package/src/lib/gltf-utils/gltf-attribute-utils.ts +1 -1
  272. package/src/lib/gltf-utils/gltf-constants.ts +2 -2
  273. package/src/lib/gltf-utils/gltf-utils.ts +31 -0
  274. package/src/lib/parsers/parse-glb.ts +50 -24
  275. package/src/lib/parsers/parse-gltf.ts +32 -17
  276. package/src/lib/types/glb-types.ts +1 -1
  277. package/src/lib/types/gltf-json-schema.ts +582 -126
  278. package/src/lib/types/gltf-postprocessed-schema.ts +289 -212
  279. package/src/lib/types/gltf-types.ts +41 -44
  280. package/dist/bundle.js.map +0 -1
  281. package/dist/glb-loader.js.map +0 -1
  282. package/dist/glb-writer.js.map +0 -1
  283. package/dist/gltf-loader.js.map +0 -1
  284. package/dist/gltf-writer.js.map +0 -1
  285. package/dist/index.js.map +0 -1
  286. package/dist/lib/api/gltf-extensions.js.map +0 -1
  287. package/dist/lib/api/gltf-scenegraph.js.map +0 -1
  288. package/dist/lib/api/normalize-gltf-v1.js.map +0 -1
  289. package/dist/lib/api/post-process-gltf.js.map +0 -1
  290. package/dist/lib/encoders/encode-glb.js.map +0 -1
  291. package/dist/lib/encoders/encode-gltf.js.map +0 -1
  292. package/dist/lib/extensions/EXT_meshopt_compression.js.map +0 -1
  293. package/dist/lib/extensions/EXT_texture_webp.js.map +0 -1
  294. package/dist/lib/extensions/KHR_binary_gltf.js.map +0 -1
  295. package/dist/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
  296. package/dist/lib/extensions/KHR_texture_basisu.js.map +0 -1
  297. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
  298. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
  299. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
  300. package/dist/lib/gltf-utils/get-typed-array.js.map +0 -1
  301. package/dist/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
  302. package/dist/lib/gltf-utils/gltf-constants.js.map +0 -1
  303. package/dist/lib/gltf-utils/gltf-utils.js.map +0 -1
  304. package/dist/lib/gltf-utils/resolve-url.js.map +0 -1
  305. package/dist/lib/parsers/parse-glb.js.map +0 -1
  306. package/dist/lib/parsers/parse-gltf.js.map +0 -1
  307. package/dist/lib/types/glb-types.js.map +0 -1
  308. package/dist/lib/types/gltf-json-schema.js.map +0 -1
  309. package/dist/lib/types/gltf-postprocessed-schema.js.map +0 -1
  310. package/dist/lib/types/gltf-types.js.map +0 -1
  311. package/dist/lib/utils/assert.js.map +0 -1
  312. package/dist/lib/utils/version.js.map +0 -1
  313. package/dist/meshopt/meshopt-decoder.js.map +0 -1
  314. package/dist/webp/webp.js.map +0 -1
  315. /package/dist/{meshopt → es5/meshopt}/meshopt-encoder.ts.disabled +0 -0
@@ -1,170 +1,182 @@
1
- import { BasisLoader, selectSupportedBasisFormat } from '@loaders.gl/textures';
2
- import { ImageLoader } from '@loaders.gl/images';
3
- import { parseJSON, sliceArrayBuffer } from '@loaders.gl/loader-utils';
4
- import { assert } from '../utils/assert';
5
- import { resolveUrl } from '../gltf-utils/resolve-url';
6
- import { getTypedArrayForBufferView } from '../gltf-utils/get-typed-array';
7
- import { preprocessExtensions, decodeExtensions } from '../api/gltf-extensions';
8
- import { normalizeGLTFV1 } from '../api/normalize-gltf-v1';
9
- import { postProcessGLTF } from '../api/post-process-gltf';
10
- import parseGLBSync, { isGLB } from './parse-glb';
11
- export function isGLTF(arrayBuffer, options) {
12
- const byteOffset = 0;
13
- return isGLB(arrayBuffer, byteOffset, options);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseGLTF = exports.isGLTF = void 0;
4
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
5
+ const images_1 = require("@loaders.gl/images");
6
+ const textures_1 = require("@loaders.gl/textures");
7
+ const assert_1 = require("../utils/assert");
8
+ const parse_glb_1 = require("./parse-glb");
9
+ const resolve_url_1 = require("../gltf-utils/resolve-url");
10
+ const get_typed_array_1 = require("../gltf-utils/get-typed-array");
11
+ const gltf_extensions_1 = require("../api/gltf-extensions");
12
+ const normalize_gltf_v1_1 = require("../api/normalize-gltf-v1");
13
+ /** Check if an array buffer appears to contain GLTF data */
14
+ function isGLTF(arrayBuffer, options) {
15
+ const byteOffset = 0;
16
+ return (0, parse_glb_1.isGLB)(arrayBuffer, byteOffset, options);
14
17
  }
15
- export async function parseGLTF(gltf, arrayBufferOrString, byteOffset = 0, options, context) {
16
- var _options$gltf, _options$gltf2, _options$gltf3, _options$gltf4;
17
-
18
- parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);
19
- normalizeGLTFV1(gltf, {
20
- normalize: options === null || options === void 0 ? void 0 : (_options$gltf = options.gltf) === null || _options$gltf === void 0 ? void 0 : _options$gltf.normalize
21
- });
22
- preprocessExtensions(gltf, options, context);
23
- const promises = [];
24
-
25
- if (options !== null && options !== void 0 && (_options$gltf2 = options.gltf) !== null && _options$gltf2 !== void 0 && _options$gltf2.loadBuffers && gltf.json.buffers) {
26
- await loadBuffers(gltf, options, context);
27
- }
28
-
29
- if (options !== null && options !== void 0 && (_options$gltf3 = options.gltf) !== null && _options$gltf3 !== void 0 && _options$gltf3.loadImages) {
30
- const promise = loadImages(gltf, options, context);
18
+ exports.isGLTF = isGLTF;
19
+ async function parseGLTF(gltf, arrayBufferOrString, byteOffset = 0, options, context) {
20
+ parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);
21
+ (0, normalize_gltf_v1_1.normalizeGLTFV1)(gltf, { normalize: options?.gltf?.normalize });
22
+ (0, gltf_extensions_1.preprocessExtensions)(gltf, options, context);
23
+ const promises = [];
24
+ // Load linked buffers asynchronously and decodes base64 buffers in parallel
25
+ if (options?.gltf?.loadBuffers && gltf.json.buffers) {
26
+ await loadBuffers(gltf, options, context);
27
+ }
28
+ if (options?.gltf?.loadImages) {
29
+ const promise = loadImages(gltf, options, context);
30
+ promises.push(promise);
31
+ }
32
+ const promise = (0, gltf_extensions_1.decodeExtensions)(gltf, options, context);
31
33
  promises.push(promise);
32
- }
33
-
34
- const promise = decodeExtensions(gltf, options, context);
35
- promises.push(promise);
36
- await Promise.all(promises);
37
- return options !== null && options !== void 0 && (_options$gltf4 = options.gltf) !== null && _options$gltf4 !== void 0 && _options$gltf4.postProcess ? postProcessGLTF(gltf, options) : gltf;
34
+ // Parallelize image loading and buffer loading/extension decoding
35
+ await Promise.all(promises);
36
+ return gltf;
38
37
  }
39
-
38
+ exports.parseGLTF = parseGLTF;
39
+ /**
40
+ *
41
+ * @param gltf
42
+ * @param data - can be ArrayBuffer (GLB), ArrayBuffer (Binary JSON), String (JSON), or Object (parsed JSON)
43
+ * @param byteOffset
44
+ * @param options
45
+ */
40
46
  function parseGLTFContainerSync(gltf, data, byteOffset, options) {
41
- if (options.uri) {
42
- gltf.baseUri = options.uri;
43
- }
44
-
45
- if (data instanceof ArrayBuffer && !isGLB(data, byteOffset, options)) {
46
- const textDecoder = new TextDecoder();
47
- data = textDecoder.decode(data);
48
- }
49
-
50
- if (typeof data === 'string') {
51
- gltf.json = parseJSON(data);
52
- } else if (data instanceof ArrayBuffer) {
53
- const glb = {};
54
- byteOffset = parseGLBSync(glb, data, byteOffset, options.glb);
55
- assert(glb.type === 'glTF', "Invalid GLB magic string ".concat(glb.type));
56
- gltf._glb = glb;
57
- gltf.json = glb.json;
58
- } else {
59
- assert(false, 'GLTF: must be ArrayBuffer or string');
60
- }
61
-
62
- const buffers = gltf.json.buffers || [];
63
- gltf.buffers = new Array(buffers.length).fill(null);
64
-
65
- if (gltf._glb && gltf._glb.header.hasBinChunk) {
66
- const {
67
- binChunks
68
- } = gltf._glb;
69
- gltf.buffers[0] = {
70
- arrayBuffer: binChunks[0].arrayBuffer,
71
- byteOffset: binChunks[0].byteOffset,
72
- byteLength: binChunks[0].byteLength
73
- };
74
- }
75
-
76
- const images = gltf.json.images || [];
77
- gltf.images = new Array(images.length).fill({});
47
+ // Initialize gltf container
48
+ if (options.uri) {
49
+ gltf.baseUri = options.uri;
50
+ }
51
+ // If data is binary and starting with magic bytes, assume binary JSON text, convert to string
52
+ if (data instanceof ArrayBuffer && !(0, parse_glb_1.isGLB)(data, byteOffset, options)) {
53
+ const textDecoder = new TextDecoder();
54
+ data = textDecoder.decode(data);
55
+ }
56
+ if (typeof data === 'string') {
57
+ // If string, try to parse as JSON
58
+ gltf.json = (0, loader_utils_1.parseJSON)(data);
59
+ }
60
+ else if (data instanceof ArrayBuffer) {
61
+ // If still ArrayBuffer, parse as GLB container
62
+ const glb = {};
63
+ byteOffset = (0, parse_glb_1.parseGLBSync)(glb, data, byteOffset, options.glb);
64
+ (0, assert_1.assert)(glb.type === 'glTF', `Invalid GLB magic string ${glb.type}`);
65
+ gltf._glb = glb;
66
+ gltf.json = glb.json;
67
+ }
68
+ else {
69
+ (0, assert_1.assert)(false, 'GLTF: must be ArrayBuffer or string');
70
+ }
71
+ // Populate buffers
72
+ // Create an external buffers array to hold binary data
73
+ const buffers = gltf.json.buffers || [];
74
+ gltf.buffers = new Array(buffers.length).fill(null);
75
+ // Populates JSON and some bin chunk info
76
+ if (gltf._glb && gltf._glb.header.hasBinChunk) {
77
+ const { binChunks } = gltf._glb;
78
+ gltf.buffers[0] = {
79
+ arrayBuffer: binChunks[0].arrayBuffer,
80
+ byteOffset: binChunks[0].byteOffset,
81
+ byteLength: binChunks[0].byteLength
82
+ };
83
+ // TODO - this modifies JSON and is a post processing thing
84
+ // gltf.json.buffers[0].data = gltf.buffers[0].arrayBuffer;
85
+ // gltf.json.buffers[0].byteOffset = gltf.buffers[0].byteOffset;
86
+ }
87
+ // Populate images
88
+ const images = gltf.json.images || [];
89
+ gltf.images = new Array(images.length).fill({});
78
90
  }
79
-
91
+ /** Asynchronously fetch and parse buffers, store in buffers array outside of json
92
+ * TODO - traverse gltf and determine which buffers are actually needed
93
+ */
80
94
  async function loadBuffers(gltf, options, context) {
81
- const buffers = gltf.json.buffers || [];
82
-
83
- for (let i = 0; i < buffers.length; ++i) {
84
- const buffer = buffers[i];
85
-
86
- if (buffer.uri) {
87
- var _context$fetch, _response$arrayBuffer;
88
-
89
- const {
90
- fetch
91
- } = context;
92
- assert(fetch);
93
- const uri = resolveUrl(buffer.uri, options);
94
- const response = await (context === null || context === void 0 ? void 0 : (_context$fetch = context.fetch) === null || _context$fetch === void 0 ? void 0 : _context$fetch.call(context, uri));
95
- const arrayBuffer = await (response === null || response === void 0 ? void 0 : (_response$arrayBuffer = response.arrayBuffer) === null || _response$arrayBuffer === void 0 ? void 0 : _response$arrayBuffer.call(response));
96
- gltf.buffers[i] = {
97
- arrayBuffer,
98
- byteOffset: 0,
99
- byteLength: arrayBuffer.byteLength
100
- };
101
- delete buffer.uri;
95
+ // TODO
96
+ const buffers = gltf.json.buffers || [];
97
+ for (let i = 0; i < buffers.length; ++i) {
98
+ const buffer = buffers[i];
99
+ if (buffer.uri) {
100
+ const { fetch } = context;
101
+ (0, assert_1.assert)(fetch);
102
+ const uri = (0, resolve_url_1.resolveUrl)(buffer.uri, options);
103
+ const response = await context?.fetch?.(uri);
104
+ const arrayBuffer = await response?.arrayBuffer?.();
105
+ gltf.buffers[i] = {
106
+ arrayBuffer,
107
+ byteOffset: 0,
108
+ byteLength: arrayBuffer.byteLength
109
+ };
110
+ delete buffer.uri;
111
+ }
112
+ else if (gltf.buffers[i] === null) {
113
+ gltf.buffers[i] = {
114
+ arrayBuffer: new ArrayBuffer(buffer.byteLength),
115
+ byteOffset: 0,
116
+ byteLength: buffer.byteLength
117
+ };
118
+ }
102
119
  }
103
- }
104
120
  }
105
-
121
+ /**
122
+ * Loads all images
123
+ * TODO - traverse gltf and determine which images are actually needed
124
+ * @param gltf
125
+ * @param options
126
+ * @param context
127
+ * @returns
128
+ */
106
129
  async function loadImages(gltf, options, context) {
107
- const imageIndices = getReferencesImageIndices(gltf);
108
- const images = gltf.json.images || [];
109
- const promises = [];
110
-
111
- for (const imageIndex of imageIndices) {
112
- promises.push(loadImage(gltf, images[imageIndex], imageIndex, options, context));
113
- }
114
-
115
- return await Promise.all(promises);
130
+ const imageIndices = getReferencesImageIndices(gltf);
131
+ const images = gltf.json.images || [];
132
+ const promises = [];
133
+ for (const imageIndex of imageIndices) {
134
+ promises.push(loadImage(gltf, images[imageIndex], imageIndex, options, context));
135
+ }
136
+ return await Promise.all(promises);
116
137
  }
117
-
138
+ /** Make sure we only load images that are actually referenced by textures */
118
139
  function getReferencesImageIndices(gltf) {
119
- const imageIndices = new Set();
120
- const textures = gltf.json.textures || [];
121
-
122
- for (const texture of textures) {
123
- if (texture.source !== undefined) {
124
- imageIndices.add(texture.source);
140
+ const imageIndices = new Set();
141
+ const textures = gltf.json.textures || [];
142
+ for (const texture of textures) {
143
+ if (texture.source !== undefined) {
144
+ imageIndices.add(texture.source);
145
+ }
125
146
  }
126
- }
127
-
128
- return Array.from(imageIndices).sort();
147
+ return Array.from(imageIndices).sort();
129
148
  }
130
-
149
+ /** Asynchronously fetches and parses one image, store in images array outside of json */
131
150
  async function loadImage(gltf, image, index, options, context) {
132
- const {
133
- fetch,
134
- parse
135
- } = context;
136
- let arrayBuffer;
137
-
138
- if (image.uri) {
139
- const uri = resolveUrl(image.uri, options);
140
- const response = await fetch(uri);
141
- arrayBuffer = await response.arrayBuffer();
142
- }
143
-
144
- if (Number.isFinite(image.bufferView)) {
145
- const array = getTypedArrayForBufferView(gltf.json, gltf.buffers, image.bufferView);
146
- arrayBuffer = sliceArrayBuffer(array.buffer, array.byteOffset, array.byteLength);
147
- }
148
-
149
- assert(arrayBuffer, 'glTF image has no data');
150
- let parsedImage = await parse(arrayBuffer, [ImageLoader, BasisLoader], {
151
- mimeType: image.mimeType,
152
- basis: options.basis || {
153
- format: selectSupportedBasisFormat()
151
+ const { fetch, parse } = context;
152
+ let arrayBuffer;
153
+ if (image.uri && !image.hasOwnProperty('bufferView')) {
154
+ const uri = (0, resolve_url_1.resolveUrl)(image.uri, options);
155
+ const response = await fetch(uri);
156
+ arrayBuffer = await response.arrayBuffer();
157
+ image.bufferView = {
158
+ data: arrayBuffer
159
+ };
160
+ }
161
+ if (Number.isFinite(image.bufferView)) {
162
+ const array = (0, get_typed_array_1.getTypedArrayForBufferView)(gltf.json, gltf.buffers, image.bufferView);
163
+ arrayBuffer = (0, loader_utils_1.sliceArrayBuffer)(array.buffer, array.byteOffset, array.byteLength);
164
+ }
165
+ (0, assert_1.assert)(arrayBuffer, 'glTF image has no data');
166
+ // Call `parse`
167
+ let parsedImage = await parse(arrayBuffer, [images_1.ImageLoader, textures_1.BasisLoader], { mimeType: image.mimeType, basis: options.basis || { format: (0, textures_1.selectSupportedBasisFormat)() } }, context);
168
+ if (parsedImage && parsedImage[0]) {
169
+ parsedImage = {
170
+ compressed: true,
171
+ mipmaps: false,
172
+ width: parsedImage[0].width,
173
+ height: parsedImage[0].height,
174
+ data: parsedImage[0]
175
+ };
154
176
  }
155
- }, context);
156
-
157
- if (parsedImage && parsedImage[0]) {
158
- parsedImage = {
159
- compressed: true,
160
- mipmaps: false,
161
- width: parsedImage[0].width,
162
- height: parsedImage[0].height,
163
- data: parsedImage[0]
164
- };
165
- }
166
-
167
- gltf.images = gltf.images || [];
168
- gltf.images[index] = parsedImage;
177
+ // TODO making sure ImageLoader is overridable by using array of loaders
178
+ // const parsedImage = await parse(arrayBuffer, [ImageLoader]);
179
+ // Store the loaded image
180
+ gltf.images = gltf.images || [];
181
+ gltf.images[index] = parsedImage;
169
182
  }
170
- //# sourceMappingURL=parse-gltf.js.map
@@ -1,9 +1,9 @@
1
- export declare type GLBBinChunk = {
1
+ export type GLBBinChunk = {
2
2
  byteOffset: number;
3
3
  byteLength: number;
4
4
  arrayBuffer: ArrayBuffer;
5
5
  };
6
- export declare type GLB = {
6
+ export type GLB = {
7
7
  type: string;
8
8
  version: number;
9
9
  header: {
@@ -11,7 +11,7 @@ export declare type GLB = {
11
11
  byteLength: number;
12
12
  hasBinChunk: boolean;
13
13
  };
14
- json: {};
14
+ json: Record<string, any>;
15
15
  binChunks: GLBBinChunk[];
16
16
  };
17
17
  //# sourceMappingURL=glb-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glb-types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/glb-types.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,oBAAY,GAAG,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAGhB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IAGF,IAAI,EAAE,EAAE,CAAC;IACT,SAAS,EAAE,WAAW,EAAE,CAAC;CAC1B,CAAC"}
1
+ {"version":3,"file":"glb-types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/glb-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAGhB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IAGF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,SAAS,EAAE,WAAW,EAAE,CAAC;CAC1B,CAAC"}
@@ -1,2 +1,2 @@
1
- export {};
2
- //# sourceMappingURL=glb-types.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });