@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
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,14 +16,32 @@ export type {
14
16
  GLTFSkin,
15
17
  GLTFTexture,
16
18
  GLTFImage,
17
- GLTFImagePostprocessed,
19
+ GLTFObject,
18
20
  // The following extensions are handled by the GLTFLoader and removed from the parsed glTF (disable via options.gltf.excludeExtensions)
19
21
  GLTF_KHR_binary_glTF,
20
22
  GLTF_KHR_draco_mesh_compression,
21
23
  GLTF_KHR_texture_basisu,
22
24
  GLTF_EXT_meshopt_compression,
23
- GLTF_EXT_texture_webp
24
- } 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';
25
45
 
26
46
  // glTF loader/writer definition objects
27
47
  export {GLTFLoader} from './gltf-loader';
@@ -32,7 +52,15 @@ export {GLBLoader} from './glb-loader';
32
52
  export {GLBWriter} from './glb-writer';
33
53
 
34
54
  // glTF Data Access Helper Class
35
- export {default as GLTFScenegraph} from './lib/api/gltf-scenegraph';
55
+ export {GLTFScenegraph} from './lib/api/gltf-scenegraph';
36
56
  export {postProcessGLTF} from './lib/api/post-process-gltf';
37
- export type {Mesh} from './lib/types/gltf-json-schema';
38
- 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,37 @@ 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
 
