@loaders.gl/gltf 4.0.0-alpha.1 → 4.0.0-alpha.11

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 (332) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +2 -2
  4. package/dist/dist.min.js +5767 -0
  5. package/dist/es5/bundle.js +6 -0
  6. package/dist/es5/bundle.js.map +1 -0
  7. package/dist/es5/glb-loader.js +56 -0
  8. package/dist/es5/glb-loader.js.map +1 -0
  9. package/dist/es5/glb-writer.js +34 -0
  10. package/dist/es5/glb-writer.js.map +1 -0
  11. package/dist/es5/gltf-loader.js +81 -0
  12. package/dist/es5/gltf-loader.js.map +1 -0
  13. package/dist/es5/gltf-writer.js +35 -0
  14. package/dist/es5/gltf-writer.js.map +1 -0
  15. package/dist/es5/index.js +55 -0
  16. package/dist/es5/index.js.map +1 -0
  17. package/dist/es5/lib/api/gltf-extensions.js +109 -0
  18. package/dist/es5/lib/api/gltf-extensions.js.map +1 -0
  19. package/dist/es5/lib/api/gltf-scenegraph.js +598 -0
  20. package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -0
  21. package/dist/es5/lib/api/normalize-gltf-v1.js +331 -0
  22. package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -0
  23. package/dist/es5/lib/api/post-process-gltf.js +470 -0
  24. package/dist/es5/lib/api/post-process-gltf.js.map +1 -0
  25. package/dist/es5/lib/encoders/encode-glb.js +61 -0
  26. package/dist/es5/lib/encoders/encode-glb.js.map +1 -0
  27. package/dist/es5/lib/encoders/encode-gltf.js +20 -0
  28. package/dist/es5/lib/encoders/encode-gltf.js.map +1 -0
  29. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +94 -0
  30. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -0
  31. package/dist/es5/lib/extensions/EXT_texture_webp.js +43 -0
  32. package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -0
  33. package/dist/es5/lib/extensions/KHR_binary_gltf.js +39 -0
  34. package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -0
  35. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +247 -0
  36. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
  37. package/dist/es5/lib/extensions/KHR_texture_basisu.js +36 -0
  38. package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -0
  39. package/dist/es5/lib/extensions/KHR_texture_transform.js +230 -0
  40. package/dist/es5/lib/extensions/KHR_texture_transform.js.map +1 -0
  41. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +281 -0
  42. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
  43. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +99 -0
  44. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  45. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +76 -0
  46. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  47. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +113 -0
  48. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  49. package/dist/es5/lib/gltf-utils/get-typed-array.js +23 -0
  50. package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -0
  51. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +68 -0
  52. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
  53. package/dist/es5/lib/gltf-utils/gltf-constants.js +48 -0
  54. package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -0
  55. package/dist/es5/lib/gltf-utils/gltf-utils.js +86 -0
  56. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -0
  57. package/dist/es5/lib/gltf-utils/resolve-url.js +18 -0
  58. package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -0
  59. package/dist/es5/lib/parsers/parse-glb.js +120 -0
  60. package/dist/es5/lib/parsers/parse-glb.js.map +1 -0
  61. package/dist/es5/lib/parsers/parse-gltf.js +280 -0
  62. package/dist/es5/lib/parsers/parse-gltf.js.map +1 -0
  63. package/dist/es5/lib/types/glb-types.js +2 -0
  64. package/dist/es5/lib/types/glb-types.js.map +1 -0
  65. package/dist/es5/lib/types/gltf-json-schema.js +2 -0
  66. package/dist/es5/lib/types/gltf-json-schema.js.map +1 -0
  67. package/dist/es5/lib/types/gltf-postprocessed-schema.js +2 -0
  68. package/dist/es5/lib/types/gltf-postprocessed-schema.js.map +1 -0
  69. package/dist/es5/lib/types/gltf-types.js +2 -0
  70. package/dist/es5/lib/types/gltf-types.js.map +1 -0
  71. package/dist/es5/lib/utils/assert.js +12 -0
  72. package/dist/es5/lib/utils/assert.js.map +1 -0
  73. package/dist/es5/lib/utils/version.js +9 -0
  74. package/dist/es5/lib/utils/version.js.map +1 -0
  75. package/dist/es5/meshopt/meshopt-decoder.js +215 -0
  76. package/dist/es5/meshopt/meshopt-decoder.js.map +1 -0
  77. package/dist/es5/webp/webp.js +83 -0
  78. package/dist/es5/webp/webp.js.map +1 -0
  79. package/dist/esm/bundle.js +4 -0
  80. package/dist/esm/bundle.js.map +1 -0
  81. package/dist/esm/glb-loader.js +31 -0
  82. package/dist/esm/glb-loader.js.map +1 -0
  83. package/dist/esm/glb-writer.js +27 -0
  84. package/dist/esm/glb-writer.js.map +1 -0
  85. package/dist/esm/gltf-loader.js +51 -0
  86. package/dist/esm/gltf-loader.js.map +1 -0
  87. package/dist/esm/gltf-writer.js +28 -0
  88. package/dist/esm/gltf-writer.js.map +1 -0
  89. package/dist/esm/index.js +8 -0
  90. package/dist/esm/index.js.map +1 -0
  91. package/dist/esm/lib/api/gltf-extensions.js +35 -0
  92. package/dist/esm/lib/api/gltf-extensions.js.map +1 -0
  93. package/dist/esm/lib/api/gltf-scenegraph.js +455 -0
  94. package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -0
  95. package/dist/esm/lib/api/normalize-gltf-v1.js +204 -0
  96. package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -0
  97. package/dist/esm/lib/api/post-process-gltf.js +396 -0
  98. package/dist/esm/lib/api/post-process-gltf.js.map +1 -0
  99. package/dist/esm/lib/encoders/encode-glb.js +54 -0
  100. package/dist/esm/lib/encoders/encode-glb.js.map +1 -0
  101. package/dist/esm/lib/encoders/encode-gltf.js +14 -0
  102. package/dist/esm/lib/encoders/encode-gltf.js.map +1 -0
  103. package/dist/esm/lib/extensions/EXT_meshopt_compression.js +41 -0
  104. package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -0
  105. package/dist/esm/lib/extensions/EXT_texture_webp.js +25 -0
  106. package/dist/esm/lib/extensions/EXT_texture_webp.js.map +1 -0
  107. package/dist/esm/lib/extensions/KHR_binary_gltf.js +21 -0
  108. package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +1 -0
  109. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js +111 -0
  110. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
  111. package/dist/esm/lib/extensions/KHR_texture_basisu.js +18 -0
  112. package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +1 -0
  113. package/dist/esm/lib/extensions/KHR_texture_transform.js +182 -0
  114. package/dist/esm/lib/extensions/KHR_texture_transform.js.map +1 -0
  115. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js +223 -0
  116. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
  117. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js +42 -0
  118. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  119. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js +33 -0
  120. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  121. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js +61 -0
  122. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  123. package/dist/esm/lib/gltf-utils/get-typed-array.js +16 -0
  124. package/dist/esm/lib/gltf-utils/get-typed-array.js.map +1 -0
  125. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js +62 -0
  126. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
  127. package/dist/esm/lib/gltf-utils/gltf-constants.js +37 -0
  128. package/dist/esm/lib/gltf-utils/gltf-constants.js.map +1 -0
  129. package/dist/esm/lib/gltf-utils/gltf-utils.js +74 -0
  130. package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -0
  131. package/dist/esm/lib/gltf-utils/resolve-url.js +12 -0
  132. package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -0
  133. package/dist/esm/lib/parsers/parse-glb.js +114 -0
  134. package/dist/esm/lib/parsers/parse-glb.js.map +1 -0
  135. package/dist/esm/lib/parsers/parse-gltf.js +151 -0
  136. package/dist/esm/lib/parsers/parse-gltf.js.map +1 -0
  137. package/dist/esm/lib/types/glb-types.js +2 -0
  138. package/dist/esm/lib/types/glb-types.js.map +1 -0
  139. package/dist/esm/lib/types/gltf-json-schema.js +2 -0
  140. package/dist/esm/lib/types/gltf-json-schema.js.map +1 -0
  141. package/dist/esm/lib/types/gltf-postprocessed-schema.js +2 -0
  142. package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +1 -0
  143. package/dist/esm/lib/types/gltf-types.js +2 -0
  144. package/dist/esm/lib/types/gltf-types.js.map +1 -0
  145. package/dist/esm/lib/utils/assert.js +6 -0
  146. package/dist/esm/lib/utils/assert.js.map +1 -0
  147. package/dist/esm/lib/utils/version.js +2 -0
  148. package/dist/esm/lib/utils/version.js.map +1 -0
  149. package/dist/esm/meshopt/meshopt-decoder.js +91 -0
  150. package/dist/esm/meshopt/meshopt-decoder.js.map +1 -0
  151. package/dist/esm/meshopt/meshopt-encoder.ts.disabled +409 -0
  152. package/dist/esm/webp/webp.js +25 -0
  153. package/dist/esm/webp/webp.js.map +1 -0
  154. package/dist/glb-loader.d.ts +14 -0
  155. package/dist/glb-loader.d.ts.map +1 -0
  156. package/dist/glb-loader.js +30 -28
  157. package/dist/glb-writer.d.ts +13 -0
  158. package/dist/glb-writer.d.ts.map +1 -0
  159. package/dist/glb-writer.js +32 -26
  160. package/dist/gltf-loader.d.ts +19 -0
  161. package/dist/gltf-loader.d.ts.map +1 -0
  162. package/dist/gltf-loader.js +46 -43
  163. package/dist/gltf-writer.d.ts +25 -0
  164. package/dist/gltf-writer.d.ts.map +1 -0
  165. package/dist/gltf-writer.js +29 -26
  166. package/dist/index.d.ts +15 -0
  167. package/dist/index.d.ts.map +1 -0
  168. package/dist/index.js +28 -7
  169. package/dist/lib/api/gltf-extensions.d.ts +31 -0
  170. package/dist/lib/api/gltf-extensions.d.ts.map +1 -0
  171. package/dist/lib/api/gltf-extensions.js +79 -31
  172. package/dist/lib/api/gltf-scenegraph.d.ts +180 -0
  173. package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -0
  174. package/dist/lib/api/gltf-scenegraph.js +578 -513
  175. package/dist/lib/api/normalize-gltf-v1.d.ts +2 -0
  176. package/dist/lib/api/normalize-gltf-v1.d.ts.map +1 -0
  177. package/dist/lib/api/normalize-gltf-v1.js +278 -226
  178. package/dist/lib/api/post-process-gltf.d.ts +5 -0
  179. package/dist/lib/api/post-process-gltf.d.ts.map +1 -0
  180. package/dist/lib/api/post-process-gltf.js +386 -345
  181. package/dist/lib/encoders/encode-glb.d.ts +15 -0
  182. package/dist/lib/encoders/encode-glb.d.ts.map +1 -0
  183. package/dist/lib/encoders/encode-glb.js +67 -58
  184. package/dist/lib/encoders/encode-gltf.d.ts +20 -0
  185. package/dist/lib/encoders/encode-gltf.d.ts.map +1 -0
  186. package/dist/lib/encoders/encode-gltf.js +30 -12
  187. package/dist/lib/extensions/EXT_meshopt_compression.d.ts +7 -0
  188. package/dist/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -0
  189. package/dist/lib/extensions/EXT_meshopt_compression.js +35 -50
  190. package/dist/lib/extensions/EXT_texture_webp.d.ts +12 -0
  191. package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -0
  192. package/dist/lib/extensions/EXT_texture_webp.js +32 -28
  193. package/dist/lib/extensions/KHR_binary_gltf.d.ts +7 -0
  194. package/dist/lib/extensions/KHR_binary_gltf.d.ts.map +1 -0
  195. package/dist/lib/extensions/KHR_binary_gltf.js +36 -23
  196. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts +13 -0
  197. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -0
  198. package/dist/lib/extensions/KHR_draco_mesh_compression.js +123 -111
  199. package/dist/lib/extensions/KHR_texture_basisu.d.ts +12 -0
  200. package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -0
  201. package/dist/lib/extensions/KHR_texture_basisu.js +26 -19
  202. package/dist/lib/extensions/KHR_texture_transform.d.ts +13 -0
  203. package/dist/lib/extensions/KHR_texture_transform.d.ts.map +1 -0
  204. package/dist/lib/extensions/KHR_texture_transform.js +227 -0
  205. package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts +7 -0
  206. package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -0
  207. package/dist/lib/extensions/deprecated/EXT_feature_metadata.js +290 -0
  208. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts +7 -0
  209. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts.map +1 -0
  210. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js +54 -44
  211. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts +7 -0
  212. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts.map +1 -0
  213. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +39 -32
  214. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts +7 -0
  215. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -0
  216. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +73 -62
  217. package/dist/lib/gltf-utils/get-typed-array.d.ts +3 -0
  218. package/dist/lib/gltf-utils/get-typed-array.d.ts.map +1 -0
  219. package/dist/lib/gltf-utils/get-typed-array.js +39 -14
  220. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts +6 -0
  221. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts.map +1 -0
  222. package/dist/lib/gltf-utils/gltf-attribute-utils.js +65 -65
  223. package/dist/lib/gltf-utils/gltf-constants.d.ts +21 -0
  224. package/dist/lib/gltf-utils/gltf-constants.d.ts.map +1 -0
  225. package/dist/lib/gltf-utils/gltf-constants.js +38 -32
  226. package/dist/lib/gltf-utils/gltf-utils.d.ts +15 -0
  227. package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -0
  228. package/dist/lib/gltf-utils/gltf-utils.js +79 -45
  229. package/dist/lib/gltf-utils/resolve-url.d.ts +2 -0
  230. package/dist/lib/gltf-utils/resolve-url.d.ts.map +1 -0
  231. package/dist/lib/gltf-utils/resolve-url.js +17 -15
  232. package/dist/lib/parsers/parse-glb.d.ts +20 -0
  233. package/dist/lib/parsers/parse-glb.d.ts.map +1 -0
  234. package/dist/lib/parsers/parse-glb.js +143 -105
  235. package/dist/lib/parsers/parse-gltf.d.ts +18 -0
  236. package/dist/lib/parsers/parse-gltf.d.ts.map +1 -0
  237. package/dist/lib/parsers/parse-gltf.js +164 -155
  238. package/dist/lib/types/glb-types.d.ts +17 -0
  239. package/dist/lib/types/glb-types.d.ts.map +1 -0
  240. package/dist/lib/types/glb-types.js +2 -2
  241. package/dist/lib/types/gltf-json-schema.d.ts +1119 -0
  242. package/dist/lib/types/gltf-json-schema.d.ts.map +1 -0
  243. package/dist/lib/types/gltf-json-schema.js +4 -2
  244. package/dist/lib/types/gltf-postprocessed-schema.d.ts +651 -0
  245. package/dist/lib/types/gltf-postprocessed-schema.d.ts.map +1 -0
  246. package/dist/lib/types/gltf-postprocessed-schema.js +4 -2
  247. package/dist/lib/types/gltf-types.d.ts +26 -0
  248. package/dist/lib/types/gltf-types.d.ts.map +1 -0
  249. package/dist/lib/types/gltf-types.js +3 -2
  250. package/dist/lib/utils/assert.d.ts +2 -0
  251. package/dist/lib/utils/assert.d.ts.map +1 -0
  252. package/dist/lib/utils/assert.js +11 -5
  253. package/dist/lib/utils/version.d.ts +2 -0
  254. package/dist/lib/utils/version.d.ts.map +1 -0
  255. package/dist/lib/utils/version.js +7 -2
  256. package/dist/meshopt/meshopt-decoder.d.ts +6 -0
  257. package/dist/meshopt/meshopt-decoder.d.ts.map +1 -0
  258. package/dist/meshopt/meshopt-decoder.js +97 -82
  259. package/dist/webp/webp.d.ts +7 -0
  260. package/dist/webp/webp.d.ts.map +1 -0
  261. package/dist/webp/webp.js +32 -23
  262. package/package.json +11 -13
  263. package/src/glb-loader.ts +4 -4
  264. package/src/glb-writer.ts +11 -3
  265. package/src/gltf-loader.ts +12 -8
  266. package/src/gltf-writer.ts +2 -2
  267. package/src/index.ts +34 -5
  268. package/src/lib/api/gltf-extensions.ts +14 -3
  269. package/src/lib/api/gltf-scenegraph.ts +68 -40
  270. package/src/lib/api/{normalize-gltf-v1.js → normalize-gltf-v1.ts} +20 -17
  271. package/src/lib/api/post-process-gltf.ts +556 -0
  272. package/src/lib/encoders/{encode-glb.js → encode-glb.ts} +21 -4
  273. package/src/lib/encoders/encode-gltf.ts +34 -0
  274. package/src/lib/extensions/EXT_meshopt_compression.ts +16 -25
  275. package/src/lib/extensions/EXT_texture_webp.ts +5 -4
  276. package/src/lib/extensions/KHR_binary_gltf.ts +3 -3
  277. package/src/lib/extensions/KHR_draco_mesh_compression.ts +8 -8
  278. package/src/lib/extensions/KHR_texture_basisu.ts +6 -5
  279. package/src/lib/extensions/KHR_texture_transform.ts +308 -0
  280. package/src/lib/extensions/deprecated/EXT_feature_metadata.ts +404 -0
  281. package/src/lib/extensions/deprecated/KHR_lights_punctual.ts +2 -2
  282. package/src/lib/extensions/deprecated/KHR_materials_unlit.ts +5 -5
  283. package/src/lib/extensions/deprecated/KHR_techniques_webgl.ts +3 -2
  284. package/src/lib/gltf-utils/gltf-attribute-utils.ts +1 -1
  285. package/src/lib/gltf-utils/gltf-constants.ts +2 -2
  286. package/src/lib/gltf-utils/gltf-utils.ts +31 -0
  287. package/src/lib/parsers/parse-glb.ts +50 -24
  288. package/src/lib/parsers/parse-gltf.ts +38 -28
  289. package/src/lib/types/glb-types.ts +1 -1
  290. package/src/lib/types/gltf-json-schema.ts +585 -126
  291. package/src/lib/types/gltf-postprocessed-schema.ts +290 -212
  292. package/src/lib/types/gltf-types.ts +43 -43
  293. package/src/lib/utils/{assert.js → assert.ts} +1 -1
  294. package/dist/bundle.js.map +0 -1
  295. package/dist/glb-loader.js.map +0 -1
  296. package/dist/glb-writer.js.map +0 -1
  297. package/dist/gltf-loader.js.map +0 -1
  298. package/dist/gltf-writer.js.map +0 -1
  299. package/dist/index.js.map +0 -1
  300. package/dist/lib/api/gltf-extensions.js.map +0 -1
  301. package/dist/lib/api/gltf-scenegraph.js.map +0 -1
  302. package/dist/lib/api/normalize-gltf-v1.js.map +0 -1
  303. package/dist/lib/api/post-process-gltf.js.map +0 -1
  304. package/dist/lib/encoders/encode-glb.js.map +0 -1
  305. package/dist/lib/encoders/encode-gltf.js.map +0 -1
  306. package/dist/lib/extensions/EXT_meshopt_compression.js.map +0 -1
  307. package/dist/lib/extensions/EXT_texture_webp.js.map +0 -1
  308. package/dist/lib/extensions/KHR_binary_gltf.js.map +0 -1
  309. package/dist/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
  310. package/dist/lib/extensions/KHR_texture_basisu.js.map +0 -1
  311. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
  312. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
  313. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
  314. package/dist/lib/gltf-utils/get-typed-array.js.map +0 -1
  315. package/dist/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
  316. package/dist/lib/gltf-utils/gltf-constants.js.map +0 -1
  317. package/dist/lib/gltf-utils/gltf-utils.js.map +0 -1
  318. package/dist/lib/gltf-utils/resolve-url.js.map +0 -1
  319. package/dist/lib/parsers/parse-glb.js.map +0 -1
  320. package/dist/lib/parsers/parse-gltf.js.map +0 -1
  321. package/dist/lib/types/glb-types.js.map +0 -1
  322. package/dist/lib/types/gltf-json-schema.js.map +0 -1
  323. package/dist/lib/types/gltf-postprocessed-schema.js.map +0 -1
  324. package/dist/lib/types/gltf-types.js.map +0 -1
  325. package/dist/lib/utils/assert.js.map +0 -1
  326. package/dist/lib/utils/version.js.map +0 -1
  327. package/dist/meshopt/meshopt-decoder.js.map +0 -1
  328. package/dist/webp/webp.js.map +0 -1
  329. package/src/lib/api/post-process-gltf.js +0 -388
  330. package/src/lib/encoders/encode-gltf.js +0 -25
  331. /package/dist/{meshopt → es5/meshopt}/meshopt-encoder.ts.disabled +0 -0
  332. /package/src/lib/utils/{version.js → version.ts} +0 -0
