@loaders.gl/scene 5.0.0-alpha.9 → 5.0.0-beta.1

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 (969) hide show
  1. package/GLTF-README.md +46 -0
  2. package/LICENSE +2 -30
  3. package/OBJ-README.md +28 -0
  4. package/README.md +5 -0
  5. package/THIRD-PARTY-NOTICES.md +23 -0
  6. package/bin/gltf/glbdump.js +8 -0
  7. package/dist/dist.dev.js +33820 -23
  8. package/dist/dist.min.js +38 -3
  9. package/dist/gltf/bundled.cjs +34 -0
  10. package/dist/gltf/bundled.cjs.map +7 -0
  11. package/dist/gltf/bundled.d.ts +5 -0
  12. package/dist/gltf/bundled.d.ts.map +1 -0
  13. package/dist/gltf/bundled.js +6 -0
  14. package/dist/gltf/bundled.js.map +1 -0
  15. package/dist/gltf/glb-loader-types.cjs +59 -0
  16. package/dist/gltf/glb-loader-types.cjs.map +7 -0
  17. package/dist/gltf/glb-loader-types.d.ts +58 -0
  18. package/dist/gltf/glb-loader-types.d.ts.map +1 -0
  19. package/dist/gltf/glb-loader-types.js +24 -0
  20. package/dist/gltf/glb-loader-types.js.map +1 -0
  21. package/dist/gltf/glb-loader.cjs +46 -0
  22. package/dist/gltf/glb-loader.cjs.map +7 -0
  23. package/dist/gltf/glb-loader.d.ts +42 -0
  24. package/dist/gltf/glb-loader.d.ts.map +1 -0
  25. package/dist/gltf/glb-loader.js +24 -0
  26. package/dist/gltf/glb-loader.js.map +1 -0
  27. package/dist/gltf/glb-writer.cjs +51 -0
  28. package/dist/gltf/glb-writer.cjs.map +7 -0
  29. package/dist/gltf/glb-writer.d.ts +30 -0
  30. package/dist/gltf/glb-writer.d.ts.map +1 -0
  31. package/dist/gltf/glb-writer.js +31 -0
  32. package/dist/gltf/glb-writer.js.map +1 -0
  33. package/dist/gltf/gltf-1.schema.json +2075 -0
  34. package/dist/gltf/gltf-2.1.schema.json +1786 -0
  35. package/dist/gltf/gltf-2.schema.json +1786 -0
  36. package/dist/gltf/gltf-all.schema.json +5654 -0
  37. package/dist/gltf/gltf-format.cjs +55 -0
  38. package/dist/gltf/gltf-format.cjs.map +7 -0
  39. package/dist/gltf/gltf-format.d.ts +26 -0
  40. package/dist/gltf/gltf-format.d.ts.map +1 -0
  41. package/dist/gltf/gltf-format.js +29 -0
  42. package/dist/gltf/gltf-format.js.map +1 -0
  43. package/dist/gltf/gltf-loader-types.cjs +71 -0
  44. package/dist/gltf/gltf-loader-types.cjs.map +7 -0
  45. package/dist/gltf/gltf-loader-types.d.ts +71 -0
  46. package/dist/gltf/gltf-loader-types.d.ts.map +1 -0
  47. package/dist/gltf/gltf-loader-types.js +30 -0
  48. package/dist/gltf/gltf-loader-types.js.map +1 -0
  49. package/dist/gltf/gltf-loader.cjs +46 -0
  50. package/dist/gltf/gltf-loader.cjs.map +7 -0
  51. package/dist/gltf/gltf-loader.d.ts +45 -0
  52. package/dist/gltf/gltf-loader.d.ts.map +1 -0
  53. package/dist/gltf/gltf-loader.js +22 -0
  54. package/dist/gltf/gltf-loader.js.map +1 -0
  55. package/dist/gltf/gltf-source.cjs +236 -0
  56. package/dist/gltf/gltf-source.cjs.map +7 -0
  57. package/dist/gltf/gltf-source.d.ts +59 -0
  58. package/dist/gltf/gltf-source.d.ts.map +1 -0
  59. package/dist/gltf/gltf-source.js +230 -0
  60. package/dist/gltf/gltf-source.js.map +1 -0
  61. package/dist/gltf/gltf-writer.cjs +67 -0
  62. package/dist/gltf/gltf-writer.cjs.map +7 -0
  63. package/dist/gltf/gltf-writer.d.ts +14 -0
  64. package/dist/gltf/gltf-writer.d.ts.map +1 -0
  65. package/dist/gltf/gltf-writer.js +44 -0
  66. package/dist/gltf/gltf-writer.js.map +1 -0
  67. package/dist/gltf/gltf.schema.json +5654 -0
  68. package/dist/gltf/index.cjs +225 -0
  69. package/dist/gltf/index.cjs.map +7 -0
  70. package/dist/gltf/index.d.ts +46 -0
  71. package/dist/gltf/index.d.ts.map +1 -0
  72. package/dist/gltf/index.js +39 -0
  73. package/dist/gltf/index.js.map +1 -0
  74. package/dist/gltf/lib/api/append-gltf-v1-buffer-data.cjs +68 -0
  75. package/dist/gltf/lib/api/append-gltf-v1-buffer-data.cjs.map +7 -0
  76. package/dist/gltf/lib/api/append-gltf-v1-buffer-data.d.ts +17 -0
  77. package/dist/gltf/lib/api/append-gltf-v1-buffer-data.d.ts.map +1 -0
  78. package/dist/gltf/lib/api/append-gltf-v1-buffer-data.js +45 -0
  79. package/dist/gltf/lib/api/append-gltf-v1-buffer-data.js.map +1 -0
  80. package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.cjs +133 -0
  81. package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.cjs.map +7 -0
  82. package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.d.ts +8 -0
  83. package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.d.ts.map +1 -0
  84. package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.js +138 -0
  85. package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.js.map +1 -0
  86. package/dist/gltf/lib/api/clean-gltf-v1-fields.cjs +93 -0
  87. package/dist/gltf/lib/api/clean-gltf-v1-fields.cjs.map +7 -0
  88. package/dist/gltf/lib/api/clean-gltf-v1-fields.d.ts +6 -0
  89. package/dist/gltf/lib/api/clean-gltf-v1-fields.d.ts.map +1 -0
  90. package/dist/gltf/lib/api/clean-gltf-v1-fields.js +87 -0
  91. package/dist/gltf/lib/api/clean-gltf-v1-fields.js.map +1 -0
  92. package/dist/gltf/lib/api/convert-gltf-v1-accessors.cjs +128 -0
  93. package/dist/gltf/lib/api/convert-gltf-v1-accessors.cjs.map +7 -0
  94. package/dist/gltf/lib/api/convert-gltf-v1-accessors.d.ts +8 -0
  95. package/dist/gltf/lib/api/convert-gltf-v1-accessors.d.ts.map +1 -0
  96. package/dist/gltf/lib/api/convert-gltf-v1-accessors.js +147 -0
  97. package/dist/gltf/lib/api/convert-gltf-v1-accessors.js.map +1 -0
  98. package/dist/gltf/lib/api/convert-gltf-v1-animations.cjs +81 -0
  99. package/dist/gltf/lib/api/convert-gltf-v1-animations.cjs.map +7 -0
  100. package/dist/gltf/lib/api/convert-gltf-v1-animations.d.ts +4 -0
  101. package/dist/gltf/lib/api/convert-gltf-v1-animations.d.ts.map +1 -0
  102. package/dist/gltf/lib/api/convert-gltf-v1-animations.js +61 -0
  103. package/dist/gltf/lib/api/convert-gltf-v1-animations.js.map +1 -0
  104. package/dist/gltf/lib/api/convert-gltf-v1-materials.cjs +265 -0
  105. package/dist/gltf/lib/api/convert-gltf-v1-materials.cjs.map +7 -0
  106. package/dist/gltf/lib/api/convert-gltf-v1-materials.d.ts +6 -0
  107. package/dist/gltf/lib/api/convert-gltf-v1-materials.d.ts.map +1 -0
  108. package/dist/gltf/lib/api/convert-gltf-v1-materials.js +266 -0
  109. package/dist/gltf/lib/api/convert-gltf-v1-materials.js.map +1 -0
  110. package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.cjs +98 -0
  111. package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.cjs.map +7 -0
  112. package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.d.ts +4 -0
  113. package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.d.ts.map +1 -0
  114. package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.js +86 -0
  115. package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.js.map +1 -0
  116. package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.cjs +87 -0
  117. package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.cjs.map +7 -0
  118. package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.d.ts +4 -0
  119. package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.d.ts.map +1 -0
  120. package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.js +72 -0
  121. package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.js.map +1 -0
  122. package/dist/gltf/lib/api/convert-gltf-v1-skins.cjs +173 -0
  123. package/dist/gltf/lib/api/convert-gltf-v1-skins.cjs.map +7 -0
  124. package/dist/gltf/lib/api/convert-gltf-v1-skins.d.ts +9 -0
  125. package/dist/gltf/lib/api/convert-gltf-v1-skins.d.ts.map +1 -0
  126. package/dist/gltf/lib/api/convert-gltf-v1-skins.js +161 -0
  127. package/dist/gltf/lib/api/convert-gltf-v1-skins.js.map +1 -0
  128. package/dist/gltf/lib/api/gltf-accessors.cjs +83 -0
  129. package/dist/gltf/lib/api/gltf-accessors.cjs.map +7 -0
  130. package/dist/gltf/lib/api/gltf-accessors.d.ts +22 -0
  131. package/dist/gltf/lib/api/gltf-accessors.d.ts.map +1 -0
  132. package/dist/gltf/lib/api/gltf-accessors.js +66 -0
  133. package/dist/gltf/lib/api/gltf-accessors.js.map +1 -0
  134. package/dist/gltf/lib/api/gltf-culling.cjs +73 -0
  135. package/dist/gltf/lib/api/gltf-culling.cjs.map +7 -0
  136. package/dist/gltf/lib/api/gltf-culling.d.ts +12 -0
  137. package/dist/gltf/lib/api/gltf-culling.d.ts.map +1 -0
  138. package/dist/gltf/lib/api/gltf-culling.js +55 -0
  139. package/dist/gltf/lib/api/gltf-culling.js.map +1 -0
  140. package/dist/gltf/lib/api/gltf-extension-data.cjs +102 -0
  141. package/dist/gltf/lib/api/gltf-extension-data.cjs.map +7 -0
  142. package/dist/gltf/lib/api/gltf-extension-data.d.ts +38 -0
  143. package/dist/gltf/lib/api/gltf-extension-data.d.ts.map +1 -0
  144. package/dist/gltf/lib/api/gltf-extension-data.js +75 -0
  145. package/dist/gltf/lib/api/gltf-extension-data.js.map +1 -0
  146. package/dist/gltf/lib/api/gltf-extensions.cjs +123 -0
  147. package/dist/gltf/lib/api/gltf-extensions.cjs.map +7 -0
  148. package/dist/gltf/lib/api/gltf-extensions.d.ts +33 -0
  149. package/dist/gltf/lib/api/gltf-extensions.d.ts.map +1 -0
  150. package/dist/gltf/lib/api/gltf-extensions.js +100 -0
  151. package/dist/gltf/lib/api/gltf-extensions.js.map +1 -0
  152. package/dist/gltf/lib/api/gltf-iterator.cjs +1001 -0
  153. package/dist/gltf/lib/api/gltf-iterator.cjs.map +7 -0
  154. package/dist/gltf/lib/api/gltf-iterator.d.ts +407 -0
  155. package/dist/gltf/lib/api/gltf-iterator.d.ts.map +1 -0
  156. package/dist/gltf/lib/api/gltf-iterator.js +940 -0
  157. package/dist/gltf/lib/api/gltf-iterator.js.map +1 -0
  158. package/dist/gltf/lib/api/gltf-mesh-arrow.cjs +269 -0
  159. package/dist/gltf/lib/api/gltf-mesh-arrow.cjs.map +7 -0
  160. package/dist/gltf/lib/api/gltf-mesh-arrow.d.ts +53 -0
  161. package/dist/gltf/lib/api/gltf-mesh-arrow.d.ts.map +1 -0
  162. package/dist/gltf/lib/api/gltf-mesh-arrow.js +247 -0
  163. package/dist/gltf/lib/api/gltf-mesh-arrow.js.map +1 -0
  164. package/dist/gltf/lib/api/gltf-scenegraph.cjs +615 -0
  165. package/dist/gltf/lib/api/gltf-scenegraph.cjs.map +7 -0
  166. package/dist/gltf/lib/api/gltf-scenegraph.d.ts +183 -0
  167. package/dist/gltf/lib/api/gltf-scenegraph.d.ts.map +1 -0
  168. package/dist/gltf/lib/api/gltf-scenegraph.js +624 -0
  169. package/dist/gltf/lib/api/gltf-scenegraph.js.map +1 -0
  170. package/dist/gltf/lib/api/normalize-gltf-v1.cjs +479 -0
  171. package/dist/gltf/lib/api/normalize-gltf-v1.cjs.map +7 -0
  172. package/dist/gltf/lib/api/normalize-gltf-v1.d.ts +37 -0
  173. package/dist/gltf/lib/api/normalize-gltf-v1.d.ts.map +1 -0
  174. package/dist/gltf/lib/api/normalize-gltf-v1.js +461 -0
  175. package/dist/gltf/lib/api/normalize-gltf-v1.js.map +1 -0
  176. package/dist/gltf/lib/api/repack-gltf-v1-accessors.cjs +405 -0
  177. package/dist/gltf/lib/api/repack-gltf-v1-accessors.cjs.map +7 -0
  178. package/dist/gltf/lib/api/repack-gltf-v1-accessors.d.ts +50 -0
  179. package/dist/gltf/lib/api/repack-gltf-v1-accessors.d.ts.map +1 -0
  180. package/dist/gltf/lib/api/repack-gltf-v1-accessors.js +448 -0
  181. package/dist/gltf/lib/api/repack-gltf-v1-accessors.js.map +1 -0
  182. package/dist/gltf/lib/api/validate-gltf-v1-buffers.cjs +110 -0
  183. package/dist/gltf/lib/api/validate-gltf-v1-buffers.cjs.map +7 -0
  184. package/dist/gltf/lib/api/validate-gltf-v1-buffers.d.ts +4 -0
  185. package/dist/gltf/lib/api/validate-gltf-v1-buffers.d.ts.map +1 -0
  186. package/dist/gltf/lib/api/validate-gltf-v1-buffers.js +111 -0
  187. package/dist/gltf/lib/api/validate-gltf-v1-buffers.js.map +1 -0
  188. package/dist/gltf/lib/api/validate-gltf-v1-cameras.cjs +41 -0
  189. package/dist/gltf/lib/api/validate-gltf-v1-cameras.cjs.map +7 -0
  190. package/dist/gltf/lib/api/validate-gltf-v1-cameras.d.ts +4 -0
  191. package/dist/gltf/lib/api/validate-gltf-v1-cameras.d.ts.map +1 -0
  192. package/dist/gltf/lib/api/validate-gltf-v1-cameras.js +34 -0
  193. package/dist/gltf/lib/api/validate-gltf-v1-cameras.js.map +1 -0
  194. package/dist/gltf/lib/api/validate-gltf-v1-geometry.cjs +121 -0
  195. package/dist/gltf/lib/api/validate-gltf-v1-geometry.cjs.map +7 -0
  196. package/dist/gltf/lib/api/validate-gltf-v1-geometry.d.ts +5 -0
  197. package/dist/gltf/lib/api/validate-gltf-v1-geometry.d.ts.map +1 -0
  198. package/dist/gltf/lib/api/validate-gltf-v1-geometry.js +118 -0
  199. package/dist/gltf/lib/api/validate-gltf-v1-geometry.js.map +1 -0
  200. package/dist/gltf/lib/api/validate-gltf-v1-payloads.cjs +265 -0
  201. package/dist/gltf/lib/api/validate-gltf-v1-payloads.cjs.map +7 -0
  202. package/dist/gltf/lib/api/validate-gltf-v1-payloads.d.ts +4 -0
  203. package/dist/gltf/lib/api/validate-gltf-v1-payloads.d.ts.map +1 -0
  204. package/dist/gltf/lib/api/validate-gltf-v1-payloads.js +268 -0
  205. package/dist/gltf/lib/api/validate-gltf-v1-payloads.js.map +1 -0
  206. package/dist/gltf/lib/encoders/encode-glb.cjs +147 -0
  207. package/dist/gltf/lib/encoders/encode-glb.cjs.map +7 -0
  208. package/dist/gltf/lib/encoders/encode-glb.d.ts +21 -0
  209. package/dist/gltf/lib/encoders/encode-glb.d.ts.map +1 -0
  210. package/dist/gltf/lib/encoders/encode-glb.js +142 -0
  211. package/dist/gltf/lib/encoders/encode-glb.js.map +1 -0
  212. package/dist/gltf/lib/encoders/encode-gltf-draco.cjs +202 -0
  213. package/dist/gltf/lib/encoders/encode-gltf-draco.cjs.map +7 -0
  214. package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts +20 -0
  215. package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts.map +1 -0
  216. package/dist/gltf/lib/encoders/encode-gltf-draco.js +187 -0
  217. package/dist/gltf/lib/encoders/encode-gltf-draco.js.map +1 -0
  218. package/dist/gltf/lib/encoders/encode-gltf.cjs +40 -0
  219. package/dist/gltf/lib/encoders/encode-gltf.cjs.map +7 -0
  220. package/dist/gltf/lib/encoders/encode-gltf.d.ts +22 -0
  221. package/dist/gltf/lib/encoders/encode-gltf.d.ts.map +1 -0
  222. package/dist/gltf/lib/encoders/encode-gltf.js +32 -0
  223. package/dist/gltf/lib/encoders/encode-gltf.js.map +1 -0
  224. package/dist/gltf/lib/extensions/EXT_mesh_features.cjs +175 -0
  225. package/dist/gltf/lib/extensions/EXT_mesh_features.cjs.map +7 -0
  226. package/dist/gltf/lib/extensions/EXT_mesh_features.d.ts +22 -0
  227. package/dist/gltf/lib/extensions/EXT_mesh_features.d.ts.map +1 -0
  228. package/dist/gltf/lib/extensions/EXT_mesh_features.js +189 -0
  229. package/dist/gltf/lib/extensions/EXT_mesh_features.js.map +1 -0
  230. package/dist/gltf/lib/extensions/EXT_mesh_polygon.cjs +149 -0
  231. package/dist/gltf/lib/extensions/EXT_mesh_polygon.cjs.map +7 -0
  232. package/dist/gltf/lib/extensions/EXT_mesh_polygon.d.ts +7 -0
  233. package/dist/gltf/lib/extensions/EXT_mesh_polygon.d.ts.map +1 -0
  234. package/dist/gltf/lib/extensions/EXT_mesh_polygon.js +125 -0
  235. package/dist/gltf/lib/extensions/EXT_mesh_polygon.js.map +1 -0
  236. package/dist/gltf/lib/extensions/EXT_meshopt_compression.cjs +37 -0
  237. package/dist/gltf/lib/extensions/EXT_meshopt_compression.cjs.map +7 -0
  238. package/dist/gltf/lib/extensions/EXT_meshopt_compression.d.ts +25 -0
  239. package/dist/gltf/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -0
  240. package/dist/gltf/lib/extensions/EXT_meshopt_compression.js +29 -0
  241. package/dist/gltf/lib/extensions/EXT_meshopt_compression.js.map +1 -0
  242. package/dist/gltf/lib/extensions/EXT_primitive_voxels.cjs +87 -0
  243. package/dist/gltf/lib/extensions/EXT_primitive_voxels.cjs.map +7 -0
  244. package/dist/gltf/lib/extensions/EXT_primitive_voxels.d.ts +10 -0
  245. package/dist/gltf/lib/extensions/EXT_primitive_voxels.d.ts.map +1 -0
  246. package/dist/gltf/lib/extensions/EXT_primitive_voxels.js +57 -0
  247. package/dist/gltf/lib/extensions/EXT_primitive_voxels.js.map +1 -0
  248. package/dist/gltf/lib/extensions/EXT_structural_metadata.cjs +684 -0
  249. package/dist/gltf/lib/extensions/EXT_structural_metadata.cjs.map +7 -0
  250. package/dist/gltf/lib/extensions/EXT_structural_metadata.d.ts +26 -0
  251. package/dist/gltf/lib/extensions/EXT_structural_metadata.d.ts.map +1 -0
  252. package/dist/gltf/lib/extensions/EXT_structural_metadata.js +786 -0
  253. package/dist/gltf/lib/extensions/EXT_structural_metadata.js.map +1 -0
  254. package/dist/gltf/lib/extensions/EXT_texture_avif.cjs +56 -0
  255. package/dist/gltf/lib/extensions/EXT_texture_avif.cjs.map +7 -0
  256. package/dist/gltf/lib/extensions/EXT_texture_avif.d.ts +15 -0
  257. package/dist/gltf/lib/extensions/EXT_texture_avif.d.ts.map +1 -0
  258. package/dist/gltf/lib/extensions/EXT_texture_avif.js +40 -0
  259. package/dist/gltf/lib/extensions/EXT_texture_avif.js.map +1 -0
  260. package/dist/gltf/lib/extensions/EXT_texture_webp.cjs +53 -0
  261. package/dist/gltf/lib/extensions/EXT_texture_webp.cjs.map +7 -0
  262. package/dist/gltf/lib/extensions/EXT_texture_webp.d.ts +10 -0
  263. package/dist/gltf/lib/extensions/EXT_texture_webp.d.ts.map +1 -0
  264. package/dist/gltf/lib/extensions/EXT_texture_webp.js +32 -0
  265. package/dist/gltf/lib/extensions/EXT_texture_webp.js.map +1 -0
  266. package/dist/gltf/lib/extensions/KHR_audio_emitter.cjs +128 -0
  267. package/dist/gltf/lib/extensions/KHR_audio_emitter.cjs.map +7 -0
  268. package/dist/gltf/lib/extensions/KHR_audio_emitter.d.ts +8 -0
  269. package/dist/gltf/lib/extensions/KHR_audio_emitter.d.ts.map +1 -0
  270. package/dist/gltf/lib/extensions/KHR_audio_emitter.js +121 -0
  271. package/dist/gltf/lib/extensions/KHR_audio_emitter.js.map +1 -0
  272. package/dist/gltf/lib/extensions/KHR_binary_gltf.cjs +53 -0
  273. package/dist/gltf/lib/extensions/KHR_binary_gltf.cjs.map +7 -0
  274. package/dist/gltf/lib/extensions/KHR_binary_gltf.d.ts +6 -0
  275. package/dist/gltf/lib/extensions/KHR_binary_gltf.d.ts.map +1 -0
  276. package/dist/gltf/lib/extensions/KHR_binary_gltf.js +40 -0
  277. package/dist/gltf/lib/extensions/KHR_binary_gltf.js.map +1 -0
  278. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs +131 -0
  279. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs.map +7 -0
  280. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.d.ts +8 -0
  281. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -0
  282. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js +107 -0
  283. package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
  284. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs +209 -0
  285. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs.map +7 -0
  286. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts +13 -0
  287. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts.map +1 -0
  288. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js +160 -0
  289. package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js.map +1 -0
  290. package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.cjs +110 -0
  291. package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.cjs.map +7 -0
  292. package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.d.ts +10 -0
  293. package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.d.ts.map +1 -0
  294. package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.js +87 -0
  295. package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.js.map +1 -0
  296. package/dist/gltf/lib/extensions/KHR_meshopt_compression.cjs +37 -0
  297. package/dist/gltf/lib/extensions/KHR_meshopt_compression.cjs.map +7 -0
  298. package/dist/gltf/lib/extensions/KHR_meshopt_compression.d.ts +24 -0
  299. package/dist/gltf/lib/extensions/KHR_meshopt_compression.d.ts.map +1 -0
  300. package/dist/gltf/lib/extensions/KHR_meshopt_compression.js +28 -0
  301. package/dist/gltf/lib/extensions/KHR_meshopt_compression.js.map +1 -0
  302. package/dist/gltf/lib/extensions/KHR_texture_basisu.cjs +47 -0
  303. package/dist/gltf/lib/extensions/KHR_texture_basisu.cjs.map +7 -0
  304. package/dist/gltf/lib/extensions/KHR_texture_basisu.d.ts +10 -0
  305. package/dist/gltf/lib/extensions/KHR_texture_basisu.d.ts.map +1 -0
  306. package/dist/gltf/lib/extensions/KHR_texture_basisu.js +26 -0
  307. package/dist/gltf/lib/extensions/KHR_texture_basisu.js.map +1 -0
  308. package/dist/gltf/lib/extensions/KHR_texture_transform.cjs +258 -0
  309. package/dist/gltf/lib/extensions/KHR_texture_transform.cjs.map +7 -0
  310. package/dist/gltf/lib/extensions/KHR_texture_transform.d.ts +10 -0
  311. package/dist/gltf/lib/extensions/KHR_texture_transform.d.ts.map +1 -0
  312. package/dist/gltf/lib/extensions/KHR_texture_transform.js +271 -0
  313. package/dist/gltf/lib/extensions/KHR_texture_transform.js.map +1 -0
  314. package/dist/gltf/lib/extensions/MPEG_audio_spatial.cjs +70 -0
  315. package/dist/gltf/lib/extensions/MPEG_audio_spatial.cjs.map +7 -0
  316. package/dist/gltf/lib/extensions/MPEG_audio_spatial.d.ts +10 -0
  317. package/dist/gltf/lib/extensions/MPEG_audio_spatial.d.ts.map +1 -0
  318. package/dist/gltf/lib/extensions/MPEG_audio_spatial.js +45 -0
  319. package/dist/gltf/lib/extensions/MPEG_audio_spatial.js.map +1 -0
  320. package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.cjs +276 -0
  321. package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.cjs.map +7 -0
  322. package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.d.ts +5 -0
  323. package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -0
  324. package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.js +306 -0
  325. package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
  326. package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.cjs +71 -0
  327. package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.cjs.map +7 -0
  328. package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.d.ts +5 -0
  329. package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.d.ts.map +1 -0
  330. package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.js +54 -0
  331. package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  332. package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.cjs +62 -0
  333. package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.cjs.map +7 -0
  334. package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.d.ts +9 -0
  335. package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.d.ts.map +1 -0
  336. package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.js +38 -0
  337. package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  338. package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.cjs +99 -0
  339. package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.cjs.map +7 -0
  340. package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.d.ts +5 -0
  341. package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -0
  342. package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.js +76 -0
  343. package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  344. package/dist/gltf/lib/extensions/meshopt-compression.cjs +114 -0
  345. package/dist/gltf/lib/extensions/meshopt-compression.cjs.map +7 -0
  346. package/dist/gltf/lib/extensions/meshopt-compression.d.ts +48 -0
  347. package/dist/gltf/lib/extensions/meshopt-compression.d.ts.map +1 -0
  348. package/dist/gltf/lib/extensions/meshopt-compression.js +123 -0
  349. package/dist/gltf/lib/extensions/meshopt-compression.js.map +1 -0
  350. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.cjs +280 -0
  351. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.cjs.map +7 -0
  352. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.d.ts +84 -0
  353. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -0
  354. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.js +358 -0
  355. package/dist/gltf/lib/extensions/utils/3d-tiles-utils.js.map +1 -0
  356. package/dist/gltf/lib/gltf-utils/get-typed-array.cjs +189 -0
  357. package/dist/gltf/lib/gltf-utils/get-typed-array.cjs.map +7 -0
  358. package/dist/gltf/lib/gltf-utils/get-typed-array.d.ts +13 -0
  359. package/dist/gltf/lib/gltf-utils/get-typed-array.d.ts.map +1 -0
  360. package/dist/gltf/lib/gltf-utils/get-typed-array.js +175 -0
  361. package/dist/gltf/lib/gltf-utils/get-typed-array.js.map +1 -0
  362. package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.cjs +90 -0
  363. package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.cjs.map +7 -0
  364. package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.d.ts +6 -0
  365. package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.d.ts.map +1 -0
  366. package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.js +72 -0
  367. package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
  368. package/dist/gltf/lib/gltf-utils/gltf-constants.cjs +90 -0
  369. package/dist/gltf/lib/gltf-utils/gltf-constants.cjs.map +7 -0
  370. package/dist/gltf/lib/gltf-utils/gltf-constants.d.ts +26 -0
  371. package/dist/gltf/lib/gltf-utils/gltf-constants.d.ts.map +1 -0
  372. package/dist/gltf/lib/gltf-utils/gltf-constants.js +46 -0
  373. package/dist/gltf/lib/gltf-utils/gltf-constants.js.map +1 -0
  374. package/dist/gltf/lib/gltf-utils/gltf-utils.cjs +157 -0
  375. package/dist/gltf/lib/gltf-utils/gltf-utils.cjs.map +7 -0
  376. package/dist/gltf/lib/gltf-utils/gltf-utils.d.ts +17 -0
  377. package/dist/gltf/lib/gltf-utils/gltf-utils.d.ts.map +1 -0
  378. package/dist/gltf/lib/gltf-utils/gltf-utils.js +135 -0
  379. package/dist/gltf/lib/gltf-utils/gltf-utils.js.map +1 -0
  380. package/dist/gltf/lib/gltf-utils/resolve-gltf-file.cjs +91 -0
  381. package/dist/gltf/lib/gltf-utils/resolve-gltf-file.cjs.map +7 -0
  382. package/dist/gltf/lib/gltf-utils/resolve-gltf-file.d.ts +21 -0
  383. package/dist/gltf/lib/gltf-utils/resolve-gltf-file.d.ts.map +1 -0
  384. package/dist/gltf/lib/gltf-utils/resolve-gltf-file.js +77 -0
  385. package/dist/gltf/lib/gltf-utils/resolve-gltf-file.js.map +1 -0
  386. package/dist/gltf/lib/gltf-utils/resolve-url.cjs +61 -0
  387. package/dist/gltf/lib/gltf-utils/resolve-url.cjs.map +7 -0
  388. package/dist/gltf/lib/gltf-utils/resolve-url.d.ts +10 -0
  389. package/dist/gltf/lib/gltf-utils/resolve-url.d.ts.map +1 -0
  390. package/dist/gltf/lib/gltf-utils/resolve-url.js +43 -0
  391. package/dist/gltf/lib/gltf-utils/resolve-url.js.map +1 -0
  392. package/dist/gltf/lib/parsers/parse-glb.cjs +185 -0
  393. package/dist/gltf/lib/parsers/parse-glb.cjs.map +7 -0
  394. package/dist/gltf/lib/parsers/parse-glb.d.ts +20 -0
  395. package/dist/gltf/lib/parsers/parse-glb.d.ts.map +1 -0
  396. package/dist/gltf/lib/parsers/parse-glb.js +216 -0
  397. package/dist/gltf/lib/parsers/parse-glb.js.map +1 -0
  398. package/dist/gltf/lib/parsers/parse-gltf.cjs +365 -0
  399. package/dist/gltf/lib/parsers/parse-gltf.cjs.map +7 -0
  400. package/dist/gltf/lib/parsers/parse-gltf.d.ts +43 -0
  401. package/dist/gltf/lib/parsers/parse-gltf.d.ts.map +1 -0
  402. package/dist/gltf/lib/parsers/parse-gltf.js +372 -0
  403. package/dist/gltf/lib/parsers/parse-gltf.js.map +1 -0
  404. package/dist/gltf/lib/types/glb-types.cjs +19 -0
  405. package/dist/gltf/lib/types/glb-types.cjs.map +7 -0
  406. package/dist/gltf/lib/types/glb-types.d.ts +35 -0
  407. package/dist/gltf/lib/types/glb-types.d.ts.map +1 -0
  408. package/dist/gltf/lib/types/glb-types.js +5 -0
  409. package/dist/gltf/lib/types/glb-types.js.map +1 -0
  410. package/dist/gltf/lib/types/gltf-additional-extension-schemas.cjs +123 -0
  411. package/dist/gltf/lib/types/gltf-additional-extension-schemas.cjs.map +7 -0
  412. package/dist/gltf/lib/types/gltf-additional-extension-schemas.d.ts +110 -0
  413. package/dist/gltf/lib/types/gltf-additional-extension-schemas.d.ts.map +1 -0
  414. package/dist/gltf/lib/types/gltf-additional-extension-schemas.js +87 -0
  415. package/dist/gltf/lib/types/gltf-additional-extension-schemas.js.map +1 -0
  416. package/dist/gltf/lib/types/gltf-audio-extension-schemas.cjs +189 -0
  417. package/dist/gltf/lib/types/gltf-audio-extension-schemas.cjs.map +7 -0
  418. package/dist/gltf/lib/types/gltf-audio-extension-schemas.d.ts +192 -0
  419. package/dist/gltf/lib/types/gltf-audio-extension-schemas.d.ts.map +1 -0
  420. package/dist/gltf/lib/types/gltf-audio-extension-schemas.js +154 -0
  421. package/dist/gltf/lib/types/gltf-audio-extension-schemas.js.map +1 -0
  422. package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.cjs +19 -0
  423. package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.cjs.map +7 -0
  424. package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.d.ts +421 -0
  425. package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.d.ts.map +1 -0
  426. package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.js +5 -0
  427. package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.js.map +1 -0
  428. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.cjs +19 -0
  429. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.cjs.map +7 -0
  430. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.d.ts +39 -0
  431. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.d.ts.map +1 -0
  432. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.js +5 -0
  433. package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.js.map +1 -0
  434. package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.cjs +19 -0
  435. package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.cjs.map +7 -0
  436. package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.d.ts +49 -0
  437. package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.d.ts.map +1 -0
  438. package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.js +5 -0
  439. package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.js.map +1 -0
  440. package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.cjs +19 -0
  441. package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.cjs.map +7 -0
  442. package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.d.ts +334 -0
  443. package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.d.ts.map +1 -0
  444. package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.js +5 -0
  445. package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.js.map +1 -0
  446. package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.cjs +19 -0
  447. package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.cjs.map +7 -0
  448. package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.d.ts +42 -0
  449. package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.d.ts.map +1 -0
  450. package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.js +5 -0
  451. package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.js.map +1 -0
  452. package/dist/gltf/lib/types/gltf-extension-schemas.cjs +83 -0
  453. package/dist/gltf/lib/types/gltf-extension-schemas.cjs.map +7 -0
  454. package/dist/gltf/lib/types/gltf-extension-schemas.d.ts +229 -0
  455. package/dist/gltf/lib/types/gltf-extension-schemas.d.ts.map +1 -0
  456. package/dist/gltf/lib/types/gltf-extension-schemas.js +53 -0
  457. package/dist/gltf/lib/types/gltf-extension-schemas.js.map +1 -0
  458. package/dist/gltf/lib/types/gltf-interactivity.cjs +34 -0
  459. package/dist/gltf/lib/types/gltf-interactivity.cjs.map +7 -0
  460. package/dist/gltf/lib/types/gltf-interactivity.d.ts +131 -0
  461. package/dist/gltf/lib/types/gltf-interactivity.d.ts.map +1 -0
  462. package/dist/gltf/lib/types/gltf-interactivity.js +13 -0
  463. package/dist/gltf/lib/types/gltf-interactivity.js.map +1 -0
  464. package/dist/gltf/lib/types/gltf-json-schema.cjs +19 -0
  465. package/dist/gltf/lib/types/gltf-json-schema.cjs.map +7 -0
  466. package/dist/gltf/lib/types/gltf-json-schema.d.ts +841 -0
  467. package/dist/gltf/lib/types/gltf-json-schema.d.ts.map +1 -0
  468. package/dist/gltf/lib/types/gltf-json-schema.js +3 -0
  469. package/dist/gltf/lib/types/gltf-json-schema.js.map +1 -0
  470. package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.cjs +19 -0
  471. package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.cjs.map +7 -0
  472. package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.d.ts +46 -0
  473. package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.d.ts.map +1 -0
  474. package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.js +5 -0
  475. package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.js.map +1 -0
  476. package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.cjs +19 -0
  477. package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.cjs.map +7 -0
  478. package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.d.ts +20 -0
  479. package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.d.ts.map +1 -0
  480. package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.js +5 -0
  481. package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.js.map +1 -0
  482. package/dist/gltf/lib/types/gltf-official-json-schemas.cjs +17840 -0
  483. package/dist/gltf/lib/types/gltf-official-json-schemas.cjs.map +7 -0
  484. package/dist/gltf/lib/types/gltf-official-json-schemas.d.ts +14 -0
  485. package/dist/gltf/lib/types/gltf-official-json-schemas.d.ts.map +1 -0
  486. package/dist/gltf/lib/types/gltf-official-json-schemas.js +17751 -0
  487. package/dist/gltf/lib/types/gltf-official-json-schemas.js.map +1 -0
  488. package/dist/gltf/lib/types/gltf-shape-schema.cjs +19 -0
  489. package/dist/gltf/lib/types/gltf-shape-schema.cjs.map +7 -0
  490. package/dist/gltf/lib/types/gltf-shape-schema.d.ts +49 -0
  491. package/dist/gltf/lib/types/gltf-shape-schema.d.ts.map +1 -0
  492. package/dist/gltf/lib/types/gltf-shape-schema.js +5 -0
  493. package/dist/gltf/lib/types/gltf-shape-schema.js.map +1 -0
  494. package/dist/gltf/lib/types/gltf-types.cjs +19 -0
  495. package/dist/gltf/lib/types/gltf-types.cjs.map +7 -0
  496. package/dist/gltf/lib/types/gltf-types.d.ts +53 -0
  497. package/dist/gltf/lib/types/gltf-types.d.ts.map +1 -0
  498. package/dist/gltf/lib/types/gltf-types.js +5 -0
  499. package/dist/gltf/lib/types/gltf-types.js.map +1 -0
  500. package/dist/gltf/lib/types/gltf-vector-topology.cjs +19 -0
  501. package/dist/gltf/lib/types/gltf-vector-topology.cjs.map +7 -0
  502. package/dist/gltf/lib/types/gltf-vector-topology.d.ts +56 -0
  503. package/dist/gltf/lib/types/gltf-vector-topology.d.ts.map +1 -0
  504. package/dist/gltf/lib/types/gltf-vector-topology.js +5 -0
  505. package/dist/gltf/lib/types/gltf-vector-topology.js.map +1 -0
  506. package/dist/gltf/lib/types/gltf-version-zod-schemas.cjs +423 -0
  507. package/dist/gltf/lib/types/gltf-version-zod-schemas.cjs.map +7 -0
  508. package/dist/gltf/lib/types/gltf-version-zod-schemas.d.ts +1129 -0
  509. package/dist/gltf/lib/types/gltf-version-zod-schemas.d.ts.map +1 -0
  510. package/dist/gltf/lib/types/gltf-version-zod-schemas.js +333 -0
  511. package/dist/gltf/lib/types/gltf-version-zod-schemas.js.map +1 -0
  512. package/dist/gltf/lib/types/gltf-zod-schema.cjs +462 -0
  513. package/dist/gltf/lib/types/gltf-zod-schema.cjs.map +7 -0
  514. package/dist/gltf/lib/types/gltf-zod-schema.d.ts +1595 -0
  515. package/dist/gltf/lib/types/gltf-zod-schema.d.ts.map +1 -0
  516. package/dist/gltf/lib/types/gltf-zod-schema.js +497 -0
  517. package/dist/gltf/lib/types/gltf-zod-schema.js.map +1 -0
  518. package/dist/gltf/lib/utils/assert.cjs +35 -0
  519. package/dist/gltf/lib/utils/assert.cjs.map +7 -0
  520. package/dist/gltf/lib/utils/assert.d.ts +2 -0
  521. package/dist/gltf/lib/utils/assert.d.ts.map +1 -0
  522. package/dist/gltf/lib/utils/assert.js +12 -0
  523. package/dist/gltf/lib/utils/assert.js.map +1 -0
  524. package/dist/gltf/lib/utils/version.cjs +31 -0
  525. package/dist/gltf/lib/utils/version.cjs.map +7 -0
  526. package/dist/gltf/lib/utils/version.d.ts +2 -0
  527. package/dist/gltf/lib/utils/version.d.ts.map +1 -0
  528. package/dist/gltf/lib/utils/version.js +8 -0
  529. package/dist/gltf/lib/utils/version.js.map +1 -0
  530. package/dist/gltf/libs/README.md +12 -0
  531. package/dist/gltf/libs/meshopt-decoder.d.mts +15 -0
  532. package/dist/gltf/libs/meshopt-decoder.mjs +196 -0
  533. package/dist/gltf/libs/meshoptimizer-LICENSE.md +21 -0
  534. package/dist/gltf/mesh-arrow.cjs +31 -0
  535. package/dist/gltf/mesh-arrow.cjs.map +7 -0
  536. package/dist/gltf/mesh-arrow.d.ts +2 -0
  537. package/dist/gltf/mesh-arrow.d.ts.map +1 -0
  538. package/dist/gltf/mesh-arrow.js +5 -0
  539. package/dist/gltf/mesh-arrow.js.map +1 -0
  540. package/dist/gltf/meshopt/meshopt-decoder.cjs +93 -0
  541. package/dist/gltf/meshopt/meshopt-decoder.cjs.map +7 -0
  542. package/dist/gltf/meshopt/meshopt-decoder.d.ts +78 -0
  543. package/dist/gltf/meshopt/meshopt-decoder.d.ts.map +1 -0
  544. package/dist/gltf/meshopt/meshopt-decoder.js +111 -0
  545. package/dist/gltf/meshopt/meshopt-decoder.js.map +1 -0
  546. package/dist/gltf/meshopt/meshopt-module-loader.cjs +43 -0
  547. package/dist/gltf/meshopt/meshopt-module-loader.cjs.map +7 -0
  548. package/dist/gltf/meshopt/meshopt-module-loader.d.ts +3 -0
  549. package/dist/gltf/meshopt/meshopt-module-loader.d.ts.map +1 -0
  550. package/dist/gltf/meshopt/meshopt-module-loader.js +8 -0
  551. package/dist/gltf/meshopt/meshopt-module-loader.js.map +1 -0
  552. package/dist/gltf/schema.cjs +60 -0
  553. package/dist/gltf/schema.cjs.map +7 -0
  554. package/dist/gltf/schema.d.ts +6 -0
  555. package/dist/gltf/schema.d.ts.map +1 -0
  556. package/dist/gltf/schema.js +10 -0
  557. package/dist/gltf/schema.js.map +1 -0
  558. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_binary_glTF/image.KHR_binary_glTF.schema.json +34 -0
  559. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_binary_glTF/shader.KHR_binary_glTF.schema.json +16 -0
  560. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/glTF.KHR_materials_common.schema.json +272 -0
  561. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.ambient.schema.json +57 -0
  562. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.directional.schema.json +57 -0
  563. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.point.schema.json +72 -0
  564. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.schema.json +258 -0
  565. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.spot.schema.json +82 -0
  566. package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/node.KHR_materials_common.schema.json +23 -0
  567. package/dist/gltf/schemas/extensions/1.0/Vendor/CESIUM_RTC/CESIUM_RTC.schema.json +21 -0
  568. package/dist/gltf/schemas/extensions/1.0/Vendor/WEB3D_quantized_attributes/WEB3D_quantized_attributes.accessor.schema.json +40 -0
  569. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_materials_pbrSpecularGlossiness/glTF.KHR_materials_pbrSpecularGlossiness.schema.json +141 -0
  570. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/glTF.KHR_techniques_webgl.schema.json +417 -0
  571. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/material.KHR_techniques_webgl.schema.json +133 -0
  572. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/program.schema.json +97 -0
  573. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/shader.schema.json +109 -0
  574. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/technique.attribute.schema.json +51 -0
  575. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/technique.schema.json +267 -0
  576. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/technique.uniform.schema.json +185 -0
  577. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/uniform.value.schema.json +98 -0
  578. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_xmp/glTF.KHR_xmp.schema.json +61 -0
  579. package/dist/gltf/schemas/extensions/2.0/Archived/KHR_xmp/node.KHR_xmp.schema.json +59 -0
  580. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_animation_pointer/animation.channel.target.KHR_animation_pointer.schema.json +51 -0
  581. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_draco_mesh_compression/mesh.primitive.KHR_draco_mesh_compression.schema.json +67 -0
  582. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_gaussian_splatting/mesh.primitive.KHR_gaussian_splatting.schema.json +100 -0
  583. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/declaration.KHR_interactivity.schema.json +106 -0
  584. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/event.KHR_interactivity.schema.json +90 -0
  585. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/glTF.KHR_interactivity.schema.json +546 -0
  586. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/graph.KHR_interactivity.schema.json +512 -0
  587. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/node.KHR_interactivity.schema.json +183 -0
  588. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/type.KHR_interactivity.schema.json +96 -0
  589. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/variable.KHR_interactivity.schema.json +64 -0
  590. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_lights_punctual/glTF.KHR_lights_punctual.schema.json +175 -0
  591. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_lights_punctual/light.schema.json +151 -0
  592. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_lights_punctual/light.spot.schema.json +58 -0
  593. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_lights_punctual/node.KHR_lights_punctual.schema.json +58 -0
  594. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_anisotropy/material.KHR_materials_anisotropy.schema.json +103 -0
  595. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_clearcoat/material.KHR_materials_clearcoat.schema.json +144 -0
  596. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/material.KHR_materials_diffuse_transmission.schema.json +123 -0
  597. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_dispersion/material.KHR_materials_dispersion.schema.json +50 -0
  598. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_emissive_strength/material.KHR_materials_emissive_strength.schema.json +49 -0
  599. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_ior/material.KHR_materials_ior.schema.json +58 -0
  600. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_iridescence/material.KHR_materials_iridescence.schema.json +125 -0
  601. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_sheen/material.KHR_materials_sheen.schema.json +122 -0
  602. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_specular/material.KHR_materials_specular.schema.json +122 -0
  603. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_transmission/material.KHR_materials_transmission.schema.json +97 -0
  604. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_unlit/material.KHR_materials_unlit.schema.json +43 -0
  605. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_variants/glTF.KHR_materials_variants.schema.json +88 -0
  606. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_variants/mesh.primitive.KHR_materials_variants.schema.json +100 -0
  607. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_volume/material.KHR_materials_volume.schema.json +119 -0
  608. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_meshopt_compression/buffer.KHR_meshopt_compression.schema.json +48 -0
  609. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_meshopt_compression/bufferView.KHR_meshopt_compression.schema.json +106 -0
  610. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_node_hoverability/node.KHR_node_hoverability.schema.json +49 -0
  611. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_node_selectability/node.KHR_node_selectability.schema.json +49 -0
  612. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_node_visibility/node.KHR_node_visibility.schema.json +49 -0
  613. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_texture_basisu/texture.KHR_texture_basisu.schema.json +56 -0
  614. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_texture_transform/textureInfo.KHR_texture_transform.schema.json +79 -0
  615. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_xmp_json_ld/KHR_xmp_json_ld.schema.json +59 -0
  616. package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_xmp_json_ld/glTF.KHR_xmp_json_ld.schema.json +70 -0
  617. package/dist/gltf/schemas/extensions/2.0/Vendor/ADOBE_materials_clearcoat_specular/glTF.ADOBE_materials_clearcoat_specular.schema.json +105 -0
  618. package/dist/gltf/schemas/extensions/2.0/Vendor/ADOBE_materials_clearcoat_tint/material.ADOBE_materials_clearcoat_tint.schema.json +106 -0
  619. package/dist/gltf/schemas/extensions/2.0/Vendor/ADOBE_materials_thin_transparency/glTF.ADOBE_materials_thin_transparency.schema.json +105 -0
  620. package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_articulations/articulation.schema.json +177 -0
  621. package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_articulations/articulation.stage.schema.json +136 -0
  622. package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_articulations/gltf.AGI_articulations.schema.json +200 -0
  623. package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_articulations/node.AGI_articulations.schema.json +53 -0
  624. package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_stk_metadata/gltf.AGI_stk_metadata.schema.json +81 -0
  625. package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_stk_metadata/node.AGI_stk_metadata.schema.json +53 -0
  626. package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_stk_metadata/solarPanelGroup.schema.json +59 -0
  627. package/dist/gltf/schemas/extensions/2.0/Vendor/CESIUM_primitive_outline/primitive.CESIUM_primitive_outline.schema.json +56 -0
  628. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_ies/glTF.EXT_lights_ies.schema.json +132 -0
  629. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_ies/lightProfile.schema.json +107 -0
  630. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_ies/node.EXT_lights_ies.schema.json +80 -0
  631. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_image_based/glTF.EXT_lights_image_based.schema.json +145 -0
  632. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_image_based/light.schema.json +121 -0
  633. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_image_based/scene.EXT_lights_image_based.schema.json +58 -0
  634. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_gpu_instancing/glTF.EXT_mesh_gpu_instancing.schema.json +56 -0
  635. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_manifold/mesh.EXT_mesh_manifold.schema.json +175 -0
  636. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/lineString.schema.json +70 -0
  637. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/primitive.EXT_mesh_primitive_edge_visibility.schema.json +119 -0
  638. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_primitive_restart/EXT_mesh_primitive_restart.schema.json +97 -0
  639. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_primitive_restart/primitiveGroup.schema.json +72 -0
  640. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_meshopt_compression/buffer.EXT_meshopt_compression.schema.json +48 -0
  641. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_meshopt_compression/bufferView.EXT_meshopt_compression.schema.json +105 -0
  642. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_texture_astc/texture.EXT_texture_astc.schema.json +56 -0
  643. package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_texture_webp/glTF.EXT_texture_webp.schema.json +56 -0
  644. package/dist/gltf/schemas/extensions/2.0/Vendor/FB_geometry_metadata/scene.FB_geometry_metadata.schema.json +97 -0
  645. package/dist/gltf/schemas/extensions/2.0/Vendor/FB_geometry_metadata/sceneBounds.schema.json +64 -0
  646. package/dist/gltf/schemas/extensions/2.0/Vendor/GRIFFEL_bim_data/GRIFFEL_bim_data.schema.json +164 -0
  647. package/dist/gltf/schemas/extensions/2.0/Vendor/GRIFFEL_bim_data/glTF.GRIFFEL_bim_data.schema.json +107 -0
  648. package/dist/gltf/schemas/extensions/2.0/Vendor/GRIFFEL_bim_data/node.GRIFFEL_bim_data.schema.json +95 -0
  649. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_accessor_timed/MPEG_accessor_timed.schema.json +85 -0
  650. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_animation_timing/MPEG_animation_timing.schema.json +60 -0
  651. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.listener.schema.json +51 -0
  652. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.reverb.property.schema.json +63 -0
  653. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.reverb.schema.json +107 -0
  654. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.schema.json +276 -0
  655. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.source.schema.json +139 -0
  656. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_buffer_circular/MPEG_buffer_circular.schema.json +80 -0
  657. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_media/MPEG_media.media.alternative.schema.json +110 -0
  658. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_media/MPEG_media.media.alternative.track.schema.json +56 -0
  659. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_media/MPEG_media.media.schema.json +195 -0
  660. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_media/MPEG_media.schema.json +237 -0
  661. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_mesh_linking/MPEG_mesh_linking.schema.json +89 -0
  662. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_scene_dynamic/MPEG_scene_dynamic.schema.json +69 -0
  663. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_texture_video/MPEG_texture_video.schema.json +109 -0
  664. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_viewport_recommended/MPEG_viewport_recommended.schema.json +119 -0
  665. package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_viewport_recommended/MPEG_viewport_recommended.viewport.schema.json +96 -0
  666. package/dist/gltf/schemas/extensions/2.0/Vendor/MSFT_lod/glTF.MSFT_lod.schema.json +51 -0
  667. package/dist/gltf/schemas/extensions/2.0/Vendor/MSFT_packing_normalRoughnessMetallic/glTF.MSFT_packing_normalRoughnessMetallic.schema.json +62 -0
  668. package/dist/gltf/schemas/extensions/2.0/Vendor/MSFT_packing_occlusionRoughnessMetallic/glTF.MSFT_packing_occlusionRoughnessMetallic.schema.json +90 -0
  669. package/dist/gltf/schemas/extensions/2.0/Vendor/MSFT_texture_dds/glTF.MSFT_texture_dds.schema.json +56 -0
  670. package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/bsdfMeasurement.schema.json +109 -0
  671. package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/functionCall.argument.schema.json +228 -0
  672. package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/functionCall.schema.json +292 -0
  673. package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/functionCall.type.schema.json +86 -0
  674. package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/glTF.NV_materials_mdl.schema.json +451 -0
  675. package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/material.NV_materials_mdl.schema.json +60 -0
  676. package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/module.schema.json +114 -0
  677. package/dist/gltf/unbundled.cjs +34 -0
  678. package/dist/gltf/unbundled.cjs.map +7 -0
  679. package/dist/gltf/unbundled.d.ts +5 -0
  680. package/dist/gltf/unbundled.d.ts.map +1 -0
  681. package/dist/gltf/unbundled.js +6 -0
  682. package/dist/gltf/unbundled.js.map +1 -0
  683. package/dist/gltf/webp/webp.cjs +53 -0
  684. package/dist/gltf/webp/webp.cjs.map +7 -0
  685. package/dist/gltf/webp/webp.d.ts +7 -0
  686. package/dist/gltf/webp/webp.d.ts.map +1 -0
  687. package/dist/gltf/webp/webp.js +38 -0
  688. package/dist/gltf/webp/webp.js.map +1 -0
  689. package/dist/index.cjs +43 -809
  690. package/dist/index.cjs.map +4 -3
  691. package/dist/index.d.ts +13 -2
  692. package/dist/index.d.ts.map +1 -1
  693. package/dist/index.js +11 -1
  694. package/dist/index.js.map +1 -1
  695. package/dist/obj/bundled.cjs +44 -0
  696. package/dist/obj/bundled.cjs.map +7 -0
  697. package/dist/obj/bundled.d.ts +7 -0
  698. package/dist/obj/bundled.d.ts.map +1 -0
  699. package/dist/obj/bundled.js +8 -0
  700. package/dist/obj/bundled.js.map +1 -0
  701. package/dist/obj/index.cjs +49 -0
  702. package/dist/obj/index.cjs.map +7 -0
  703. package/dist/obj/index.d.ts +13 -0
  704. package/dist/obj/index.d.ts.map +1 -0
  705. package/dist/obj/index.js +16 -0
  706. package/dist/obj/index.js.map +1 -0
  707. package/dist/obj/lib/get-obj-schema.cjs +60 -0
  708. package/dist/obj/lib/get-obj-schema.cjs.map +7 -0
  709. package/dist/obj/lib/get-obj-schema.d.ts +4 -0
  710. package/dist/obj/lib/get-obj-schema.d.ts.map +1 -0
  711. package/dist/obj/lib/get-obj-schema.js +36 -0
  712. package/dist/obj/lib/get-obj-schema.js.map +1 -0
  713. package/dist/obj/lib/obj-types.cjs +2 -0
  714. package/dist/obj/lib/obj-types.cjs.map +7 -0
  715. package/dist/obj/lib/obj-types.d.ts +1 -0
  716. package/dist/obj/lib/obj-types.d.ts.map +1 -0
  717. package/dist/obj/lib/obj-types.js +5 -0
  718. package/dist/obj/lib/obj-types.js.map +1 -0
  719. package/dist/obj/lib/parse-mtl.cjs +97 -0
  720. package/dist/obj/lib/parse-mtl.cjs.map +7 -0
  721. package/dist/obj/lib/parse-mtl.d.ts +34 -0
  722. package/dist/obj/lib/parse-mtl.d.ts.map +1 -0
  723. package/dist/obj/lib/parse-mtl.js +200 -0
  724. package/dist/obj/lib/parse-mtl.js.map +1 -0
  725. package/dist/obj/lib/parse-obj-meshes.cjs +389 -0
  726. package/dist/obj/lib/parse-obj-meshes.cjs.map +7 -0
  727. package/dist/obj/lib/parse-obj-meshes.d.ts +5 -0
  728. package/dist/obj/lib/parse-obj-meshes.d.ts.map +1 -0
  729. package/dist/obj/lib/parse-obj-meshes.js +441 -0
  730. package/dist/obj/lib/parse-obj-meshes.js.map +1 -0
  731. package/dist/obj/lib/parse-obj.cjs +96 -0
  732. package/dist/obj/lib/parse-obj.cjs.map +7 -0
  733. package/dist/obj/lib/parse-obj.d.ts +3 -0
  734. package/dist/obj/lib/parse-obj.d.ts.map +1 -0
  735. package/dist/obj/lib/parse-obj.js +72 -0
  736. package/dist/obj/lib/parse-obj.js.map +1 -0
  737. package/dist/obj/mtl-format.cjs +39 -0
  738. package/dist/obj/mtl-format.cjs.map +7 -0
  739. package/dist/obj/mtl-format.d.ts +14 -0
  740. package/dist/obj/mtl-format.d.ts.map +1 -0
  741. package/dist/obj/mtl-format.js +17 -0
  742. package/dist/obj/mtl-format.js.map +1 -0
  743. package/dist/obj/mtl-loader-types.cjs +62 -0
  744. package/dist/obj/mtl-loader-types.cjs.map +7 -0
  745. package/dist/obj/mtl-loader-types.d.ts +73 -0
  746. package/dist/obj/mtl-loader-types.d.ts.map +1 -0
  747. package/dist/obj/mtl-loader-types.js +34 -0
  748. package/dist/obj/mtl-loader-types.js.map +1 -0
  749. package/dist/obj/mtl-loader.cjs +45 -0
  750. package/dist/obj/mtl-loader.cjs.map +7 -0
  751. package/dist/obj/mtl-loader.d.ts +51 -0
  752. package/dist/obj/mtl-loader.d.ts.map +1 -0
  753. package/dist/obj/mtl-loader.js +25 -0
  754. package/dist/obj/mtl-loader.js.map +1 -0
  755. package/dist/obj/obj-format.cjs +39 -0
  756. package/dist/obj/obj-format.cjs.map +7 -0
  757. package/dist/obj/obj-format.d.ts +13 -0
  758. package/dist/obj/obj-format.d.ts.map +1 -0
  759. package/dist/obj/obj-format.js +16 -0
  760. package/dist/obj/obj-format.js.map +1 -0
  761. package/dist/obj/obj-loader-types.cjs +69 -0
  762. package/dist/obj/obj-loader-types.cjs.map +7 -0
  763. package/dist/obj/obj-loader-types.d.ts +112 -0
  764. package/dist/obj/obj-loader-types.d.ts.map +1 -0
  765. package/dist/obj/obj-loader-types.js +41 -0
  766. package/dist/obj/obj-loader-types.js.map +1 -0
  767. package/dist/obj/obj-loader.cjs +161 -0
  768. package/dist/obj/obj-loader.cjs.map +7 -0
  769. package/dist/obj/obj-loader.d.ts +40 -0
  770. package/dist/obj/obj-loader.d.ts.map +1 -0
  771. package/dist/obj/obj-loader.js +142 -0
  772. package/dist/obj/obj-loader.js.map +1 -0
  773. package/dist/obj/obj-writer.cjs +165 -0
  774. package/dist/obj/obj-writer.cjs.map +7 -0
  775. package/dist/obj/obj-writer.d.ts +35 -0
  776. package/dist/obj/obj-writer.d.ts.map +1 -0
  777. package/dist/obj/obj-writer.js +123 -0
  778. package/dist/obj/obj-writer.js.map +1 -0
  779. package/dist/obj/unbundled.cjs +44 -0
  780. package/dist/obj/unbundled.cjs.map +7 -0
  781. package/dist/obj/unbundled.d.ts +7 -0
  782. package/dist/obj/unbundled.d.ts.map +1 -0
  783. package/dist/obj/unbundled.js +8 -0
  784. package/dist/obj/unbundled.js.map +1 -0
  785. package/dist/obj/workers/obj-worker.cjs +23 -0
  786. package/dist/obj/workers/obj-worker.cjs.map +7 -0
  787. package/dist/obj/workers/obj-worker.d.ts +2 -0
  788. package/dist/obj/workers/obj-worker.d.ts.map +1 -0
  789. package/dist/obj/workers/obj-worker.js +23 -0
  790. package/dist/obj/workers/obj-worker.js.map +1 -0
  791. package/dist/obj-worker.js +17609 -0
  792. package/dist/usd/index.cjs +31 -0
  793. package/dist/usd/index.cjs.map +7 -0
  794. package/dist/usd/index.d.ts +3 -0
  795. package/dist/usd/index.d.ts.map +1 -0
  796. package/dist/usd/index.js +5 -0
  797. package/dist/usd/index.js.map +1 -0
  798. package/dist/usd/lib/parse-usd.cjs +294 -0
  799. package/dist/usd/lib/parse-usd.cjs.map +7 -0
  800. package/dist/{lib → usd/lib}/parse-usd.d.ts +1 -1
  801. package/dist/usd/lib/parse-usd.d.ts.map +1 -0
  802. package/dist/usd/lib/parse-usd.js.map +1 -0
  803. package/dist/usd/lib/parse-usda.cjs +406 -0
  804. package/dist/usd/lib/parse-usda.cjs.map +7 -0
  805. package/dist/usd/lib/parse-usda.d.ts.map +1 -0
  806. package/dist/usd/lib/parse-usda.js.map +1 -0
  807. package/dist/usd/lib/parse-usdz.cjs +76 -0
  808. package/dist/usd/lib/parse-usdz.cjs.map +7 -0
  809. package/dist/usd/lib/parse-usdz.d.ts.map +1 -0
  810. package/dist/usd/lib/parse-usdz.js.map +1 -0
  811. package/dist/usd/lib/usd-types.cjs +19 -0
  812. package/dist/usd/lib/usd-types.cjs.map +7 -0
  813. package/dist/{lib → usd/lib}/usd-types.d.ts +1 -1
  814. package/dist/usd/lib/usd-types.d.ts.map +1 -0
  815. package/dist/usd/lib/usd-types.js.map +1 -0
  816. package/dist/usd/usd-loader-types.cjs +67 -0
  817. package/dist/usd/usd-loader-types.cjs.map +7 -0
  818. package/dist/usd/usd-loader-types.d.ts.map +1 -0
  819. package/dist/{usd-loader-types.js → usd/usd-loader-types.js} +2 -2
  820. package/dist/usd/usd-loader-types.js.map +1 -0
  821. package/dist/usd/usd-loader.cjs +41 -0
  822. package/dist/usd/usd-loader.cjs.map +7 -0
  823. package/dist/usd/usd-loader.d.ts.map +1 -0
  824. package/dist/usd/usd-loader.js.map +1 -0
  825. package/package.json +181 -10
  826. package/src/gltf/bundled.ts +8 -0
  827. package/src/gltf/glb-loader-types.ts +40 -0
  828. package/src/gltf/glb-loader.ts +42 -0
  829. package/src/gltf/glb-writer.ts +46 -0
  830. package/src/gltf/gltf-format.ts +32 -0
  831. package/src/gltf/gltf-loader-types.ts +52 -0
  832. package/src/gltf/gltf-loader.ts +49 -0
  833. package/src/gltf/gltf-source.ts +244 -0
  834. package/src/gltf/gltf-writer.ts +62 -0
  835. package/src/gltf/index.ts +270 -0
  836. package/src/gltf/lib/api/append-gltf-v1-buffer-data.ts +61 -0
  837. package/src/gltf/lib/api/bake-gltf-v1-bind-shapes.ts +178 -0
  838. package/src/gltf/lib/api/clean-gltf-v1-fields.ts +94 -0
  839. package/src/gltf/lib/api/convert-gltf-v1-accessors.ts +170 -0
  840. package/src/gltf/lib/api/convert-gltf-v1-animations.ts +79 -0
  841. package/src/gltf/lib/api/convert-gltf-v1-materials.ts +351 -0
  842. package/src/gltf/lib/api/convert-gltf-v1-matrix-nodes.ts +116 -0
  843. package/src/gltf/lib/api/convert-gltf-v1-skin-scenes.ts +88 -0
  844. package/src/gltf/lib/api/convert-gltf-v1-skins.ts +217 -0
  845. package/src/gltf/lib/api/gltf-accessors.ts +87 -0
  846. package/src/gltf/lib/api/gltf-culling.ts +80 -0
  847. package/src/gltf/lib/api/gltf-extension-data.ts +125 -0
  848. package/src/gltf/lib/api/gltf-extensions.ts +133 -0
  849. package/src/gltf/lib/api/gltf-iterator.ts +1469 -0
  850. package/src/gltf/lib/api/gltf-mesh-arrow.ts +410 -0
  851. package/src/gltf/lib/api/gltf-scenegraph.ts +741 -0
  852. package/src/gltf/lib/api/normalize-gltf-v1.ts +603 -0
  853. package/src/gltf/lib/api/repack-gltf-v1-accessors.ts +566 -0
  854. package/src/gltf/lib/api/validate-gltf-v1-buffers.ts +139 -0
  855. package/src/gltf/lib/api/validate-gltf-v1-cameras.ts +40 -0
  856. package/src/gltf/lib/api/validate-gltf-v1-geometry.ts +156 -0
  857. package/src/gltf/lib/api/validate-gltf-v1-payloads.ts +315 -0
  858. package/src/gltf/lib/encoders/encode-glb.ts +198 -0
  859. package/src/gltf/lib/encoders/encode-gltf-draco.ts +239 -0
  860. package/src/gltf/lib/encoders/encode-gltf.ts +45 -0
  861. package/src/gltf/lib/extensions/EXT_mesh_features.ts +240 -0
  862. package/src/gltf/lib/extensions/EXT_mesh_polygon.ts +172 -0
  863. package/src/gltf/lib/extensions/EXT_meshopt_compression.ts +33 -0
  864. package/src/gltf/lib/extensions/EXT_primitive_voxels.ts +85 -0
  865. package/src/gltf/lib/extensions/EXT_structural_metadata.ts +1130 -0
  866. package/src/gltf/lib/extensions/EXT_texture_avif.ts +56 -0
  867. package/src/gltf/lib/extensions/EXT_texture_webp.ts +46 -0
  868. package/src/gltf/lib/extensions/KHR_audio_emitter.ts +136 -0
  869. package/src/gltf/lib/extensions/KHR_binary_gltf.ts +56 -0
  870. package/src/gltf/lib/extensions/KHR_draco_mesh_compression.ts +169 -0
  871. package/src/gltf/lib/extensions/KHR_gaussian_splatting.ts +239 -0
  872. package/src/gltf/lib/extensions/KHR_mesh_primitive_restart.ts +108 -0
  873. package/src/gltf/lib/extensions/KHR_meshopt_compression.ts +32 -0
  874. package/src/gltf/lib/extensions/KHR_texture_basisu.ts +39 -0
  875. package/src/gltf/lib/extensions/KHR_texture_transform.ts +385 -0
  876. package/src/gltf/lib/extensions/MPEG_audio_spatial.ts +59 -0
  877. package/src/gltf/lib/extensions/deprecated/EXT_feature_metadata.ts +479 -0
  878. package/src/gltf/lib/extensions/deprecated/KHR_lights_punctual.ts +67 -0
  879. package/src/gltf/lib/extensions/deprecated/KHR_materials_unlit.ts +52 -0
  880. package/src/gltf/lib/extensions/deprecated/KHR_techniques_webgl.ts +105 -0
  881. package/src/gltf/lib/extensions/meshopt-compression.ts +189 -0
  882. package/src/gltf/lib/extensions/utils/3d-tiles-utils.ts +473 -0
  883. package/src/gltf/lib/gltf-utils/get-typed-array.ts +215 -0
  884. package/src/gltf/lib/gltf-utils/gltf-attribute-utils.ts +85 -0
  885. package/src/gltf/lib/gltf-utils/gltf-constants.ts +53 -0
  886. package/src/gltf/lib/gltf-utils/gltf-utils.ts +162 -0
  887. package/src/gltf/lib/gltf-utils/resolve-gltf-file.ts +95 -0
  888. package/src/gltf/lib/gltf-utils/resolve-url.ts +48 -0
  889. package/src/gltf/lib/parsers/parse-glb.ts +299 -0
  890. package/src/gltf/lib/parsers/parse-gltf.ts +570 -0
  891. package/src/gltf/lib/types/glb-types.ts +44 -0
  892. package/src/gltf/lib/types/gltf-additional-extension-schemas.ts +127 -0
  893. package/src/gltf/lib/types/gltf-audio-extension-schemas.ts +167 -0
  894. package/src/gltf/lib/types/gltf-ext-feature-metadata-schema.ts +474 -0
  895. package/src/gltf/lib/types/gltf-ext-gaussian-splatting-schema.ts +46 -0
  896. package/src/gltf/lib/types/gltf-ext-mesh-features-schema.ts +56 -0
  897. package/src/gltf/lib/types/gltf-ext-structural-metadata-schema.ts +387 -0
  898. package/src/gltf/lib/types/gltf-ext-vector-voxel-schema.ts +49 -0
  899. package/src/gltf/lib/types/gltf-extension-schemas.ts +87 -0
  900. package/src/gltf/lib/types/gltf-interactivity.ts +168 -0
  901. package/src/gltf/lib/types/gltf-json-schema.ts +947 -0
  902. package/src/gltf/lib/types/gltf-khr-audio-emitter-schema.ts +60 -0
  903. package/src/gltf/lib/types/gltf-mpeg-audio-spatial-schema.ts +31 -0
  904. package/src/gltf/lib/types/gltf-official-json-schemas.ts +18619 -0
  905. package/src/gltf/lib/types/gltf-shape-schema.ts +47 -0
  906. package/src/gltf/lib/types/gltf-types.ts +90 -0
  907. package/src/gltf/lib/types/gltf-vector-topology.ts +65 -0
  908. package/src/gltf/lib/types/gltf-version-zod-schemas.ts +511 -0
  909. package/src/gltf/lib/types/gltf-zod-schema.ts +545 -0
  910. package/src/gltf/lib/utils/assert.ts +12 -0
  911. package/src/gltf/lib/utils/version.ts +8 -0
  912. package/src/gltf/libs/README.md +12 -0
  913. package/src/gltf/libs/meshopt-decoder.d.mts +15 -0
  914. package/src/gltf/libs/meshopt-decoder.mjs +196 -0
  915. package/src/gltf/libs/meshoptimizer-LICENSE.md +21 -0
  916. package/src/gltf/mesh-arrow.ts +11 -0
  917. package/src/gltf/meshopt/meshopt-decoder.ts +185 -0
  918. package/src/gltf/meshopt/meshopt-encoder.ts.disabled +409 -0
  919. package/src/gltf/meshopt/meshopt-module-loader.ts +8 -0
  920. package/src/gltf/schema.ts +24 -0
  921. package/src/gltf/unbundled.ts +8 -0
  922. package/src/gltf/webp/webp.ts +45 -0
  923. package/src/index.ts +13 -11
  924. package/src/obj/bundled.ts +16 -0
  925. package/src/obj/index.ts +23 -0
  926. package/src/obj/lib/get-obj-schema.ts +45 -0
  927. package/src/obj/lib/obj-types.ts +3 -0
  928. package/src/obj/lib/parse-mtl.ts +248 -0
  929. package/src/obj/lib/parse-obj-meshes.ts +530 -0
  930. package/src/obj/lib/parse-obj.ts +88 -0
  931. package/src/obj/mtl-format.ts +19 -0
  932. package/src/obj/mtl-loader-types.ts +46 -0
  933. package/src/obj/mtl-loader.ts +37 -0
  934. package/src/obj/obj-format.ts +18 -0
  935. package/src/obj/obj-loader-types.ts +75 -0
  936. package/src/obj/obj-loader.ts +203 -0
  937. package/src/obj/obj-writer.ts +190 -0
  938. package/src/obj/unbundled.ts +10 -0
  939. package/src/obj/workers/obj-worker.ts +24 -0
  940. package/src/usd/index.ts +15 -0
  941. package/src/{lib → usd/lib}/parse-usd.ts +1 -1
  942. package/src/{lib → usd/lib}/usd-types.ts +1 -1
  943. package/src/{usd-loader-types.ts → usd/usd-loader-types.ts} +2 -2
  944. package/src/{usd-loader.ts → usd/usd-loader.ts} +1 -1
  945. package/third-party-licenses/gltf-loader-ts-LICENSE +21 -0
  946. package/third-party-licenses/three-LICENSE +21 -0
  947. package/dist/lib/parse-usd.d.ts.map +0 -1
  948. package/dist/lib/parse-usd.js.map +0 -1
  949. package/dist/lib/parse-usda.d.ts.map +0 -1
  950. package/dist/lib/parse-usda.js.map +0 -1
  951. package/dist/lib/parse-usdz.d.ts.map +0 -1
  952. package/dist/lib/parse-usdz.js.map +0 -1
  953. package/dist/lib/usd-types.d.ts.map +0 -1
  954. package/dist/lib/usd-types.js.map +0 -1
  955. package/dist/usd-loader-types.d.ts.map +0 -1
  956. package/dist/usd-loader-types.js.map +0 -1
  957. package/dist/usd-loader.d.ts.map +0 -1
  958. package/dist/usd-loader.js.map +0 -1
  959. /package/dist/{lib → usd/lib}/parse-usd.js +0 -0
  960. /package/dist/{lib → usd/lib}/parse-usda.d.ts +0 -0
  961. /package/dist/{lib → usd/lib}/parse-usda.js +0 -0
  962. /package/dist/{lib → usd/lib}/parse-usdz.d.ts +0 -0
  963. /package/dist/{lib → usd/lib}/parse-usdz.js +0 -0
  964. /package/dist/{lib → usd/lib}/usd-types.js +0 -0
  965. /package/dist/{usd-loader-types.d.ts → usd/usd-loader-types.d.ts} +0 -0
  966. /package/dist/{usd-loader.d.ts → usd/usd-loader.d.ts} +0 -0
  967. /package/dist/{usd-loader.js → usd/usd-loader.js} +0 -0
  968. /package/src/{lib → usd/lib}/parse-usda.ts +0 -0
  969. /package/src/{lib → usd/lib}/parse-usdz.ts +0 -0
