@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.
- package/GLTF-README.md +46 -0
- package/LICENSE +2 -30
- package/OBJ-README.md +28 -0
- package/README.md +5 -0
- package/THIRD-PARTY-NOTICES.md +23 -0
- package/bin/gltf/glbdump.js +8 -0
- package/dist/dist.dev.js +33820 -23
- package/dist/dist.min.js +38 -3
- package/dist/gltf/bundled.cjs +34 -0
- package/dist/gltf/bundled.cjs.map +7 -0
- package/dist/gltf/bundled.d.ts +5 -0
- package/dist/gltf/bundled.d.ts.map +1 -0
- package/dist/gltf/bundled.js +6 -0
- package/dist/gltf/bundled.js.map +1 -0
- package/dist/gltf/glb-loader-types.cjs +59 -0
- package/dist/gltf/glb-loader-types.cjs.map +7 -0
- package/dist/gltf/glb-loader-types.d.ts +58 -0
- package/dist/gltf/glb-loader-types.d.ts.map +1 -0
- package/dist/gltf/glb-loader-types.js +24 -0
- package/dist/gltf/glb-loader-types.js.map +1 -0
- package/dist/gltf/glb-loader.cjs +46 -0
- package/dist/gltf/glb-loader.cjs.map +7 -0
- package/dist/gltf/glb-loader.d.ts +42 -0
- package/dist/gltf/glb-loader.d.ts.map +1 -0
- package/dist/gltf/glb-loader.js +24 -0
- package/dist/gltf/glb-loader.js.map +1 -0
- package/dist/gltf/glb-writer.cjs +51 -0
- package/dist/gltf/glb-writer.cjs.map +7 -0
- package/dist/gltf/glb-writer.d.ts +30 -0
- package/dist/gltf/glb-writer.d.ts.map +1 -0
- package/dist/gltf/glb-writer.js +31 -0
- package/dist/gltf/glb-writer.js.map +1 -0
- package/dist/gltf/gltf-1.schema.json +2075 -0
- package/dist/gltf/gltf-2.1.schema.json +1786 -0
- package/dist/gltf/gltf-2.schema.json +1786 -0
- package/dist/gltf/gltf-all.schema.json +5654 -0
- package/dist/gltf/gltf-format.cjs +55 -0
- package/dist/gltf/gltf-format.cjs.map +7 -0
- package/dist/gltf/gltf-format.d.ts +26 -0
- package/dist/gltf/gltf-format.d.ts.map +1 -0
- package/dist/gltf/gltf-format.js +29 -0
- package/dist/gltf/gltf-format.js.map +1 -0
- package/dist/gltf/gltf-loader-types.cjs +71 -0
- package/dist/gltf/gltf-loader-types.cjs.map +7 -0
- package/dist/gltf/gltf-loader-types.d.ts +71 -0
- package/dist/gltf/gltf-loader-types.d.ts.map +1 -0
- package/dist/gltf/gltf-loader-types.js +30 -0
- package/dist/gltf/gltf-loader-types.js.map +1 -0
- package/dist/gltf/gltf-loader.cjs +46 -0
- package/dist/gltf/gltf-loader.cjs.map +7 -0
- package/dist/gltf/gltf-loader.d.ts +45 -0
- package/dist/gltf/gltf-loader.d.ts.map +1 -0
- package/dist/gltf/gltf-loader.js +22 -0
- package/dist/gltf/gltf-loader.js.map +1 -0
- package/dist/gltf/gltf-source.cjs +236 -0
- package/dist/gltf/gltf-source.cjs.map +7 -0
- package/dist/gltf/gltf-source.d.ts +59 -0
- package/dist/gltf/gltf-source.d.ts.map +1 -0
- package/dist/gltf/gltf-source.js +230 -0
- package/dist/gltf/gltf-source.js.map +1 -0
- package/dist/gltf/gltf-writer.cjs +67 -0
- package/dist/gltf/gltf-writer.cjs.map +7 -0
- package/dist/gltf/gltf-writer.d.ts +14 -0
- package/dist/gltf/gltf-writer.d.ts.map +1 -0
- package/dist/gltf/gltf-writer.js +44 -0
- package/dist/gltf/gltf-writer.js.map +1 -0
- package/dist/gltf/gltf.schema.json +5654 -0
- package/dist/gltf/index.cjs +225 -0
- package/dist/gltf/index.cjs.map +7 -0
- package/dist/gltf/index.d.ts +46 -0
- package/dist/gltf/index.d.ts.map +1 -0
- package/dist/gltf/index.js +39 -0
- package/dist/gltf/index.js.map +1 -0
- package/dist/gltf/lib/api/append-gltf-v1-buffer-data.cjs +68 -0
- package/dist/gltf/lib/api/append-gltf-v1-buffer-data.cjs.map +7 -0
- package/dist/gltf/lib/api/append-gltf-v1-buffer-data.d.ts +17 -0
- package/dist/gltf/lib/api/append-gltf-v1-buffer-data.d.ts.map +1 -0
- package/dist/gltf/lib/api/append-gltf-v1-buffer-data.js +45 -0
- package/dist/gltf/lib/api/append-gltf-v1-buffer-data.js.map +1 -0
- package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.cjs +133 -0
- package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.cjs.map +7 -0
- package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.d.ts +8 -0
- package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.d.ts.map +1 -0
- package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.js +138 -0
- package/dist/gltf/lib/api/bake-gltf-v1-bind-shapes.js.map +1 -0
- package/dist/gltf/lib/api/clean-gltf-v1-fields.cjs +93 -0
- package/dist/gltf/lib/api/clean-gltf-v1-fields.cjs.map +7 -0
- package/dist/gltf/lib/api/clean-gltf-v1-fields.d.ts +6 -0
- package/dist/gltf/lib/api/clean-gltf-v1-fields.d.ts.map +1 -0
- package/dist/gltf/lib/api/clean-gltf-v1-fields.js +87 -0
- package/dist/gltf/lib/api/clean-gltf-v1-fields.js.map +1 -0
- package/dist/gltf/lib/api/convert-gltf-v1-accessors.cjs +128 -0
- package/dist/gltf/lib/api/convert-gltf-v1-accessors.cjs.map +7 -0
- package/dist/gltf/lib/api/convert-gltf-v1-accessors.d.ts +8 -0
- package/dist/gltf/lib/api/convert-gltf-v1-accessors.d.ts.map +1 -0
- package/dist/gltf/lib/api/convert-gltf-v1-accessors.js +147 -0
- package/dist/gltf/lib/api/convert-gltf-v1-accessors.js.map +1 -0
- package/dist/gltf/lib/api/convert-gltf-v1-animations.cjs +81 -0
- package/dist/gltf/lib/api/convert-gltf-v1-animations.cjs.map +7 -0
- package/dist/gltf/lib/api/convert-gltf-v1-animations.d.ts +4 -0
- package/dist/gltf/lib/api/convert-gltf-v1-animations.d.ts.map +1 -0
- package/dist/gltf/lib/api/convert-gltf-v1-animations.js +61 -0
- package/dist/gltf/lib/api/convert-gltf-v1-animations.js.map +1 -0
- package/dist/gltf/lib/api/convert-gltf-v1-materials.cjs +265 -0
- package/dist/gltf/lib/api/convert-gltf-v1-materials.cjs.map +7 -0
- package/dist/gltf/lib/api/convert-gltf-v1-materials.d.ts +6 -0
- package/dist/gltf/lib/api/convert-gltf-v1-materials.d.ts.map +1 -0
- package/dist/gltf/lib/api/convert-gltf-v1-materials.js +266 -0
- package/dist/gltf/lib/api/convert-gltf-v1-materials.js.map +1 -0
- package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.cjs +98 -0
- package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.cjs.map +7 -0
- package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.d.ts +4 -0
- package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.d.ts.map +1 -0
- package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.js +86 -0
- package/dist/gltf/lib/api/convert-gltf-v1-matrix-nodes.js.map +1 -0
- package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.cjs +87 -0
- package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.cjs.map +7 -0
- package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.d.ts +4 -0
- package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.d.ts.map +1 -0
- package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.js +72 -0
- package/dist/gltf/lib/api/convert-gltf-v1-skin-scenes.js.map +1 -0
- package/dist/gltf/lib/api/convert-gltf-v1-skins.cjs +173 -0
- package/dist/gltf/lib/api/convert-gltf-v1-skins.cjs.map +7 -0
- package/dist/gltf/lib/api/convert-gltf-v1-skins.d.ts +9 -0
- package/dist/gltf/lib/api/convert-gltf-v1-skins.d.ts.map +1 -0
- package/dist/gltf/lib/api/convert-gltf-v1-skins.js +161 -0
- package/dist/gltf/lib/api/convert-gltf-v1-skins.js.map +1 -0
- package/dist/gltf/lib/api/gltf-accessors.cjs +83 -0
- package/dist/gltf/lib/api/gltf-accessors.cjs.map +7 -0
- package/dist/gltf/lib/api/gltf-accessors.d.ts +22 -0
- package/dist/gltf/lib/api/gltf-accessors.d.ts.map +1 -0
- package/dist/gltf/lib/api/gltf-accessors.js +66 -0
- package/dist/gltf/lib/api/gltf-accessors.js.map +1 -0
- package/dist/gltf/lib/api/gltf-culling.cjs +73 -0
- package/dist/gltf/lib/api/gltf-culling.cjs.map +7 -0
- package/dist/gltf/lib/api/gltf-culling.d.ts +12 -0
- package/dist/gltf/lib/api/gltf-culling.d.ts.map +1 -0
- package/dist/gltf/lib/api/gltf-culling.js +55 -0
- package/dist/gltf/lib/api/gltf-culling.js.map +1 -0
- package/dist/gltf/lib/api/gltf-extension-data.cjs +102 -0
- package/dist/gltf/lib/api/gltf-extension-data.cjs.map +7 -0
- package/dist/gltf/lib/api/gltf-extension-data.d.ts +38 -0
- package/dist/gltf/lib/api/gltf-extension-data.d.ts.map +1 -0
- package/dist/gltf/lib/api/gltf-extension-data.js +75 -0
- package/dist/gltf/lib/api/gltf-extension-data.js.map +1 -0
- package/dist/gltf/lib/api/gltf-extensions.cjs +123 -0
- package/dist/gltf/lib/api/gltf-extensions.cjs.map +7 -0
- package/dist/gltf/lib/api/gltf-extensions.d.ts +33 -0
- package/dist/gltf/lib/api/gltf-extensions.d.ts.map +1 -0
- package/dist/gltf/lib/api/gltf-extensions.js +100 -0
- package/dist/gltf/lib/api/gltf-extensions.js.map +1 -0
- package/dist/gltf/lib/api/gltf-iterator.cjs +1001 -0
- package/dist/gltf/lib/api/gltf-iterator.cjs.map +7 -0
- package/dist/gltf/lib/api/gltf-iterator.d.ts +407 -0
- package/dist/gltf/lib/api/gltf-iterator.d.ts.map +1 -0
- package/dist/gltf/lib/api/gltf-iterator.js +940 -0
- package/dist/gltf/lib/api/gltf-iterator.js.map +1 -0
- package/dist/gltf/lib/api/gltf-mesh-arrow.cjs +269 -0
- package/dist/gltf/lib/api/gltf-mesh-arrow.cjs.map +7 -0
- package/dist/gltf/lib/api/gltf-mesh-arrow.d.ts +53 -0
- package/dist/gltf/lib/api/gltf-mesh-arrow.d.ts.map +1 -0
- package/dist/gltf/lib/api/gltf-mesh-arrow.js +247 -0
- package/dist/gltf/lib/api/gltf-mesh-arrow.js.map +1 -0
- package/dist/gltf/lib/api/gltf-scenegraph.cjs +615 -0
- package/dist/gltf/lib/api/gltf-scenegraph.cjs.map +7 -0
- package/dist/gltf/lib/api/gltf-scenegraph.d.ts +183 -0
- package/dist/gltf/lib/api/gltf-scenegraph.d.ts.map +1 -0
- package/dist/gltf/lib/api/gltf-scenegraph.js +624 -0
- package/dist/gltf/lib/api/gltf-scenegraph.js.map +1 -0
- package/dist/gltf/lib/api/normalize-gltf-v1.cjs +479 -0
- package/dist/gltf/lib/api/normalize-gltf-v1.cjs.map +7 -0
- package/dist/gltf/lib/api/normalize-gltf-v1.d.ts +37 -0
- package/dist/gltf/lib/api/normalize-gltf-v1.d.ts.map +1 -0
- package/dist/gltf/lib/api/normalize-gltf-v1.js +461 -0
- package/dist/gltf/lib/api/normalize-gltf-v1.js.map +1 -0
- package/dist/gltf/lib/api/repack-gltf-v1-accessors.cjs +405 -0
- package/dist/gltf/lib/api/repack-gltf-v1-accessors.cjs.map +7 -0
- package/dist/gltf/lib/api/repack-gltf-v1-accessors.d.ts +50 -0
- package/dist/gltf/lib/api/repack-gltf-v1-accessors.d.ts.map +1 -0
- package/dist/gltf/lib/api/repack-gltf-v1-accessors.js +448 -0
- package/dist/gltf/lib/api/repack-gltf-v1-accessors.js.map +1 -0
- package/dist/gltf/lib/api/validate-gltf-v1-buffers.cjs +110 -0
- package/dist/gltf/lib/api/validate-gltf-v1-buffers.cjs.map +7 -0
- package/dist/gltf/lib/api/validate-gltf-v1-buffers.d.ts +4 -0
- package/dist/gltf/lib/api/validate-gltf-v1-buffers.d.ts.map +1 -0
- package/dist/gltf/lib/api/validate-gltf-v1-buffers.js +111 -0
- package/dist/gltf/lib/api/validate-gltf-v1-buffers.js.map +1 -0
- package/dist/gltf/lib/api/validate-gltf-v1-cameras.cjs +41 -0
- package/dist/gltf/lib/api/validate-gltf-v1-cameras.cjs.map +7 -0
- package/dist/gltf/lib/api/validate-gltf-v1-cameras.d.ts +4 -0
- package/dist/gltf/lib/api/validate-gltf-v1-cameras.d.ts.map +1 -0
- package/dist/gltf/lib/api/validate-gltf-v1-cameras.js +34 -0
- package/dist/gltf/lib/api/validate-gltf-v1-cameras.js.map +1 -0
- package/dist/gltf/lib/api/validate-gltf-v1-geometry.cjs +121 -0
- package/dist/gltf/lib/api/validate-gltf-v1-geometry.cjs.map +7 -0
- package/dist/gltf/lib/api/validate-gltf-v1-geometry.d.ts +5 -0
- package/dist/gltf/lib/api/validate-gltf-v1-geometry.d.ts.map +1 -0
- package/dist/gltf/lib/api/validate-gltf-v1-geometry.js +118 -0
- package/dist/gltf/lib/api/validate-gltf-v1-geometry.js.map +1 -0
- package/dist/gltf/lib/api/validate-gltf-v1-payloads.cjs +265 -0
- package/dist/gltf/lib/api/validate-gltf-v1-payloads.cjs.map +7 -0
- package/dist/gltf/lib/api/validate-gltf-v1-payloads.d.ts +4 -0
- package/dist/gltf/lib/api/validate-gltf-v1-payloads.d.ts.map +1 -0
- package/dist/gltf/lib/api/validate-gltf-v1-payloads.js +268 -0
- package/dist/gltf/lib/api/validate-gltf-v1-payloads.js.map +1 -0
- package/dist/gltf/lib/encoders/encode-glb.cjs +147 -0
- package/dist/gltf/lib/encoders/encode-glb.cjs.map +7 -0
- package/dist/gltf/lib/encoders/encode-glb.d.ts +21 -0
- package/dist/gltf/lib/encoders/encode-glb.d.ts.map +1 -0
- package/dist/gltf/lib/encoders/encode-glb.js +142 -0
- package/dist/gltf/lib/encoders/encode-glb.js.map +1 -0
- package/dist/gltf/lib/encoders/encode-gltf-draco.cjs +202 -0
- package/dist/gltf/lib/encoders/encode-gltf-draco.cjs.map +7 -0
- package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts +20 -0
- package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts.map +1 -0
- package/dist/gltf/lib/encoders/encode-gltf-draco.js +187 -0
- package/dist/gltf/lib/encoders/encode-gltf-draco.js.map +1 -0
- package/dist/gltf/lib/encoders/encode-gltf.cjs +40 -0
- package/dist/gltf/lib/encoders/encode-gltf.cjs.map +7 -0
- package/dist/gltf/lib/encoders/encode-gltf.d.ts +22 -0
- package/dist/gltf/lib/encoders/encode-gltf.d.ts.map +1 -0
- package/dist/gltf/lib/encoders/encode-gltf.js +32 -0
- package/dist/gltf/lib/encoders/encode-gltf.js.map +1 -0
- package/dist/gltf/lib/extensions/EXT_mesh_features.cjs +175 -0
- package/dist/gltf/lib/extensions/EXT_mesh_features.cjs.map +7 -0
- package/dist/gltf/lib/extensions/EXT_mesh_features.d.ts +22 -0
- package/dist/gltf/lib/extensions/EXT_mesh_features.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/EXT_mesh_features.js +189 -0
- package/dist/gltf/lib/extensions/EXT_mesh_features.js.map +1 -0
- package/dist/gltf/lib/extensions/EXT_mesh_polygon.cjs +149 -0
- package/dist/gltf/lib/extensions/EXT_mesh_polygon.cjs.map +7 -0
- package/dist/gltf/lib/extensions/EXT_mesh_polygon.d.ts +7 -0
- package/dist/gltf/lib/extensions/EXT_mesh_polygon.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/EXT_mesh_polygon.js +125 -0
- package/dist/gltf/lib/extensions/EXT_mesh_polygon.js.map +1 -0
- package/dist/gltf/lib/extensions/EXT_meshopt_compression.cjs +37 -0
- package/dist/gltf/lib/extensions/EXT_meshopt_compression.cjs.map +7 -0
- package/dist/gltf/lib/extensions/EXT_meshopt_compression.d.ts +25 -0
- package/dist/gltf/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/EXT_meshopt_compression.js +29 -0
- package/dist/gltf/lib/extensions/EXT_meshopt_compression.js.map +1 -0
- package/dist/gltf/lib/extensions/EXT_primitive_voxels.cjs +87 -0
- package/dist/gltf/lib/extensions/EXT_primitive_voxels.cjs.map +7 -0
- package/dist/gltf/lib/extensions/EXT_primitive_voxels.d.ts +10 -0
- package/dist/gltf/lib/extensions/EXT_primitive_voxels.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/EXT_primitive_voxels.js +57 -0
- package/dist/gltf/lib/extensions/EXT_primitive_voxels.js.map +1 -0
- package/dist/gltf/lib/extensions/EXT_structural_metadata.cjs +684 -0
- package/dist/gltf/lib/extensions/EXT_structural_metadata.cjs.map +7 -0
- package/dist/gltf/lib/extensions/EXT_structural_metadata.d.ts +26 -0
- package/dist/gltf/lib/extensions/EXT_structural_metadata.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/EXT_structural_metadata.js +786 -0
- package/dist/gltf/lib/extensions/EXT_structural_metadata.js.map +1 -0
- package/dist/gltf/lib/extensions/EXT_texture_avif.cjs +56 -0
- package/dist/gltf/lib/extensions/EXT_texture_avif.cjs.map +7 -0
- package/dist/gltf/lib/extensions/EXT_texture_avif.d.ts +15 -0
- package/dist/gltf/lib/extensions/EXT_texture_avif.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/EXT_texture_avif.js +40 -0
- package/dist/gltf/lib/extensions/EXT_texture_avif.js.map +1 -0
- package/dist/gltf/lib/extensions/EXT_texture_webp.cjs +53 -0
- package/dist/gltf/lib/extensions/EXT_texture_webp.cjs.map +7 -0
- package/dist/gltf/lib/extensions/EXT_texture_webp.d.ts +10 -0
- package/dist/gltf/lib/extensions/EXT_texture_webp.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/EXT_texture_webp.js +32 -0
- package/dist/gltf/lib/extensions/EXT_texture_webp.js.map +1 -0
- package/dist/gltf/lib/extensions/KHR_audio_emitter.cjs +128 -0
- package/dist/gltf/lib/extensions/KHR_audio_emitter.cjs.map +7 -0
- package/dist/gltf/lib/extensions/KHR_audio_emitter.d.ts +8 -0
- package/dist/gltf/lib/extensions/KHR_audio_emitter.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/KHR_audio_emitter.js +121 -0
- package/dist/gltf/lib/extensions/KHR_audio_emitter.js.map +1 -0
- package/dist/gltf/lib/extensions/KHR_binary_gltf.cjs +53 -0
- package/dist/gltf/lib/extensions/KHR_binary_gltf.cjs.map +7 -0
- package/dist/gltf/lib/extensions/KHR_binary_gltf.d.ts +6 -0
- package/dist/gltf/lib/extensions/KHR_binary_gltf.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/KHR_binary_gltf.js +40 -0
- package/dist/gltf/lib/extensions/KHR_binary_gltf.js.map +1 -0
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs +131 -0
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs.map +7 -0
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.d.ts +8 -0
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js +107 -0
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs +209 -0
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs.map +7 -0
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts +13 -0
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js +160 -0
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js.map +1 -0
- package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.cjs +110 -0
- package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.cjs.map +7 -0
- package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.d.ts +10 -0
- package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.js +87 -0
- package/dist/gltf/lib/extensions/KHR_mesh_primitive_restart.js.map +1 -0
- package/dist/gltf/lib/extensions/KHR_meshopt_compression.cjs +37 -0
- package/dist/gltf/lib/extensions/KHR_meshopt_compression.cjs.map +7 -0
- package/dist/gltf/lib/extensions/KHR_meshopt_compression.d.ts +24 -0
- package/dist/gltf/lib/extensions/KHR_meshopt_compression.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/KHR_meshopt_compression.js +28 -0
- package/dist/gltf/lib/extensions/KHR_meshopt_compression.js.map +1 -0
- package/dist/gltf/lib/extensions/KHR_texture_basisu.cjs +47 -0
- package/dist/gltf/lib/extensions/KHR_texture_basisu.cjs.map +7 -0
- package/dist/gltf/lib/extensions/KHR_texture_basisu.d.ts +10 -0
- package/dist/gltf/lib/extensions/KHR_texture_basisu.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/KHR_texture_basisu.js +26 -0
- package/dist/gltf/lib/extensions/KHR_texture_basisu.js.map +1 -0
- package/dist/gltf/lib/extensions/KHR_texture_transform.cjs +258 -0
- package/dist/gltf/lib/extensions/KHR_texture_transform.cjs.map +7 -0
- package/dist/gltf/lib/extensions/KHR_texture_transform.d.ts +10 -0
- package/dist/gltf/lib/extensions/KHR_texture_transform.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/KHR_texture_transform.js +271 -0
- package/dist/gltf/lib/extensions/KHR_texture_transform.js.map +1 -0
- package/dist/gltf/lib/extensions/MPEG_audio_spatial.cjs +70 -0
- package/dist/gltf/lib/extensions/MPEG_audio_spatial.cjs.map +7 -0
- package/dist/gltf/lib/extensions/MPEG_audio_spatial.d.ts +10 -0
- package/dist/gltf/lib/extensions/MPEG_audio_spatial.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/MPEG_audio_spatial.js +45 -0
- package/dist/gltf/lib/extensions/MPEG_audio_spatial.js.map +1 -0
- package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.cjs +276 -0
- package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.cjs.map +7 -0
- package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.d.ts +5 -0
- package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.js +306 -0
- package/dist/gltf/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.cjs +71 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.cjs.map +7 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.d.ts +5 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.js +54 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.cjs +62 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.cjs.map +7 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.d.ts +9 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.js +38 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.cjs +99 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.cjs.map +7 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.d.ts +5 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.js +76 -0
- package/dist/gltf/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
- package/dist/gltf/lib/extensions/meshopt-compression.cjs +114 -0
- package/dist/gltf/lib/extensions/meshopt-compression.cjs.map +7 -0
- package/dist/gltf/lib/extensions/meshopt-compression.d.ts +48 -0
- package/dist/gltf/lib/extensions/meshopt-compression.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/meshopt-compression.js +123 -0
- package/dist/gltf/lib/extensions/meshopt-compression.js.map +1 -0
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.cjs +280 -0
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.cjs.map +7 -0
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.d.ts +84 -0
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.js +358 -0
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.js.map +1 -0
- package/dist/gltf/lib/gltf-utils/get-typed-array.cjs +189 -0
- package/dist/gltf/lib/gltf-utils/get-typed-array.cjs.map +7 -0
- package/dist/gltf/lib/gltf-utils/get-typed-array.d.ts +13 -0
- package/dist/gltf/lib/gltf-utils/get-typed-array.d.ts.map +1 -0
- package/dist/gltf/lib/gltf-utils/get-typed-array.js +175 -0
- package/dist/gltf/lib/gltf-utils/get-typed-array.js.map +1 -0
- package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.cjs +90 -0
- package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.cjs.map +7 -0
- package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.d.ts +6 -0
- package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.d.ts.map +1 -0
- package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.js +72 -0
- package/dist/gltf/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
- package/dist/gltf/lib/gltf-utils/gltf-constants.cjs +90 -0
- package/dist/gltf/lib/gltf-utils/gltf-constants.cjs.map +7 -0
- package/dist/gltf/lib/gltf-utils/gltf-constants.d.ts +26 -0
- package/dist/gltf/lib/gltf-utils/gltf-constants.d.ts.map +1 -0
- package/dist/gltf/lib/gltf-utils/gltf-constants.js +46 -0
- package/dist/gltf/lib/gltf-utils/gltf-constants.js.map +1 -0
- package/dist/gltf/lib/gltf-utils/gltf-utils.cjs +157 -0
- package/dist/gltf/lib/gltf-utils/gltf-utils.cjs.map +7 -0
- package/dist/gltf/lib/gltf-utils/gltf-utils.d.ts +17 -0
- package/dist/gltf/lib/gltf-utils/gltf-utils.d.ts.map +1 -0
- package/dist/gltf/lib/gltf-utils/gltf-utils.js +135 -0
- package/dist/gltf/lib/gltf-utils/gltf-utils.js.map +1 -0
- package/dist/gltf/lib/gltf-utils/resolve-gltf-file.cjs +91 -0
- package/dist/gltf/lib/gltf-utils/resolve-gltf-file.cjs.map +7 -0
- package/dist/gltf/lib/gltf-utils/resolve-gltf-file.d.ts +21 -0
- package/dist/gltf/lib/gltf-utils/resolve-gltf-file.d.ts.map +1 -0
- package/dist/gltf/lib/gltf-utils/resolve-gltf-file.js +77 -0
- package/dist/gltf/lib/gltf-utils/resolve-gltf-file.js.map +1 -0
- package/dist/gltf/lib/gltf-utils/resolve-url.cjs +61 -0
- package/dist/gltf/lib/gltf-utils/resolve-url.cjs.map +7 -0
- package/dist/gltf/lib/gltf-utils/resolve-url.d.ts +10 -0
- package/dist/gltf/lib/gltf-utils/resolve-url.d.ts.map +1 -0
- package/dist/gltf/lib/gltf-utils/resolve-url.js +43 -0
- package/dist/gltf/lib/gltf-utils/resolve-url.js.map +1 -0
- package/dist/gltf/lib/parsers/parse-glb.cjs +185 -0
- package/dist/gltf/lib/parsers/parse-glb.cjs.map +7 -0
- package/dist/gltf/lib/parsers/parse-glb.d.ts +20 -0
- package/dist/gltf/lib/parsers/parse-glb.d.ts.map +1 -0
- package/dist/gltf/lib/parsers/parse-glb.js +216 -0
- package/dist/gltf/lib/parsers/parse-glb.js.map +1 -0
- package/dist/gltf/lib/parsers/parse-gltf.cjs +365 -0
- package/dist/gltf/lib/parsers/parse-gltf.cjs.map +7 -0
- package/dist/gltf/lib/parsers/parse-gltf.d.ts +43 -0
- package/dist/gltf/lib/parsers/parse-gltf.d.ts.map +1 -0
- package/dist/gltf/lib/parsers/parse-gltf.js +372 -0
- package/dist/gltf/lib/parsers/parse-gltf.js.map +1 -0
- package/dist/gltf/lib/types/glb-types.cjs +19 -0
- package/dist/gltf/lib/types/glb-types.cjs.map +7 -0
- package/dist/gltf/lib/types/glb-types.d.ts +35 -0
- package/dist/gltf/lib/types/glb-types.d.ts.map +1 -0
- package/dist/gltf/lib/types/glb-types.js +5 -0
- package/dist/gltf/lib/types/glb-types.js.map +1 -0
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.cjs +123 -0
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.d.ts +110 -0
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.js +87 -0
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.js.map +1 -0
- package/dist/gltf/lib/types/gltf-audio-extension-schemas.cjs +189 -0
- package/dist/gltf/lib/types/gltf-audio-extension-schemas.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-audio-extension-schemas.d.ts +192 -0
- package/dist/gltf/lib/types/gltf-audio-extension-schemas.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-audio-extension-schemas.js +154 -0
- package/dist/gltf/lib/types/gltf-audio-extension-schemas.js.map +1 -0
- package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.cjs +19 -0
- package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.d.ts +421 -0
- package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.js +5 -0
- package/dist/gltf/lib/types/gltf-ext-feature-metadata-schema.js.map +1 -0
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.cjs +19 -0
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.d.ts +39 -0
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.js +5 -0
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.js.map +1 -0
- package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.cjs +19 -0
- package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.d.ts +49 -0
- package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.js +5 -0
- package/dist/gltf/lib/types/gltf-ext-mesh-features-schema.js.map +1 -0
- package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.cjs +19 -0
- package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.d.ts +334 -0
- package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.js +5 -0
- package/dist/gltf/lib/types/gltf-ext-structural-metadata-schema.js.map +1 -0
- package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.cjs +19 -0
- package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.d.ts +42 -0
- package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.js +5 -0
- package/dist/gltf/lib/types/gltf-ext-vector-voxel-schema.js.map +1 -0
- package/dist/gltf/lib/types/gltf-extension-schemas.cjs +83 -0
- package/dist/gltf/lib/types/gltf-extension-schemas.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-extension-schemas.d.ts +229 -0
- package/dist/gltf/lib/types/gltf-extension-schemas.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-extension-schemas.js +53 -0
- package/dist/gltf/lib/types/gltf-extension-schemas.js.map +1 -0
- package/dist/gltf/lib/types/gltf-interactivity.cjs +34 -0
- package/dist/gltf/lib/types/gltf-interactivity.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-interactivity.d.ts +131 -0
- package/dist/gltf/lib/types/gltf-interactivity.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-interactivity.js +13 -0
- package/dist/gltf/lib/types/gltf-interactivity.js.map +1 -0
- package/dist/gltf/lib/types/gltf-json-schema.cjs +19 -0
- package/dist/gltf/lib/types/gltf-json-schema.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-json-schema.d.ts +841 -0
- package/dist/gltf/lib/types/gltf-json-schema.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-json-schema.js +3 -0
- package/dist/gltf/lib/types/gltf-json-schema.js.map +1 -0
- package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.cjs +19 -0
- package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.d.ts +46 -0
- package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.js +5 -0
- package/dist/gltf/lib/types/gltf-khr-audio-emitter-schema.js.map +1 -0
- package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.cjs +19 -0
- package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.d.ts +20 -0
- package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.js +5 -0
- package/dist/gltf/lib/types/gltf-mpeg-audio-spatial-schema.js.map +1 -0
- package/dist/gltf/lib/types/gltf-official-json-schemas.cjs +17840 -0
- package/dist/gltf/lib/types/gltf-official-json-schemas.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-official-json-schemas.d.ts +14 -0
- package/dist/gltf/lib/types/gltf-official-json-schemas.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-official-json-schemas.js +17751 -0
- package/dist/gltf/lib/types/gltf-official-json-schemas.js.map +1 -0
- package/dist/gltf/lib/types/gltf-shape-schema.cjs +19 -0
- package/dist/gltf/lib/types/gltf-shape-schema.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-shape-schema.d.ts +49 -0
- package/dist/gltf/lib/types/gltf-shape-schema.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-shape-schema.js +5 -0
- package/dist/gltf/lib/types/gltf-shape-schema.js.map +1 -0
- package/dist/gltf/lib/types/gltf-types.cjs +19 -0
- package/dist/gltf/lib/types/gltf-types.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-types.d.ts +53 -0
- package/dist/gltf/lib/types/gltf-types.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-types.js +5 -0
- package/dist/gltf/lib/types/gltf-types.js.map +1 -0
- package/dist/gltf/lib/types/gltf-vector-topology.cjs +19 -0
- package/dist/gltf/lib/types/gltf-vector-topology.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-vector-topology.d.ts +56 -0
- package/dist/gltf/lib/types/gltf-vector-topology.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-vector-topology.js +5 -0
- package/dist/gltf/lib/types/gltf-vector-topology.js.map +1 -0
- package/dist/gltf/lib/types/gltf-version-zod-schemas.cjs +423 -0
- package/dist/gltf/lib/types/gltf-version-zod-schemas.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-version-zod-schemas.d.ts +1129 -0
- package/dist/gltf/lib/types/gltf-version-zod-schemas.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-version-zod-schemas.js +333 -0
- package/dist/gltf/lib/types/gltf-version-zod-schemas.js.map +1 -0
- package/dist/gltf/lib/types/gltf-zod-schema.cjs +462 -0
- package/dist/gltf/lib/types/gltf-zod-schema.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-zod-schema.d.ts +1595 -0
- package/dist/gltf/lib/types/gltf-zod-schema.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-zod-schema.js +497 -0
- package/dist/gltf/lib/types/gltf-zod-schema.js.map +1 -0
- package/dist/gltf/lib/utils/assert.cjs +35 -0
- package/dist/gltf/lib/utils/assert.cjs.map +7 -0
- package/dist/gltf/lib/utils/assert.d.ts +2 -0
- package/dist/gltf/lib/utils/assert.d.ts.map +1 -0
- package/dist/gltf/lib/utils/assert.js +12 -0
- package/dist/gltf/lib/utils/assert.js.map +1 -0
- package/dist/gltf/lib/utils/version.cjs +31 -0
- package/dist/gltf/lib/utils/version.cjs.map +7 -0
- package/dist/gltf/lib/utils/version.d.ts +2 -0
- package/dist/gltf/lib/utils/version.d.ts.map +1 -0
- package/dist/gltf/lib/utils/version.js +8 -0
- package/dist/gltf/lib/utils/version.js.map +1 -0
- package/dist/gltf/libs/README.md +12 -0
- package/dist/gltf/libs/meshopt-decoder.d.mts +15 -0
- package/dist/gltf/libs/meshopt-decoder.mjs +196 -0
- package/dist/gltf/libs/meshoptimizer-LICENSE.md +21 -0
- package/dist/gltf/mesh-arrow.cjs +31 -0
- package/dist/gltf/mesh-arrow.cjs.map +7 -0
- package/dist/gltf/mesh-arrow.d.ts +2 -0
- package/dist/gltf/mesh-arrow.d.ts.map +1 -0
- package/dist/gltf/mesh-arrow.js +5 -0
- package/dist/gltf/mesh-arrow.js.map +1 -0
- package/dist/gltf/meshopt/meshopt-decoder.cjs +93 -0
- package/dist/gltf/meshopt/meshopt-decoder.cjs.map +7 -0
- package/dist/gltf/meshopt/meshopt-decoder.d.ts +78 -0
- package/dist/gltf/meshopt/meshopt-decoder.d.ts.map +1 -0
- package/dist/gltf/meshopt/meshopt-decoder.js +111 -0
- package/dist/gltf/meshopt/meshopt-decoder.js.map +1 -0
- package/dist/gltf/meshopt/meshopt-module-loader.cjs +43 -0
- package/dist/gltf/meshopt/meshopt-module-loader.cjs.map +7 -0
- package/dist/gltf/meshopt/meshopt-module-loader.d.ts +3 -0
- package/dist/gltf/meshopt/meshopt-module-loader.d.ts.map +1 -0
- package/dist/gltf/meshopt/meshopt-module-loader.js +8 -0
- package/dist/gltf/meshopt/meshopt-module-loader.js.map +1 -0
- package/dist/gltf/schema.cjs +60 -0
- package/dist/gltf/schema.cjs.map +7 -0
- package/dist/gltf/schema.d.ts +6 -0
- package/dist/gltf/schema.d.ts.map +1 -0
- package/dist/gltf/schema.js +10 -0
- package/dist/gltf/schema.js.map +1 -0
- package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_binary_glTF/image.KHR_binary_glTF.schema.json +34 -0
- package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_binary_glTF/shader.KHR_binary_glTF.schema.json +16 -0
- package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/glTF.KHR_materials_common.schema.json +272 -0
- package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.ambient.schema.json +57 -0
- package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.directional.schema.json +57 -0
- package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.point.schema.json +72 -0
- package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.schema.json +258 -0
- package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/light.spot.schema.json +82 -0
- package/dist/gltf/schemas/extensions/1.0/Khronos/KHR_materials_common/node.KHR_materials_common.schema.json +23 -0
- package/dist/gltf/schemas/extensions/1.0/Vendor/CESIUM_RTC/CESIUM_RTC.schema.json +21 -0
- package/dist/gltf/schemas/extensions/1.0/Vendor/WEB3D_quantized_attributes/WEB3D_quantized_attributes.accessor.schema.json +40 -0
- package/dist/gltf/schemas/extensions/2.0/Archived/KHR_materials_pbrSpecularGlossiness/glTF.KHR_materials_pbrSpecularGlossiness.schema.json +141 -0
- package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/glTF.KHR_techniques_webgl.schema.json +417 -0
- package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/material.KHR_techniques_webgl.schema.json +133 -0
- package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/program.schema.json +97 -0
- package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/shader.schema.json +109 -0
- package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/technique.attribute.schema.json +51 -0
- package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/technique.schema.json +267 -0
- package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/technique.uniform.schema.json +185 -0
- package/dist/gltf/schemas/extensions/2.0/Archived/KHR_techniques_webgl/uniform.value.schema.json +98 -0
- package/dist/gltf/schemas/extensions/2.0/Archived/KHR_xmp/glTF.KHR_xmp.schema.json +61 -0
- package/dist/gltf/schemas/extensions/2.0/Archived/KHR_xmp/node.KHR_xmp.schema.json +59 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_animation_pointer/animation.channel.target.KHR_animation_pointer.schema.json +51 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_draco_mesh_compression/mesh.primitive.KHR_draco_mesh_compression.schema.json +67 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_gaussian_splatting/mesh.primitive.KHR_gaussian_splatting.schema.json +100 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/declaration.KHR_interactivity.schema.json +106 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/event.KHR_interactivity.schema.json +90 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/glTF.KHR_interactivity.schema.json +546 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/graph.KHR_interactivity.schema.json +512 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/node.KHR_interactivity.schema.json +183 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/type.KHR_interactivity.schema.json +96 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_interactivity/variable.KHR_interactivity.schema.json +64 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_lights_punctual/glTF.KHR_lights_punctual.schema.json +175 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_lights_punctual/light.schema.json +151 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_lights_punctual/light.spot.schema.json +58 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_lights_punctual/node.KHR_lights_punctual.schema.json +58 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_anisotropy/material.KHR_materials_anisotropy.schema.json +103 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_clearcoat/material.KHR_materials_clearcoat.schema.json +144 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/material.KHR_materials_diffuse_transmission.schema.json +123 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_dispersion/material.KHR_materials_dispersion.schema.json +50 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_emissive_strength/material.KHR_materials_emissive_strength.schema.json +49 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_ior/material.KHR_materials_ior.schema.json +58 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_iridescence/material.KHR_materials_iridescence.schema.json +125 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_sheen/material.KHR_materials_sheen.schema.json +122 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_specular/material.KHR_materials_specular.schema.json +122 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_transmission/material.KHR_materials_transmission.schema.json +97 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_unlit/material.KHR_materials_unlit.schema.json +43 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_variants/glTF.KHR_materials_variants.schema.json +88 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_variants/mesh.primitive.KHR_materials_variants.schema.json +100 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_materials_volume/material.KHR_materials_volume.schema.json +119 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_meshopt_compression/buffer.KHR_meshopt_compression.schema.json +48 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_meshopt_compression/bufferView.KHR_meshopt_compression.schema.json +106 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_node_hoverability/node.KHR_node_hoverability.schema.json +49 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_node_selectability/node.KHR_node_selectability.schema.json +49 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_node_visibility/node.KHR_node_visibility.schema.json +49 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_texture_basisu/texture.KHR_texture_basisu.schema.json +56 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_texture_transform/textureInfo.KHR_texture_transform.schema.json +79 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_xmp_json_ld/KHR_xmp_json_ld.schema.json +59 -0
- package/dist/gltf/schemas/extensions/2.0/Khronos/KHR_xmp_json_ld/glTF.KHR_xmp_json_ld.schema.json +70 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/ADOBE_materials_clearcoat_specular/glTF.ADOBE_materials_clearcoat_specular.schema.json +105 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/ADOBE_materials_clearcoat_tint/material.ADOBE_materials_clearcoat_tint.schema.json +106 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/ADOBE_materials_thin_transparency/glTF.ADOBE_materials_thin_transparency.schema.json +105 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_articulations/articulation.schema.json +177 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_articulations/articulation.stage.schema.json +136 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_articulations/gltf.AGI_articulations.schema.json +200 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_articulations/node.AGI_articulations.schema.json +53 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_stk_metadata/gltf.AGI_stk_metadata.schema.json +81 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_stk_metadata/node.AGI_stk_metadata.schema.json +53 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/AGI_stk_metadata/solarPanelGroup.schema.json +59 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/CESIUM_primitive_outline/primitive.CESIUM_primitive_outline.schema.json +56 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_ies/glTF.EXT_lights_ies.schema.json +132 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_ies/lightProfile.schema.json +107 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_ies/node.EXT_lights_ies.schema.json +80 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_image_based/glTF.EXT_lights_image_based.schema.json +145 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_image_based/light.schema.json +121 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_lights_image_based/scene.EXT_lights_image_based.schema.json +58 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_gpu_instancing/glTF.EXT_mesh_gpu_instancing.schema.json +56 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_manifold/mesh.EXT_mesh_manifold.schema.json +175 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/lineString.schema.json +70 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_primitive_edge_visibility/primitive.EXT_mesh_primitive_edge_visibility.schema.json +119 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_primitive_restart/EXT_mesh_primitive_restart.schema.json +97 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_mesh_primitive_restart/primitiveGroup.schema.json +72 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_meshopt_compression/buffer.EXT_meshopt_compression.schema.json +48 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_meshopt_compression/bufferView.EXT_meshopt_compression.schema.json +105 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_texture_astc/texture.EXT_texture_astc.schema.json +56 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/EXT_texture_webp/glTF.EXT_texture_webp.schema.json +56 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/FB_geometry_metadata/scene.FB_geometry_metadata.schema.json +97 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/FB_geometry_metadata/sceneBounds.schema.json +64 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/GRIFFEL_bim_data/GRIFFEL_bim_data.schema.json +164 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/GRIFFEL_bim_data/glTF.GRIFFEL_bim_data.schema.json +107 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/GRIFFEL_bim_data/node.GRIFFEL_bim_data.schema.json +95 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_accessor_timed/MPEG_accessor_timed.schema.json +85 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_animation_timing/MPEG_animation_timing.schema.json +60 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.listener.schema.json +51 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.reverb.property.schema.json +63 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.reverb.schema.json +107 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.schema.json +276 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_audio_spatial/MPEG_audio_spatial.source.schema.json +139 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_buffer_circular/MPEG_buffer_circular.schema.json +80 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_media/MPEG_media.media.alternative.schema.json +110 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_media/MPEG_media.media.alternative.track.schema.json +56 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_media/MPEG_media.media.schema.json +195 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_media/MPEG_media.schema.json +237 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_mesh_linking/MPEG_mesh_linking.schema.json +89 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_scene_dynamic/MPEG_scene_dynamic.schema.json +69 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_texture_video/MPEG_texture_video.schema.json +109 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_viewport_recommended/MPEG_viewport_recommended.schema.json +119 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MPEG_viewport_recommended/MPEG_viewport_recommended.viewport.schema.json +96 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MSFT_lod/glTF.MSFT_lod.schema.json +51 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MSFT_packing_normalRoughnessMetallic/glTF.MSFT_packing_normalRoughnessMetallic.schema.json +62 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MSFT_packing_occlusionRoughnessMetallic/glTF.MSFT_packing_occlusionRoughnessMetallic.schema.json +90 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/MSFT_texture_dds/glTF.MSFT_texture_dds.schema.json +56 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/bsdfMeasurement.schema.json +109 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/functionCall.argument.schema.json +228 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/functionCall.schema.json +292 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/functionCall.type.schema.json +86 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/glTF.NV_materials_mdl.schema.json +451 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/material.NV_materials_mdl.schema.json +60 -0
- package/dist/gltf/schemas/extensions/2.0/Vendor/NV_materials_mdl/module.schema.json +114 -0
- package/dist/gltf/unbundled.cjs +34 -0
- package/dist/gltf/unbundled.cjs.map +7 -0
- package/dist/gltf/unbundled.d.ts +5 -0
- package/dist/gltf/unbundled.d.ts.map +1 -0
- package/dist/gltf/unbundled.js +6 -0
- package/dist/gltf/unbundled.js.map +1 -0
- package/dist/gltf/webp/webp.cjs +53 -0
- package/dist/gltf/webp/webp.cjs.map +7 -0
- package/dist/gltf/webp/webp.d.ts +7 -0
- package/dist/gltf/webp/webp.d.ts.map +1 -0
- package/dist/gltf/webp/webp.js +38 -0
- package/dist/gltf/webp/webp.js.map +1 -0
- package/dist/index.cjs +43 -809
- package/dist/index.cjs.map +4 -3
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/obj/bundled.cjs +44 -0
- package/dist/obj/bundled.cjs.map +7 -0
- package/dist/obj/bundled.d.ts +7 -0
- package/dist/obj/bundled.d.ts.map +1 -0
- package/dist/obj/bundled.js +8 -0
- package/dist/obj/bundled.js.map +1 -0
- package/dist/obj/index.cjs +49 -0
- package/dist/obj/index.cjs.map +7 -0
- package/dist/obj/index.d.ts +13 -0
- package/dist/obj/index.d.ts.map +1 -0
- package/dist/obj/index.js +16 -0
- package/dist/obj/index.js.map +1 -0
- package/dist/obj/lib/get-obj-schema.cjs +60 -0
- package/dist/obj/lib/get-obj-schema.cjs.map +7 -0
- package/dist/obj/lib/get-obj-schema.d.ts +4 -0
- package/dist/obj/lib/get-obj-schema.d.ts.map +1 -0
- package/dist/obj/lib/get-obj-schema.js +36 -0
- package/dist/obj/lib/get-obj-schema.js.map +1 -0
- package/dist/obj/lib/obj-types.cjs +2 -0
- package/dist/obj/lib/obj-types.cjs.map +7 -0
- package/dist/obj/lib/obj-types.d.ts +1 -0
- package/dist/obj/lib/obj-types.d.ts.map +1 -0
- package/dist/obj/lib/obj-types.js +5 -0
- package/dist/obj/lib/obj-types.js.map +1 -0
- package/dist/obj/lib/parse-mtl.cjs +97 -0
- package/dist/obj/lib/parse-mtl.cjs.map +7 -0
- package/dist/obj/lib/parse-mtl.d.ts +34 -0
- package/dist/obj/lib/parse-mtl.d.ts.map +1 -0
- package/dist/obj/lib/parse-mtl.js +200 -0
- package/dist/obj/lib/parse-mtl.js.map +1 -0
- package/dist/obj/lib/parse-obj-meshes.cjs +389 -0
- package/dist/obj/lib/parse-obj-meshes.cjs.map +7 -0
- package/dist/obj/lib/parse-obj-meshes.d.ts +5 -0
- package/dist/obj/lib/parse-obj-meshes.d.ts.map +1 -0
- package/dist/obj/lib/parse-obj-meshes.js +441 -0
- package/dist/obj/lib/parse-obj-meshes.js.map +1 -0
- package/dist/obj/lib/parse-obj.cjs +96 -0
- package/dist/obj/lib/parse-obj.cjs.map +7 -0
- package/dist/obj/lib/parse-obj.d.ts +3 -0
- package/dist/obj/lib/parse-obj.d.ts.map +1 -0
- package/dist/obj/lib/parse-obj.js +72 -0
- package/dist/obj/lib/parse-obj.js.map +1 -0
- package/dist/obj/mtl-format.cjs +39 -0
- package/dist/obj/mtl-format.cjs.map +7 -0
- package/dist/obj/mtl-format.d.ts +14 -0
- package/dist/obj/mtl-format.d.ts.map +1 -0
- package/dist/obj/mtl-format.js +17 -0
- package/dist/obj/mtl-format.js.map +1 -0
- package/dist/obj/mtl-loader-types.cjs +62 -0
- package/dist/obj/mtl-loader-types.cjs.map +7 -0
- package/dist/obj/mtl-loader-types.d.ts +73 -0
- package/dist/obj/mtl-loader-types.d.ts.map +1 -0
- package/dist/obj/mtl-loader-types.js +34 -0
- package/dist/obj/mtl-loader-types.js.map +1 -0
- package/dist/obj/mtl-loader.cjs +45 -0
- package/dist/obj/mtl-loader.cjs.map +7 -0
- package/dist/obj/mtl-loader.d.ts +51 -0
- package/dist/obj/mtl-loader.d.ts.map +1 -0
- package/dist/obj/mtl-loader.js +25 -0
- package/dist/obj/mtl-loader.js.map +1 -0
- package/dist/obj/obj-format.cjs +39 -0
- package/dist/obj/obj-format.cjs.map +7 -0
- package/dist/obj/obj-format.d.ts +13 -0
- package/dist/obj/obj-format.d.ts.map +1 -0
- package/dist/obj/obj-format.js +16 -0
- package/dist/obj/obj-format.js.map +1 -0
- package/dist/obj/obj-loader-types.cjs +69 -0
- package/dist/obj/obj-loader-types.cjs.map +7 -0
- package/dist/obj/obj-loader-types.d.ts +112 -0
- package/dist/obj/obj-loader-types.d.ts.map +1 -0
- package/dist/obj/obj-loader-types.js +41 -0
- package/dist/obj/obj-loader-types.js.map +1 -0
- package/dist/obj/obj-loader.cjs +161 -0
- package/dist/obj/obj-loader.cjs.map +7 -0
- package/dist/obj/obj-loader.d.ts +40 -0
- package/dist/obj/obj-loader.d.ts.map +1 -0
- package/dist/obj/obj-loader.js +142 -0
- package/dist/obj/obj-loader.js.map +1 -0
- package/dist/obj/obj-writer.cjs +165 -0
- package/dist/obj/obj-writer.cjs.map +7 -0
- package/dist/obj/obj-writer.d.ts +35 -0
- package/dist/obj/obj-writer.d.ts.map +1 -0
- package/dist/obj/obj-writer.js +123 -0
- package/dist/obj/obj-writer.js.map +1 -0
- package/dist/obj/unbundled.cjs +44 -0
- package/dist/obj/unbundled.cjs.map +7 -0
- package/dist/obj/unbundled.d.ts +7 -0
- package/dist/obj/unbundled.d.ts.map +1 -0
- package/dist/obj/unbundled.js +8 -0
- package/dist/obj/unbundled.js.map +1 -0
- package/dist/obj/workers/obj-worker.cjs +23 -0
- package/dist/obj/workers/obj-worker.cjs.map +7 -0
- package/dist/obj/workers/obj-worker.d.ts +2 -0
- package/dist/obj/workers/obj-worker.d.ts.map +1 -0
- package/dist/obj/workers/obj-worker.js +23 -0
- package/dist/obj/workers/obj-worker.js.map +1 -0
- package/dist/obj-worker.js +17609 -0
- package/dist/usd/index.cjs +31 -0
- package/dist/usd/index.cjs.map +7 -0
- package/dist/usd/index.d.ts +3 -0
- package/dist/usd/index.d.ts.map +1 -0
- package/dist/usd/index.js +5 -0
- package/dist/usd/index.js.map +1 -0
- package/dist/usd/lib/parse-usd.cjs +294 -0
- package/dist/usd/lib/parse-usd.cjs.map +7 -0
- package/dist/{lib → usd/lib}/parse-usd.d.ts +1 -1
- package/dist/usd/lib/parse-usd.d.ts.map +1 -0
- package/dist/usd/lib/parse-usd.js.map +1 -0
- package/dist/usd/lib/parse-usda.cjs +406 -0
- package/dist/usd/lib/parse-usda.cjs.map +7 -0
- package/dist/usd/lib/parse-usda.d.ts.map +1 -0
- package/dist/usd/lib/parse-usda.js.map +1 -0
- package/dist/usd/lib/parse-usdz.cjs +76 -0
- package/dist/usd/lib/parse-usdz.cjs.map +7 -0
- package/dist/usd/lib/parse-usdz.d.ts.map +1 -0
- package/dist/usd/lib/parse-usdz.js.map +1 -0
- package/dist/usd/lib/usd-types.cjs +19 -0
- package/dist/usd/lib/usd-types.cjs.map +7 -0
- package/dist/{lib → usd/lib}/usd-types.d.ts +1 -1
- package/dist/usd/lib/usd-types.d.ts.map +1 -0
- package/dist/usd/lib/usd-types.js.map +1 -0
- package/dist/usd/usd-loader-types.cjs +67 -0
- package/dist/usd/usd-loader-types.cjs.map +7 -0
- package/dist/usd/usd-loader-types.d.ts.map +1 -0
- package/dist/{usd-loader-types.js → usd/usd-loader-types.js} +2 -2
- package/dist/usd/usd-loader-types.js.map +1 -0
- package/dist/usd/usd-loader.cjs +41 -0
- package/dist/usd/usd-loader.cjs.map +7 -0
- package/dist/usd/usd-loader.d.ts.map +1 -0
- package/dist/usd/usd-loader.js.map +1 -0
- package/package.json +181 -10
- package/src/gltf/bundled.ts +8 -0
- package/src/gltf/glb-loader-types.ts +40 -0
- package/src/gltf/glb-loader.ts +42 -0
- package/src/gltf/glb-writer.ts +46 -0
- package/src/gltf/gltf-format.ts +32 -0
- package/src/gltf/gltf-loader-types.ts +52 -0
- package/src/gltf/gltf-loader.ts +49 -0
- package/src/gltf/gltf-source.ts +244 -0
- package/src/gltf/gltf-writer.ts +62 -0
- package/src/gltf/index.ts +270 -0
- package/src/gltf/lib/api/append-gltf-v1-buffer-data.ts +61 -0
- package/src/gltf/lib/api/bake-gltf-v1-bind-shapes.ts +178 -0
- package/src/gltf/lib/api/clean-gltf-v1-fields.ts +94 -0
- package/src/gltf/lib/api/convert-gltf-v1-accessors.ts +170 -0
- package/src/gltf/lib/api/convert-gltf-v1-animations.ts +79 -0
- package/src/gltf/lib/api/convert-gltf-v1-materials.ts +351 -0
- package/src/gltf/lib/api/convert-gltf-v1-matrix-nodes.ts +116 -0
- package/src/gltf/lib/api/convert-gltf-v1-skin-scenes.ts +88 -0
- package/src/gltf/lib/api/convert-gltf-v1-skins.ts +217 -0
- package/src/gltf/lib/api/gltf-accessors.ts +87 -0
- package/src/gltf/lib/api/gltf-culling.ts +80 -0
- package/src/gltf/lib/api/gltf-extension-data.ts +125 -0
- package/src/gltf/lib/api/gltf-extensions.ts +133 -0
- package/src/gltf/lib/api/gltf-iterator.ts +1469 -0
- package/src/gltf/lib/api/gltf-mesh-arrow.ts +410 -0
- package/src/gltf/lib/api/gltf-scenegraph.ts +741 -0
- package/src/gltf/lib/api/normalize-gltf-v1.ts +603 -0
- package/src/gltf/lib/api/repack-gltf-v1-accessors.ts +566 -0
- package/src/gltf/lib/api/validate-gltf-v1-buffers.ts +139 -0
- package/src/gltf/lib/api/validate-gltf-v1-cameras.ts +40 -0
- package/src/gltf/lib/api/validate-gltf-v1-geometry.ts +156 -0
- package/src/gltf/lib/api/validate-gltf-v1-payloads.ts +315 -0
- package/src/gltf/lib/encoders/encode-glb.ts +198 -0
- package/src/gltf/lib/encoders/encode-gltf-draco.ts +239 -0
- package/src/gltf/lib/encoders/encode-gltf.ts +45 -0
- package/src/gltf/lib/extensions/EXT_mesh_features.ts +240 -0
- package/src/gltf/lib/extensions/EXT_mesh_polygon.ts +172 -0
- package/src/gltf/lib/extensions/EXT_meshopt_compression.ts +33 -0
- package/src/gltf/lib/extensions/EXT_primitive_voxels.ts +85 -0
- package/src/gltf/lib/extensions/EXT_structural_metadata.ts +1130 -0
- package/src/gltf/lib/extensions/EXT_texture_avif.ts +56 -0
- package/src/gltf/lib/extensions/EXT_texture_webp.ts +46 -0
- package/src/gltf/lib/extensions/KHR_audio_emitter.ts +136 -0
- package/src/gltf/lib/extensions/KHR_binary_gltf.ts +56 -0
- package/src/gltf/lib/extensions/KHR_draco_mesh_compression.ts +169 -0
- package/src/gltf/lib/extensions/KHR_gaussian_splatting.ts +239 -0
- package/src/gltf/lib/extensions/KHR_mesh_primitive_restart.ts +108 -0
- package/src/gltf/lib/extensions/KHR_meshopt_compression.ts +32 -0
- package/src/gltf/lib/extensions/KHR_texture_basisu.ts +39 -0
- package/src/gltf/lib/extensions/KHR_texture_transform.ts +385 -0
- package/src/gltf/lib/extensions/MPEG_audio_spatial.ts +59 -0
- package/src/gltf/lib/extensions/deprecated/EXT_feature_metadata.ts +479 -0
- package/src/gltf/lib/extensions/deprecated/KHR_lights_punctual.ts +67 -0
- package/src/gltf/lib/extensions/deprecated/KHR_materials_unlit.ts +52 -0
- package/src/gltf/lib/extensions/deprecated/KHR_techniques_webgl.ts +105 -0
- package/src/gltf/lib/extensions/meshopt-compression.ts +189 -0
- package/src/gltf/lib/extensions/utils/3d-tiles-utils.ts +473 -0
- package/src/gltf/lib/gltf-utils/get-typed-array.ts +215 -0
- package/src/gltf/lib/gltf-utils/gltf-attribute-utils.ts +85 -0
- package/src/gltf/lib/gltf-utils/gltf-constants.ts +53 -0
- package/src/gltf/lib/gltf-utils/gltf-utils.ts +162 -0
- package/src/gltf/lib/gltf-utils/resolve-gltf-file.ts +95 -0
- package/src/gltf/lib/gltf-utils/resolve-url.ts +48 -0
- package/src/gltf/lib/parsers/parse-glb.ts +299 -0
- package/src/gltf/lib/parsers/parse-gltf.ts +570 -0
- package/src/gltf/lib/types/glb-types.ts +44 -0
- package/src/gltf/lib/types/gltf-additional-extension-schemas.ts +127 -0
- package/src/gltf/lib/types/gltf-audio-extension-schemas.ts +167 -0
- package/src/gltf/lib/types/gltf-ext-feature-metadata-schema.ts +474 -0
- package/src/gltf/lib/types/gltf-ext-gaussian-splatting-schema.ts +46 -0
- package/src/gltf/lib/types/gltf-ext-mesh-features-schema.ts +56 -0
- package/src/gltf/lib/types/gltf-ext-structural-metadata-schema.ts +387 -0
- package/src/gltf/lib/types/gltf-ext-vector-voxel-schema.ts +49 -0
- package/src/gltf/lib/types/gltf-extension-schemas.ts +87 -0
- package/src/gltf/lib/types/gltf-interactivity.ts +168 -0
- package/src/gltf/lib/types/gltf-json-schema.ts +947 -0
- package/src/gltf/lib/types/gltf-khr-audio-emitter-schema.ts +60 -0
- package/src/gltf/lib/types/gltf-mpeg-audio-spatial-schema.ts +31 -0
- package/src/gltf/lib/types/gltf-official-json-schemas.ts +18619 -0
- package/src/gltf/lib/types/gltf-shape-schema.ts +47 -0
- package/src/gltf/lib/types/gltf-types.ts +90 -0
- package/src/gltf/lib/types/gltf-vector-topology.ts +65 -0
- package/src/gltf/lib/types/gltf-version-zod-schemas.ts +511 -0
- package/src/gltf/lib/types/gltf-zod-schema.ts +545 -0
- package/src/gltf/lib/utils/assert.ts +12 -0
- package/src/gltf/lib/utils/version.ts +8 -0
- package/src/gltf/libs/README.md +12 -0
- package/src/gltf/libs/meshopt-decoder.d.mts +15 -0
- package/src/gltf/libs/meshopt-decoder.mjs +196 -0
- package/src/gltf/libs/meshoptimizer-LICENSE.md +21 -0
- package/src/gltf/mesh-arrow.ts +11 -0
- package/src/gltf/meshopt/meshopt-decoder.ts +185 -0
- package/src/gltf/meshopt/meshopt-encoder.ts.disabled +409 -0
- package/src/gltf/meshopt/meshopt-module-loader.ts +8 -0
- package/src/gltf/schema.ts +24 -0
- package/src/gltf/unbundled.ts +8 -0
- package/src/gltf/webp/webp.ts +45 -0
- package/src/index.ts +13 -11
- package/src/obj/bundled.ts +16 -0
- package/src/obj/index.ts +23 -0
- package/src/obj/lib/get-obj-schema.ts +45 -0
- package/src/obj/lib/obj-types.ts +3 -0
- package/src/obj/lib/parse-mtl.ts +248 -0
- package/src/obj/lib/parse-obj-meshes.ts +530 -0
- package/src/obj/lib/parse-obj.ts +88 -0
- package/src/obj/mtl-format.ts +19 -0
- package/src/obj/mtl-loader-types.ts +46 -0
- package/src/obj/mtl-loader.ts +37 -0
- package/src/obj/obj-format.ts +18 -0
- package/src/obj/obj-loader-types.ts +75 -0
- package/src/obj/obj-loader.ts +203 -0
- package/src/obj/obj-writer.ts +190 -0
- package/src/obj/unbundled.ts +10 -0
- package/src/obj/workers/obj-worker.ts +24 -0
- package/src/usd/index.ts +15 -0
- package/src/{lib → usd/lib}/parse-usd.ts +1 -1
- package/src/{lib → usd/lib}/usd-types.ts +1 -1
- package/src/{usd-loader-types.ts → usd/usd-loader-types.ts} +2 -2
- package/src/{usd-loader.ts → usd/usd-loader.ts} +1 -1
- package/third-party-licenses/gltf-loader-ts-LICENSE +21 -0
- package/third-party-licenses/three-LICENSE +21 -0
- package/dist/lib/parse-usd.d.ts.map +0 -1
- package/dist/lib/parse-usd.js.map +0 -1
- package/dist/lib/parse-usda.d.ts.map +0 -1
- package/dist/lib/parse-usda.js.map +0 -1
- package/dist/lib/parse-usdz.d.ts.map +0 -1
- package/dist/lib/parse-usdz.js.map +0 -1
- package/dist/lib/usd-types.d.ts.map +0 -1
- package/dist/lib/usd-types.js.map +0 -1
- package/dist/usd-loader-types.d.ts.map +0 -1
- package/dist/usd-loader-types.js.map +0 -1
- package/dist/usd-loader.d.ts.map +0 -1
- package/dist/usd-loader.js.map +0 -1
- /package/dist/{lib → usd/lib}/parse-usd.js +0 -0
- /package/dist/{lib → usd/lib}/parse-usda.d.ts +0 -0
- /package/dist/{lib → usd/lib}/parse-usda.js +0 -0
- /package/dist/{lib → usd/lib}/parse-usdz.d.ts +0 -0
- /package/dist/{lib → usd/lib}/parse-usdz.js +0 -0
- /package/dist/{lib → usd/lib}/usd-types.js +0 -0
- /package/dist/{usd-loader-types.d.ts → usd/usd-loader-types.d.ts} +0 -0
- /package/dist/{usd-loader.d.ts → usd/usd-loader.d.ts} +0 -0
- /package/dist/{usd-loader.js → usd/usd-loader.js} +0 -0
- /package/src/{lib → usd/lib}/parse-usda.ts +0 -0
- /package/src/{lib → usd/lib}/parse-usdz.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-url.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/gltf-utils/resolve-url.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAE,mBAAmB,EAAC,MAAM,+BAA+B,CAAC;AAItF,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,aAAa,UAY7F;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMnD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
// Resolves a relative url against a baseUrl
|
|
5
|
+
// If url is absolute, return it unchanged
|
|
6
|
+
export function resolveUrl(url, options, context) {
|
|
7
|
+
// TODO: Use better logic to handle all protocols plus not delay on data
|
|
8
|
+
const absolute = url.startsWith('data:') || url.startsWith('http:') || url.startsWith('https:');
|
|
9
|
+
if (absolute) {
|
|
10
|
+
return canonicalizeUrl(url);
|
|
11
|
+
}
|
|
12
|
+
const baseUrl = context?.baseUrl || getResolveBaseUrl(options?.core?.baseUrl);
|
|
13
|
+
if (!baseUrl) {
|
|
14
|
+
throw new Error(`'baseUrl' must be provided to resolve relative url ${url}`);
|
|
15
|
+
}
|
|
16
|
+
const resolvedUrl = baseUrl.endsWith('/') ? `${baseUrl}${url}` : `${baseUrl}/${url}`;
|
|
17
|
+
return canonicalizeUrl(resolvedUrl);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Normalize equivalent absolute URLs for cache and cycle-detection keys.
|
|
21
|
+
* Non-URL paths are returned unchanged so local and virtual file-system resolution remains intact.
|
|
22
|
+
* @param url - URL to normalize.
|
|
23
|
+
* @returns Canonical URL when the input has a supported absolute scheme.
|
|
24
|
+
*/
|
|
25
|
+
export function canonicalizeUrl(url) {
|
|
26
|
+
try {
|
|
27
|
+
return new URL(url).href;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return url;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function getResolveBaseUrl(baseUrl) {
|
|
34
|
+
if (!baseUrl) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
if (baseUrl.endsWith('/')) {
|
|
38
|
+
return baseUrl;
|
|
39
|
+
}
|
|
40
|
+
const slashIndex = baseUrl.lastIndexOf('/');
|
|
41
|
+
return slashIndex >= 0 ? baseUrl.slice(0, slashIndex + 1) : '';
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=resolve-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-url.js","sourceRoot":"","sources":["../../../../src/gltf/lib/gltf-utils/resolve-url.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,4CAA4C;AAC5C,0CAA0C;AAC1C,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,OAA6B,EAAE,OAAuB;IAC5F,wEAAwE;IACxE,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAChG,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sDAAsD,GAAG,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC;IACrF,OAAO,eAAe,CAAC,WAAW,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,185 @@
|
|
|
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/parsers/parse-glb.ts
|
|
21
|
+
var parse_glb_exports = {};
|
|
22
|
+
__export(parse_glb_exports, {
|
|
23
|
+
isGLB: () => isGLB,
|
|
24
|
+
parseGLBSync: () => parseGLBSync
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(parse_glb_exports);
|
|
27
|
+
var import_loader_utils = require("@loaders.gl/core/loader-utils");
|
|
28
|
+
var LITTLE_ENDIAN = true;
|
|
29
|
+
var MAGIC_glTF = 1735152710;
|
|
30
|
+
var GLB_V1_V2_FILE_HEADER_SIZE = 12;
|
|
31
|
+
var GLB_V3_FILE_HEADER_SIZE = 16;
|
|
32
|
+
var GLB_V1_V2_CHUNK_HEADER_SIZE = 8;
|
|
33
|
+
var GLB_V3_CHUNK_HEADER_SIZE = 16;
|
|
34
|
+
var GLB_CHUNK_TYPE_JSON = 1313821514;
|
|
35
|
+
var GLB_CHUNK_TYPE_BIN = 5130562;
|
|
36
|
+
var GLB_V1_CONTENT_FORMAT_JSON = 0;
|
|
37
|
+
var GLB_CHUNK_TYPE_JSON_XVIZ_DEPRECATED = 0;
|
|
38
|
+
var GLB_CHUNK_TYPE_BIX_XVIZ_DEPRECATED = 1;
|
|
39
|
+
function getMagicString(dataView, byteOffset = 0) {
|
|
40
|
+
return `${String.fromCharCode(dataView.getUint8(byteOffset + 0))}${String.fromCharCode(dataView.getUint8(byteOffset + 1))}${String.fromCharCode(dataView.getUint8(byteOffset + 2))}${String.fromCharCode(dataView.getUint8(byteOffset + 3))}`;
|
|
41
|
+
}
|
|
42
|
+
function isGLB(arrayBuffer, byteOffset = 0, options = {}) {
|
|
43
|
+
const dataView = new DataView(arrayBuffer);
|
|
44
|
+
const { magic = MAGIC_glTF } = options;
|
|
45
|
+
const magic1 = dataView.getUint32(byteOffset, false);
|
|
46
|
+
return magic1 === magic || magic1 === MAGIC_glTF;
|
|
47
|
+
}
|
|
48
|
+
function parseGLBSync(glb, arrayBuffer, byteOffset = 0, options = {}) {
|
|
49
|
+
const dataView = new DataView(arrayBuffer);
|
|
50
|
+
const type = getMagicString(dataView, byteOffset + 0);
|
|
51
|
+
const version = dataView.getUint32(byteOffset + 4, LITTLE_ENDIAN);
|
|
52
|
+
const byteLength = version === 3 ? getSafeUint64(dataView, byteOffset + 8, "GLB byte length") : dataView.getUint32(byteOffset + 8, LITTLE_ENDIAN);
|
|
53
|
+
Object.assign(glb, {
|
|
54
|
+
// Put less important stuff in a header, to avoid clutter
|
|
55
|
+
header: {
|
|
56
|
+
byteOffset,
|
|
57
|
+
// Byte offset into the initial arrayBuffer
|
|
58
|
+
byteLength,
|
|
59
|
+
hasBinChunk: false
|
|
60
|
+
},
|
|
61
|
+
type,
|
|
62
|
+
version,
|
|
63
|
+
json: {},
|
|
64
|
+
jsonChunkIndex: -1,
|
|
65
|
+
binChunks: []
|
|
66
|
+
});
|
|
67
|
+
switch (glb.version) {
|
|
68
|
+
case 1:
|
|
69
|
+
return parseGLBV1(glb, dataView, byteOffset + GLB_V1_V2_FILE_HEADER_SIZE);
|
|
70
|
+
case 2:
|
|
71
|
+
return parseGLBV2(glb, dataView, byteOffset + GLB_V1_V2_FILE_HEADER_SIZE, options);
|
|
72
|
+
case 3:
|
|
73
|
+
return parseGLBV3(glb, dataView, byteOffset + GLB_V3_FILE_HEADER_SIZE, options);
|
|
74
|
+
default:
|
|
75
|
+
throw new Error(`Invalid GLB version ${glb.version}. Only supports versions 1, 2 and 3.`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function parseGLBV1(glb, dataView, byteOffset) {
|
|
79
|
+
(0, import_loader_utils.assert)(glb.header.byteLength > GLB_V1_V2_FILE_HEADER_SIZE + GLB_V1_V2_CHUNK_HEADER_SIZE);
|
|
80
|
+
const fileEndByteOffset = glb.header.byteOffset + glb.header.byteLength;
|
|
81
|
+
(0, import_loader_utils.assert)(fileEndByteOffset <= dataView.byteLength);
|
|
82
|
+
const contentLength = dataView.getUint32(byteOffset + 0, LITTLE_ENDIAN);
|
|
83
|
+
const contentFormat = dataView.getUint32(byteOffset + 4, LITTLE_ENDIAN);
|
|
84
|
+
byteOffset += GLB_V1_V2_CHUNK_HEADER_SIZE;
|
|
85
|
+
(0, import_loader_utils.assert)(contentFormat === GLB_V1_CONTENT_FORMAT_JSON);
|
|
86
|
+
if (byteOffset + contentLength > fileEndByteOffset) {
|
|
87
|
+
throw new Error("GLB JSON content extends beyond the declared file length.");
|
|
88
|
+
}
|
|
89
|
+
parseJSONChunk(glb, dataView, byteOffset, contentLength, 0);
|
|
90
|
+
byteOffset += contentLength;
|
|
91
|
+
const bodyByteLength = fileEndByteOffset - byteOffset;
|
|
92
|
+
if (bodyByteLength > 0) {
|
|
93
|
+
parseBINChunk(glb, dataView, byteOffset, bodyByteLength, 1);
|
|
94
|
+
}
|
|
95
|
+
return fileEndByteOffset;
|
|
96
|
+
}
|
|
97
|
+
function parseGLBV2(glb, dataView, byteOffset, options) {
|
|
98
|
+
(0, import_loader_utils.assert)(glb.header.byteLength > GLB_V1_V2_FILE_HEADER_SIZE + GLB_V1_V2_CHUNK_HEADER_SIZE);
|
|
99
|
+
parseGLBChunksSync(glb, dataView, byteOffset, GLB_V1_V2_CHUNK_HEADER_SIZE, options);
|
|
100
|
+
return glb.header.byteOffset + glb.header.byteLength;
|
|
101
|
+
}
|
|
102
|
+
function parseGLBV3(glb, dataView, byteOffset, options) {
|
|
103
|
+
(0, import_loader_utils.assert)(glb.header.byteLength >= GLB_V3_FILE_HEADER_SIZE + GLB_V3_CHUNK_HEADER_SIZE);
|
|
104
|
+
parseGLBChunksSync(glb, dataView, byteOffset, GLB_V3_CHUNK_HEADER_SIZE, options);
|
|
105
|
+
return glb.header.byteOffset + glb.header.byteLength;
|
|
106
|
+
}
|
|
107
|
+
function parseGLBChunksSync(glb, dataView, byteOffset, chunkHeaderSize, options) {
|
|
108
|
+
const fileEndByteOffset = glb.header.byteOffset + glb.header.byteLength;
|
|
109
|
+
(0, import_loader_utils.assert)(fileEndByteOffset <= dataView.byteLength);
|
|
110
|
+
let chunkIndex = 0;
|
|
111
|
+
while (byteOffset + chunkHeaderSize <= fileEndByteOffset) {
|
|
112
|
+
const isVersion3 = glb.version === 3;
|
|
113
|
+
const chunkFormat = dataView.getUint32(byteOffset + (isVersion3 ? 0 : 4), LITTLE_ENDIAN);
|
|
114
|
+
const chunkEncoding = isVersion3 ? dataView.getUint32(byteOffset + 4, LITTLE_ENDIAN) : 0;
|
|
115
|
+
const chunkLength = isVersion3 ? getSafeUint64(dataView, byteOffset + 8, "GLB chunk length") : dataView.getUint32(byteOffset + 0, LITTLE_ENDIAN);
|
|
116
|
+
byteOffset += chunkHeaderSize;
|
|
117
|
+
if (chunkEncoding !== 0) {
|
|
118
|
+
throw new Error(`Unsupported GLB chunk encoding ${chunkEncoding}.`);
|
|
119
|
+
}
|
|
120
|
+
if (byteOffset + chunkLength > fileEndByteOffset) {
|
|
121
|
+
throw new Error("GLB chunk extends beyond the declared file length.");
|
|
122
|
+
}
|
|
123
|
+
switch (chunkFormat) {
|
|
124
|
+
case GLB_CHUNK_TYPE_JSON:
|
|
125
|
+
if (glb.version !== 3 || glb.jsonChunkIndex === -1) {
|
|
126
|
+
parseJSONChunk(glb, dataView, byteOffset, chunkLength, chunkIndex);
|
|
127
|
+
}
|
|
128
|
+
break;
|
|
129
|
+
case GLB_CHUNK_TYPE_BIN:
|
|
130
|
+
parseBINChunk(glb, dataView, byteOffset, chunkLength, chunkIndex);
|
|
131
|
+
break;
|
|
132
|
+
// Backward compatibility for very old xviz files
|
|
133
|
+
case GLB_CHUNK_TYPE_JSON_XVIZ_DEPRECATED:
|
|
134
|
+
if (!options.strict) {
|
|
135
|
+
parseJSONChunk(glb, dataView, byteOffset, chunkLength, chunkIndex);
|
|
136
|
+
}
|
|
137
|
+
break;
|
|
138
|
+
case GLB_CHUNK_TYPE_BIX_XVIZ_DEPRECATED:
|
|
139
|
+
if (!options.strict) {
|
|
140
|
+
parseBINChunk(glb, dataView, byteOffset, chunkLength, chunkIndex);
|
|
141
|
+
}
|
|
142
|
+
break;
|
|
143
|
+
default:
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
byteOffset += padToFourBytes(chunkLength);
|
|
147
|
+
chunkIndex++;
|
|
148
|
+
}
|
|
149
|
+
return byteOffset;
|
|
150
|
+
}
|
|
151
|
+
function parseJSONChunk(glb, dataView, byteOffset, chunkLength, chunkIndex) {
|
|
152
|
+
const jsonChunk = new Uint8Array(dataView.buffer, byteOffset, chunkLength);
|
|
153
|
+
const textDecoder = new TextDecoder("utf8");
|
|
154
|
+
const jsonText = textDecoder.decode(jsonChunk);
|
|
155
|
+
glb.json = JSON.parse(jsonText);
|
|
156
|
+
glb.jsonChunkIndex = chunkIndex;
|
|
157
|
+
return padToFourBytes(chunkLength);
|
|
158
|
+
}
|
|
159
|
+
function parseBINChunk(glb, dataView, byteOffset, chunkLength, chunkIndex) {
|
|
160
|
+
glb.header.hasBinChunk = true;
|
|
161
|
+
glb.binChunks.push({
|
|
162
|
+
chunkIndex,
|
|
163
|
+
byteOffset,
|
|
164
|
+
byteLength: chunkLength,
|
|
165
|
+
arrayBuffer: dataView.buffer
|
|
166
|
+
// TODO - copy, or create typed array view?
|
|
167
|
+
});
|
|
168
|
+
return padToFourBytes(chunkLength);
|
|
169
|
+
}
|
|
170
|
+
function getSafeUint64(dataView, byteOffset, label) {
|
|
171
|
+
const value = dataView.getBigUint64(byteOffset, LITTLE_ENDIAN);
|
|
172
|
+
if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
173
|
+
throw new Error(`${label} exceeds JavaScript's safe integer range.`);
|
|
174
|
+
}
|
|
175
|
+
return Number(value);
|
|
176
|
+
}
|
|
177
|
+
function padToFourBytes(byteLength) {
|
|
178
|
+
return Math.ceil(byteLength / 4) * 4;
|
|
179
|
+
}
|
|
180
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
181
|
+
0 && (module.exports = {
|
|
182
|
+
isGLB,
|
|
183
|
+
parseGLBSync
|
|
184
|
+
});
|
|
185
|
+
//# sourceMappingURL=parse-glb.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/gltf/lib/parsers/parse-glb.ts"],
|
|
4
|
+
"sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable camelcase, max-statements */\n// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#glb-file-format-specification\n// Draft GLB v3 layout: https://github.com/KhronosGroup/glTF/issues/2594\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/1.0/Khronos/KHR_binary_glTF\nimport type {GLB} from '../types/glb-types';\nimport {assert} from '@loaders.gl/core/loader-utils';\n\n/** Options for parsing a GLB */\nexport type ParseGLBOptions = {\n /** @deprecated This option was used by XVIZ protocol to define a non-standard magic number */\n magic?: number;\n /** @deprecated This option was used by XVIZ protocol to embed non-standard chunks */\n strict?: boolean;\n};\n\n/** Binary GLTF is little endian. */\nconst LITTLE_ENDIAN = true;\n\n/** 'glTF' in Big-Endian ASCII */\nconst MAGIC_glTF = 0x676c5446;\nconst GLB_V1_V2_FILE_HEADER_SIZE = 12;\nconst GLB_V3_FILE_HEADER_SIZE = 16;\nconst GLB_V1_V2_CHUNK_HEADER_SIZE = 8;\nconst GLB_V3_CHUNK_HEADER_SIZE = 16;\nconst GLB_CHUNK_TYPE_JSON = 0x4e4f534a;\nconst GLB_CHUNK_TYPE_BIN = 0x004e4942;\nconst GLB_V1_CONTENT_FORMAT_JSON = 0x0;\n\n/** @deprecated - Backward compatibility for old xviz files */\nconst GLB_CHUNK_TYPE_JSON_XVIZ_DEPRECATED = 0;\n/** @deprecated - Backward compatibility for old xviz files */\nconst GLB_CHUNK_TYPE_BIX_XVIZ_DEPRECATED = 1;\n\nfunction getMagicString(dataView, byteOffset = 0) {\n return `\\\n${String.fromCharCode(dataView.getUint8(byteOffset + 0))}\\\n${String.fromCharCode(dataView.getUint8(byteOffset + 1))}\\\n${String.fromCharCode(dataView.getUint8(byteOffset + 2))}\\\n${String.fromCharCode(dataView.getUint8(byteOffset + 3))}`;\n}\n\n/** Check if the contents of an array buffer contains GLB byte markers */\nexport function isGLB(\n arrayBuffer: ArrayBuffer,\n byteOffset: number = 0,\n options: ParseGLBOptions = {}\n): boolean {\n const dataView = new DataView(arrayBuffer);\n // Check that GLB Header starts with the magic number\n const {magic = MAGIC_glTF} = options;\n const magic1 = dataView.getUint32(byteOffset, false);\n return magic1 === magic || magic1 === MAGIC_glTF;\n}\n\n/**\n * Synchronously parse a GLB\n * @param glb - Target, Output is stored there\n * @param arrayBuffer - Input data\n * @param byteOffset - Offset into arrayBuffer to start parsing from (for \"embedded\" GLBs, e.g. in 3D tiles)\n * @param options\n * @returns\n */\nexport function parseGLBSync(\n glb: GLB,\n arrayBuffer: ArrayBuffer,\n byteOffset: number = 0,\n options: ParseGLBOptions = {}\n) {\n // Check that GLB Header starts with the magic number\n const dataView = new DataView(arrayBuffer);\n\n // Compare format with GLBLoader documentation\n const type = getMagicString(dataView, byteOffset + 0);\n const version = dataView.getUint32(byteOffset + 4, LITTLE_ENDIAN);\n const byteLength =\n version === 3\n ? getSafeUint64(dataView, byteOffset + 8, 'GLB byte length')\n : dataView.getUint32(byteOffset + 8, LITTLE_ENDIAN);\n\n Object.assign(glb, {\n // Put less important stuff in a header, to avoid clutter\n header: {\n byteOffset, // Byte offset into the initial arrayBuffer\n byteLength,\n hasBinChunk: false\n },\n\n type,\n version,\n\n json: {},\n jsonChunkIndex: -1,\n binChunks: []\n } as GLB);\n\n switch (glb.version) {\n case 1:\n return parseGLBV1(glb, dataView, byteOffset + GLB_V1_V2_FILE_HEADER_SIZE);\n case 2:\n return parseGLBV2(glb, dataView, byteOffset + GLB_V1_V2_FILE_HEADER_SIZE, options);\n case 3:\n return parseGLBV3(glb, dataView, byteOffset + GLB_V3_FILE_HEADER_SIZE, options);\n default:\n throw new Error(`Invalid GLB version ${glb.version}. Only supports versions 1, 2 and 3.`);\n }\n}\n\n/**\n * Parse a V1 GLB\n * @param glb - target, output is stored in this object\n * @param dataView - Input, memory to be parsed\n * @param byteOffset - Offset of first byte of GLB data in the data view\n * @returns Number of bytes parsed (there could be additional non-GLB data after the GLB)\n */\nfunction parseGLBV1(glb: GLB, dataView: DataView, byteOffset: number): number {\n // Sanity: ensure file is big enough to hold at least the headers\n assert(glb.header.byteLength > GLB_V1_V2_FILE_HEADER_SIZE + GLB_V1_V2_CHUNK_HEADER_SIZE);\n const fileEndByteOffset = glb.header.byteOffset + glb.header.byteLength;\n assert(fileEndByteOffset <= dataView.byteLength);\n\n // Explanation of GLB structure:\n // https://cloud.githubusercontent.com/assets/3479527/22600725/36b87122-ea55-11e6-9d40-6fd42819fcab.png\n const contentLength = dataView.getUint32(byteOffset + 0, LITTLE_ENDIAN); // Byte length of chunk\n const contentFormat = dataView.getUint32(byteOffset + 4, LITTLE_ENDIAN); // Chunk format as uint32\n byteOffset += GLB_V1_V2_CHUNK_HEADER_SIZE;\n\n // GLB v1 only supports a single chunk type\n assert(contentFormat === GLB_V1_CONTENT_FORMAT_JSON);\n if (byteOffset + contentLength > fileEndByteOffset) {\n throw new Error('GLB JSON content extends beyond the declared file length.');\n }\n\n parseJSONChunk(glb, dataView, byteOffset, contentLength, 0);\n // No need to call the function padToBytes() from parseJSONChunk()\n byteOffset += contentLength;\n const bodyByteLength = fileEndByteOffset - byteOffset;\n if (bodyByteLength > 0) {\n parseBINChunk(glb, dataView, byteOffset, bodyByteLength, 1);\n }\n\n return fileEndByteOffset;\n}\n\n/**\n * Parse a V2 GLB\n * @param glb - target, output is stored in this object\n * @param dataView - Input, memory to be parsed\n * @param byteOffset - Offset of first byte of GLB data in the data view\n * @returns Number of bytes parsed (there could be additional non-GLB data after the GLB)\n */\nfunction parseGLBV2(\n glb: GLB,\n dataView: DataView,\n byteOffset: number,\n options: ParseGLBOptions\n): number {\n // Sanity: ensure file is big enough to hold at least the first chunk header\n assert(glb.header.byteLength > GLB_V1_V2_FILE_HEADER_SIZE + GLB_V1_V2_CHUNK_HEADER_SIZE);\n\n parseGLBChunksSync(glb, dataView, byteOffset, GLB_V1_V2_CHUNK_HEADER_SIZE, options);\n\n return glb.header.byteOffset + glb.header.byteLength;\n}\n\n/** Parse a draft V3 GLB with 64-bit file and chunk lengths. */\nfunction parseGLBV3(\n glb: GLB,\n dataView: DataView,\n byteOffset: number,\n options: ParseGLBOptions\n): number {\n assert(glb.header.byteLength >= GLB_V3_FILE_HEADER_SIZE + GLB_V3_CHUNK_HEADER_SIZE);\n\n parseGLBChunksSync(glb, dataView, byteOffset, GLB_V3_CHUNK_HEADER_SIZE, options);\n\n return glb.header.byteOffset + glb.header.byteLength;\n}\n\n/** Iterate over GLB chunks and parse them */\nfunction parseGLBChunksSync(\n glb: GLB,\n dataView: DataView,\n byteOffset: number,\n chunkHeaderSize: number,\n options: ParseGLBOptions\n) {\n const fileEndByteOffset = glb.header.byteOffset + glb.header.byteLength;\n assert(fileEndByteOffset <= dataView.byteLength);\n let chunkIndex = 0;\n\n // Per spec we must iterate over chunks, ignoring all except JSON and BIN\n // Iterate as long as there is space left for another chunk header\n while (byteOffset + chunkHeaderSize <= fileEndByteOffset) {\n const isVersion3 = glb.version === 3;\n const chunkFormat = dataView.getUint32(byteOffset + (isVersion3 ? 0 : 4), LITTLE_ENDIAN);\n const chunkEncoding = isVersion3 ? dataView.getUint32(byteOffset + 4, LITTLE_ENDIAN) : 0;\n const chunkLength = isVersion3\n ? getSafeUint64(dataView, byteOffset + 8, 'GLB chunk length')\n : dataView.getUint32(byteOffset + 0, LITTLE_ENDIAN);\n byteOffset += chunkHeaderSize;\n\n if (chunkEncoding !== 0) {\n throw new Error(`Unsupported GLB chunk encoding ${chunkEncoding}.`);\n }\n if (byteOffset + chunkLength > fileEndByteOffset) {\n throw new Error('GLB chunk extends beyond the declared file length.');\n }\n\n // Per spec we must iterate over chunks, ignoring all except JSON and BIN\n switch (chunkFormat) {\n case GLB_CHUNK_TYPE_JSON:\n // GLB v3 defines the first JSON chunk as the glTF JSON chunk.\n if (glb.version !== 3 || glb.jsonChunkIndex === -1) {\n parseJSONChunk(glb, dataView, byteOffset, chunkLength, chunkIndex);\n }\n break;\n case GLB_CHUNK_TYPE_BIN:\n parseBINChunk(glb, dataView, byteOffset, chunkLength, chunkIndex);\n break;\n\n // Backward compatibility for very old xviz files\n case GLB_CHUNK_TYPE_JSON_XVIZ_DEPRECATED:\n if (!options.strict) {\n parseJSONChunk(glb, dataView, byteOffset, chunkLength, chunkIndex);\n }\n break;\n case GLB_CHUNK_TYPE_BIX_XVIZ_DEPRECATED:\n if (!options.strict) {\n parseBINChunk(glb, dataView, byteOffset, chunkLength, chunkIndex);\n }\n break;\n\n default:\n // Ignore, per spec\n // console.warn(`Unknown GLB chunk type`); // eslint-disable-line\n break;\n }\n\n byteOffset += padToFourBytes(chunkLength);\n chunkIndex++;\n }\n\n return byteOffset;\n}\n\n/* Parse a GLB JSON chunk */\nfunction parseJSONChunk(\n glb: GLB,\n dataView: DataView,\n byteOffset: number,\n chunkLength: number,\n chunkIndex: number\n) {\n // 1. Create a \"view\" of the binary encoded JSON data inside the GLB\n const jsonChunk = new Uint8Array(dataView.buffer, byteOffset, chunkLength);\n\n // 2. Decode the JSON binary array into clear text\n const textDecoder = new TextDecoder('utf8');\n const jsonText = textDecoder.decode(jsonChunk);\n\n // 3. Parse the JSON text into a JavaScript data structure\n glb.json = JSON.parse(jsonText);\n glb.jsonChunkIndex = chunkIndex;\n\n return padToFourBytes(chunkLength);\n}\n\n/** Parse a GLB BIN chunk */\nfunction parseBINChunk(glb: GLB, dataView, byteOffset, chunkLength, chunkIndex: number) {\n // Note: BIN chunk can be optional\n glb.header.hasBinChunk = true;\n glb.binChunks.push({\n chunkIndex,\n byteOffset,\n byteLength: chunkLength,\n arrayBuffer: dataView.buffer\n // TODO - copy, or create typed array view?\n });\n\n return padToFourBytes(chunkLength);\n}\n\n/** Read a uint64 that can be represented exactly by JavaScript offsets and lengths. */\nfunction getSafeUint64(dataView: DataView, byteOffset: number, label: string): number {\n const value = dataView.getBigUint64(byteOffset, LITTLE_ENDIAN);\n if (value > BigInt(Number.MAX_SAFE_INTEGER)) {\n throw new Error(`${label} exceeds JavaScript's safe integer range.`);\n }\n return Number(value);\n}\n\n/** Round a byte length up to the four-byte alignment required by GLB chunks. */\nfunction padToFourBytes(byteLength: number): number {\n return Math.ceil(byteLength / 4) * 4;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { GLB } from "../types/glb-types.js";
|
|
2
|
+
/** Options for parsing a GLB */
|
|
3
|
+
export type ParseGLBOptions = {
|
|
4
|
+
/** @deprecated This option was used by XVIZ protocol to define a non-standard magic number */
|
|
5
|
+
magic?: number;
|
|
6
|
+
/** @deprecated This option was used by XVIZ protocol to embed non-standard chunks */
|
|
7
|
+
strict?: boolean;
|
|
8
|
+
};
|
|
9
|
+
/** Check if the contents of an array buffer contains GLB byte markers */
|
|
10
|
+
export declare function isGLB(arrayBuffer: ArrayBuffer, byteOffset?: number, options?: ParseGLBOptions): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Synchronously parse a GLB
|
|
13
|
+
* @param glb - Target, Output is stored there
|
|
14
|
+
* @param arrayBuffer - Input data
|
|
15
|
+
* @param byteOffset - Offset into arrayBuffer to start parsing from (for "embedded" GLBs, e.g. in 3D tiles)
|
|
16
|
+
* @param options
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseGLBSync(glb: GLB, arrayBuffer: ArrayBuffer, byteOffset?: number, options?: ParseGLBOptions): number;
|
|
20
|
+
//# sourceMappingURL=parse-glb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-glb.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/parsers/parse-glb.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,GAAG,EAAC,8BAA2B;AAG5C,gCAAgC;AAChC,MAAM,MAAM,eAAe,GAAG;IAC5B,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AA4BF,yEAAyE;AACzE,wBAAgB,KAAK,CACnB,WAAW,EAAE,WAAW,EACxB,UAAU,GAAE,MAAU,EACtB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAMT;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,UAAU,GAAE,MAAU,EACtB,OAAO,GAAE,eAAoB,UAuC9B"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { assert } from '@loaders.gl/core/loader-utils';
|
|
5
|
+
/** Binary GLTF is little endian. */
|
|
6
|
+
const LITTLE_ENDIAN = true;
|
|
7
|
+
/** 'glTF' in Big-Endian ASCII */
|
|
8
|
+
const MAGIC_glTF = 0x676c5446;
|
|
9
|
+
const GLB_V1_V2_FILE_HEADER_SIZE = 12;
|
|
10
|
+
const GLB_V3_FILE_HEADER_SIZE = 16;
|
|
11
|
+
const GLB_V1_V2_CHUNK_HEADER_SIZE = 8;
|
|
12
|
+
const GLB_V3_CHUNK_HEADER_SIZE = 16;
|
|
13
|
+
const GLB_CHUNK_TYPE_JSON = 0x4e4f534a;
|
|
14
|
+
const GLB_CHUNK_TYPE_BIN = 0x004e4942;
|
|
15
|
+
const GLB_V1_CONTENT_FORMAT_JSON = 0x0;
|
|
16
|
+
/** @deprecated - Backward compatibility for old xviz files */
|
|
17
|
+
const GLB_CHUNK_TYPE_JSON_XVIZ_DEPRECATED = 0;
|
|
18
|
+
/** @deprecated - Backward compatibility for old xviz files */
|
|
19
|
+
const GLB_CHUNK_TYPE_BIX_XVIZ_DEPRECATED = 1;
|
|
20
|
+
function getMagicString(dataView, byteOffset = 0) {
|
|
21
|
+
return `\
|
|
22
|
+
${String.fromCharCode(dataView.getUint8(byteOffset + 0))}\
|
|
23
|
+
${String.fromCharCode(dataView.getUint8(byteOffset + 1))}\
|
|
24
|
+
${String.fromCharCode(dataView.getUint8(byteOffset + 2))}\
|
|
25
|
+
${String.fromCharCode(dataView.getUint8(byteOffset + 3))}`;
|
|
26
|
+
}
|
|
27
|
+
/** Check if the contents of an array buffer contains GLB byte markers */
|
|
28
|
+
export function isGLB(arrayBuffer, byteOffset = 0, options = {}) {
|
|
29
|
+
const dataView = new DataView(arrayBuffer);
|
|
30
|
+
// Check that GLB Header starts with the magic number
|
|
31
|
+
const { magic = MAGIC_glTF } = options;
|
|
32
|
+
const magic1 = dataView.getUint32(byteOffset, false);
|
|
33
|
+
return magic1 === magic || magic1 === MAGIC_glTF;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Synchronously parse a GLB
|
|
37
|
+
* @param glb - Target, Output is stored there
|
|
38
|
+
* @param arrayBuffer - Input data
|
|
39
|
+
* @param byteOffset - Offset into arrayBuffer to start parsing from (for "embedded" GLBs, e.g. in 3D tiles)
|
|
40
|
+
* @param options
|
|
41
|
+
* @returns
|
|
42
|
+
*/
|
|
43
|
+
export function parseGLBSync(glb, arrayBuffer, byteOffset = 0, options = {}) {
|
|
44
|
+
// Check that GLB Header starts with the magic number
|
|
45
|
+
const dataView = new DataView(arrayBuffer);
|
|
46
|
+
// Compare format with GLBLoader documentation
|
|
47
|
+
const type = getMagicString(dataView, byteOffset + 0);
|
|
48
|
+
const version = dataView.getUint32(byteOffset + 4, LITTLE_ENDIAN);
|
|
49
|
+
const byteLength = version === 3
|
|
50
|
+
? getSafeUint64(dataView, byteOffset + 8, 'GLB byte length')
|
|
51
|
+
: dataView.getUint32(byteOffset + 8, LITTLE_ENDIAN);
|
|
52
|
+
Object.assign(glb, {
|
|
53
|
+
// Put less important stuff in a header, to avoid clutter
|
|
54
|
+
header: {
|
|
55
|
+
byteOffset, // Byte offset into the initial arrayBuffer
|
|
56
|
+
byteLength,
|
|
57
|
+
hasBinChunk: false
|
|
58
|
+
},
|
|
59
|
+
type,
|
|
60
|
+
version,
|
|
61
|
+
json: {},
|
|
62
|
+
jsonChunkIndex: -1,
|
|
63
|
+
binChunks: []
|
|
64
|
+
});
|
|
65
|
+
switch (glb.version) {
|
|
66
|
+
case 1:
|
|
67
|
+
return parseGLBV1(glb, dataView, byteOffset + GLB_V1_V2_FILE_HEADER_SIZE);
|
|
68
|
+
case 2:
|
|
69
|
+
return parseGLBV2(glb, dataView, byteOffset + GLB_V1_V2_FILE_HEADER_SIZE, options);
|
|
70
|
+
case 3:
|
|
71
|
+
return parseGLBV3(glb, dataView, byteOffset + GLB_V3_FILE_HEADER_SIZE, options);
|
|
72
|
+
default:
|
|
73
|
+
throw new Error(`Invalid GLB version ${glb.version}. Only supports versions 1, 2 and 3.`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Parse a V1 GLB
|
|
78
|
+
* @param glb - target, output is stored in this object
|
|
79
|
+
* @param dataView - Input, memory to be parsed
|
|
80
|
+
* @param byteOffset - Offset of first byte of GLB data in the data view
|
|
81
|
+
* @returns Number of bytes parsed (there could be additional non-GLB data after the GLB)
|
|
82
|
+
*/
|
|
83
|
+
function parseGLBV1(glb, dataView, byteOffset) {
|
|
84
|
+
// Sanity: ensure file is big enough to hold at least the headers
|
|
85
|
+
assert(glb.header.byteLength > GLB_V1_V2_FILE_HEADER_SIZE + GLB_V1_V2_CHUNK_HEADER_SIZE);
|
|
86
|
+
const fileEndByteOffset = glb.header.byteOffset + glb.header.byteLength;
|
|
87
|
+
assert(fileEndByteOffset <= dataView.byteLength);
|
|
88
|
+
// Explanation of GLB structure:
|
|
89
|
+
// https://cloud.githubusercontent.com/assets/3479527/22600725/36b87122-ea55-11e6-9d40-6fd42819fcab.png
|
|
90
|
+
const contentLength = dataView.getUint32(byteOffset + 0, LITTLE_ENDIAN); // Byte length of chunk
|
|
91
|
+
const contentFormat = dataView.getUint32(byteOffset + 4, LITTLE_ENDIAN); // Chunk format as uint32
|
|
92
|
+
byteOffset += GLB_V1_V2_CHUNK_HEADER_SIZE;
|
|
93
|
+
// GLB v1 only supports a single chunk type
|
|
94
|
+
assert(contentFormat === GLB_V1_CONTENT_FORMAT_JSON);
|
|
95
|
+
if (byteOffset + contentLength > fileEndByteOffset) {
|
|
96
|
+
throw new Error('GLB JSON content extends beyond the declared file length.');
|
|
97
|
+
}
|
|
98
|
+
parseJSONChunk(glb, dataView, byteOffset, contentLength, 0);
|
|
99
|
+
// No need to call the function padToBytes() from parseJSONChunk()
|
|
100
|
+
byteOffset += contentLength;
|
|
101
|
+
const bodyByteLength = fileEndByteOffset - byteOffset;
|
|
102
|
+
if (bodyByteLength > 0) {
|
|
103
|
+
parseBINChunk(glb, dataView, byteOffset, bodyByteLength, 1);
|
|
104
|
+
}
|
|
105
|
+
return fileEndByteOffset;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Parse a V2 GLB
|
|
109
|
+
* @param glb - target, output is stored in this object
|
|
110
|
+
* @param dataView - Input, memory to be parsed
|
|
111
|
+
* @param byteOffset - Offset of first byte of GLB data in the data view
|
|
112
|
+
* @returns Number of bytes parsed (there could be additional non-GLB data after the GLB)
|
|
113
|
+
*/
|
|
114
|
+
function parseGLBV2(glb, dataView, byteOffset, options) {
|
|
115
|
+
// Sanity: ensure file is big enough to hold at least the first chunk header
|
|
116
|
+
assert(glb.header.byteLength > GLB_V1_V2_FILE_HEADER_SIZE + GLB_V1_V2_CHUNK_HEADER_SIZE);
|
|
117
|
+
parseGLBChunksSync(glb, dataView, byteOffset, GLB_V1_V2_CHUNK_HEADER_SIZE, options);
|
|
118
|
+
return glb.header.byteOffset + glb.header.byteLength;
|
|
119
|
+
}
|
|
120
|
+
/** Parse a draft V3 GLB with 64-bit file and chunk lengths. */
|
|
121
|
+
function parseGLBV3(glb, dataView, byteOffset, options) {
|
|
122
|
+
assert(glb.header.byteLength >= GLB_V3_FILE_HEADER_SIZE + GLB_V3_CHUNK_HEADER_SIZE);
|
|
123
|
+
parseGLBChunksSync(glb, dataView, byteOffset, GLB_V3_CHUNK_HEADER_SIZE, options);
|
|
124
|
+
return glb.header.byteOffset + glb.header.byteLength;
|
|
125
|
+
}
|
|
126
|
+
/** Iterate over GLB chunks and parse them */
|
|
127
|
+
function parseGLBChunksSync(glb, dataView, byteOffset, chunkHeaderSize, options) {
|
|
128
|
+
const fileEndByteOffset = glb.header.byteOffset + glb.header.byteLength;
|
|
129
|
+
assert(fileEndByteOffset <= dataView.byteLength);
|
|
130
|
+
let chunkIndex = 0;
|
|
131
|
+
// Per spec we must iterate over chunks, ignoring all except JSON and BIN
|
|
132
|
+
// Iterate as long as there is space left for another chunk header
|
|
133
|
+
while (byteOffset + chunkHeaderSize <= fileEndByteOffset) {
|
|
134
|
+
const isVersion3 = glb.version === 3;
|
|
135
|
+
const chunkFormat = dataView.getUint32(byteOffset + (isVersion3 ? 0 : 4), LITTLE_ENDIAN);
|
|
136
|
+
const chunkEncoding = isVersion3 ? dataView.getUint32(byteOffset + 4, LITTLE_ENDIAN) : 0;
|
|
137
|
+
const chunkLength = isVersion3
|
|
138
|
+
? getSafeUint64(dataView, byteOffset + 8, 'GLB chunk length')
|
|
139
|
+
: dataView.getUint32(byteOffset + 0, LITTLE_ENDIAN);
|
|
140
|
+
byteOffset += chunkHeaderSize;
|
|
141
|
+
if (chunkEncoding !== 0) {
|
|
142
|
+
throw new Error(`Unsupported GLB chunk encoding ${chunkEncoding}.`);
|
|
143
|
+
}
|
|
144
|
+
if (byteOffset + chunkLength > fileEndByteOffset) {
|
|
145
|
+
throw new Error('GLB chunk extends beyond the declared file length.');
|
|
146
|
+
}
|
|
147
|
+
// Per spec we must iterate over chunks, ignoring all except JSON and BIN
|
|
148
|
+
switch (chunkFormat) {
|
|
149
|
+
case GLB_CHUNK_TYPE_JSON:
|
|
150
|
+
// GLB v3 defines the first JSON chunk as the glTF JSON chunk.
|
|
151
|
+
if (glb.version !== 3 || glb.jsonChunkIndex === -1) {
|
|
152
|
+
parseJSONChunk(glb, dataView, byteOffset, chunkLength, chunkIndex);
|
|
153
|
+
}
|
|
154
|
+
break;
|
|
155
|
+
case GLB_CHUNK_TYPE_BIN:
|
|
156
|
+
parseBINChunk(glb, dataView, byteOffset, chunkLength, chunkIndex);
|
|
157
|
+
break;
|
|
158
|
+
// Backward compatibility for very old xviz files
|
|
159
|
+
case GLB_CHUNK_TYPE_JSON_XVIZ_DEPRECATED:
|
|
160
|
+
if (!options.strict) {
|
|
161
|
+
parseJSONChunk(glb, dataView, byteOffset, chunkLength, chunkIndex);
|
|
162
|
+
}
|
|
163
|
+
break;
|
|
164
|
+
case GLB_CHUNK_TYPE_BIX_XVIZ_DEPRECATED:
|
|
165
|
+
if (!options.strict) {
|
|
166
|
+
parseBINChunk(glb, dataView, byteOffset, chunkLength, chunkIndex);
|
|
167
|
+
}
|
|
168
|
+
break;
|
|
169
|
+
default:
|
|
170
|
+
// Ignore, per spec
|
|
171
|
+
// console.warn(`Unknown GLB chunk type`); // eslint-disable-line
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
byteOffset += padToFourBytes(chunkLength);
|
|
175
|
+
chunkIndex++;
|
|
176
|
+
}
|
|
177
|
+
return byteOffset;
|
|
178
|
+
}
|
|
179
|
+
/* Parse a GLB JSON chunk */
|
|
180
|
+
function parseJSONChunk(glb, dataView, byteOffset, chunkLength, chunkIndex) {
|
|
181
|
+
// 1. Create a "view" of the binary encoded JSON data inside the GLB
|
|
182
|
+
const jsonChunk = new Uint8Array(dataView.buffer, byteOffset, chunkLength);
|
|
183
|
+
// 2. Decode the JSON binary array into clear text
|
|
184
|
+
const textDecoder = new TextDecoder('utf8');
|
|
185
|
+
const jsonText = textDecoder.decode(jsonChunk);
|
|
186
|
+
// 3. Parse the JSON text into a JavaScript data structure
|
|
187
|
+
glb.json = JSON.parse(jsonText);
|
|
188
|
+
glb.jsonChunkIndex = chunkIndex;
|
|
189
|
+
return padToFourBytes(chunkLength);
|
|
190
|
+
}
|
|
191
|
+
/** Parse a GLB BIN chunk */
|
|
192
|
+
function parseBINChunk(glb, dataView, byteOffset, chunkLength, chunkIndex) {
|
|
193
|
+
// Note: BIN chunk can be optional
|
|
194
|
+
glb.header.hasBinChunk = true;
|
|
195
|
+
glb.binChunks.push({
|
|
196
|
+
chunkIndex,
|
|
197
|
+
byteOffset,
|
|
198
|
+
byteLength: chunkLength,
|
|
199
|
+
arrayBuffer: dataView.buffer
|
|
200
|
+
// TODO - copy, or create typed array view?
|
|
201
|
+
});
|
|
202
|
+
return padToFourBytes(chunkLength);
|
|
203
|
+
}
|
|
204
|
+
/** Read a uint64 that can be represented exactly by JavaScript offsets and lengths. */
|
|
205
|
+
function getSafeUint64(dataView, byteOffset, label) {
|
|
206
|
+
const value = dataView.getBigUint64(byteOffset, LITTLE_ENDIAN);
|
|
207
|
+
if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
208
|
+
throw new Error(`${label} exceeds JavaScript's safe integer range.`);
|
|
209
|
+
}
|
|
210
|
+
return Number(value);
|
|
211
|
+
}
|
|
212
|
+
/** Round a byte length up to the four-byte alignment required by GLB chunks. */
|
|
213
|
+
function padToFourBytes(byteLength) {
|
|
214
|
+
return Math.ceil(byteLength / 4) * 4;
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=parse-glb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-glb.js","sourceRoot":"","sources":["../../../../src/gltf/lib/parsers/parse-glb.ts"],"names":[],"mappings":"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"}
|