package/src/index.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  /* eslint-disable camelcase, indent */
2
2
  export type {GLB} from './lib/types/glb-types';
3
+
4
+ // Raw GLTF Types (i.e. not post-processed)
3
5
  export type {
4
6
  GLTF,
5
7
  GLTFAccessor,
@@ -14,13 +16,32 @@ export type {
14
16
  GLTFSkin,
15
17
  GLTFTexture,
16
18
  GLTFImage,
19
+ GLTFObject,
17
20
  // The following extensions are handled by the GLTFLoader and removed from the parsed glTF (disable via options.gltf.excludeExtensions)
18
21
  GLTF_KHR_binary_glTF,
19
22
  GLTF_KHR_draco_mesh_compression,
20
23
  GLTF_KHR_texture_basisu,
21
24
  GLTF_EXT_meshopt_compression,
22
- GLTF_EXT_texture_webp
23
- } from './lib/types/gltf-types';
25
+ GLTF_EXT_texture_webp,
26
+ GLTF_EXT_feature_metadata,
27
+ GLTF_EXT_feature_metadata_primitive,
28
+ GLTF_EXT_feature_metadata_attribute,
29
+ GLTF_EXT_mesh_features
30
+ } from './lib/types/gltf-json-schema';
31
+
32
+ // Postprocessed types (modified GLTF types)
33
+ export type {
34
+ GLTFPostprocessed,
35
+ GLTFAccessorPostprocessed,
36
+ GLTFNodePostprocessed,
37
+ GLTFMaterialPostprocessed,
38
+ GLTFMeshPostprocessed,
39
+ GLTFMeshPrimitivePostprocessed,
40
+ GLTFImagePostprocessed,
41
+ GLTFTexturePostprocessed
42
+ } from './lib/types/gltf-postprocessed-schema';
43
+
44
+ export type {GLTFWithBuffers} from './lib/types/gltf-types';
24
45
 
