@loaders.gl/gltf 3.1.0-alpha.3 → 3.1.0-beta.2

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 (288) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +4482 -4
  4. package/dist/es5/bundle.js +7 -0
  5. package/dist/es5/bundle.js.map +1 -0
  6. package/dist/es5/glb-loader.js +47 -0
  7. package/dist/es5/glb-loader.js.map +1 -0
  8. package/dist/es5/glb-writer.js +42 -0
  9. package/dist/es5/glb-writer.js.map +1 -0
  10. package/dist/es5/gltf-loader.js +59 -0
  11. package/dist/es5/gltf-loader.js.map +1 -0
  12. package/dist/es5/gltf-writer.js +40 -0
  13. package/dist/es5/gltf-writer.js.map +1 -0
  14. package/dist/es5/index.js +56 -0
  15. package/dist/es5/index.js.map +1 -0
  16. package/dist/es5/lib/api/gltf-extensions.js +58 -0
  17. package/dist/es5/lib/api/gltf-extensions.js.map +1 -0
  18. package/dist/es5/lib/api/gltf-scenegraph.js +529 -0
  19. package/dist/{lib → es5/lib}/api/gltf-scenegraph.js.map +1 -1
  20. package/dist/es5/lib/api/normalize-gltf-v1.js +264 -0
  21. package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -0
  22. package/dist/es5/lib/api/post-process-gltf.js +412 -0
  23. package/dist/es5/lib/api/post-process-gltf.js.map +1 -0
  24. package/dist/es5/lib/encoders/encode-glb.js +72 -0
  25. package/dist/es5/lib/encoders/encode-glb.js.map +1 -0
  26. package/dist/es5/lib/encoders/encode-gltf.js +24 -0
  27. package/dist/es5/lib/encoders/encode-gltf.js.map +1 -0
  28. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +72 -0
  29. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -0
  30. package/dist/es5/lib/extensions/EXT_texture_webp.js +46 -0
  31. package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -0
  32. package/dist/es5/lib/extensions/KHR_binary_gltf.js +39 -0
  33. package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -0
  34. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +146 -0
  35. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
  36. package/dist/es5/lib/extensions/KHR_texture_basisu.js +35 -0
  37. package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -0
  38. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +65 -0
  39. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  40. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +52 -0
  41. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  42. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +83 -0
  43. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  44. package/dist/es5/lib/gltf-utils/get-typed-array.js +26 -0
  45. package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -0
  46. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +83 -0
  47. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
  48. package/dist/es5/lib/gltf-utils/gltf-constants.js +48 -0
  49. package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -0
  50. package/dist/es5/lib/gltf-utils/gltf-utils.js +69 -0
  51. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -0
  52. package/dist/es5/lib/gltf-utils/resolve-url.js +23 -0
  53. package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -0
  54. package/dist/es5/lib/parsers/parse-glb.js +138 -0
  55. package/dist/es5/lib/parsers/parse-glb.js.map +1 -0
  56. package/dist/es5/lib/parsers/parse-gltf.js +193 -0
  57. package/dist/es5/lib/parsers/parse-gltf.js.map +1 -0
  58. package/dist/es5/lib/types/glb-types.js +2 -0
  59. package/dist/{lib → es5/lib}/types/glb-types.js.map +0 -0
  60. package/dist/es5/lib/types/gltf-json-schema.js +2 -0
  61. package/dist/{lib → es5/lib}/types/gltf-json-schema.js.map +0 -0
  62. package/dist/es5/lib/types/gltf-postprocessed-schema.js +2 -0
  63. package/dist/{lib → es5/lib}/types/gltf-postprocessed-schema.js.map +0 -0
  64. package/dist/es5/lib/types/gltf-types.js +2 -0
  65. package/dist/{lib → es5/lib}/types/gltf-types.js.map +0 -0
  66. package/dist/es5/lib/utils/assert.js +13 -0
  67. package/dist/es5/lib/utils/assert.js.map +1 -0
  68. package/dist/es5/lib/utils/version.js +9 -0
  69. package/dist/es5/lib/utils/version.js.map +1 -0
  70. package/dist/es5/meshopt/meshopt-decoder.js +119 -0
  71. package/dist/es5/meshopt/meshopt-decoder.js.map +1 -0
  72. package/dist/{meshopt → es5/meshopt}/meshopt-encoder.ts.disabled +0 -0
  73. package/dist/es5/webp/webp.js +36 -0
  74. package/dist/es5/webp/webp.js.map +1 -0
  75. package/dist/esm/bundle.js +5 -0
  76. package/dist/esm/bundle.js.map +1 -0
  77. package/dist/esm/glb-loader.js +34 -0
  78. package/dist/esm/glb-loader.js.map +1 -0
  79. package/dist/esm/glb-writer.js +29 -0
  80. package/dist/esm/glb-writer.js.map +1 -0
  81. package/dist/esm/gltf-loader.js +47 -0
  82. package/dist/esm/gltf-loader.js.map +1 -0
  83. package/dist/esm/gltf-writer.js +29 -0
  84. package/dist/esm/gltf-writer.js.map +1 -0
  85. package/dist/esm/index.js +7 -0
  86. package/dist/esm/index.js.map +1 -0
  87. package/dist/esm/lib/api/gltf-extensions.js +35 -0
  88. package/dist/esm/lib/api/gltf-extensions.js.map +1 -0
  89. package/dist/esm/lib/api/gltf-scenegraph.js +515 -0
  90. package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -0
  91. package/dist/esm/lib/api/normalize-gltf-v1.js +250 -0
  92. package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -0
  93. package/dist/esm/lib/api/post-process-gltf.js +403 -0
  94. package/dist/esm/lib/api/post-process-gltf.js.map +1 -0
  95. package/dist/esm/lib/encoders/encode-glb.js +63 -0
  96. package/dist/esm/lib/encoders/encode-glb.js.map +1 -0
  97. package/dist/esm/lib/encoders/encode-gltf.js +14 -0
  98. package/dist/esm/lib/encoders/encode-gltf.js.map +1 -0
  99. package/dist/esm/lib/extensions/EXT_meshopt_compression.js +56 -0
  100. package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -0
  101. package/dist/esm/lib/extensions/EXT_texture_webp.js +32 -0
  102. package/dist/esm/lib/extensions/EXT_texture_webp.js.map +1 -0
  103. package/dist/esm/lib/extensions/KHR_binary_gltf.js +26 -0
  104. package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +1 -0
  105. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js +126 -0
  106. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
  107. package/dist/esm/lib/extensions/KHR_texture_basisu.js +22 -0
  108. package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +1 -0
  109. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js +49 -0
  110. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  111. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js +37 -0
  112. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  113. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js +68 -0
  114. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  115. package/dist/esm/lib/gltf-utils/get-typed-array.js +16 -0
  116. package/dist/esm/lib/gltf-utils/get-typed-array.js.map +1 -0
  117. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js +73 -0
  118. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
  119. package/dist/esm/lib/gltf-utils/gltf-constants.js +37 -0
  120. package/dist/esm/lib/gltf-utils/gltf-constants.js.map +1 -0
  121. package/dist/esm/lib/gltf-utils/gltf-utils.js +56 -0
  122. package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -0
  123. package/dist/esm/lib/gltf-utils/resolve-url.js +16 -0
  124. package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -0
  125. package/dist/esm/lib/parsers/parse-glb.js +128 -0
  126. package/dist/esm/lib/parsers/parse-glb.js.map +1 -0
  127. package/dist/esm/lib/parsers/parse-gltf.js +170 -0
  128. package/dist/esm/lib/parsers/parse-gltf.js.map +1 -0
  129. package/dist/esm/lib/types/glb-types.js +2 -0
  130. package/dist/esm/lib/types/glb-types.js.map +1 -0
  131. package/dist/esm/lib/types/gltf-json-schema.js +2 -0
  132. package/dist/esm/lib/types/gltf-json-schema.js.map +1 -0
  133. package/dist/esm/lib/types/gltf-postprocessed-schema.js +2 -0
  134. package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +1 -0
  135. package/dist/esm/lib/types/gltf-types.js +2 -0
  136. package/dist/esm/lib/types/gltf-types.js.map +1 -0
  137. package/dist/esm/lib/utils/assert.js +6 -0
  138. package/dist/esm/lib/utils/assert.js.map +1 -0
  139. package/dist/esm/lib/utils/version.js +2 -0
  140. package/dist/esm/lib/utils/version.js.map +1 -0
  141. package/dist/esm/meshopt/meshopt-decoder.js +103 -0
  142. package/dist/esm/meshopt/meshopt-decoder.js.map +1 -0
  143. package/dist/esm/meshopt/meshopt-encoder.ts.disabled +409 -0
  144. package/dist/esm/webp/webp.js +29 -0
  145. package/dist/esm/webp/webp.js.map +1 -0
  146. package/dist/glb-loader.d.ts +13 -0
  147. package/dist/glb-loader.d.ts.map +1 -0
  148. package/dist/glb-loader.js +33 -28
  149. package/dist/glb-writer.d.ts +22 -0
  150. package/dist/glb-writer.d.ts.map +1 -0
  151. package/dist/glb-writer.js +34 -26
  152. package/dist/gltf-loader.d.ts +18 -0
  153. package/dist/gltf-loader.d.ts.map +1 -0
  154. package/dist/gltf-loader.js +46 -43
  155. package/dist/gltf-writer.d.ts +25 -0
  156. package/dist/gltf-writer.d.ts.map +1 -0
  157. package/dist/gltf-writer.js +29 -26
  158. package/dist/index.d.ts +11 -0
  159. package/dist/index.d.ts.map +1 -0
  160. package/dist/index.js +21 -7
  161. package/dist/lib/api/gltf-extensions.d.ts +26 -0
  162. package/dist/lib/api/gltf-extensions.d.ts.map +1 -0
  163. package/dist/lib/api/gltf-extensions.js +71 -31
  164. package/dist/lib/api/gltf-scenegraph.d.ts +183 -0
  165. package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -0
  166. package/dist/lib/api/gltf-scenegraph.js +550 -512
  167. package/dist/lib/api/normalize-gltf-v1.d.ts +2 -0
  168. package/dist/lib/api/normalize-gltf-v1.d.ts.map +1 -0
  169. package/dist/lib/api/normalize-gltf-v1.js +274 -226
  170. package/dist/lib/api/post-process-gltf.d.ts +2 -0
  171. package/dist/lib/api/post-process-gltf.d.ts.map +1 -0
  172. package/dist/lib/api/post-process-gltf.js +301 -347
  173. package/dist/lib/encoders/encode-glb.d.ts +2 -0
  174. package/dist/lib/encoders/encode-glb.d.ts.map +1 -0
  175. package/dist/lib/encoders/encode-glb.js +56 -58
  176. package/dist/lib/encoders/encode-gltf.d.ts +2 -0
  177. package/dist/lib/encoders/encode-gltf.d.ts.map +1 -0
  178. package/dist/lib/encoders/encode-gltf.js +25 -12
  179. package/dist/lib/extensions/EXT_meshopt_compression.d.ts +10 -0
  180. package/dist/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -0
  181. package/dist/lib/extensions/EXT_meshopt_compression.js +47 -49
  182. package/dist/lib/extensions/EXT_texture_webp.d.ts +12 -0
  183. package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -0
  184. package/dist/lib/extensions/EXT_texture_webp.js +34 -28
  185. package/dist/lib/extensions/KHR_binary_gltf.d.ts +7 -0
  186. package/dist/lib/extensions/KHR_binary_gltf.d.ts.map +1 -0
  187. package/dist/lib/extensions/KHR_binary_gltf.js +39 -23
  188. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts +13 -0
  189. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -0
  190. package/dist/lib/extensions/KHR_draco_mesh_compression.js +126 -111
  191. package/dist/lib/extensions/KHR_texture_basisu.d.ts +12 -0
  192. package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -0
  193. package/dist/lib/extensions/KHR_texture_basisu.js +28 -19
  194. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts +7 -0
  195. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts.map +1 -0
  196. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js +57 -44
  197. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts +7 -0
  198. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts.map +1 -0
  199. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +42 -32
  200. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts +7 -0
  201. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -0
  202. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +75 -62
  203. package/dist/lib/gltf-utils/get-typed-array.d.ts +3 -0
  204. package/dist/lib/gltf-utils/get-typed-array.d.ts.map +1 -0
  205. package/dist/lib/gltf-utils/get-typed-array.js +39 -14
  206. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts +6 -0
  207. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts.map +1 -0
  208. package/dist/lib/gltf-utils/gltf-attribute-utils.js +65 -65
  209. package/dist/lib/gltf-utils/gltf-constants.d.ts +4 -0
  210. package/dist/lib/gltf-utils/gltf-constants.d.ts.map +1 -0
  211. package/dist/lib/gltf-utils/gltf-constants.js +36 -30
  212. package/dist/lib/gltf-utils/gltf-utils.d.ts +8 -0
  213. package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -0
  214. package/dist/lib/gltf-utils/gltf-utils.js +52 -45
  215. package/dist/lib/gltf-utils/resolve-url.d.ts +2 -0
  216. package/dist/lib/gltf-utils/resolve-url.d.ts.map +1 -0
  217. package/dist/lib/gltf-utils/resolve-url.js +17 -15
  218. package/dist/lib/parsers/parse-glb.d.ts +8 -0
  219. package/dist/lib/parsers/parse-glb.d.ts.map +1 -0
  220. package/dist/lib/parsers/parse-glb.js +116 -107
  221. package/dist/lib/parsers/parse-gltf.d.ts +14 -0
  222. package/dist/lib/parsers/parse-gltf.d.ts.map +1 -0
  223. package/dist/lib/parsers/parse-gltf.js +174 -138
  224. package/dist/lib/types/glb-types.d.ts +17 -0
  225. package/dist/lib/types/glb-types.d.ts.map +1 -0
  226. package/dist/lib/types/glb-types.js +2 -2
  227. package/dist/lib/types/gltf-json-schema.d.ts +720 -0
  228. package/dist/lib/types/gltf-json-schema.d.ts.map +1 -0
  229. package/dist/lib/types/gltf-json-schema.js +4 -2
  230. package/dist/lib/types/gltf-postprocessed-schema.d.ts +685 -0
  231. package/dist/lib/types/gltf-postprocessed-schema.d.ts.map +1 -0
  232. package/dist/lib/types/gltf-postprocessed-schema.js +4 -2
  233. package/dist/lib/types/gltf-types.d.ts +10 -0
  234. package/dist/lib/types/gltf-types.d.ts.map +1 -0
  235. package/dist/lib/types/gltf-types.js +3 -2
  236. package/dist/lib/utils/assert.d.ts +2 -0
  237. package/dist/lib/utils/assert.d.ts.map +1 -0
  238. package/dist/lib/utils/assert.js +11 -5
  239. package/dist/lib/utils/version.d.ts +2 -0
  240. package/dist/lib/utils/version.d.ts.map +1 -0
  241. package/dist/lib/utils/version.js +7 -2
  242. package/dist/meshopt/meshopt-decoder.d.ts +6 -0
  243. package/dist/meshopt/meshopt-decoder.d.ts.map +1 -0
  244. package/dist/meshopt/meshopt-decoder.js +97 -82
  245. package/dist/webp/webp.d.ts +7 -0
  246. package/dist/webp/webp.d.ts.map +1 -0
  247. package/dist/webp/webp.js +32 -23
  248. package/package.json +13 -10
  249. package/src/lib/api/{normalize-gltf-v1.js → normalize-gltf-v1.ts} +18 -16
  250. package/src/lib/api/{post-process-gltf.js → post-process-gltf.ts} +8 -1
  251. package/src/lib/encoders/{encode-glb.js → encode-glb.ts} +0 -0
  252. package/src/lib/encoders/{encode-gltf.js → encode-gltf.ts} +0 -0
  253. package/src/lib/extensions/KHR_texture_basisu.ts +2 -2
  254. package/src/lib/parsers/parse-gltf.ts +17 -1
  255. package/src/lib/utils/{assert.js → assert.ts} +1 -1
  256. package/src/lib/utils/{version.js → version.ts} +0 -0
  257. package/dist/bundle.js.map +0 -1
  258. package/dist/dist.min.js +0 -2
  259. package/dist/dist.min.js.map +0 -1
  260. package/dist/glb-loader.js.map +0 -1
  261. package/dist/glb-writer.js.map +0 -1
  262. package/dist/gltf-loader.js.map +0 -1
  263. package/dist/gltf-writer.js.map +0 -1
  264. package/dist/index.js.map +0 -1
  265. package/dist/lib/api/gltf-extensions.js.map +0 -1
  266. package/dist/lib/api/normalize-gltf-v1.js.map +0 -1
  267. package/dist/lib/api/post-process-gltf.js.map +0 -1
  268. package/dist/lib/encoders/encode-glb.js.map +0 -1
  269. package/dist/lib/encoders/encode-gltf.js.map +0 -1
  270. package/dist/lib/extensions/EXT_meshopt_compression.js.map +0 -1
  271. package/dist/lib/extensions/EXT_texture_webp.js.map +0 -1
  272. package/dist/lib/extensions/KHR_binary_gltf.js.map +0 -1
  273. package/dist/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
  274. package/dist/lib/extensions/KHR_texture_basisu.js.map +0 -1
  275. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
  276. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
  277. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
  278. package/dist/lib/gltf-utils/get-typed-array.js.map +0 -1
  279. package/dist/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
  280. package/dist/lib/gltf-utils/gltf-constants.js.map +0 -1
  281. package/dist/lib/gltf-utils/gltf-utils.js.map +0 -1
  282. package/dist/lib/gltf-utils/resolve-url.js.map +0 -1
  283. package/dist/lib/parsers/parse-glb.js.map +0 -1
  284. package/dist/lib/parsers/parse-gltf.js.map +0 -1
  285. package/dist/lib/utils/assert.js.map +0 -1
  286. package/dist/lib/utils/version.js.map +0 -1
  287. package/dist/meshopt/meshopt-decoder.js.map +0 -1
  288. package/dist/webp/webp.js.map +0 -1