52
+ // TODO - why is this not GLTFWithBuffers - what happens to images?
49
53
  constructor(gltf?: {json: GLTF; buffers?: any[]}) {
50
- // @ts-ignore
51
- this.gltf = gltf || {
52
- json: {...DEFAULT_GLTF_JSON},
53
- buffers: []
54
+ // Declare locally so
55
+
56
+ this.gltf = {
57
+ json: gltf?.json || makeDefaultGLTFJson(),
58
+ buffers: gltf?.buffers || []
54
59
  };
55
60
  this.sourceBuffers = [];
56
61
  this.byteLength = 0;
@@ -68,22 +73,28 @@ export default class GLTFScenegraph {
68
73
  return this.gltf.json;
69
74
  }
70
75
 
71
- getApplicationData(key: string): {[key: string]: any} {
76
+ getApplicationData(key: string): unknown {
72
77
  // TODO - Data is already unpacked by GLBParser
73
78
  const data = this.json[key];
74
79
  return data;
75
80
  }
76
81
 
77
- getExtraData(key: string): {[key: string]: any} {
82
+ getExtraData(key: string): {[key: string]: unknown} {
78
83
  // TODO - Data is already unpacked by GLBParser
79
84
  const extras = this.json.extras || {};
80
85
  return extras[key];
81
86
  }
82
87
 
88
+ hasExtension(extensionName: string): boolean {
89
+ const isUsedExtension = this.getUsedExtensions().find((name) => name === extensionName);
90
+ const isRequiredExtension = this.getRequiredExtensions().find((name) => name === extensionName);
91
+ return typeof isUsedExtension === 'string' || typeof isRequiredExtension === 'string';
92
+ }
93
+
83
94
  getExtension<T = Extension>(extensionName: string): T | null {
84
95
  const isExtension = this.getUsedExtensions().find((name) => name === extensionName);
85
96
  const extensions = this.json.extensions || {};
86
- return isExtension ? extensions[extensionName] || true : null;
97
+ return isExtension ? (extensions[extensionName] as T) : null;
87
98
  }
88
99
 
89
100
  getRequiredExtension<T = Extension>(extensionName: string): T | null {
@@ -99,6 +110,10 @@ export default class GLTFScenegraph {
99
110
  return this.json.extensionsUsed || [];
100
111
  }
101
112
 
113
+ getRemovedExtensions(): string[] {
114
+ return (this.json.extensionsRemoved || []) as string[];
115
+ }
116
+
102
117
  getObjectExtension<T = Extension>(object: {[key: string]: any}, extensionName: string): T | null {
103
118
  const extensions = object.extensions || {};
104
119
  return extensions[extensionName];
@@ -157,7 +172,7 @@ export default class GLTFScenegraph {
157
172
  if (typeof index === 'object') {
158
173
  return index;
159
174
  }
160
- const object = this.json[array] && this.json[array][index];
175
+ const object = this.json[array] && (this.json[array] as {}[])[index];
161
176
  if (!object) {
162
177
  throw new Error(`glTF file error: Could not find ${array}[${index}]`); // eslint-disable-line
163
178
  }
@@ -234,7 +249,7 @@ export default class GLTFScenegraph {
234
249
  */
235
250
  addExtraData(key: string, data: object): GLTFScenegraph {
236
251
  this.json.extras = this.json.extras || {};
237
- this.json.extras[key] = data;
252
+ (this.json.extras as Record<string, unknown>)[key] = data;
238
253
  return this;
239
254
  }
240
255
 
@@ -248,19 +263,24 @@ export default class GLTFScenegraph {
248
263
  return this;
249
264
  }
250
265
 
251
- setObjectExtension(object: object, extensionName: string, data: object): void {
252
- // @ts-ignore
266
+ setObjectExtension(object: any, extensionName: string, data: object): void {
253
267
  const extensions = object.extensions || {};
254
268
  extensions[extensionName] = data;
255
269
  // TODO - add to usedExtensions...
256
270
  }
257
271
 
258
- removeObjectExtension(object: object, extensionName: string): object {
259
- // @ts-ignore
260
- const extensions = object.extensions || {};
261
- const extension = extensions[extensionName];
272
+ removeObjectExtension(object: any, extensionName: string): void {
273
+ const extensions = object?.extensions || {};
274
+
275
+ if (extensions[extensionName]) {
276
+ this.json.extensionsRemoved = this.json.extensionsRemoved || [];
277
+ const extensionsRemoved = this.json.extensionsRemoved as string[];
278
+ if (!extensionsRemoved.includes(extensionName)) {
279
+ extensionsRemoved.push(extensionName);
280
+ }
281
+ }
282
+
262
283
  delete extensions[extensionName];
263
- return extension;
264
284
  }
265
285
 
266
286
  /**
@@ -309,15 +329,22 @@ export default class GLTFScenegraph {
309
329
  * Removes an extension from the top-level list
310
330
  */
311
331
  removeExtension(extensionName: string): void {
332
+ if (this.json.extensions?.[extensionName]) {
333
+ this.json.extensionsRemoved = this.json.extensionsRemoved || [];
334
+ const extensionsRemoved = this.json.extensionsRemoved as string[];
335
+ if (!extensionsRemoved.includes(extensionName)) {
336
+ extensionsRemoved.push(extensionName);
337
+ }
338
+ }
339
+ if (this.json.extensions) {
340
+ delete this.json.extensions[extensionName];
341
+ }
312
342
  if (this.json.extensionsRequired) {
313
343
  this._removeStringFromArray(this.json.extensionsRequired, extensionName);
314
344
  }
315
345
  if (this.json.extensionsUsed) {
316
346
  this._removeStringFromArray(this.json.extensionsUsed, extensionName);
317
347
  }
318
- if (this.json.extensions) {
319
- delete this.json.extensions[extensionName];
320
- }
321
348
  }
322
349
 
323
350
  /**
@@ -298,7 +298,8 @@ class GLTFV1Normalizer {
298
298
  roughnessFactor: 1
299
299
  };
300
300
 
301
- const textureId = material.values && material.values.tex;
301
+ const textureId =
302
+ material.values?.tex || material.values?.texture2d_0 || material.values?.diffuseTex;
302
303
  const textureIndex = json.textures.findIndex((texture) => texture.id === textureId);
303
304
  if (textureIndex !== -1) {
304
305
  material.pbrMetallicRoughness.baseColorTexture = {index: textureIndex};