25
46
  // glTF loader/writer definition objects
26
47
  export {GLTFLoader} from './gltf-loader';
@@ -31,7 +52,15 @@ export {GLBLoader} from './glb-loader';
31
52
  export {GLBWriter} from './glb-writer';
32
53
 
33
54
  // glTF Data Access Helper Class
34
- export {default as GLTFScenegraph} from './lib/api/gltf-scenegraph';
55
+ export {GLTFScenegraph} from './lib/api/gltf-scenegraph';
35
56
  export {postProcessGLTF} from './lib/api/post-process-gltf';
36
- export type {Mesh} from './lib/types/gltf-json-schema';
37
- export type {GLTFObject} from './lib/types/gltf-types';
57
+ export {getMemoryUsageGLTF as _getMemoryUsageGLTF} from './lib/gltf-utils/gltf-utils';
58
+
59
+ /** @deprecated */
60
+ // export type {GLTFMesh as Mesh} from './lib/types/gltf-json-schema';
61
+ /** @deprecated */
62
+ // export type {GLTFNodePostprocessed as Node} from './lib/types/gltf-postprocessed-schema';
63
+ /** @deprecated */
64
+ // export type {GLTFAccessorPostprocessed as Accessor} from './lib/types/gltf-postprocessed-schema';
65
+ // /** @deprecated */
66
+ // export type {GLTFImagePostprocessed as Image} from './lib/types/gltf-postprocessed-schema';
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable camelcase */
2
- import {GLTF} from '../types/gltf-types';
2
+ import {GLTF} from '../types/gltf-json-schema';
3
3
  import type {GLTFLoaderOptions} from '../../gltf-loader';