@@ -0,0 +1,358 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { GLTFIterator } from "../../api/gltf-iterator.js";
5
+ import { getComponentTypeFromArray } from "../../gltf-utils/gltf-utils.js";
6
+ import { getImageData } from '@loaders.gl/images';
7
+ import { ensureArrayBuffer } from '@loaders.gl/core/loader-utils';
8
+ function emod(n) {
9
+ return ((n % 1) + 1) % 1;
10
+ }
11
+ const ATTRIBUTE_TYPE_TO_COMPONENTS = {
12
+ SCALAR: 1,
13
+ VEC2: 2,
14
+ VEC3: 3,
15
+ VEC4: 4,
16
+ MAT2: 4,
17
+ MAT3: 9,
18
+ MAT4: 16,
19
+ BOOLEAN: 1,
20
+ STRING: 1,
21
+ ENUM: 1
22
+ };
23
+ const ATTRIBUTE_COMPONENT_TYPE_TO_ARRAY = {
24
+ INT8: Int8Array,
25
+ UINT8: Uint8Array,
26
+ INT16: Int16Array,
27
+ UINT16: Uint16Array,
28
+ INT32: Int32Array,
29
+ UINT32: Uint32Array,
30
+ INT64: BigInt64Array,
31
+ UINT64: BigUint64Array,
32
+ FLOAT32: Float32Array,
33
+ FLOAT64: Float64Array
34
+ };
35
+ const ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE = {
36
+ INT8: 1,
37
+ UINT8: 1,
38
+ INT16: 2,
39
+ UINT16: 2,
40
+ INT32: 4,
41
+ UINT32: 4,
42
+ INT64: 8,
43
+ UINT64: 8,
44
+ FLOAT32: 4,
45
+ FLOAT64: 8
46
+ };
47
+ export function getArrayElementByteSize(attributeType, componentType) {
48
+ return (ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE[componentType] *
49
+ ATTRIBUTE_TYPE_TO_COMPONENTS[attributeType]);
50
+ }
51
+ /**
52
+ * Gets offset array from `arrayOffsets` or `stringOffsets`.
53
+ * @param scenegraph - Instance of the class for structured access to GLTF data.
54
+ * @param bufferViewIndex - Buffer view index
55
+ * @param offsetType - The type of values in `arrayOffsets` or `stringOffsets`.
56
+ * @param numberOfElements - The number of elements in each property array.
57
+ * @returns Array of values offsets. The number of offsets in the array is equal to `numberOfElements` plus one.
58
+ */
59
+ export function getOffsetsForProperty(scenegraph, bufferViewIndex, offsetType, numberOfElements) {
60
+ if (offsetType !== 'UINT8' &&
61
+ offsetType !== 'UINT16' &&
62
+ offsetType !== 'UINT32' &&
63
+ offsetType !== 'UINT64') {
64
+ return null;
65
+ }
66
+ const arrayOffsetsBytes = scenegraph.getTypedArrayForBufferView(bufferViewIndex);
67
+ const arrayOffsets = convertRawBufferToMetadataArray(arrayOffsetsBytes, 'SCALAR', // offsets consist of ONE component
68
+ offsetType, numberOfElements + 1 // The number of offsets is equal to the property table `count` plus one.
69
+ );
70
+ if (arrayOffsets instanceof BigInt64Array || arrayOffsets instanceof BigUint64Array) {
71
+ const numericOffsets = new Float64Array(arrayOffsets.length);
72
+ const maximumSafeOffset = BigInt(Number.MAX_SAFE_INTEGER);
73
+ for (let index = 0; index < arrayOffsets.length; index++) {
74
+ const offset = arrayOffsets[index];
75
+ if (offset < 0n || offset > maximumSafeOffset) {
76
+ throw new Error('EXT_structural_metadata: UINT64 offset exceeds the safe integer range');
77
+ }
78
+ numericOffsets[index] = Number(offset);
79
+ }
80
+ return numericOffsets;
81
+ }
82
+ return arrayOffsets;
83
+ }
84
+ /**
85
+ * Converts raw bytes that are in the buffer to an array of the type defined by the schema.
86
+ * @param data - Raw bytes in the buffer.
87
+ * @param attributeType - SCALAR, VECN, MATN.
88
+ * @param componentType - Type of the component in elements, e.g. 'UINT8' or 'FLOAT32'.
89
+ * @param elementCount - Number of elements in the array. Default value is 1.
90
+ * @returns Data array
91
+ */
92
+ export function convertRawBufferToMetadataArray(data, attributeType, componentType, elementCount = 1) {
93
+ const numberOfComponents = ATTRIBUTE_TYPE_TO_COMPONENTS[attributeType];
94
+ const ArrayType = ATTRIBUTE_COMPONENT_TYPE_TO_ARRAY[componentType];
95
+ const size = ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE[componentType];
96
+ const length = elementCount * numberOfComponents;
97
+ const byteLength = length * size;
98
+ let buffer = data.buffer;
99
+ let offset = data.byteOffset;
100
+ if (offset % size !== 0) {
101
+ const bufferArray = new Uint8Array(buffer);
102
+ buffer = bufferArray.slice(offset, offset + byteLength).buffer;
103
+ offset = 0;
104
+ }
105
+ return new ArrayType(ensureArrayBuffer(buffer), offset, length);
106
+ }
107
+ /**
108
+ * Processes data encoded in the texture associated with the primitive.
109
+ * @param scenegraph - Instance of the class for structured access to GLTF data.
110
+ * @param textureInfo - Reference to the texture where extension data are stored.
111
+ * @param primitive - Primitive object in the mesh.
112
+ * @returns Array of data taken. Null if data can't be taken from the texture.
113
+ */
114
+ export function getPrimitiveTextureData(scenegraph, textureInfo, primitive) {
115
+ /*
116
+ texture.index is an index for the "textures" array.
117
+ The texture object referenced by this index looks like this:
118
+ {
119
+ "sampler": 0,
120
+ "source": 0
121
+ }
122
+ "sampler" is an index for the "samplers" array
123
+ "source" is an index for the "images" array that contains data stored in rgba channels of the image.
124
+
125
+ texture.texCoord is a number-suffix (like 1) for an attribute like "TEXCOORD_1" in meshes.primitives
126
+ The value of "TEXCOORD_1" is an accessor that is used to get coordinates.
127
+ These coordinates are being used to get data from the image.
128
+
129
+ Default for texture.texCoord is 0
130
+ @see https://github.com/CesiumGS/glTF/blob/3d-tiles-next/specification/2.0/schema/textureInfo.schema.json
131
+ */
132
+ const texCoordAccessorKey = `TEXCOORD_${textureInfo.texCoord || 0}`;
133
+ const texCoordAccessorIndex = primitive.attributes[texCoordAccessorKey];
134
+ const textureCoordinates = scenegraph.getTypedArrayForAccessor(texCoordAccessorIndex);
135
+ const json = scenegraph.gltf.json;
136
+ const textureIndex = textureInfo.index;
137
+ const imageIndex = json.textures?.[textureIndex]?.source;
138
+ if (typeof imageIndex !== 'undefined') {
139
+ const mimeType = json.images?.[imageIndex]?.mimeType;
140
+ const parsedImage = scenegraph.gltf.images?.[imageIndex];
141
+ // Checking for width is to prevent handling Un-processed images (e.g. [analyze] stage, where loadImages option is set to false)
142
+ if (parsedImage && typeof parsedImage.width !== 'undefined') {
143
+ const textureData = [];
144
+ for (let index = 0; index < textureCoordinates.length; index += 2) {
145
+ const value = getImageValueByCoordinates(parsedImage, mimeType, textureCoordinates, index, textureInfo.channels);
146
+ textureData.push(value);
147
+ }
148
+ return textureData;
149
+ }
150
+ }
151
+ return [];
152
+ }
153
+ /**
154
+ * Puts property data to attributes.
155
+ * It creates corresponding buffer, bufferView and accessor
156
+ * so the data can be accessed like regular data stored in buffers.
157
+ * @param scenegraph - Scenegraph object.
158
+ * @param attributeName - Name of the attribute.
159
+ * @param propertyData - Property data to store.
160
+ * @param featureTable - Array where unique data from the property data are being stored.
161
+ * @param primitive - Primitive object.
162
+ */
163
+ export function primitivePropertyDataToAttributes(scenegraph, attributeName, propertyData, featureTable, primitive) {
164
+ // No reason to create an empty buffer if there is no property data to store.
165
+ if (!propertyData?.length) {
166
+ return;
167
+ }
168
+ /*
169
+ featureTable will contain unique values, e.g.
170
+ propertyData = [24, 35, 28, 24]
171
+ featureTable = [24, 35, 28]
172
+ featureIndices will contain indices that refer featureTextureTable, e.g.
173
+ featureIndices = [0, 1, 2, 0]
174
+ */
175
+ const featureIndices = [];
176
+ for (const texelData of propertyData) {
177
+ let index = featureTable.findIndex(item => item === texelData);
178
+ if (index === -1) {
179
+ index = featureTable.push(texelData) - 1;
180
+ }
181
+ featureIndices.push(index);
182
+ }
183
+ const typedArray = new Uint32Array(featureIndices);
184
+ const iterator = scenegraph instanceof GLTFIterator ? scenegraph : new GLTFIterator(scenegraph.gltf);
185
+ const bufferIndex = iterator.addBuffer(typedArray);
186
+ const bufferViewIndex = iterator.addBufferView(bufferIndex, typedArray.byteLength);
187
+ const accessorIndex = iterator.addAccessor(bufferViewIndex, {
188
+ size: 1,
189
+ componentType: getComponentTypeFromArray(typedArray),
190
+ count: typedArray.length
191
+ });
192
+ primitive.attributes[attributeName] = accessorIndex;
193
+ }
194
+ /**
195
+ * Gets the value from the texture by coordinates provided.
196
+ * @param parsedImage - Image where the data are stored.
197
+ * @param mimeType - MIME type.
198
+ * @param textureCoordinates - uv coordinates to access data in the image.
199
+ * @param index - Index of uv coordinates in the array textureCoordinates.
200
+ * @param channels - Image channels where data are stored.
201
+ * Channels of an RGBA texture are numbered 0..3 respectively.
202
+ * For Ext_mesh_features and EXT_strucural_metadata the channels default is [0]
203
+ * @see https://github.com/CesiumGS/glTF/blob/3d-tiles-next/extensions/2.0/Vendor/EXT_mesh_features/schema/featureIdTexture.schema.json
204
+ * @see https://github.com/CesiumGS/glTF/blob/3d-tiles-next/extensions/2.0/Vendor/EXT_structural_metadata/schema/propertyTexture.property.schema.json
205
+ * @returns Value taken from the image.
206
+ */
207
+ function getImageValueByCoordinates(parsedImage, mimeType, textureCoordinates, index, channels = [0]) {
208
+ const CHANNELS_MAP = {
209
+ r: { offset: 0, shift: 0 },
210
+ g: { offset: 1, shift: 8 },
211
+ b: { offset: 2, shift: 16 },
212
+ a: { offset: 3, shift: 24 }
213
+ };
214
+ const u = textureCoordinates[index];
215
+ const v = textureCoordinates[index + 1];
216
+ let components = 1;
217
+ if (mimeType && (mimeType.indexOf('image/jpeg') !== -1 || mimeType.indexOf('image/png') !== -1))
218
+ components = 4;
219
+ const offset = coordinatesToOffset(u, v, parsedImage, components);
220
+ let value = 0;
221
+ for (const c of channels) {
222
+ /*
223
+ According to the EXT_feature_metadata extension specification:
224
+ Channels are labeled by rgba and are swizzled with a string of 1-4 characters.
225
+ According to the EXT_mesh_features extension specification:
226
+ The channels array contains non-negative integer values corresponding to channels of the source texture that the feature ID consists of.
227
+ Channels of an RGBA texture are numbered 0–3 respectively.
228
+ Function getImageValueByCoordinates is used to process both extensions.
229
+ So, there should be possible to get the element of CHANNELS_MAP by either index (0, 1, 2, 3) or key (r, g, b, a).
230
+ */
231
+ const map = typeof c === 'number' ? Object.values(CHANNELS_MAP)[c] : CHANNELS_MAP[c];
232
+ const imageOffset = offset + map.offset;
233
+ const imageData = getImageData(parsedImage);
234
+ if (imageData.data.length <= imageOffset) {
235
+ throw new Error(`${imageData.data.length} <= ${imageOffset}`);
236
+ }
237
+ const imageValue = imageData.data[imageOffset];
238
+ value |= imageValue << map.shift;
239
+ }
240
+ return value;
241
+ }
242
+ /**
243
+ * Retrieves the offset in the image where the data are stored.
244
+ * @param u - u-coordinate.
245
+ * @param v - v-coordinate.
246
+ * @param parsedImage - Image where the data are stored.
247
+ * @param componentsCount - Number of components the data consists of.
248
+ * @returns Offset in the image where the data are stored.
249
+ */
250
+ function coordinatesToOffset(u, v, parsedImage, componentsCount = 1) {
251
+ const w = parsedImage.width;
252
+ const iX = emod(u) * (w - 1);
253
+ const indX = Math.round(iX);
254
+ const h = parsedImage.height;
255
+ const iY = emod(v) * (h - 1);
256
+ const indY = Math.round(iY);
257
+ const components = parsedImage.components ? parsedImage.components : componentsCount;
258
+ // components is a number of channels in the image
259
+ const offset = (indY * w + indX) * components;
260
+ return offset;
261
+ }
262
+ /**
263
+ * Parses variable-length array data.
264
+ * In this case every value of the property in the table will be an array
265
+ * of arbitrary length.
266
+ * @param valuesData - Values in a flat typed array.
267
+ * @param numberOfElements - Number of rows in the property table.
268
+ * @param arrayOffsets - Offsets of nested arrays in the flat values array.
269
+ * @param componentCount - Number of scalar components in each value.
270
+ * @returns Array of typed arrays.
271
+ */
272
+ export function parseVariableLengthArrayNumeric(valuesData, numberOfElements, arrayOffsets, componentCount = 1) {
273
+ const attributeValueArray = [];
274
+ for (let index = 0; index < numberOfElements; index++) {
275
+ const arrayOffset = Number(arrayOffsets[index]);
276
+ const arrayLength = Number(arrayOffsets[index + 1]) - arrayOffset;
277
+ if (!Number.isInteger(arrayOffset) ||
278
+ !Number.isInteger(arrayLength) ||
279
+ arrayOffset < 0 ||
280
+ arrayLength < 0 ||
281
+ (arrayOffset + arrayLength) * componentCount > valuesData.length) {
282
+ break;
283
+ }
284
+ const componentOffset = arrayOffset * componentCount;
285
+ const componentLength = arrayLength * componentCount;
286
+ attributeValueArray.push(valuesData.slice(componentOffset, componentOffset + componentLength));
287
+ }
288
+ return attributeValueArray;
289
+ }
290
+ /**
291
+ * Parses fixed-length array data.
292
+ * In this case every value of the property in the table will be an array
293
+ * of constant length equal to `arrayCount`.
294
+ * @param valuesData - Values in a flat typed array.
295
+ * @param numberOfElements - Number of rows in the property table.
296
+ * @param arrayCount - Nested arrays length.
297
+ * @param componentCount - Number of scalar components in each array element.
298
+ * @returns Array of typed arrays.
299
+ */
300
+ export function parseFixedLengthArrayNumeric(valuesData, numberOfElements, arrayCount, componentCount = 1) {
301
+ const attributeValueArray = [];
302
+ const rowComponentCount = arrayCount * componentCount;
303
+ for (let index = 0; index < numberOfElements; index++) {
304
+ const elementOffset = index * rowComponentCount;
305
+ attributeValueArray.push(valuesData.slice(elementOffset, elementOffset + rowComponentCount));
306
+ }
307
+ return attributeValueArray;
308
+ }
309
+ /**
310
+ * Decodes properties of string type from binary source.
311
+ * @param numberOfElements - The number of elements in each property array that propertyTableProperty contains. It's a number of rows in the table.
312
+ * @param valuesDataBytes - Data taken from values property of the property table property.
313
+ * @param arrayOffsets - Offsets for variable-length arrays. It's null for fixed-length arrays or scalar types.
314
+ * @param stringOffsets - Index of the buffer view containing offsets for strings. It should be available for string type.
315
+ * @param fixedArrayCount - Number of strings in each fixed-length array row.
316
+ * @returns String property values
317
+ */
318
+ export function getPropertyDataString(numberOfElements, valuesDataBytes, arrayOffsets, stringOffsets, fixedArrayCount) {
319
+ const textDecoder = new TextDecoder('utf8');
320
+ // Variable-length string array (arrayOffsets + stringOffsets)
321
+ // See: https://github.com/CesiumGS/3d-tiles/tree/main/specification/Metadata#strings
322
+ if (arrayOffsets) {
323
+ if (!stringOffsets) {
324
+ throw new Error('stringOffsets is required for variable-length string arrays');
325
+ }
326
+ const result = [];
327
+ for (let featureId = 0; featureId < numberOfElements; featureId++) {
328
+ const startStringIndex = arrayOffsets[featureId];
329
+ const endStringIndex = arrayOffsets[featureId + 1];
330
+ const strings = [];
331
+ for (let stringIndex = startStringIndex; stringIndex < endStringIndex; stringIndex++) {
332
+ const startByte = stringOffsets[stringIndex];
333
+ const endByte = stringOffsets[stringIndex + 1];
334
+ const stringData = valuesDataBytes.subarray(startByte, endByte);
335
+ strings.push(textDecoder.decode(stringData));
336
+ }
337
+ result.push(strings);
338
+ }
339
+ return result;
340
+ }
341
+ // Simple strings (stringOffsets only)
342
+ if (stringOffsets) {
343
+ const stringsArray = [];
344
+ const stringCount = numberOfElements * (fixedArrayCount || 1);
345
+ for (let index = 0; index < stringCount; index++) {
346
+ const startByte = Number(stringOffsets[index]);
347
+ const endByte = Number(stringOffsets[index + 1]);
348
+ if (startByte >= 0 && endByte >= startByte && endByte <= valuesDataBytes.length) {
349
+ stringsArray.push(textDecoder.decode(valuesDataBytes.subarray(startByte, endByte)));
350
+ }
351
+ }
352
+ return fixedArrayCount
353
+ ? Array.from({ length: numberOfElements }, (_unused, rowIndex) => stringsArray.slice(rowIndex * fixedArrayCount, (rowIndex + 1) * fixedArrayCount))
354
+ : stringsArray;
355
+ }
356
+ return [];
357
+ }
358
+ //# sourceMappingURL=3d-tiles-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3d-tiles-utils.js","sourceRoot":"","sources":["../../../../../src/gltf/lib/extensions/utils/3d-tiles-utils.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAgBpC,OAAO,EAAC,YAAY,EAAC,mCAAgC;AACrD,OAAO,EAAC,yBAAyB,EAAC,uCAAoC;AACtE,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAEhE,SAAS,IAAI,CAAC,CAAS;IACrB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAcD,MAAM,4BAA4B,GAAG;IACnC,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,MAAM,iCAAiC,GAAG;IACxC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,aAAa;IACpB,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;CACtB,CAAC;AAEF,MAAM,qCAAqC,GAAG;IAC5C,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;CACX,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,aAAa,EAAE,aAAa;IAClE,OAAO,CACL,qCAAqC,CAAC,aAAa,CAAC;QACpD,4BAA4B,CAAC,aAAa,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAyC,EACzC,eAAuB,EACvB,UAA6D,EAC7D,gBAAwB;IAExB,IACE,UAAU,KAAK,OAAO;QACtB,UAAU,KAAK,QAAQ;QACvB,UAAU,KAAK,QAAQ;QACvB,UAAU,KAAK,QAAQ,EACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,iBAAiB,GAAG,UAAU,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC;IACjF,MAAM,YAAY,GAAG,+BAA+B,CAClD,iBAAiB,EACjB,QAAQ,EAAE,mCAAmC;IAC7C,UAAU,EACV,gBAAgB,GAAG,CAAC,CAAC,yEAAyE;KAC/F,CAAC;IAEF,IAAI,YAAY,YAAY,aAAa,IAAI,YAAY,YAAY,cAAc,EAAE,CAAC;QACpF,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,iBAAiB,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;YAC3F,CAAC;YACD,cAAc,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAC7C,IAAgB,EAChB,aAAqB,EACrB,aAAmC,EACnC,eAAuB,CAAC;IAExB,MAAM,kBAAkB,GAAG,4BAA4B,CAAC,aAAa,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,iCAAiC,CAAC,aAAa,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,qCAAqC,CAAC,aAAa,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,YAAY,GAAG,kBAAkB,CAAC;IACjD,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,MAAM,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC;QAC/D,MAAM,GAAG,CAAC,CAAC;IACb,CAAC;IACD,OAAO,IAAI,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAyC,EACzC,WAAoC,EACpC,SAA4B;IAE5B;;;;;;;;;;;;;;;;MAgBE;IACF,MAAM,mBAAmB,GAAG,YAAY,WAAW,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;IACpE,MAAM,qBAAqB,GAAG,SAAS,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;IACxE,MAAM,kBAAkB,GAAe,UAAU,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IAElG,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IAClC,MAAM,YAAY,GAAW,WAAW,CAAC,KAAK,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IACzD,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;QACrD,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC;QACzD,gIAAgI;QAChI,IAAI,WAAW,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC5D,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAClE,MAAM,KAAK,GAAG,0BAA0B,CACtC,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,KAAK,EACL,WAAW,CAAC,QAAQ,CACrB,CAAC;gBACF,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iCAAiC,CAC/C,UAAyC,EACzC,aAAqB,EACrB,YAAsB,EACtB,YAAsB,EACtB,SAA4B;IAE5B,6EAA6E;IAC7E,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IACD;;;;;;MAME;IACF,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE,CAAC;QACrC,IAAI,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC/D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,cAAc,CAAC,CAAC;IACnD,MAAM,QAAQ,GACZ,UAAU,YAAY,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACtF,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IACnF,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,eAAe,EAAE;QAC1D,IAAI,EAAE,CAAC;QACP,aAAa,EAAE,yBAAyB,CAAC,UAAU,CAAC;QACpD,KAAK,EAAE,UAAU,CAAC,MAAM;KACzB,CAAC,CAAC;IACH,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,0BAA0B,CACjC,WAAsB,EACtB,QAA4B,EAC5B,kBAA8B,EAC9B,KAAa,EACb,WAA8B,CAAC,CAAC,CAAC;IAEjC,MAAM,YAAY,GAAG;QACnB,CAAC,EAAE,EAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAC;QACxB,CAAC,EAAE,EAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAC;QACxB,CAAC,EAAE,EAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAC;QACzB,CAAC,EAAE,EAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAC;KAC1B,CAAC;IAEF,MAAM,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,kBAAkB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAExC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7F,UAAU,GAAG,CAAC,CAAC;IACjB,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAClE,IAAI,KAAK,GAAW,CAAC,CAAC;IACtB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB;;;;;;;;UAQE;QACF,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,WAAW,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACxC,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,OAAO,WAAW,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/C,KAAK,IAAI,UAAU,IAAI,GAAG,CAAC,KAAK,CAAC;IACnC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAC1B,CAAS,EACT,CAAS,EACT,WAAgB,EAChB,kBAA0B,CAAC;IAE3B,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;IAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAE5B,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;IAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;IACrF,kDAAkD;IAClD,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC;IAC9C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,+BAA+B,CAC7C,UAAyB,EACzB,gBAAwB,EACxB,YAAwB,EACxB,cAAc,GAAG,CAAC;IAElB,MAAM,mBAAmB,GAAoB,EAAE,CAAC;IAChD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC;QACtD,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;QAClE,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;YAC9B,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;YAC9B,WAAW,GAAG,CAAC;YACf,WAAW,GAAG,CAAC;YACf,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,cAAc,GAAG,UAAU,CAAC,MAAM,EAChE,CAAC;YACD,MAAM;QACR,CAAC;QACD,MAAM,eAAe,GAAG,WAAW,GAAG,cAAc,CAAC;QACrD,MAAM,eAAe,GAAG,WAAW,GAAG,cAAc,CAAC;QACrD,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,EAAE,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B,CAC1C,UAAyB,EACzB,gBAAwB,EACxB,UAAkB,EAClB,cAAc,GAAG,CAAC;IAElB,MAAM,mBAAmB,GAAoB,EAAE,CAAC;IAChD,MAAM,iBAAiB,GAAG,UAAU,GAAG,cAAc,CAAC;IACtD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC;QACtD,MAAM,aAAa,GAAG,KAAK,GAAG,iBAAiB,CAAC;QAChD,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,gBAAwB,EACxB,eAA2B,EAC3B,YAA+B,EAC/B,aAAgC,EAChC,eAAwB;IAExB,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IAE5C,8DAA8D;IAC9D,qFAAqF;IACrF,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,gBAAgB,EAAE,SAAS,EAAE,EAAE,CAAC;YAClE,MAAM,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACnD,MAAM,OAAO,GAAa,EAAE,CAAC;YAE7B,KAAK,IAAI,WAAW,GAAG,gBAAgB,EAAE,WAAW,GAAG,cAAc,EAAE,WAAW,EAAE,EAAE,CAAC;gBACrF,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;gBAC/C,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sCAAsC;IACtC,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,gBAAgB,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;QAC9D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,SAAS,IAAI,CAAC,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;gBAChF,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QACD,OAAO,eAAe;YACpB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,gBAAgB,EAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAC3D,YAAY,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,CACjF;YACH,CAAC,CAAC,YAAY,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/gltf/lib/gltf-utils/get-typed-array.ts
21
+ var get_typed_array_exports = {};
22
+ __export(get_typed_array_exports, {
23
+ getTypedArrayForAccessor: () => getTypedArrayForAccessor,
24
+ getTypedArrayForBufferView: () => getTypedArrayForBufferView,
25
+ getTypedArrayForImageData: () => getTypedArrayForImageData
26
+ });
27
+ module.exports = __toCommonJS(get_typed_array_exports);
28
+ var import_assert = require("../utils/assert.cjs");
29
+ var import_loader_utils = require("@loaders.gl/core/loader-utils");
30
+ var import_gltf_utils = require("./gltf-utils.cjs");
31
+ function getTypedArrayForBufferView(json, buffers, bufferViewIndex) {
32
+ const bufferView = typeof bufferViewIndex === "number" ? json.bufferViews[bufferViewIndex] : bufferViewIndex;
33
+ (0, import_assert.assert)(bufferView);
34
+ const bufferIndex = bufferView.buffer;
35
+ const binChunk = buffers[bufferIndex];
36
+ (0, import_assert.assert)(binChunk);
37
+ (0, import_assert.assert)((bufferView.byteOffset || 0) >= 0 && bufferView.byteLength >= 0);
38
+ (0, import_assert.assert)((bufferView.byteOffset || 0) + bufferView.byteLength <= binChunk.byteLength);
39
+ (0, import_assert.assert)(
40
+ binChunk.byteOffset >= 0 && binChunk.byteOffset + binChunk.byteLength <= binChunk.arrayBuffer.byteLength
41
+ );
42
+ const byteOffset = (bufferView.byteOffset || 0) + binChunk.byteOffset;
43
+ return new Uint8Array(binChunk.arrayBuffer, byteOffset, bufferView.byteLength);
44
+ }
45
+ function getTypedArrayForImageData(json, buffers, imageIndex) {
46
+ const image = json.images[imageIndex];
47
+ return getTypedArrayForBufferView(json, buffers, image.bufferView);
48
+ }
49
+ function getTypedArrayForAccessor(json, buffers, accessor) {
50
+ const gltfAccessor = typeof accessor === "number" ? json.accessors?.[accessor] : accessor;
51
+ if (!gltfAccessor) {
52
+ throw new Error(`No gltf accessor ${JSON.stringify(accessor)}`);
53
+ }
54
+ (0, import_assert.assert)(Number.isSafeInteger(gltfAccessor.count) && gltfAccessor.count >= 0);
55
+ const { ArrayType, length, numberOfComponentsInElement } = (0, import_gltf_utils.getAccessorArrayTypeAndLength)(
56
+ gltfAccessor,
57
+ { byteLength: Infinity }
58
+ );
59
+ const decodedValue = gltfAccessor.value;
60
+ let result;
61
+ if (ArrayBuffer.isView(decodedValue)) {
62
+ (0, import_assert.assert)(decodedValue.length === length);
63
+ result = decodedValue;
64
+ } else if (gltfAccessor.bufferView === void 0) {
65
+ result = new ArrayType(length);
66
+ } else {
67
+ result = readAccessorValues(json, buffers, gltfAccessor);
68
+ }
69
+ const sparse = gltfAccessor.sparse;
70
+ if (!sparse) return result;
71
+ const copiedValue = new ArrayType(length);
72
+ new Uint8Array(copiedValue.buffer).set(
73
+ new Uint8Array(result.buffer, result.byteOffset, result.byteLength)
74
+ );
75
+ (0, import_assert.assert)(sparse.count >= 0 && sparse.count <= gltfAccessor.count);
76
+ (0, import_assert.assert)([5121, 5123, 5125].includes(sparse.indices.componentType));
77
+ const indices = readAccessorValues(json, buffers, {
78
+ bufferView: sparse.indices.bufferView,
79
+ byteOffset: sparse.indices.byteOffset,
80
+ componentType: sparse.indices.componentType,
81
+ count: sparse.count,
82
+ type: "SCALAR"
83
+ });
84
+ const values = readAccessorValues(json, buffers, {
85
+ bufferView: sparse.values.bufferView,
86
+ byteOffset: sparse.values.byteOffset,
87
+ componentType: gltfAccessor.componentType,
88
+ count: sparse.count,
89
+ type: gltfAccessor.type
90
+ });
91
+ let previousIndex = -1;
92
+ const copiedBytes = new Uint8Array(copiedValue.buffer);
93
+ const elementByteLength = numberOfComponentsInElement * ArrayType.BYTES_PER_ELEMENT;
94
+ const valueBytes = new Uint8Array(values.buffer, values.byteOffset, values.byteLength);
95
+ for (let sparseIndex = 0; sparseIndex < sparse.count; sparseIndex++) {
96
+ const index = Number(indices[sparseIndex]);
97
+ (0, import_assert.assert)(index > previousIndex && index < gltfAccessor.count);
98
+ copiedBytes.set(
99
+ valueBytes.subarray(sparseIndex * elementByteLength, (sparseIndex + 1) * elementByteLength),
100
+ index * elementByteLength
101
+ );
102
+ previousIndex = index;
103
+ }
104
+ return copiedValue;
105
+ }
106
+ function readAccessorValues(json, buffers, gltfAccessor) {
107
+ const bufferView = json.bufferViews?.[gltfAccessor.bufferView];
108
+ if (!bufferView) {
109
+ throw new Error(`No gltf buffer view for accessor ${bufferView}`);
110
+ }
111
+ const externalBuffer = buffers[bufferView.buffer];
112
+ (0, import_assert.assert)(externalBuffer);
113
+ const { arrayBuffer, byteOffset: bufferByteOffset } = externalBuffer;
114
+ (0, import_assert.assert)((bufferView.byteOffset || 0) >= 0 && bufferView.byteLength >= 0);
115
+ (0, import_assert.assert)((bufferView.byteOffset || 0) + bufferView.byteLength <= externalBuffer.byteLength);
116
+ (0, import_assert.assert)(
117
+ bufferByteOffset >= 0 && bufferByteOffset + externalBuffer.byteLength <= arrayBuffer.byteLength
118
+ );
119
+ (0, import_assert.assert)((gltfAccessor.byteOffset || 0) >= 0);
120
+ const byteOffset = (bufferByteOffset || 0) + (gltfAccessor.byteOffset || 0) + (bufferView.byteOffset || 0);
121
+ const { ArrayType, length, componentByteSize, numberOfComponentsInElement } = (0, import_gltf_utils.getAccessorArrayTypeAndLength)(gltfAccessor, bufferView);
122
+ const elementByteSize = componentByteSize * numberOfComponentsInElement;
123
+ const matrixColumns = gltfAccessor.type.startsWith("MAT") ? Number(gltfAccessor.type.slice(3)) : 1;
124
+ const matrixColumnByteSize = (0, import_loader_utils.padToNBytes)(matrixColumns * componentByteSize, 4);
125
+ const packedElementByteSize = matrixColumns > 1 ? matrixColumns * matrixColumnByteSize : elementByteSize;
126
+ const elementStride = bufferView.byteStride ?? packedElementByteSize;
127
+ const lastElementByteSize = matrixColumns > 1 ? (matrixColumns - 1) * matrixColumnByteSize + matrixColumns * componentByteSize : elementByteSize;
128
+ (0, import_assert.assert)(elementStride >= packedElementByteSize);
129
+ (0, import_assert.assert)(
130
+ (gltfAccessor.byteOffset || 0) + (gltfAccessor.count === 0 ? 0 : (gltfAccessor.count - 1) * elementStride + lastElementByteSize) <= bufferView.byteLength
131
+ );
132
+ if (gltfAccessor.count === 0) return new ArrayType(0);
133
+ if (matrixColumns > 1 && matrixColumnByteSize !== matrixColumns * componentByteSize) {
134
+ const elementStride2 = bufferView.byteStride ?? matrixColumns * matrixColumnByteSize;
135
+ const lastElementSize = (matrixColumns - 1) * matrixColumnByteSize + matrixColumns * componentByteSize;
136
+ (0, import_assert.assert)(
137
+ (gltfAccessor.byteOffset || 0) + (gltfAccessor.count - 1) * elementStride2 + lastElementSize <= bufferView.byteLength
138
+ );
139
+ const result2 = new ArrayType(length);
140
+ const outputBytes = new Uint8Array(result2.buffer, result2.byteOffset, result2.byteLength);
141
+ for (let elementIndex = 0; elementIndex < gltfAccessor.count; elementIndex++) {
142
+ for (let columnIndex = 0; columnIndex < matrixColumns; columnIndex++) {
143
+ const columnBytes = new Uint8Array(
144
+ arrayBuffer,
145
+ byteOffset + elementIndex * elementStride2 + columnIndex * matrixColumnByteSize,
146
+ matrixColumns * componentByteSize
147
+ );
148
+ outputBytes.set(
149
+ columnBytes,
150
+ elementIndex * elementByteSize + columnIndex * matrixColumns * componentByteSize
151
+ );
152
+ }
153
+ }
154
+ return result2;
155
+ }
156
+ const elementAddressScale = bufferView.byteStride || elementByteSize;
157
+ if (typeof bufferView.byteStride === "undefined" || bufferView.byteStride === elementByteSize) {
158
+ if (byteOffset % componentByteSize !== 0) {
159
+ const bytes = new Uint8Array(arrayBuffer, byteOffset, length * componentByteSize);
160
+ const alignedBytes = new Uint8Array(bytes.byteLength);
161
+ alignedBytes.set(bytes);
162
+ return new ArrayType(alignedBytes.buffer, 0, length);
163
+ }
164
+ const result2 = new ArrayType(arrayBuffer, byteOffset, length);
165
+ return result2;
166
+ }
167
+ const result = new ArrayType(length);
168
+ for (let i = 0; i < gltfAccessor.count; i++) {
169
+ const elementByteOffset = byteOffset + i * elementAddressScale;
170
+ let values;
171
+ if (elementByteOffset % componentByteSize !== 0) {
172
+ const bytes = new Uint8Array(arrayBuffer, elementByteOffset, elementByteSize);
173
+ const alignedBytes = new Uint8Array(elementByteSize);
174
+ alignedBytes.set(bytes);
175
+ values = new ArrayType(alignedBytes.buffer, 0, numberOfComponentsInElement);
176
+ } else {
177
+ values = new ArrayType(arrayBuffer, elementByteOffset, numberOfComponentsInElement);
178
+ }
179
+ result.set(values, i * numberOfComponentsInElement);
180
+ }
181
+ return result;
182
+ }
183
+ // Annotate the CommonJS export names for ESM import in node:
184
+ 0 && (module.exports = {
185
+ getTypedArrayForAccessor,
186
+ getTypedArrayForBufferView,
187
+ getTypedArrayForImageData
188
+ });
189
+ //# sourceMappingURL=get-typed-array.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/gltf/lib/gltf-utils/get-typed-array.ts"],
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// TODO - GLTFScenegraph should use these\nimport {assert} from '../utils/assert';\nimport {padToNBytes} from '@loaders.gl/core/loader-utils';\nimport type {BigTypedArray} from '@loaders.gl/core/schema';\nimport type {GLTF, GLTFExternalBuffer, GLTFAccessor} from '../types/gltf-types';\nimport {getAccessorArrayTypeAndLength} from './gltf-utils';\n\n// accepts buffer view index or buffer view object\n// returns a `Uint8Array`\nexport function getTypedArrayForBufferView(json, buffers, bufferViewIndex) {\n const bufferView =\n typeof bufferViewIndex === 'number' ? json.bufferViews[bufferViewIndex] : bufferViewIndex;\n assert(bufferView);\n\n // Get hold of the arrayBuffer\n const bufferIndex = bufferView.buffer;\n const binChunk = buffers[bufferIndex];\n assert(binChunk);\n\n assert((bufferView.byteOffset || 0) >= 0 && bufferView.byteLength >= 0);\n assert((bufferView.byteOffset || 0) + bufferView.byteLength <= binChunk.byteLength);\n assert(\n binChunk.byteOffset >= 0 &&\n binChunk.byteOffset + binChunk.byteLength <= binChunk.arrayBuffer.byteLength\n );\n const byteOffset = (bufferView.byteOffset || 0) + binChunk.byteOffset;\n return new Uint8Array(binChunk.arrayBuffer, byteOffset, bufferView.byteLength);\n}\n\n// accepts accessor index or accessor object\n// returns a `Uint8Array`\nexport function getTypedArrayForImageData(json, buffers, imageIndex) {\n const image = json.images[imageIndex];\n return getTypedArrayForBufferView(json, buffers, image.bufferView);\n}\n\n/**\n * Gets data pointed by the accessor.\n * @param json - json part of gltf content of a GLTF tile.\n * @param buffers - Array containing buffers of data.\n * @param accessor - accepts accessor index or accessor object.\n * @returns Typed array with type matching the accessor component type.\n */\n// eslint-disable-next-line complexity\nexport function getTypedArrayForAccessor(\n json: GLTF,\n buffers: GLTFExternalBuffer[],\n accessor: GLTFAccessor | number\n): BigTypedArray {\n const gltfAccessor = typeof accessor === 'number' ? json.accessors?.[accessor] : accessor;\n if (!gltfAccessor) {\n throw new Error(`No gltf accessor ${JSON.stringify(accessor)}`);\n }\n assert(Number.isSafeInteger(gltfAccessor.count) && gltfAccessor.count >= 0);\n const {ArrayType, length, numberOfComponentsInElement} = getAccessorArrayTypeAndLength(\n gltfAccessor,\n {byteLength: Infinity}\n );\n const decodedValue = (gltfAccessor as GLTFAccessor & {value?: BigTypedArray}).value;\n let result: BigTypedArray;\n if (ArrayBuffer.isView(decodedValue)) {\n assert(decodedValue.length === length);\n result = decodedValue;\n } else if (gltfAccessor.bufferView === undefined) {\n result = new ArrayType(length);\n } else {\n result = readAccessorValues(json, buffers, gltfAccessor);\n }\n const sparse = gltfAccessor.sparse;\n if (!sparse) return result;\n // Sparse substitutions must never mutate borrowed buffers or decoder-owned arrays.\n const copiedValue: BigTypedArray = new ArrayType(length);\n new Uint8Array(copiedValue.buffer).set(\n new Uint8Array(result.buffer, result.byteOffset, result.byteLength)\n );\n assert(sparse.count >= 0 && sparse.count <= gltfAccessor.count);\n assert([5121, 5123, 5125].includes(sparse.indices.componentType));\n const indices = readAccessorValues(json, buffers, {\n bufferView: sparse.indices.bufferView,\n byteOffset: sparse.indices.byteOffset,\n componentType: sparse.indices.componentType,\n count: sparse.count,\n type: 'SCALAR'\n });\n const values = readAccessorValues(json, buffers, {\n bufferView: sparse.values.bufferView,\n byteOffset: sparse.values.byteOffset,\n componentType: gltfAccessor.componentType,\n count: sparse.count,\n type: gltfAccessor.type\n });\n let previousIndex = -1;\n const copiedBytes = new Uint8Array(copiedValue.buffer);\n const elementByteLength = numberOfComponentsInElement * ArrayType.BYTES_PER_ELEMENT;\n const valueBytes = new Uint8Array(values.buffer, values.byteOffset, values.byteLength);\n for (let sparseIndex = 0; sparseIndex < sparse.count; sparseIndex++) {\n const index = Number(indices[sparseIndex]);\n assert(index > previousIndex && index < gltfAccessor.count);\n copiedBytes.set(\n valueBytes.subarray(sparseIndex * elementByteLength, (sparseIndex + 1) * elementByteLength),\n index * elementByteLength\n );\n previousIndex = index;\n }\n return copiedValue;\n}\n\n/** Read dense values, respecting buffer-view ranges, interleaving and matrix column padding. */\nfunction readAccessorValues(\n json: GLTF,\n buffers: GLTFExternalBuffer[],\n gltfAccessor: GLTFAccessor\n): BigTypedArray {\n const bufferView = json.bufferViews?.[gltfAccessor.bufferView!];\n if (!bufferView) {\n throw new Error(`No gltf buffer view for accessor ${bufferView}`);\n }\n // Get `arrayBuffer` the `bufferView` looks at\n const externalBuffer = buffers[bufferView.buffer];\n assert(externalBuffer);\n const {arrayBuffer, byteOffset: bufferByteOffset} = externalBuffer;\n assert((bufferView.byteOffset || 0) >= 0 && bufferView.byteLength >= 0);\n assert((bufferView.byteOffset || 0) + bufferView.byteLength <= externalBuffer.byteLength);\n assert(\n bufferByteOffset >= 0 && bufferByteOffset + externalBuffer.byteLength <= arrayBuffer.byteLength\n );\n assert((gltfAccessor.byteOffset || 0) >= 0);\n // Resulting byteOffset is sum of the buffer, accessor and bufferView byte offsets\n const byteOffset =\n (bufferByteOffset || 0) + (gltfAccessor.byteOffset || 0) + (bufferView.byteOffset || 0);\n // Deduce TypedArray type and its length from `accessor` and `bufferView` data\n const {ArrayType, length, componentByteSize, numberOfComponentsInElement} =\n getAccessorArrayTypeAndLength(gltfAccessor, bufferView);\n // 'length' is a whole number of components of all elements in the buffer pointed by the accessor\n // Multiplier to calculate the address of the element in the arrayBuffer\n const elementByteSize = componentByteSize * numberOfComponentsInElement;\n const matrixColumns = gltfAccessor.type.startsWith('MAT')\n ? Number(gltfAccessor.type.slice(3))\n : 1;\n const matrixColumnByteSize = padToNBytes(matrixColumns * componentByteSize, 4);\n const packedElementByteSize =\n matrixColumns > 1 ? matrixColumns * matrixColumnByteSize : elementByteSize;\n const elementStride = bufferView.byteStride ?? packedElementByteSize;\n const lastElementByteSize =\n matrixColumns > 1\n ? (matrixColumns - 1) * matrixColumnByteSize + matrixColumns * componentByteSize\n : elementByteSize;\n assert(elementStride >= packedElementByteSize);\n assert(\n (gltfAccessor.byteOffset || 0) +\n (gltfAccessor.count === 0\n ? 0\n : (gltfAccessor.count - 1) * elementStride + lastElementByteSize) <=\n bufferView.byteLength\n );\n if (gltfAccessor.count === 0) return new ArrayType(0);\n if (matrixColumns > 1 && matrixColumnByteSize !== matrixColumns * componentByteSize) {\n const elementStride = bufferView.byteStride ?? matrixColumns * matrixColumnByteSize;\n const lastElementSize =\n (matrixColumns - 1) * matrixColumnByteSize + matrixColumns * componentByteSize;\n assert(\n (gltfAccessor.byteOffset || 0) + (gltfAccessor.count - 1) * elementStride + lastElementSize <=\n bufferView.byteLength\n );\n const result: BigTypedArray = new ArrayType(length);\n const outputBytes = new Uint8Array(result.buffer, result.byteOffset, result.byteLength);\n for (let elementIndex = 0; elementIndex < gltfAccessor.count; elementIndex++) {\n for (let columnIndex = 0; columnIndex < matrixColumns; columnIndex++) {\n const columnBytes = new Uint8Array(\n arrayBuffer,\n byteOffset + elementIndex * elementStride + columnIndex * matrixColumnByteSize,\n matrixColumns * componentByteSize\n );\n outputBytes.set(\n columnBytes,\n elementIndex * elementByteSize + columnIndex * matrixColumns * componentByteSize\n );\n }\n }\n return result;\n }\n const elementAddressScale = bufferView.byteStride || elementByteSize;\n // Creare an array of component's type where all components (not just elements) will reside\n if (typeof bufferView.byteStride === 'undefined' || bufferView.byteStride === elementByteSize) {\n // No iterleaving\n if (byteOffset % componentByteSize !== 0) {\n const bytes = new Uint8Array(arrayBuffer, byteOffset, length * componentByteSize);\n const alignedBytes = new Uint8Array(bytes.byteLength);\n alignedBytes.set(bytes);\n return new ArrayType(alignedBytes.buffer, 0, length);\n }\n const result: BigTypedArray = new ArrayType(arrayBuffer, byteOffset, length);\n return result;\n }\n // Iterleaving\n const result: BigTypedArray = new ArrayType(length);\n for (let i = 0; i < gltfAccessor.count; i++) {\n const elementByteOffset = byteOffset + i * elementAddressScale;\n let values: any;\n if (elementByteOffset % componentByteSize !== 0) {\n const bytes = new Uint8Array(arrayBuffer, elementByteOffset, elementByteSize);\n const alignedBytes = new Uint8Array(elementByteSize);\n alignedBytes.set(bytes);\n values = new ArrayType(alignedBytes.buffer, 0, numberOfComponentsInElement);\n } else {\n values = new ArrayType(arrayBuffer, elementByteOffset, numberOfComponentsInElement);\n }\n result.set(values, i * numberOfComponentsInElement);\n }\n return result;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["elementStride", "result"]
7
+ }
@@ -0,0 +1,13 @@
1
+ import type { BigTypedArray } from '@loaders.gl/core/schema';
2
+ import type { GLTF, GLTFExternalBuffer, GLTFAccessor } from "../types/gltf-types.js";
3
+ export declare function getTypedArrayForBufferView(json: any, buffers: any, bufferViewIndex: any): Uint8Array<any>;
4
+ export declare function getTypedArrayForImageData(json: any, buffers: any, imageIndex: any): Uint8Array<any>;
5
+ /**
6
+ * Gets data pointed by the accessor.
7
+ * @param json - json part of gltf content of a GLTF tile.
8
+ * @param buffers - Array containing buffers of data.
9
+ * @param accessor - accepts accessor index or accessor object.
10
+ * @returns Typed array with type matching the accessor component type.
11
+ */
12
+ export declare function getTypedArrayForAccessor(json: GLTF, buffers: GLTFExternalBuffer[], accessor: GLTFAccessor | number): BigTypedArray;
13
+ //# sourceMappingURL=get-typed-array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-typed-array.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/gltf-utils/get-typed-array.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAC,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAC,+BAA4B;AAKhF,wBAAgB,0BAA0B,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA,EAAE,eAAe,KAAA,mBAkBxE;AAID,wBAAgB,yBAAyB,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA,EAAE,UAAU,KAAA,mBAGlE;AAED;;;;;;GAMG;AAEH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,kBAAkB,EAAE,EAC7B,QAAQ,EAAE,YAAY,GAAG,MAAM,GAC9B,aAAa,CAyDf"}