@@ -0,0 +1,409 @@
1
+ // This file is part of gltfpack and is distributed under the terms of MIT License.
2
+
3
+ /**
4
+ * Initialize the library with the Wasm module (library.wasm)
5
+ *
6
+ * @param wasm Promise with contents of library.wasm
7
+ *
8
+ * Note: this is called automatically in node.js
9
+ */
10
+ function init(wasm) {
11
+ if (ready) {
12
+ throw new Error("init must be called once");
13
+ }
14
+
15
+ ready = Promise.resolve(wasm)
16
+ .then(function (buffer) {
17
+ return WebAssembly.instantiate(buffer, { wasi_snapshot_preview1: wasi });
18
+ })
19
+ .then(function (result) {
20
+ instance = result.instance;
21
+ instance.exports.__wasm_call_ctors();
22
+ });
23
+ }
24
+
25
+ /**
26
+ * Pack the requested glTF data using the requested command line and access interface.
27
+ *
28
+ * @param args An array of strings with the input arguments; the paths for input and output files are interpreted by the interface
29
+ * @param iface An interface to the system that will be used to service file requests and other system calls
30
+ * @return Promise that indicates completion of the operation
31
+ *
32
+ * iface should contain the following methods:
33
+ * read(path): Given a path, return a Uint8Array with the contents of that path
34
+ * write(path, data): Write the specified Uint8Array to the provided path
35
+ *
36
+ * When texture compression is requested using external compressor such as toktx, iface must provide two additional methods:
37
+ * execute(command): Run the requested command and return the return code
38
+ * unlink(path): Remove the requested file (will be called with paths to temp files after texture compression finishes)
39
+ */
40
+ function pack(args, iface) {
41
+ if (!ready) {
42
+ throw new Error("init must be called before pack");
43
+ }
44
+
45
+ var argv = args.slice();
46
+ argv.unshift("gltfpack");
47
+
48
+ return ready.then(function () {
49
+ var buf = uploadArgv(argv);
50
+
51
+ output.position = 0;
52
+ output.size = 0;
53
+
54
+ interface = iface;
55
+ var result = instance.exports.pack(argv.length, buf);
56
+ interface = undefined;
57
+
58
+ instance.exports.free(buf);
59
+
60
+ var log = getString(output.data.buffer, 0, output.size);
61
+
62
+ if (result != 0) {
63
+ throw new Error(log);
64
+ } else {
65
+ return log;
66
+ }
67
+ });
68
+ }
69
+
70
+ // Library implementation (here be dragons)
71
+ var WASI_EBADF = 8;
72
+ var WASI_EINVAL = 28;
73
+ var WASI_EIO = 29;
74
+ var WASI_ENOSYS = 52;
75
+
76
+ var ready;
77
+ var instance;
78
+ var interface;
79
+
80
+ var output = { data: new Uint8Array(), position: 0, size: 0 };
81
+ var fds = { 1: output, 2: output, 3: { mount: "/", path: "/" }, 4: { mount: "/gltfpack-$pwd", path: "" } };
82
+
83
+ var wasi = {
84
+ proc_exit: function(rval) {
85
+ },
86
+
87
+ fd_close: function(fd) {
88
+ if (!fds[fd]) {
89
+ return WASI_EBADF;
90
+ }
91
+
92
+ try {
93
+ if (fds[fd].close) {
94
+ fds[fd].close();
95
+ }
96
+ fds[fd] = undefined;
97
+ return 0;
98
+ } catch (err) {
99
+ fds[fd] = undefined;
100
+ return WASI_EIO;
101
+ }
102
+ },
103
+
104
+ fd_fdstat_get: function(fd, stat) {
105
+ if (!fds[fd]) {
106
+ return WASI_EBADF;
107
+ }
108
+
109
+ var heap = getHeap();
110
+ heap.setUint8(stat + 0, fds[fd].path !== undefined ? 3 : 4);
111
+ heap.setUint16(stat + 2, 0, true);
112
+ heap.setUint32(stat + 8, 0, true);
113
+ heap.setUint32(stat + 12, 0, true);
114
+ heap.setUint32(stat + 16, 0, true);
115
+ heap.setUint32(stat + 20, 0, true);
116
+ return 0;
117
+ },
118
+
119
+ path_open32: function(parent_fd, dirflags, path, path_len, oflags, fs_rights_base, fs_rights_inheriting, fdflags, opened_fd) {
120
+ if (!fds[parent_fd] || fds[parent_fd].path === undefined) {
121
+ return WASI_EBADF;
122
+ }
123
+
124
+ var heap = getHeap();
125
+
126
+ var file = {};
127
+ file.name = fds[parent_fd].path + getString(heap.buffer, path, path_len);
128
+ file.position = 0;
129
+
130
+ if (oflags & 1) {
131
+ file.data = new Uint8Array(4096);
132
+ file.size = 0;
133
+ file.close = function () {
134
+ interface.write(file.name, new Uint8Array(file.data.buffer, 0, file.size));
135
+ };
136
+ } else {
137
+ try {
138
+ file.data = interface.read(file.name);
139
+
140
+ if (!file.data) {
141
+ return WASI_EIO;
142
+ }
143
+
144
+ file.size = file.data.length;
145
+ } catch (err) {
146
+ return WASI_EIO;
147
+ }
148
+ }
149
+
150
+ var fd = nextFd();
151
+ fds[fd] = file;
152
+
153
+ heap.setUint32(opened_fd, fd, true);
154
+ return 0;
155
+ },
156
+
157
+ path_unlink_file: function(parent_fd, path, path_len) {
158
+ if (!fds[parent_fd] || fds[parent_fd].path === undefined) {
159
+ return WASI_EBADF;
160
+ }
161
+
162
+ var heap = getHeap();
163
+ var name = fds[parent_fd].path + getString(heap.buffer, path, path_len);
164
+
165
+ try {
166
+ interface.unlink(name);
167
+ return 0;
168
+ } catch (err) {
169
+ return WASI_EIO;
170
+ }
171
+ },
172
+
173
+ path_filestat_get: function(parent_fd, flags, path, path_len, buf) {
174
+ if (!fds[parent_fd] || fds[parent_fd].path === undefined) {
175
+ return WASI_EBADF;
176
+ }
177
+
178
+ var heap = getHeap();
179
+ var name = getString(heap.buffer, path, path_len);
180
+
181
+ var heap = getHeap();
182
+ for (var i = 0; i < 64; ++i)
183
+ heap.setUint8(buf + i, 0);
184
+
185
+ heap.setUint8(buf + 16, name == "." ? 3 : 4);
186
+ return 0;
187
+ },
188
+
189
+ fd_prestat_get: function(fd, buf) {
190
+ if (!fds[fd] || fds[fd].path === undefined) {
191
+ return WASI_EBADF;
192
+ }
193
+
194
+ var path_buf = stringBuffer(fds[fd].mount);
195
+
196
+ var heap = getHeap();
197
+ heap.setUint8(buf, 0);
198
+ heap.setUint32(buf + 4, path_buf.length, true);
199
+ return 0;
200
+ },
201
+
202
+ fd_prestat_dir_name: function(fd, path, path_len) {
203
+ if (!fds[fd] || fds[fd].path === undefined) {
204
+ return WASI_EBADF;
205
+ }
206
+
207
+ var path_buf = stringBuffer(fds[fd].mount);
208
+
209
+ if (path_len != path_buf.length) {
210
+ return WASI_EINVAL;
211
+ }
212
+
213
+ var heap = getHeap();
214
+ new Uint8Array(heap.buffer).set(path_buf, path);
215
+ return 0;
216
+ },
217
+
218
+ path_remove_directory: function(parent_fd, path, path_len) {
219
+ return WASI_EINVAL;
220
+ },
221
+
222
+ fd_fdstat_set_flags: function(fd, flags) {
223
+ return WASI_ENOSYS;
224
+ },
225
+
226
+ fd_seek32: function(fd, offset, whence, newoffset) {
227
+ if (!fds[fd]) {
228
+ return WASI_EBADF;
229
+ }
230
+
231
+ var newposition;
232
+
233
+ switch (whence) {
234
+ case 0:
235
+ newposition = offset;
236
+ break;
237
+
238
+ case 1:
239
+ newposition = fds[fd].position + offset;
240
+ break;
241
+
242
+ case 2:
243
+ newposition = fds[fd].size;
244
+ break;
245
+
246
+ default:
247
+ return WASI_EINVAL;
248
+ }
249
+
250
+ if (newposition > fds[fd].size) {
251
+ return WASI_EINVAL;
252
+ }
253
+
254
+ fds[fd].position = newposition;
255
+
256
+ var heap = getHeap();
257
+ heap.setUint32(newoffset, newposition, true);
258
+ return 0;
259
+ },
260
+
261
+ fd_read: function(fd, iovs, iovs_len, nread) {
262
+ if (!fds[fd]) {
263
+ return WASI_EBADF;
264
+ }
265
+
266
+ var heap = getHeap();
267
+ var read = 0;
268
+
269
+ for (var i = 0; i < iovs_len; ++i) {
270
+ var buf = heap.getUint32(iovs + 8 * i + 0, true);
271
+ var buf_len = heap.getUint32(iovs + 8 * i + 4, true);
272
+
273
+ var readi = Math.min(fds[fd].size - fds[fd].position, buf_len);
274
+
275
+ new Uint8Array(heap.buffer).set(fds[fd].data.subarray(fds[fd].position, fds[fd].position + readi), buf);
276
+
277
+ fds[fd].position += readi;
278
+ read += readi;
279
+ }
280
+
281
+ heap.setUint32(nread, read, true);
282
+ return 0;
283
+ },
284
+
285
+ fd_write: function(fd, iovs, iovs_len, nwritten) {
286
+ if (!fds[fd]) {
287
+ return WASI_EBADF;
288
+ }
289
+
290
+ var heap = getHeap();
291
+ var written = 0;
292
+
293
+ for (var i = 0; i < iovs_len; ++i) {
294
+ var buf = heap.getUint32(iovs + 8 * i + 0, true);
295
+ var buf_len = heap.getUint32(iovs + 8 * i + 4, true);
296
+
297
+ if (fds[fd].position + buf_len > fds[fd].data.length) {
298
+ fds[fd].data = growArray(fds[fd].data, fds[fd].position + buf_len);
299
+ }
300
+
301
+ fds[fd].data.set(new Uint8Array(heap.buffer, buf, buf_len), fds[fd].position);
302
+ fds[fd].position += buf_len;
303
+ fds[fd].size = Math.max(fds[fd].position, fds[fd].size);
304
+
305
+ written += buf_len;
306
+ }
307
+
308
+ heap.setUint32(nwritten, written, true);
309
+ return 0;
310
+ },
311
+
312
+ path_readlink: function(fd, path, path_len, buf, buf_len, bufused) {
313
+ if (fd !== -1) {
314
+ return WASI_ENOSYS;
315
+ }
316
+
317
+ var heap = getHeap();
318
+ var command = getString(heap.buffer, path, path_len);
319
+
320
+ try {
321
+ return interface.execute(command);
322
+ } catch (err) {
323
+ return WASI_ENOSYS;
324
+ }
325
+ },
326
+ };
327
+
328
+ function nextFd() {
329
+ for (var i = 1; ; ++i) {
330
+ if (fds[i] === undefined) {
331
+ return i;
332
+ }
333
+ }
334
+ }
335
+
336
+ function getHeap() {
337
+ return new DataView(instance.exports.memory.buffer);
338
+ }
339
+
340
+ function getString(buffer, offset, length) {
341
+ return new TextDecoder().decode(new Uint8Array(buffer, offset, length));
342
+ }
343
+
344
+ function stringBuffer(string) {
345
+ return new TextEncoder().encode(string);
346
+ }
347
+
348
+ function growArray(data, len) {
349
+ var new_length = Math.max(1, data.length);
350
+ while (new_length < len) {
351
+ new_length *= 2;
352
+ }
353
+
354
+ var new_data = new Uint8Array(new_length);
355
+ new_data.set(data);
356
+
357
+ return new_data;
358
+ }
359
+
360
+ function uploadArgv(argv) {
361
+ var buf_size = argv.length * 4;
362
+ for (var i = 0; i < argv.length; ++i) {
363
+ buf_size += stringBuffer(argv[i]).length + 1;
364
+ }
365
+
366
+ var buf = instance.exports.malloc(buf_size);
367
+ var argp = buf + argv.length * 4;
368
+
369
+ var heap = getHeap();
370
+
371
+ for (var i = 0; i < argv.length; ++i) {
372
+ var item = stringBuffer(argv[i]);
373
+
374
+ heap.setUint32(buf + i * 4, argp, true);
375
+ new Uint8Array(heap.buffer).set(item, argp);
376
+ heap.setUint8(argp + item.length, 0);
377
+
378
+ argp += item.length + 1;
379
+ }
380
+
381
+ return buf;
382
+ }
383
+
384
+ // Automatic initialization for node.js
385
+ if (typeof window === 'undefined' && typeof process !== 'undefined' && process.release.name === 'node') {
386
+ var fs = require('fs');
387
+ var util = require('util');
388
+
389
+ // Node versions before v12 don't support TextEncoder/TextDecoder natively, but util. provides compatible replacements
390
+ if (typeof TextEncoder === 'undefined' && typeof TextDecoder === 'undefined') {
391
+ TextEncoder = util.TextEncoder;
392
+ TextDecoder = util.TextDecoder;
393
+ }
394
+
395
+ init(fs.readFileSync(__dirname + '/library.wasm'));
396
+ }
397
+
398
+ // UMD
399
+ (function (root, factory) {
400
+ if (typeof define === 'function' && define.amd) {
401
+ define([], factory);
402
+ } else if (typeof module === 'object' && module.exports) {
403
+ module.exports = factory();
404
+ } else {
405
+ root.gltfpack = factory();
406
+ }
407
+ }(typeof self !== 'undefined' ? self : this, function () {
408
+ return { init, pack };
409
+ }));
@@ -0,0 +1,29 @@
1
+ const WEBP_TEST_IMAGES = {
2
+ lossy: 'UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA',
3
+ lossless: 'UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==',
4
+ alpha: 'UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==',
5
+ animation: 'UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA'
6
+ };
7
+ const WEBP_FEATURES = ['lossy', 'lossless', 'alpha', 'animation'];
8
+ export async function isWebPSupported(features = WEBP_FEATURES) {
9
+ const promises = features.map(feature => checkWebPFeature(feature));
10
+ const statuses = await Promise.all(promises);
11
+ return statuses.every(_ => _);
12
+ }
13
+
14
+ async function checkWebPFeature(feature) {
15
+ if (typeof Image === 'undefined') {
16
+ return false;
17
+ }
18
+
19
+ return await new Promise((resolve, reject) => {
20
+ const img = new Image();
21
+
22
+ img.onload = () => resolve(img.width > 0 && img.height > 0);
23
+
24
+ img.onerror = () => resolve(false);
25
+
26
+ img.src = "data:image/webp;base64,".concat(WEBP_TEST_IMAGES[feature]);
27
+ });
28
+ }
29
+ //# sourceMappingURL=webp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/webp/webp.ts"],"names":["WEBP_TEST_IMAGES","lossy","lossless","alpha","animation","WEBP_FEATURES","isWebPSupported","features","promises","map","feature","checkWebPFeature","statuses","Promise","all","every","_","Image","resolve","reject","img","onload","width","height","onerror","src"],"mappings":"AAAA,MAAMA,gBAAgB,GAAG;AACvBC,EAAAA,KAAK,EAAE,0DADgB;AAEvBC,EAAAA,QAAQ,EAAE,kDAFa;AAGvBC,EAAAA,KAAK,EACH,kHAJqB;AAKvBC,EAAAA,SAAS,EACP;AANqB,CAAzB;AAWA,MAAMC,aAA4B,GAAG,CAAC,OAAD,EAAU,UAAV,EAAsB,OAAtB,EAA+B,WAA/B,CAArC;AAMA,OAAO,eAAeC,eAAf,CAA+BC,QAAuB,GAAGF,aAAzD,EAA0F;AAC/F,QAAMG,QAAQ,GAAGD,QAAQ,CAACE,GAAT,CAAcC,OAAD,IAAaC,gBAAgB,CAACD,OAAD,CAA1C,CAAjB;AACA,QAAME,QAAQ,GAAG,MAAMC,OAAO,CAACC,GAAR,CAAYN,QAAZ,CAAvB;AACA,SAAOI,QAAQ,CAACG,KAAT,CAAgBC,CAAD,IAAOA,CAAtB,CAAP;AACD;;AASD,eAAeL,gBAAf,CAAgCD,OAAhC,EAAwE;AACtE,MAAI,OAAOO,KAAP,KAAiB,WAArB,EAAkC;AAChC,WAAO,KAAP;AACD;;AACD,SAAO,MAAM,IAAIJ,OAAJ,CAAY,CAACK,OAAD,EAAUC,MAAV,KAAqB;AAC5C,UAAMC,GAAG,GAAG,IAAIH,KAAJ,EAAZ;;AACAG,IAAAA,GAAG,CAACC,MAAJ,GAAa,MAAMH,OAAO,CAACE,GAAG,CAACE,KAAJ,GAAY,CAAZ,IAAiBF,GAAG,CAACG,MAAJ,GAAa,CAA/B,CAA1B;;AACAH,IAAAA,GAAG,CAACI,OAAJ,GAAc,MAAMN,OAAO,CAAC,KAAD,CAA3B;;AACAE,IAAAA,GAAG,CAACK,GAAJ,oCAAoCzB,gBAAgB,CAACU,OAAD,CAApD;AACD,GALY,CAAb;AAMD","sourcesContent":["const WEBP_TEST_IMAGES = {\n lossy: 'UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA',\n lossless: 'UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==',\n alpha:\n 'UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==',\n animation:\n 'UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA'\n};\n\nexport type WebPFeature = 'lossy' | 'lossless' | 'alpha' | 'animation';\n\nconst WEBP_FEATURES: WebPFeature[] = ['lossy', 'lossless', 'alpha', 'animation'];\n\n/**\n * Checks if WebP is supported\n * @param features Array, can include 'lossy', 'lossless', 'alpha' or 'animation'\n */\nexport async function isWebPSupported(features: WebPFeature[] = WEBP_FEATURES): Promise<boolean> {\n const promises = features.map((feature) => checkWebPFeature(feature));\n const statuses = await Promise.all(promises);\n return statuses.every((_) => _);\n}\n\n/**\n * Checks if a specific WebP feature is supported\n * @param feature 'feature' can be one of 'lossy', 'lossless', 'alpha' or 'animation'.\n *\n * Based on Google's official recommended checks\n * @see https://developers.google.com/speed/webp/faq#how_can_i_detect_browser_support_for_webp\n */\nasync function checkWebPFeature(feature: WebPFeature): Promise<boolean> {\n if (typeof Image === 'undefined') {\n return false;\n }\n return await new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => resolve(img.width > 0 && img.height > 0);\n img.onerror = () => resolve(false);\n img.src = `data:image/webp;base64,${WEBP_TEST_IMAGES[feature]}`;\n });\n}\n"],"file":"webp.js"}
@@ -0,0 +1,13 @@
1
+ import type { LoaderWithParser, LoaderOptions } from '@loaders.gl/loader-utils';
2
+ import type { GLBParseOptions } from './lib/parsers/parse-glb';
3
+ export declare type GLBLoaderOptions = LoaderOptions & {
4
+ glb?: GLBParseOptions;
5
+ byteOffset?: number;
6
+ };
7
+ /**
8
+ * GLB Loader -
9
+ * GLB is the binary container format for GLTF
10
+ */
11
+ export declare const GLBLoader: LoaderWithParser;
12
+ export declare const _TypecheckGLBLoader: LoaderWithParser;
13
+ //# sourceMappingURL=glb-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glb-loader.d.ts","sourceRoot":"","sources":["../src/glb-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAE9E,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAI7D,oBAAY,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,gBAevB,CAAC;AAcF,eAAO,MAAM,mBAAmB,EAAE,gBAA4B,CAAC"}
@@ -1,34 +1,39 @@
1
- import { VERSION } from './lib/utils/version';
2
- import parseGLBSync from './lib/parsers/parse-glb';
3
- export const GLBLoader = {
4
- name: 'GLB',
5
- id: 'glb',
6
- module: 'gltf',
7
- version: VERSION,
8
- extensions: ['glb'],
9
- mimeTypes: ['model/gltf-binary'],
10
- binary: true,
11
- parse,
12
- parseSync,
13
- options: {
14
- glb: {
15
- strict: false
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports._TypecheckGLBLoader = exports.GLBLoader = void 0;
7
+ const version_1 = require("./lib/utils/version");
8
+ const parse_glb_1 = __importDefault(require("./lib/parsers/parse-glb"));
9
+ /**
10
+ * GLB Loader -
11
+ * GLB is the binary container format for GLTF
12
+ */
13
+ exports.GLBLoader = {
14
+ name: 'GLB',
15
+ id: 'glb',
16
+ module: 'gltf',
17
+ version: version_1.VERSION,
18
+ extensions: ['glb'],
19
+ mimeTypes: ['model/gltf-binary'],
20
+ binary: true,
21
+ parse,
22
+ parseSync,
23
+ options: {
24
+ glb: {
25
+ strict: false // Enables deprecated XVIZ support (illegal CHUNK formats)
26
+ }
16
27
  }
17
- }
18
28
  };
19
-
20
29
  async function parse(arrayBuffer, options) {
21
- return parseSync(arrayBuffer, options);
30
+ return parseSync(arrayBuffer, options);
22
31
  }
23
-
24
32
  function parseSync(arrayBuffer, options) {
25
- const {
26
- byteOffset = 0
27
- } = options || {};
28
- const glb = {};
29
- parseGLBSync(glb, arrayBuffer, byteOffset, options === null || options === void 0 ? void 0 : options.glb);
30
- return glb;
33
+ const { byteOffset = 0 } = options || {};
34
+ const glb = {};
35
+ (0, parse_glb_1.default)(glb, arrayBuffer, byteOffset, options?.glb);
36
+ return glb;
31
37
  }
32
-
33
- export const _TypecheckGLBLoader = GLBLoader;
34
- //# sourceMappingURL=glb-loader.js.map
38
+ // TYPE TESTS - TODO find a better way than exporting junk
39
+ exports._TypecheckGLBLoader = exports.GLBLoader;
@@ -0,0 +1,22 @@
1
+ import type { Writer } from '@loaders.gl/loader-utils';
2
+ /**
3
+ * GLB exporter
4
+ * GLB is the binary container format for GLTF
5
+ */
6
+ export declare const GLBWriter: {
7
+ name: string;
8
+ id: string;
9
+ module: string;
10
+ version: any;
11
+ extensions: string[];
12
+ mimeTypes: string[];
13
+ binary: boolean;
14
+ encodeSync: typeof encodeSync;
15
+ options: {
16
+ glb: {};
17
+ };
18
+ };
19
+ declare function encodeSync(glb: any, options: any): ArrayBuffer;
20
+ export declare const _TypecheckGLBLoader: Writer;
21
+ export {};
22
+ //# sourceMappingURL=glb-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glb-writer.d.ts","sourceRoot":"","sources":["../src/glb-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAIrD;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;CAerB,CAAC;AAEF,iBAAS,UAAU,CAAC,GAAG,KAAA,EAAE,OAAO,KAAA,eAY/B;AAGD,eAAO,MAAM,mBAAmB,EAAE,MAAkB,CAAC"}
@@ -1,29 +1,37 @@
1
- import { VERSION } from './lib/utils/version';
2
- import encodeGLBSync from './lib/encoders/encode-glb';
3
- export const GLBWriter = {
4
- name: 'GLB',
5
- id: 'glb',
6
- module: 'gltf',
7
- version: VERSION,
8
- extensions: ['glb'],
9
- mimeTypes: ['model/gltf-binary'],
10
- binary: true,
11
- encodeSync,
12
- options: {
13
- glb: {}
14
- }
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports._TypecheckGLBLoader = exports.GLBWriter = void 0;
7
+ const version_1 = require("./lib/utils/version");
8
+ const encode_glb_1 = __importDefault(require("./lib/encoders/encode-glb"));
9
+ /**
10
+ * GLB exporter
11
+ * GLB is the binary container format for GLTF
12
+ */
13
+ exports.GLBWriter = {
14
+ name: 'GLB',
15
+ id: 'glb',
16
+ module: 'gltf',
17
+ version: version_1.VERSION,
18
+ extensions: ['glb'],
19
+ mimeTypes: ['model/gltf-binary'],
20
+ binary: true,
21
+ encodeSync,
22
+ options: {
23
+ glb: {}
24
+ }
15
25
  };
16
-
17
26
  function encodeSync(glb, options) {
18
- const {
19
- byteOffset = 0
20
- } = options;
21
- const byteLength = encodeGLBSync(glb, null, byteOffset, options);
22
- const arrayBuffer = new ArrayBuffer(byteLength);
23
- const dataView = new DataView(arrayBuffer);
24
- encodeGLBSync(glb, dataView, byteOffset, options);
25
- return arrayBuffer;
27
+ const { byteOffset = 0 } = options;
28
+ // Calculate length and allocate buffer
29
+ const byteLength = (0, encode_glb_1.default)(glb, null, byteOffset, options);
30
+ const arrayBuffer = new ArrayBuffer(byteLength);
31
+ // Encode into buffer
32
+ const dataView = new DataView(arrayBuffer);
33
+ (0, encode_glb_1.default)(glb, dataView, byteOffset, options);
34
+ return arrayBuffer;
26
35
  }
27
-
28
- export const _TypecheckGLBLoader = GLBWriter;
29
- //# sourceMappingURL=glb-writer.js.map
36
+ // TYPE TESTS - TODO find a better way than exporting junk
37
+ exports._TypecheckGLBLoader = exports.GLBWriter;
@@ -0,0 +1,18 @@
1
+ import type { LoaderWithParser, LoaderOptions } from '@loaders.gl/loader-utils';
2
+ import type { DracoLoaderOptions } from '@loaders.gl/draco';
3
+ import type { ImageLoaderOptions } from '@loaders.gl/images';
4
+ import type { TextureLoaderOptions } from '@loaders.gl/textures';
5
+ import type { GLTFParseOptions } from './lib/parsers/parse-gltf';
6
+ import { GLBLoaderOptions } from './glb-loader';
7
+ /**
8
+ * GLTF loader options
9
+ */
10
+ export declare type GLTFLoaderOptions = LoaderOptions & ImageLoaderOptions & TextureLoaderOptions & GLBLoaderOptions & DracoLoaderOptions & {
11
+ gltf?: GLTFParseOptions;
12
+ };
13
+ /**
14
+ * GLTF loader
15
+ */
16
+ export declare const GLTFLoader: LoaderWithParser;
17
+ export declare function parse(arrayBuffer: any, options: GLTFLoaderOptions | undefined, context: any): Promise<Record<string, any>>;
18
+ //# sourceMappingURL=gltf-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gltf-loader.d.ts","sourceRoot":"","sources":["../src/gltf-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,oBAAY,iBAAiB,GAAG,aAAa,GAC3C,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB,GAChB,kBAAkB,GAAG;IACnB,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,gBAkCxB,CAAC;AAEF,wBAAsB,KAAK,CAAC,WAAW,KAAA,EAAE,OAAO,+BAAwB,EAAE,OAAO,KAAA,gCAShF"}