4
4
 
5
5
  // GLTF 1.0 extensions (decode only)
@@ -10,18 +10,27 @@ import * as EXT_meshopt_compression from '../extensions/EXT_meshopt_compression'
10
10
  import * as EXT_texture_webp from '../extensions/EXT_texture_webp';
11
11
  import * as KHR_texture_basisu from '../extensions/KHR_texture_basisu';
12
12
  import * as KHR_draco_mesh_compression from '../extensions/KHR_draco_mesh_compression';
13
+ import * as KHR_texture_transform from '../extensions/KHR_texture_transform';
13
14
 
14
15
  // Deprecated. These should be handled by rendering library (e.g. luma.gl), not the loader.
15
16
  import * as KHR_lights_punctual from '../extensions/deprecated/KHR_lights_punctual';
16
17
  import * as KHR_materials_unlit from '../extensions/deprecated/KHR_materials_unlit';
17
18
  import * as KHR_techniques_webgl from '../extensions/deprecated/KHR_techniques_webgl';
19
+ import * as EXT_feature_metadata from '../extensions/deprecated/EXT_feature_metadata';
18
20
 
19
21
  // Vendor extensions
20
22
 
21
23
  type GLTFExtensionPlugin = {
22
24
  name: string;
23
25
  preprocess?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => void;
24
- decode?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => Promise<void>;
26
+ decode?: (
27
+ gltfData: {
28
+ json: GLTF;
29
+ buffers: {arrayBuffer: ArrayBuffer; byteOffset: number; byteLength: number}[];
30
+ },
31
+ options: GLTFLoaderOptions,
32
+ context
33
+ ) => Promise<void>;
25
34
  encode?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions) => void;
26
35
  };
27
36
 
@@ -43,7 +52,9 @@ export const EXTENSIONS: GLTFExtensionPlugin[] = [
43
52
  KHR_draco_mesh_compression,
44
53
  KHR_lights_punctual,
45
54
  KHR_materials_unlit,
46
- KHR_techniques_webgl
55
+ KHR_techniques_webgl,
56
+ KHR_texture_transform,
57
+ EXT_feature_metadata
47
58
  ];
48
59
 
49
60
  /** Call before any resource loading starts */
@@ -1,3 +1,6 @@
1
+ // loaders.gl, MIT license
2
+
3
+ import type {GLTFWithBuffers} from '../types/gltf-types';
1
4
  import type {
2
5
  GLTF,
3
6
  GLTFScene,
@@ -11,7 +14,7 @@ import type {
11
14
  GLTFImage,
12
15
  GLTFBuffer,
13
16
  GLTFBufferView
14
- } from '../types/gltf-types';
17
+ } from '../types/gltf-json-schema';
15
18
 
16
19
  import {getBinaryImageMetadata} from '@loaders.gl/images';
17
20
  import {padToNBytes, copyToArray} from '@loaders.gl/loader-utils';
@@ -22,35 +25,38 @@ import {
22
25
  getComponentTypeFromArray
23
26
  } from '../gltf-utils/gltf-utils';
24
27
 
25
- type GLTFWithBuffers = {
26
- json: GLTF;
27
- buffers: any[];
28
- binary?: ArrayBuffer;
29
- };
28
+ type Extension = {[key: string]: any};
30
29
 
31
- const DEFAULT_GLTF_JSON: GLTF = {
32
- asset: {
33
- version: '2.0',
34
- generator: 'loaders.gl'
35
- },
36
- buffers: []
37
- };
30
+ function makeDefaultGLTFJson(): GLTF {
31
+ return {
32
+ asset: {
33
+ version: '2.0',
34
+ generator: 'loaders.gl'
35
+ },
36
+ buffers: [],
37
+ extensions: {},
38
+ extensionsRequired: [],
39
+ extensionsUsed: []
40
+ };
41
+ }
38
42
 
39
- type Extension = {[key: string]: any};
40
43
  /**
41
44
  * Class for structured access to GLTF data
42
45
  */
43
- export default class GLTFScenegraph {
46
+ export class GLTFScenegraph {
44
47
  // internal
45
48
  gltf: GLTFWithBuffers;
46
49
  sourceBuffers: any[];
47
50
  byteLength: number;
48
51
 
49
- constructor(gltf?: {json: GLTF; buffers?: any[]}) {
50
- // @ts-ignore
51
- this.gltf = gltf || {
52
- json: {...DEFAULT_GLTF_JSON},
53
- buffers: []
52
+ // TODO - why is this not GLTFWithBuffers - what happens to images?
53
+ constructor(gltf?: {json: GLTF; buffers?: any[]; images?: any[]}) {
54
+ // Declare locally so
55
+
56
+ this.gltf = {
57
+ json: gltf?.json || makeDefaultGLTFJson(),
58
+ buffers: gltf?.buffers || [],
59
+ images: gltf?.images || []
54
60
  };
55
61
  this.sourceBuffers = [];
56
62
  this.byteLength = 0;
@@ -68,22 +74,28 @@ export default class GLTFScenegraph {
68
74
  return this.gltf.json;
69
75
  }
70
76
 
71
- getApplicationData(key: string): {[key: string]: any} {
77
+ getApplicationData(key: string): unknown {
72
78
  // TODO - Data is already unpacked by GLBParser
73
79
  const data = this.json[key];
74
80
  return data;
75
81
  }
76
82
 
77
- getExtraData(key: string): {[key: string]: any} {
83
+ getExtraData(key: string): {[key: string]: unknown} {
78
84
  // TODO - Data is already unpacked by GLBParser
79
85
  const extras = this.json.extras || {};
80
86
  return extras[key];
81
87
  }
82
88
 
89
+ hasExtension(extensionName: string): boolean {
90
+ const isUsedExtension = this.getUsedExtensions().find((name) => name === extensionName);
91
+ const isRequiredExtension = this.getRequiredExtensions().find((name) => name === extensionName);
92
+ return typeof isUsedExtension === 'string' || typeof isRequiredExtension === 'string';
93
+ }
94
+
83
95
  getExtension<T = Extension>(extensionName: string): T | null {
84
96
  const isExtension = this.getUsedExtensions().find((name) => name === extensionName);
85
97
  const extensions = this.json.extensions || {};
86
- return isExtension ? extensions[extensionName] || true : null;
98
+ return isExtension ? (extensions[extensionName] as T) : null;
87
99
  }
88
100
 
89
101
  getRequiredExtension<T = Extension>(extensionName: string): T | null {
@@ -99,6 +111,10 @@ export default class GLTFScenegraph {
99
111
  return this.json.extensionsUsed || [];
100
112
  }
101
113
 
114
+ getRemovedExtensions(): string[] {
115
+ return (this.json.extensionsRemoved || []) as string[];
116
+ }
117
+
102
118
  getObjectExtension<T = Extension>(object: {[key: string]: any}, extensionName: string): T | null {
103
119
  const extensions = object.extensions || {};
104
120
  return extensions[extensionName];
@@ -157,7 +173,7 @@ export default class GLTFScenegraph {
157
173
  if (typeof index === 'object') {
158
174
  return index;
159
175
  }
160
- const object = this.json[array] && this.json[array][index];
176
+ const object = this.json[array] && (this.json[array] as {}[])[index];
161
177
  if (!object) {
162
178
  throw new Error(`glTF file error: Could not find ${array}[${index}]`); // eslint-disable-line
163
179
  }
@@ -234,7 +250,7 @@ export default class GLTFScenegraph {
234
250
  */
235
251
  addExtraData(key: string, data: object): GLTFScenegraph {
236
252
  this.json.extras = this.json.extras || {};
237
- this.json.extras[key] = data;
253
+ (this.json.extras as Record<string, unknown>)[key] = data;
238
254
  return this;
239
255
  }
240
256
 
@@ -248,19 +264,24 @@ export default class GLTFScenegraph {
248
264
  return this;
249
265
  }
250
266
 
251
- setObjectExtension(object: object, extensionName: string, data: object): void {
252
- // @ts-ignore
267
+ setObjectExtension(object: any, extensionName: string, data: object): void {
253
268
  const extensions = object.extensions || {};
254
269
  extensions[extensionName] = data;
255
270
  // TODO - add to usedExtensions...
256
271
  }
257
272
 
258
- removeObjectExtension(object: object, extensionName: string): object {
259
- // @ts-ignore
260
- const extensions = object.extensions || {};
261
- const extension = extensions[extensionName];
273
+ removeObjectExtension(object: any, extensionName: string): void {
274
+ const extensions = object?.extensions || {};
275
+
276
+ if (extensions[extensionName]) {
277
+ this.json.extensionsRemoved = this.json.extensionsRemoved || [];
278
+ const extensionsRemoved = this.json.extensionsRemoved as string[];
279
+ if (!extensionsRemoved.includes(extensionName)) {
280
+ extensionsRemoved.push(extensionName);
281
+ }
282
+ }
283
+
262
284
  delete extensions[extensionName];
263
- return extension;
264
285
  }
265
286
 
266
287
  /**
@@ -309,15 +330,22 @@ export default class GLTFScenegraph {
309
330
  * Removes an extension from the top-level list
310
331
  */
311
332
  removeExtension(extensionName: string): void {
333
+ if (this.json.extensions?.[extensionName]) {
334
+ this.json.extensionsRemoved = this.json.extensionsRemoved || [];
335
+ const extensionsRemoved = this.json.extensionsRemoved as string[];
336
+ if (!extensionsRemoved.includes(extensionName)) {
337
+ extensionsRemoved.push(extensionName);
338
+ }
339
+ }
340
+ if (this.json.extensions) {
341
+ delete this.json.extensions[extensionName];
342
+ }
312
343
  if (this.json.extensionsRequired) {
313
344
  this._removeStringFromArray(this.json.extensionsRequired, extensionName);
314
345
  }
315
346
  if (this.json.extensionsUsed) {
316
347
  this._removeStringFromArray(this.json.extensionsUsed, extensionName);
317
348
  }
318
- if (this.json.extensions) {
319
- delete this.json.extensions[extensionName];
320
- }
321
349
  }
322
350
 
323
351
  /**
@@ -344,7 +372,7 @@ export default class GLTFScenegraph {
344
372
  * `name`, `extensions`, `extras`, `camera`, `children`, `skin`, `rotation`, `scale`, `translation`, `weights`
345
373
  * https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#node
346
374
  */
347
- addNode(node: {meshIndex: number; matrix: number[]}): number {
375
+ addNode(node: {meshIndex: number; matrix?: number[]}): number {
348
376
  const {meshIndex, matrix} = node;
349
377
  this.json.nodes = this.json.nodes || [];
350
378
  const nodeData = {mesh: meshIndex};
@@ -357,7 +385,7 @@ export default class GLTFScenegraph {
357
385
  }
358
386
 
359
387
  /** Adds a mesh to the json part */
360
- addMesh(mesh: {attributes: object; indices: object; material: number; mode: number}): number {
388
+ addMesh(mesh: {attributes: object; indices?: object; material?: number; mode?: number}): number {
361
389
  const {attributes, indices, material, mode = 4} = mesh;
362
390
  const accessors = this._addAttributes(attributes);
363
391
 
@@ -434,7 +462,7 @@ export default class GLTFScenegraph {
434
462
  * Add one untyped source buffer, create a matching glTF `bufferView`, and return its index
435
463
  * @param buffer
436
464
  */
437
- addBufferView(buffer: any): number {
465
+ addBufferView(buffer: any, bufferIndex = 0, byteOffset = this.byteLength): number {
438
466
  const byteLength = buffer.byteLength;
439
467
  assert(Number.isFinite(byteLength));
440
468
 
@@ -443,9 +471,9 @@ export default class GLTFScenegraph {
443
471
  this.sourceBuffers.push(buffer);
444
472
 
445
473
  const glTFBufferView = {
446
- buffer: 0,
474
+ buffer: bufferIndex,
447
475
  // Write offset from the start of the binary body
448
- byteOffset: this.byteLength,
476
+ byteOffset,
449
477
  byteLength
450
478
  };
451
479
 
@@ -80,22 +80,24 @@ const GLTF_KEYS = {
80
80
  * Converts (normalizes) glTF v1 to v2
81
81
  */
82
82
  class GLTFV1Normalizer {
83
- constructor(gltf) {
84
- this.idToIndexMap = {
85
- animations: {},
86
- accessors: {},
87
- buffers: {},
88
- bufferViews: {},
89
- images: {},
90
- materials: {},
91
- meshes: {},
92
- nodes: {},
93
- samplers: {},
94
- scenes: {},
95
- skins: {},
96
- textures: {}
97
- };
98
- }
83
+ idToIndexMap = {
84
+ animations: {},
85
+ accessors: {},
86
+ buffers: {},
87
+ bufferViews: {},
88
+ images: {},
89
+ materials: {},
90
+ meshes: {},
91
+ nodes: {},
92
+ samplers: {},
93
+ scenes: {},
94
+ skins: {},
95
+ textures: {}
96
+ };
97
+
98
+ json;
99
+
100
+ // constructor() {}
99
101
 
100
102
  /**
101
103
  * Convert (normalize) glTF < 2.0 to glTF 2.0
@@ -296,7 +298,8 @@ class GLTFV1Normalizer {
296
298
  roughnessFactor: 1
297
299
  };
298
300
 
299
- const textureId = material.values && material.values.tex;
301
+ const textureId =
302
+ material.values?.tex || material.values?.texture2d_0 || material.values?.diffuseTex;
300
303
  const textureIndex = json.textures.findIndex((texture) => texture.id === textureId);
301
304
  if (textureIndex !== -1) {
302
305
  material.pbrMetallicRoughness.baseColorTexture = {index: textureIndex};