@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,940 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { getTypedArrayForAccessor as getAccessorTypedArray, getTypedArrayForBufferView as getBufferViewTypedArray, getTypedArrayForImageData as getImageTypedArray } from "../gltf-utils/get-typed-array.js";
|
|
5
|
+
import { getAccessorTypeFromSize } from "../gltf-utils/gltf-utils.js";
|
|
6
|
+
/** Base class for a lightweight view of one raw glTF object. */
|
|
7
|
+
class GLTFObjectIterator {
|
|
8
|
+
/** Original glTF container. */
|
|
9
|
+
gltf;
|
|
10
|
+
/** Stable tag identifying the wrapped object type. */
|
|
11
|
+
type;
|
|
12
|
+
/** Index in the object's top-level or parent-local collection. */
|
|
13
|
+
index;
|
|
14
|
+
/** Exact unmodified object from the source glTF JSON. */
|
|
15
|
+
data;
|
|
16
|
+
/** Human-readable path to the raw object. */
|
|
17
|
+
path;
|
|
18
|
+
/** Root iterator used to resolve linked indices. */
|
|
19
|
+
iterator;
|
|
20
|
+
/** Create a lightweight wrapper for a raw glTF object. */
|
|
21
|
+
constructor(iterator, type, index, data, path) {
|
|
22
|
+
this.iterator = iterator;
|
|
23
|
+
this.gltf = iterator.gltf;
|
|
24
|
+
this.type = type;
|
|
25
|
+
this.index = index;
|
|
26
|
+
this.data = data;
|
|
27
|
+
this.path = path;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/** Base class for an object stored in a parent-local array or property. */
|
|
31
|
+
class GLTFNestedObjectIterator extends GLTFObjectIterator {
|
|
32
|
+
/** Wrapper containing this nested object. */
|
|
33
|
+
parent;
|
|
34
|
+
/** Create a wrapper for a parent-local raw glTF object. */
|
|
35
|
+
constructor(iterator, type, index, data, path, parent) {
|
|
36
|
+
super(iterator, type, index, data, path);
|
|
37
|
+
this.parent = parent;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** Lightweight accessor wrapper. */
|
|
41
|
+
class GLTFAccessorIterator extends GLTFObjectIterator {
|
|
42
|
+
/** Resolve the accessor's buffer view. */
|
|
43
|
+
get bufferView() {
|
|
44
|
+
return this.data.bufferView === undefined
|
|
45
|
+
? undefined
|
|
46
|
+
: this.iterator.resolveBufferView(this.data.bufferView, `${this.path}.bufferView`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/** Lightweight animation wrapper. */
|
|
50
|
+
class GLTFAnimationIterator extends GLTFObjectIterator {
|
|
51
|
+
/** Iterate animation channels in source order. */
|
|
52
|
+
get channels() {
|
|
53
|
+
return iterateValues(this.data.channels, (channel, channelIndex) => this.iterator.getOrCreateNested(channel, () => new GLTFAnimationChannelIterator(this.iterator, 'animationChannel', channelIndex, channel, `${this.path}.channels[${channelIndex}]`, this)));
|
|
54
|
+
}
|
|
55
|
+
/** Iterate animation samplers in source order. */
|
|
56
|
+
get samplers() {
|
|
57
|
+
return iterateValues(this.data.samplers, (sampler, samplerIndex) => this.iterator.getOrCreateNested(sampler, () => new GLTFAnimationSamplerIterator(this.iterator, 'animationSampler', samplerIndex, sampler, `${this.path}.samplers[${samplerIndex}]`, this)));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/** Lightweight animation channel wrapper. */
|
|
61
|
+
class GLTFAnimationChannelIterator extends GLTFNestedObjectIterator {
|
|
62
|
+
/** Resolve the animation-local sampler. */
|
|
63
|
+
get sampler() {
|
|
64
|
+
const samplers = this.parent.data.samplers;
|
|
65
|
+
const sampler = samplers[this.data.sampler];
|
|
66
|
+
if (!sampler) {
|
|
67
|
+
throw new Error(`Invalid glTF reference at ${this.path}.sampler: animation sampler index ${this.data.sampler} is out of range`);
|
|
68
|
+
}
|
|
69
|
+
return this.iterator.getOrCreateNested(sampler, () => new GLTFAnimationSamplerIterator(this.iterator, 'animationSampler', this.data.sampler, sampler, `${this.parent.path}.samplers[${this.data.sampler}]`, this.parent));
|
|
70
|
+
}
|
|
71
|
+
/** Return the channel target wrapper. */
|
|
72
|
+
get target() {
|
|
73
|
+
return this.iterator.getOrCreateNested(this.data.target, () => new GLTFAnimationChannelTargetIterator(this.iterator, 'animationChannelTarget', 0, this.data.target, `${this.path}.target`, this));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/** Lightweight animation channel target wrapper. */
|
|
77
|
+
class GLTFAnimationChannelTargetIterator extends GLTFNestedObjectIterator {
|
|
78
|
+
/** Resolve the target node when one is specified. */
|
|
79
|
+
get node() {
|
|
80
|
+
return this.data.node === undefined
|
|
81
|
+
? undefined
|
|
82
|
+
: this.iterator.resolveNode(this.data.node, `${this.path}.node`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/** Lightweight animation sampler wrapper. */
|
|
86
|
+
class GLTFAnimationSamplerIterator extends GLTFNestedObjectIterator {
|
|
87
|
+
/** Resolve the sampler input accessor. */
|
|
88
|
+
get input() {
|
|
89
|
+
return this.iterator.resolveAccessor(this.data.input, `${this.path}.input`);
|
|
90
|
+
}
|
|
91
|
+
/** Resolve the sampler output accessor. */
|
|
92
|
+
get output() {
|
|
93
|
+
return this.iterator.resolveAccessor(this.data.output, `${this.path}.output`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/** Lightweight buffer wrapper. */
|
|
97
|
+
class GLTFBufferIterator extends GLTFObjectIterator {
|
|
98
|
+
/** Return the loaded byte range parallel to this JSON buffer, when available. */
|
|
99
|
+
get loadedBuffer() {
|
|
100
|
+
return this.gltf.buffers[this.index];
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/** Lightweight buffer-view wrapper. */
|
|
104
|
+
class GLTFBufferViewIterator extends GLTFObjectIterator {
|
|
105
|
+
/** Resolve the backing JSON buffer. */
|
|
106
|
+
get buffer() {
|
|
107
|
+
return this.iterator.resolveBuffer(this.data.buffer, `${this.path}.buffer`);
|
|
108
|
+
}
|
|
109
|
+
/** Return a byte view over the loaded buffer-view range. */
|
|
110
|
+
get loadedBufferView() {
|
|
111
|
+
const loadedBuffer = this.buffer.loadedBuffer;
|
|
112
|
+
if (!loadedBuffer) {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
const byteOffset = loadedBuffer.byteOffset + (this.data.byteOffset || 0);
|
|
116
|
+
return new Uint8Array(loadedBuffer.arrayBuffer, byteOffset, this.data.byteLength);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/** Lightweight camera wrapper. */
|
|
120
|
+
class GLTFCameraIterator extends GLTFObjectIterator {
|
|
121
|
+
}
|
|
122
|
+
/** Lightweight external-asset wrapper for draft glTF 2.1. */
|
|
123
|
+
class GLTFExternalAssetIterator extends GLTFObjectIterator {
|
|
124
|
+
/** Resolve the file containing the external glTF asset. */
|
|
125
|
+
get file() {
|
|
126
|
+
return this.iterator.resolveFile(this.data.file, `${this.path}.file`);
|
|
127
|
+
}
|
|
128
|
+
/** Return the parsed external glTF loaded parallel to this definition. */
|
|
129
|
+
get loadedAsset() {
|
|
130
|
+
return this.gltf.externalAssets?.[this.index];
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/** Lightweight file wrapper for draft glTF 2.1. */
|
|
134
|
+
class GLTFFileIterator extends GLTFObjectIterator {
|
|
135
|
+
/** Resolve the optional buffer view containing this file. */
|
|
136
|
+
get bufferView() {
|
|
137
|
+
return this.data.bufferView === undefined
|
|
138
|
+
? undefined
|
|
139
|
+
: this.iterator.resolveBufferView(this.data.bufferView, `${this.path}.bufferView`);
|
|
140
|
+
}
|
|
141
|
+
/** Return the resolved file loaded parallel to this definition. */
|
|
142
|
+
get loadedFile() {
|
|
143
|
+
return this.gltf.files?.[this.index];
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/** Lightweight image wrapper. */
|
|
147
|
+
class GLTFImageIterator extends GLTFObjectIterator {
|
|
148
|
+
/** Resolve the optional buffer view containing this image. */
|
|
149
|
+
get bufferView() {
|
|
150
|
+
return this.data.bufferView === undefined
|
|
151
|
+
? undefined
|
|
152
|
+
: this.iterator.resolveBufferView(this.data.bufferView, `${this.path}.bufferView`);
|
|
153
|
+
}
|
|
154
|
+
/** Return the decoded image loaded parallel to this definition. */
|
|
155
|
+
get loadedImage() {
|
|
156
|
+
return this.gltf.images?.[this.index];
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/** Lightweight material wrapper. */
|
|
160
|
+
class GLTFMaterialIterator extends GLTFObjectIterator {
|
|
161
|
+
/** Resolve the base-color texture info. */
|
|
162
|
+
get baseColorTexture() {
|
|
163
|
+
return this.getTextureInfo(this.data.pbrMetallicRoughness?.baseColorTexture, 0, 'pbrMetallicRoughness.baseColorTexture');
|
|
164
|
+
}
|
|
165
|
+
/** Resolve the metallic-roughness texture info. */
|
|
166
|
+
get metallicRoughnessTexture() {
|
|
167
|
+
return this.getTextureInfo(this.data.pbrMetallicRoughness?.metallicRoughnessTexture, 1, 'pbrMetallicRoughness.metallicRoughnessTexture');
|
|
168
|
+
}
|
|
169
|
+
/** Resolve the normal texture info. */
|
|
170
|
+
get normalTexture() {
|
|
171
|
+
return this.getTextureInfo(this.data.normalTexture, 2, 'normalTexture');
|
|
172
|
+
}
|
|
173
|
+
/** Resolve the occlusion texture info. */
|
|
174
|
+
get occlusionTexture() {
|
|
175
|
+
return this.getTextureInfo(this.data.occlusionTexture, 3, 'occlusionTexture');
|
|
176
|
+
}
|
|
177
|
+
/** Resolve the emissive texture info. */
|
|
178
|
+
get emissiveTexture() {
|
|
179
|
+
return this.getTextureInfo(this.data.emissiveTexture, 4, 'emissiveTexture');
|
|
180
|
+
}
|
|
181
|
+
/** Resolve standard texture-info properties in their schema order. */
|
|
182
|
+
get textures() {
|
|
183
|
+
const textureInfos = [
|
|
184
|
+
this.baseColorTexture,
|
|
185
|
+
this.metallicRoughnessTexture,
|
|
186
|
+
this.normalTexture,
|
|
187
|
+
this.occlusionTexture,
|
|
188
|
+
this.emissiveTexture
|
|
189
|
+
].filter((textureInfo) => Boolean(textureInfo));
|
|
190
|
+
return textureInfos.values();
|
|
191
|
+
}
|
|
192
|
+
/** Wrap one optional standard material texture-info property. */
|
|
193
|
+
getTextureInfo(textureInfo, index, propertyPath) {
|
|
194
|
+
return textureInfo
|
|
195
|
+
? this.iterator.getOrCreateNested(textureInfo, () => new GLTFTextureInfoIterator(this.iterator, 'textureInfo', index, textureInfo, `${this.path}.${propertyPath}`, this))
|
|
196
|
+
: undefined;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/** Lightweight texture-info wrapper nested in a material. */
|
|
200
|
+
class GLTFTextureInfoIterator extends GLTFNestedObjectIterator {
|
|
201
|
+
/** Resolve the texture referenced by the raw texture-info `index` field. */
|
|
202
|
+
get texture() {
|
|
203
|
+
return this.iterator.resolveTexture(this.data.index, `${this.path}.index`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/** Lightweight mesh wrapper. */
|
|
207
|
+
class GLTFMeshIterator extends GLTFObjectIterator {
|
|
208
|
+
/** Iterate mesh primitives in source order. */
|
|
209
|
+
get primitives() {
|
|
210
|
+
return iterateValues(this.data.primitives, (primitive, primitiveIndex) => this.iterator.getOrCreateNested(primitive, () => new GLTFMeshPrimitiveIterator(this.iterator, 'primitive', primitiveIndex, primitive, `${this.path}.primitives[${primitiveIndex}]`, this)));
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/** Lightweight mesh primitive wrapper. */
|
|
214
|
+
class GLTFMeshPrimitiveIterator extends GLTFNestedObjectIterator {
|
|
215
|
+
/** Resolve every vertex attribute accessor by semantic name. */
|
|
216
|
+
get attributes() {
|
|
217
|
+
return new Map(Object.entries(this.data.attributes).map(([attributeName, accessorIndex]) => [
|
|
218
|
+
attributeName,
|
|
219
|
+
this.iterator.resolveAccessor(accessorIndex, `${this.path}.attributes.${attributeName}`)
|
|
220
|
+
]));
|
|
221
|
+
}
|
|
222
|
+
/** Resolve the optional index accessor. */
|
|
223
|
+
get indices() {
|
|
224
|
+
return this.data.indices === undefined
|
|
225
|
+
? undefined
|
|
226
|
+
: this.iterator.resolveAccessor(this.data.indices, `${this.path}.indices`);
|
|
227
|
+
}
|
|
228
|
+
/** Resolve the optional material. */
|
|
229
|
+
get material() {
|
|
230
|
+
return this.data.material === undefined
|
|
231
|
+
? undefined
|
|
232
|
+
: this.iterator.resolveMaterial(this.data.material, `${this.path}.material`);
|
|
233
|
+
}
|
|
234
|
+
/** Resolve morph-target attribute accessors without rewriting target dictionaries. */
|
|
235
|
+
get targets() {
|
|
236
|
+
return (this.data.targets || []).map((target, targetIndex) => new Map(Object.entries(target).map(([attributeName, accessorIndex]) => [
|
|
237
|
+
attributeName,
|
|
238
|
+
this.iterator.resolveAccessor(accessorIndex, `${this.path}.targets[${targetIndex}].${attributeName}`)
|
|
239
|
+
])));
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/** Lightweight node wrapper. */
|
|
243
|
+
class GLTFNodeIterator extends GLTFObjectIterator {
|
|
244
|
+
/** Resolve the optional camera. */
|
|
245
|
+
get camera() {
|
|
246
|
+
return this.data.camera === undefined
|
|
247
|
+
? undefined
|
|
248
|
+
: this.iterator.resolveCamera(this.data.camera, `${this.path}.camera`);
|
|
249
|
+
}
|
|
250
|
+
/** Iterate resolved child nodes in source order. */
|
|
251
|
+
get children() {
|
|
252
|
+
return iterateValues(this.data.children || [], (childNodeIndex, childIndex) => this.iterator.resolveNode(childNodeIndex, `${this.path}.children[${childIndex}]`));
|
|
253
|
+
}
|
|
254
|
+
/** Resolve the optional skin. */
|
|
255
|
+
get skin() {
|
|
256
|
+
return this.data.skin === undefined
|
|
257
|
+
? undefined
|
|
258
|
+
: this.iterator.resolveSkin(this.data.skin, `${this.path}.skin`);
|
|
259
|
+
}
|
|
260
|
+
/** Resolve the optional mesh definition. */
|
|
261
|
+
get mesh() {
|
|
262
|
+
return this.data.mesh === undefined
|
|
263
|
+
? undefined
|
|
264
|
+
: this.iterator.resolveMesh(this.data.mesh, `${this.path}.mesh`);
|
|
265
|
+
}
|
|
266
|
+
/** Resolve the optional draft glTF 2.1 external asset. */
|
|
267
|
+
get externalAsset() {
|
|
268
|
+
return this.data.externalAsset === undefined
|
|
269
|
+
? undefined
|
|
270
|
+
: this.iterator.resolveExternalAsset(this.data.externalAsset, `${this.path}.externalAsset`);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
/** Lightweight texture sampler wrapper. */
|
|
274
|
+
class GLTFSamplerIterator extends GLTFObjectIterator {
|
|
275
|
+
}
|
|
276
|
+
/** Lightweight scene wrapper. */
|
|
277
|
+
class GLTFSceneIterator extends GLTFObjectIterator {
|
|
278
|
+
/** Iterate resolved scene root nodes in source order. */
|
|
279
|
+
get nodes() {
|
|
280
|
+
return iterateValues(this.data.nodes || [], (nodeIndex, sceneNodeIndex) => this.iterator.resolveNode(nodeIndex, `${this.path}.nodes[${sceneNodeIndex}]`));
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
/** Lightweight skin wrapper. */
|
|
284
|
+
class GLTFSkinIterator extends GLTFObjectIterator {
|
|
285
|
+
/** Resolve the optional inverse-bind-matrix accessor. */
|
|
286
|
+
get inverseBindMatrices() {
|
|
287
|
+
return this.data.inverseBindMatrices === undefined
|
|
288
|
+
? undefined
|
|
289
|
+
: this.iterator.resolveAccessor(this.data.inverseBindMatrices, `${this.path}.inverseBindMatrices`);
|
|
290
|
+
}
|
|
291
|
+
/** Resolve the optional skeleton root node. */
|
|
292
|
+
get skeleton() {
|
|
293
|
+
return this.data.skeleton === undefined
|
|
294
|
+
? undefined
|
|
295
|
+
: this.iterator.resolveNode(this.data.skeleton, `${this.path}.skeleton`);
|
|
296
|
+
}
|
|
297
|
+
/** Iterate resolved joint nodes in source order. */
|
|
298
|
+
get joints() {
|
|
299
|
+
return iterateValues(this.data.joints, (jointNodeIndex, jointIndex) => this.iterator.resolveNode(jointNodeIndex, `${this.path}.joints[${jointIndex}]`));
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
/** Lightweight texture wrapper. */
|
|
303
|
+
class GLTFTextureIterator extends GLTFObjectIterator {
|
|
304
|
+
/** Resolve the optional sampler. */
|
|
305
|
+
get sampler() {
|
|
306
|
+
return this.data.sampler === undefined
|
|
307
|
+
? undefined
|
|
308
|
+
: this.iterator.resolveSampler(this.data.sampler, `${this.path}.sampler`);
|
|
309
|
+
}
|
|
310
|
+
/** Resolve the optional source image. */
|
|
311
|
+
get source() {
|
|
312
|
+
return this.data.source === undefined
|
|
313
|
+
? undefined
|
|
314
|
+
: this.iterator.resolveImage(this.data.source, `${this.path}.source`);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Traverse and transform raw glTF data through lazy, identity-preserving object wrappers.
|
|
319
|
+
*
|
|
320
|
+
* The iterator never clones, links, normalizes, or otherwise postprocesses its input. Wrapper
|
|
321
|
+
* `data` fields are the original mutable JSON objects so extension handlers can transform them in
|
|
322
|
+
* place while using typed reference getters for navigation.
|
|
323
|
+
*/
|
|
324
|
+
export class GLTFIterator {
|
|
325
|
+
/** Original glTF container traversed by this iterator. */
|
|
326
|
+
gltf;
|
|
327
|
+
/** Cached wrapper for each raw source object. */
|
|
328
|
+
objectCache = new WeakMap();
|
|
329
|
+
/** Cached lazy reference facades keyed by their source wrapper. */
|
|
330
|
+
referencesCache = new WeakMap();
|
|
331
|
+
/** Create an iterator over an existing parsed glTF container. */
|
|
332
|
+
constructor(gltf) {
|
|
333
|
+
this.gltf = gltf;
|
|
334
|
+
}
|
|
335
|
+
/** Exact unmodified glTF JSON root. */
|
|
336
|
+
get data() {
|
|
337
|
+
return this.gltf.json;
|
|
338
|
+
}
|
|
339
|
+
/** Return the loaded bytes addressed by a raw bufferView index. */
|
|
340
|
+
getTypedArrayForBufferView(bufferViewIndex) {
|
|
341
|
+
return getBufferViewTypedArray(this.data, this.gltf.buffers, bufferViewIndex);
|
|
342
|
+
}
|
|
343
|
+
/** Return the loaded typed values addressed by a raw accessor index or decoded accessor. */
|
|
344
|
+
getTypedArrayForAccessor(accessor) {
|
|
345
|
+
return getAccessorTypedArray(this.data, this.gltf.buffers, accessor);
|
|
346
|
+
}
|
|
347
|
+
/** Return the loaded bytes addressed by a raw image index. */
|
|
348
|
+
getTypedArrayForImageData(imageIndex) {
|
|
349
|
+
return getImageTypedArray(this.data, this.gltf.buffers, imageIndex);
|
|
350
|
+
}
|
|
351
|
+
/** Return the loaded buffer companion for a raw buffer definition. */
|
|
352
|
+
getLoadedBuffer(buffer) {
|
|
353
|
+
const metadata = this.getMetadata(buffer);
|
|
354
|
+
return this.gltf.buffers[metadata.index];
|
|
355
|
+
}
|
|
356
|
+
/** Return the loaded byte range for a raw buffer-view definition. */
|
|
357
|
+
getLoadedBufferView(bufferView) {
|
|
358
|
+
const buffer = this.getReferences(bufferView).buffer;
|
|
359
|
+
const loadedBuffer = this.getLoadedBuffer(buffer);
|
|
360
|
+
if (!loadedBuffer) {
|
|
361
|
+
return undefined;
|
|
362
|
+
}
|
|
363
|
+
const byteOffset = loadedBuffer.byteOffset + (bufferView.byteOffset || 0);
|
|
364
|
+
return new Uint8Array(loadedBuffer.arrayBuffer, byteOffset, bufferView.byteLength);
|
|
365
|
+
}
|
|
366
|
+
/** Return the loaded image companion for a raw image definition. */
|
|
367
|
+
getLoadedImage(image) {
|
|
368
|
+
return this.gltf.images?.[this.getMetadata(image).index];
|
|
369
|
+
}
|
|
370
|
+
/** Return the loaded file companion for a raw file definition. */
|
|
371
|
+
getLoadedFile(file) {
|
|
372
|
+
return this.gltf.files?.[this.getMetadata(file).index];
|
|
373
|
+
}
|
|
374
|
+
/** Return the loaded asset companion for a raw external-asset definition. */
|
|
375
|
+
getLoadedExternalAsset(externalAsset) {
|
|
376
|
+
return this.gltf.externalAssets?.[this.getMetadata(externalAsset).index];
|
|
377
|
+
}
|
|
378
|
+
/** Append loaded bytes and a raw buffer definition, returning the new buffer index. */
|
|
379
|
+
addBuffer(array) {
|
|
380
|
+
const arrayBuffer = array.buffer.slice(array.byteOffset, array.byteOffset + array.byteLength);
|
|
381
|
+
this.gltf.buffers.push({ arrayBuffer, byteOffset: 0, byteLength: array.byteLength });
|
|
382
|
+
this.data.buffers ||= [];
|
|
383
|
+
this.data.buffers.push({ byteLength: array.byteLength });
|
|
384
|
+
return this.data.buffers.length - 1;
|
|
385
|
+
}
|
|
386
|
+
/** Append a raw bufferView definition and return its index. */
|
|
387
|
+
addBufferView(bufferIndex, byteLength, byteOffset = 0) {
|
|
388
|
+
this.data.bufferViews ||= [];
|
|
389
|
+
this.data.bufferViews.push({ buffer: bufferIndex, byteOffset, byteLength });
|
|
390
|
+
return this.data.bufferViews.length - 1;
|
|
391
|
+
}
|
|
392
|
+
/** Append a raw accessor definition and return its index. */
|
|
393
|
+
addAccessor(bufferViewIndex, accessor) {
|
|
394
|
+
this.data.accessors ||= [];
|
|
395
|
+
this.data.accessors.push({
|
|
396
|
+
bufferView: bufferViewIndex,
|
|
397
|
+
type: getAccessorTypeFromSize(accessor.size),
|
|
398
|
+
componentType: accessor.componentType,
|
|
399
|
+
count: accessor.count,
|
|
400
|
+
min: accessor.min,
|
|
401
|
+
max: accessor.max
|
|
402
|
+
});
|
|
403
|
+
return this.data.accessors.length - 1;
|
|
404
|
+
}
|
|
405
|
+
getReferences(object) {
|
|
406
|
+
const cachedReferences = this.referencesCache.get(object);
|
|
407
|
+
if (cachedReferences) {
|
|
408
|
+
return cachedReferences;
|
|
409
|
+
}
|
|
410
|
+
const objectIterator = this.getObjectIterator(object);
|
|
411
|
+
const references = createReferences(objectIterator);
|
|
412
|
+
this.referencesCache.set(object, references);
|
|
413
|
+
return references;
|
|
414
|
+
}
|
|
415
|
+
/** Return iterator-owned metadata for a raw glTF object. */
|
|
416
|
+
getMetadata(object) {
|
|
417
|
+
const objectIterator = this.getObjectIterator(object);
|
|
418
|
+
const parent = objectIterator instanceof GLTFNestedObjectIterator ? objectIterator.parent.data : undefined;
|
|
419
|
+
return {
|
|
420
|
+
gltf: this.gltf,
|
|
421
|
+
type: objectIterator.type,
|
|
422
|
+
index: objectIterator.index,
|
|
423
|
+
parent,
|
|
424
|
+
path: objectIterator.path
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
/** Resolve the default scene. */
|
|
428
|
+
get scene() {
|
|
429
|
+
return this.data.scene === undefined
|
|
430
|
+
? undefined
|
|
431
|
+
: this.resolveScene(this.data.scene, 'scene').data;
|
|
432
|
+
}
|
|
433
|
+
/** Resolve the optional draft glTF 2.1 thumbnail image. */
|
|
434
|
+
get thumbnail() {
|
|
435
|
+
return this.data.asset.thumbnail === undefined
|
|
436
|
+
? undefined
|
|
437
|
+
: this.resolveImage(this.data.asset.thumbnail, 'asset.thumbnail').data;
|
|
438
|
+
}
|
|
439
|
+
/** Iterate raw accessors in source order. */
|
|
440
|
+
get accessors() {
|
|
441
|
+
return this.iterateCollectionData('accessor');
|
|
442
|
+
}
|
|
443
|
+
/** Iterate raw animations in source order. */
|
|
444
|
+
get animations() {
|
|
445
|
+
return this.iterateCollectionData('animation');
|
|
446
|
+
}
|
|
447
|
+
/** Iterate raw buffers in source order. */
|
|
448
|
+
get buffers() {
|
|
449
|
+
return this.iterateCollectionData('buffer');
|
|
450
|
+
}
|
|
451
|
+
/** Iterate raw buffer views in source order. */
|
|
452
|
+
get bufferViews() {
|
|
453
|
+
return this.iterateCollectionData('bufferView');
|
|
454
|
+
}
|
|
455
|
+
/** Iterate raw cameras in source order. */
|
|
456
|
+
get cameras() {
|
|
457
|
+
return this.iterateCollectionData('camera');
|
|
458
|
+
}
|
|
459
|
+
/** Iterate raw draft glTF 2.1 external assets in source order. */
|
|
460
|
+
get externalAssets() {
|
|
461
|
+
return this.iterateCollectionData('externalAsset');
|
|
462
|
+
}
|
|
463
|
+
/** Iterate raw draft glTF 2.1 files in source order. */
|
|
464
|
+
get files() {
|
|
465
|
+
return this.iterateCollectionData('file');
|
|
466
|
+
}
|
|
467
|
+
/** Iterate raw images in source order. */
|
|
468
|
+
get images() {
|
|
469
|
+
return this.iterateCollectionData('image');
|
|
470
|
+
}
|
|
471
|
+
/** Iterate raw materials in source order. */
|
|
472
|
+
get materials() {
|
|
473
|
+
return this.iterateCollectionData('material');
|
|
474
|
+
}
|
|
475
|
+
/** Iterate raw mesh definitions in source order. */
|
|
476
|
+
get meshes() {
|
|
477
|
+
return this.iterateCollectionData('mesh');
|
|
478
|
+
}
|
|
479
|
+
/** Iterate raw nodes in source order. */
|
|
480
|
+
get nodes() {
|
|
481
|
+
return this.iterateCollectionData('node');
|
|
482
|
+
}
|
|
483
|
+
/** Iterate raw texture samplers in source order. */
|
|
484
|
+
get samplers() {
|
|
485
|
+
return this.iterateCollectionData('sampler');
|
|
486
|
+
}
|
|
487
|
+
/** Iterate raw scenes in source order. */
|
|
488
|
+
get scenes() {
|
|
489
|
+
return this.iterateCollectionData('scene');
|
|
490
|
+
}
|
|
491
|
+
/** Iterate raw skins in source order. */
|
|
492
|
+
get skins() {
|
|
493
|
+
return this.iterateCollectionData('skin');
|
|
494
|
+
}
|
|
495
|
+
/** Iterate raw textures in source order. */
|
|
496
|
+
get textures() {
|
|
497
|
+
return this.iterateCollectionData('texture');
|
|
498
|
+
}
|
|
499
|
+
/** Return whether an extension is declared used or required. */
|
|
500
|
+
hasExtension(extensionName) {
|
|
501
|
+
return (Boolean(this.data.extensionsUsed?.includes(extensionName)) ||
|
|
502
|
+
Boolean(this.data.extensionsRequired?.includes(extensionName)));
|
|
503
|
+
}
|
|
504
|
+
/** Return whether an extension is declared required. */
|
|
505
|
+
isExtensionRequired(extensionName) {
|
|
506
|
+
return Boolean(this.data.extensionsRequired?.includes(extensionName));
|
|
507
|
+
}
|
|
508
|
+
getExtension(objectOrExtensionName, objectExtensionName) {
|
|
509
|
+
const data = typeof objectOrExtensionName === 'string' ? this.data : objectOrExtensionName;
|
|
510
|
+
const extensionName = typeof objectOrExtensionName === 'string' ? objectOrExtensionName : objectExtensionName;
|
|
511
|
+
return data.extensions?.[extensionName];
|
|
512
|
+
}
|
|
513
|
+
setExtension(objectOrExtensionName, extensionNameOrExtension, extensionOrRequired) {
|
|
514
|
+
const isRootExtension = typeof objectOrExtensionName === 'string';
|
|
515
|
+
const data = isRootExtension ? this.data : objectOrExtensionName;
|
|
516
|
+
const extensionName = isRootExtension
|
|
517
|
+
? objectOrExtensionName
|
|
518
|
+
: extensionNameOrExtension;
|
|
519
|
+
const extension = isRootExtension
|
|
520
|
+
? extensionNameOrExtension
|
|
521
|
+
: extensionOrRequired;
|
|
522
|
+
const required = isRootExtension ? Boolean(extensionOrRequired) : false;
|
|
523
|
+
data.extensions ||= {};
|
|
524
|
+
data.extensions[extensionName] = extension;
|
|
525
|
+
this.registerUsedExtension(extensionName);
|
|
526
|
+
if (required) {
|
|
527
|
+
this.registerRequiredExtension(extensionName);
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
/** Register an extension in `extensionsUsed`. */
|
|
531
|
+
registerUsedExtension(extensionName) {
|
|
532
|
+
this.data.extensionsUsed ||= [];
|
|
533
|
+
if (!this.data.extensionsUsed.includes(extensionName)) {
|
|
534
|
+
this.data.extensionsUsed.push(extensionName);
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
/** Register an extension in both `extensionsUsed` and `extensionsRequired`. */
|
|
538
|
+
registerRequiredExtension(extensionName) {
|
|
539
|
+
this.registerUsedExtension(extensionName);
|
|
540
|
+
this.data.extensionsRequired ||= [];
|
|
541
|
+
if (!this.data.extensionsRequired.includes(extensionName)) {
|
|
542
|
+
this.data.extensionsRequired.push(extensionName);
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
removeExtension(objectOrExtensionName, objectExtensionName) {
|
|
546
|
+
const isRootExtension = typeof objectOrExtensionName === 'string';
|
|
547
|
+
const data = isRootExtension ? this.data : objectOrExtensionName;
|
|
548
|
+
const extensionName = isRootExtension ? objectOrExtensionName : objectExtensionName;
|
|
549
|
+
if (data.extensions?.[extensionName] !== undefined) {
|
|
550
|
+
this.recordRemovedExtension(extensionName);
|
|
551
|
+
delete data.extensions[extensionName];
|
|
552
|
+
}
|
|
553
|
+
if (isRootExtension) {
|
|
554
|
+
removeString(this.data.extensionsUsed, extensionName);
|
|
555
|
+
removeString(this.data.extensionsRequired, extensionName);
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
/** Record that an extension payload was consumed by a transformation. */
|
|
559
|
+
recordRemovedExtension(extensionName) {
|
|
560
|
+
const json = this.data;
|
|
561
|
+
json.extensionsRemoved ||= [];
|
|
562
|
+
if (!json.extensionsRemoved.includes(extensionName)) {
|
|
563
|
+
json.extensionsRemoved.push(extensionName);
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
/** Resolve an accessor reference. */
|
|
567
|
+
resolveAccessor(index, sourcePath) {
|
|
568
|
+
return this.resolveCollectionObject('accessor', index, sourcePath);
|
|
569
|
+
}
|
|
570
|
+
/** Resolve a buffer reference. */
|
|
571
|
+
resolveBuffer(index, sourcePath) {
|
|
572
|
+
return this.resolveCollectionObject('buffer', index, sourcePath);
|
|
573
|
+
}
|
|
574
|
+
/** Resolve a buffer-view reference. */
|
|
575
|
+
resolveBufferView(index, sourcePath) {
|
|
576
|
+
return this.resolveCollectionObject('bufferView', index, sourcePath);
|
|
577
|
+
}
|
|
578
|
+
/** Resolve a camera reference. */
|
|
579
|
+
resolveCamera(index, sourcePath) {
|
|
580
|
+
return this.resolveCollectionObject('camera', index, sourcePath);
|
|
581
|
+
}
|
|
582
|
+
/** Resolve a draft external-asset reference. */
|
|
583
|
+
resolveExternalAsset(index, sourcePath) {
|
|
584
|
+
return this.resolveCollectionObject('externalAsset', index, sourcePath);
|
|
585
|
+
}
|
|
586
|
+
/** Resolve a draft file reference. */
|
|
587
|
+
resolveFile(index, sourcePath) {
|
|
588
|
+
return this.resolveCollectionObject('file', index, sourcePath);
|
|
589
|
+
}
|
|
590
|
+
/** Resolve an image reference. */
|
|
591
|
+
resolveImage(index, sourcePath) {
|
|
592
|
+
return this.resolveCollectionObject('image', index, sourcePath);
|
|
593
|
+
}
|
|
594
|
+
/** Resolve a material reference. */
|
|
595
|
+
resolveMaterial(index, sourcePath) {
|
|
596
|
+
return this.resolveCollectionObject('material', index, sourcePath);
|
|
597
|
+
}
|
|
598
|
+
/** Resolve a mesh reference. */
|
|
599
|
+
resolveMesh(index, sourcePath) {
|
|
600
|
+
return this.resolveCollectionObject('mesh', index, sourcePath);
|
|
601
|
+
}
|
|
602
|
+
/** Resolve a node reference. */
|
|
603
|
+
resolveNode(index, sourcePath) {
|
|
604
|
+
return this.resolveCollectionObject('node', index, sourcePath);
|
|
605
|
+
}
|
|
606
|
+
/** Resolve a sampler reference. */
|
|
607
|
+
resolveSampler(index, sourcePath) {
|
|
608
|
+
return this.resolveCollectionObject('sampler', index, sourcePath);
|
|
609
|
+
}
|
|
610
|
+
/** Resolve a scene reference. */
|
|
611
|
+
resolveScene(index, sourcePath) {
|
|
612
|
+
return this.resolveCollectionObject('scene', index, sourcePath);
|
|
613
|
+
}
|
|
614
|
+
/** Resolve a skin reference. */
|
|
615
|
+
resolveSkin(index, sourcePath) {
|
|
616
|
+
return this.resolveCollectionObject('skin', index, sourcePath);
|
|
617
|
+
}
|
|
618
|
+
/** Resolve a texture reference. */
|
|
619
|
+
resolveTexture(index, sourcePath) {
|
|
620
|
+
return this.resolveCollectionObject('texture', index, sourcePath);
|
|
621
|
+
}
|
|
622
|
+
/** Return a cached nested wrapper or create it once. */
|
|
623
|
+
getOrCreateNested(data, createIterator) {
|
|
624
|
+
return this.getOrCreate(data, createIterator);
|
|
625
|
+
}
|
|
626
|
+
/** Iterate one top-level glTF collection lazily. */
|
|
627
|
+
iterateCollection(type) {
|
|
628
|
+
const values = this.getCollection(type);
|
|
629
|
+
return iterateValues(values, (_, index) => this.resolveCollectionObject(type, index, type));
|
|
630
|
+
}
|
|
631
|
+
/** Iterate exact raw objects from one top-level glTF collection. */
|
|
632
|
+
iterateCollectionData(type) {
|
|
633
|
+
return (function* iterateRawObjects(iterator) {
|
|
634
|
+
for (const objectIterator of iterator.iterateCollection(type)) {
|
|
635
|
+
yield objectIterator.data;
|
|
636
|
+
}
|
|
637
|
+
})(this);
|
|
638
|
+
}
|
|
639
|
+
/** Return the registered internal context for a raw glTF object. */
|
|
640
|
+
getObjectIterator(object) {
|
|
641
|
+
const objectIterator = this.objectCache.get(object);
|
|
642
|
+
if (!objectIterator) {
|
|
643
|
+
throw new Error('glTF object is not registered with this iterator');
|
|
644
|
+
}
|
|
645
|
+
return objectIterator;
|
|
646
|
+
}
|
|
647
|
+
/** Resolve and cache one top-level collection object. */
|
|
648
|
+
resolveCollectionObject(type, index, sourcePath) {
|
|
649
|
+
const values = this.getCollection(type);
|
|
650
|
+
const data = values[index];
|
|
651
|
+
if (!data) {
|
|
652
|
+
throw new Error(`Invalid glTF reference at ${sourcePath}: ${type} index ${index} is out of range`);
|
|
653
|
+
}
|
|
654
|
+
return this.getOrCreate(data, () => this.createCollectionObject(type, index, data));
|
|
655
|
+
}
|
|
656
|
+
/** Return the raw array corresponding to a top-level wrapper type. */
|
|
657
|
+
getCollection(type) {
|
|
658
|
+
switch (type) {
|
|
659
|
+
case 'accessor':
|
|
660
|
+
return this.data.accessors || [];
|
|
661
|
+
case 'animation':
|
|
662
|
+
return this.data.animations || [];
|
|
663
|
+
case 'buffer':
|
|
664
|
+
return this.data.buffers || [];
|
|
665
|
+
case 'bufferView':
|
|
666
|
+
return this.data.bufferViews || [];
|
|
667
|
+
case 'camera':
|
|
668
|
+
return this.data.cameras || [];
|
|
669
|
+
case 'externalAsset':
|
|
670
|
+
return this.data.externalAssets || [];
|
|
671
|
+
case 'file':
|
|
672
|
+
return this.data.files || [];
|
|
673
|
+
case 'image':
|
|
674
|
+
return this.data.images || [];
|
|
675
|
+
case 'material':
|
|
676
|
+
return this.data.materials || [];
|
|
677
|
+
case 'mesh':
|
|
678
|
+
return this.data.meshes || [];
|
|
679
|
+
case 'node':
|
|
680
|
+
return this.data.nodes || [];
|
|
681
|
+
case 'sampler':
|
|
682
|
+
return this.data.samplers || [];
|
|
683
|
+
case 'scene':
|
|
684
|
+
return this.data.scenes || [];
|
|
685
|
+
case 'skin':
|
|
686
|
+
return this.data.skins || [];
|
|
687
|
+
case 'texture':
|
|
688
|
+
return this.data.textures || [];
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
/** Create one correctly typed top-level wrapper. */
|
|
692
|
+
createCollectionObject(type, index, data) {
|
|
693
|
+
const path = `${getCollectionName(type)}[${index}]`;
|
|
694
|
+
switch (type) {
|
|
695
|
+
case 'accessor':
|
|
696
|
+
return new GLTFAccessorIterator(this, type, index, data, path);
|
|
697
|
+
case 'animation':
|
|
698
|
+
return new GLTFAnimationIterator(this, type, index, data, path);
|
|
699
|
+
case 'buffer':
|
|
700
|
+
return new GLTFBufferIterator(this, type, index, data, path);
|
|
701
|
+
case 'bufferView':
|
|
702
|
+
return new GLTFBufferViewIterator(this, type, index, data, path);
|
|
703
|
+
case 'camera':
|
|
704
|
+
return new GLTFCameraIterator(this, type, index, data, path);
|
|
705
|
+
case 'externalAsset':
|
|
706
|
+
return new GLTFExternalAssetIterator(this, type, index, data, path);
|
|
707
|
+
case 'file':
|
|
708
|
+
return new GLTFFileIterator(this, type, index, data, path);
|
|
709
|
+
case 'image':
|
|
710
|
+
return new GLTFImageIterator(this, type, index, data, path);
|
|
711
|
+
case 'material':
|
|
712
|
+
return new GLTFMaterialIterator(this, type, index, data, path);
|
|
713
|
+
case 'mesh':
|
|
714
|
+
return new GLTFMeshIterator(this, type, index, data, path);
|
|
715
|
+
case 'node':
|
|
716
|
+
return new GLTFNodeIterator(this, type, index, data, path);
|
|
717
|
+
case 'sampler':
|
|
718
|
+
return new GLTFSamplerIterator(this, type, index, data, path);
|
|
719
|
+
case 'scene':
|
|
720
|
+
return new GLTFSceneIterator(this, type, index, data, path);
|
|
721
|
+
case 'skin':
|
|
722
|
+
return new GLTFSkinIterator(this, type, index, data, path);
|
|
723
|
+
case 'texture':
|
|
724
|
+
return new GLTFTextureIterator(this, type, index, data, path);
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
/** Reuse a wrapper for the same raw source object. */
|
|
728
|
+
getOrCreate(data, createIterator) {
|
|
729
|
+
const cachedIterator = this.objectCache.get(data);
|
|
730
|
+
if (cachedIterator) {
|
|
731
|
+
return cachedIterator;
|
|
732
|
+
}
|
|
733
|
+
const iterator = createIterator();
|
|
734
|
+
this.objectCache.set(data, iterator);
|
|
735
|
+
return iterator;
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
/** Build a lazy relationship facade without resolving any links during construction. */
|
|
739
|
+
function createReferences(object) {
|
|
740
|
+
switch (object.type) {
|
|
741
|
+
case 'accessor':
|
|
742
|
+
return {
|
|
743
|
+
get bufferView() {
|
|
744
|
+
return object.bufferView?.data;
|
|
745
|
+
}
|
|
746
|
+
};
|
|
747
|
+
case 'animation':
|
|
748
|
+
return {
|
|
749
|
+
get channels() {
|
|
750
|
+
return iterateObjectData(object.channels);
|
|
751
|
+
},
|
|
752
|
+
get samplers() {
|
|
753
|
+
return iterateObjectData(object.samplers);
|
|
754
|
+
}
|
|
755
|
+
};
|
|
756
|
+
case 'animationChannel':
|
|
757
|
+
return {
|
|
758
|
+
get sampler() {
|
|
759
|
+
return object.sampler.data;
|
|
760
|
+
},
|
|
761
|
+
get target() {
|
|
762
|
+
return object.target.data;
|
|
763
|
+
}
|
|
764
|
+
};
|
|
765
|
+
case 'animationChannelTarget':
|
|
766
|
+
return {
|
|
767
|
+
get node() {
|
|
768
|
+
return object.node?.data;
|
|
769
|
+
}
|
|
770
|
+
};
|
|
771
|
+
case 'animationSampler':
|
|
772
|
+
return {
|
|
773
|
+
get input() {
|
|
774
|
+
return object.input.data;
|
|
775
|
+
},
|
|
776
|
+
get output() {
|
|
777
|
+
return object.output.data;
|
|
778
|
+
}
|
|
779
|
+
};
|
|
780
|
+
case 'bufferView':
|
|
781
|
+
return {
|
|
782
|
+
get buffer() {
|
|
783
|
+
return object.buffer.data;
|
|
784
|
+
}
|
|
785
|
+
};
|
|
786
|
+
case 'externalAsset':
|
|
787
|
+
return {
|
|
788
|
+
get file() {
|
|
789
|
+
return object.file.data;
|
|
790
|
+
}
|
|
791
|
+
};
|
|
792
|
+
case 'file':
|
|
793
|
+
case 'image':
|
|
794
|
+
return {
|
|
795
|
+
get bufferView() {
|
|
796
|
+
return object.bufferView?.data;
|
|
797
|
+
}
|
|
798
|
+
};
|
|
799
|
+
case 'material':
|
|
800
|
+
return {
|
|
801
|
+
get baseColorTexture() {
|
|
802
|
+
return object.baseColorTexture?.data;
|
|
803
|
+
},
|
|
804
|
+
get metallicRoughnessTexture() {
|
|
805
|
+
return object.metallicRoughnessTexture?.data;
|
|
806
|
+
},
|
|
807
|
+
get normalTexture() {
|
|
808
|
+
return object.normalTexture?.data;
|
|
809
|
+
},
|
|
810
|
+
get occlusionTexture() {
|
|
811
|
+
return object.occlusionTexture?.data;
|
|
812
|
+
},
|
|
813
|
+
get emissiveTexture() {
|
|
814
|
+
return object.emissiveTexture?.data;
|
|
815
|
+
},
|
|
816
|
+
get textures() {
|
|
817
|
+
return iterateObjectData(object.textures);
|
|
818
|
+
}
|
|
819
|
+
};
|
|
820
|
+
case 'textureInfo':
|
|
821
|
+
return {
|
|
822
|
+
get texture() {
|
|
823
|
+
return object.texture.data;
|
|
824
|
+
}
|
|
825
|
+
};
|
|
826
|
+
case 'mesh':
|
|
827
|
+
return {
|
|
828
|
+
get primitives() {
|
|
829
|
+
return iterateObjectData(object.primitives);
|
|
830
|
+
}
|
|
831
|
+
};
|
|
832
|
+
case 'primitive':
|
|
833
|
+
return {
|
|
834
|
+
get attributes() {
|
|
835
|
+
return mapObjectData(object.attributes);
|
|
836
|
+
},
|
|
837
|
+
get indices() {
|
|
838
|
+
return object.indices?.data;
|
|
839
|
+
},
|
|
840
|
+
get material() {
|
|
841
|
+
return object.material?.data;
|
|
842
|
+
},
|
|
843
|
+
get targets() {
|
|
844
|
+
return object.targets.map(mapObjectData);
|
|
845
|
+
}
|
|
846
|
+
};
|
|
847
|
+
case 'node':
|
|
848
|
+
return {
|
|
849
|
+
get camera() {
|
|
850
|
+
return object.camera?.data;
|
|
851
|
+
},
|
|
852
|
+
get children() {
|
|
853
|
+
return iterateObjectData(object.children);
|
|
854
|
+
},
|
|
855
|
+
get skin() {
|
|
856
|
+
return object.skin?.data;
|
|
857
|
+
},
|
|
858
|
+
get mesh() {
|
|
859
|
+
return object.mesh?.data;
|
|
860
|
+
},
|
|
861
|
+
get externalAsset() {
|
|
862
|
+
return object.externalAsset?.data;
|
|
863
|
+
}
|
|
864
|
+
};
|
|
865
|
+
case 'scene':
|
|
866
|
+
return {
|
|
867
|
+
get nodes() {
|
|
868
|
+
return iterateObjectData(object.nodes);
|
|
869
|
+
}
|
|
870
|
+
};
|
|
871
|
+
case 'skin':
|
|
872
|
+
return {
|
|
873
|
+
get inverseBindMatrices() {
|
|
874
|
+
return object.inverseBindMatrices?.data;
|
|
875
|
+
},
|
|
876
|
+
get skeleton() {
|
|
877
|
+
return object.skeleton?.data;
|
|
878
|
+
},
|
|
879
|
+
get joints() {
|
|
880
|
+
return iterateObjectData(object.joints);
|
|
881
|
+
}
|
|
882
|
+
};
|
|
883
|
+
case 'texture':
|
|
884
|
+
return {
|
|
885
|
+
get sampler() {
|
|
886
|
+
return object.sampler?.data;
|
|
887
|
+
},
|
|
888
|
+
get source() {
|
|
889
|
+
return object.source?.data;
|
|
890
|
+
}
|
|
891
|
+
};
|
|
892
|
+
default:
|
|
893
|
+
return {};
|
|
894
|
+
}
|
|
895
|
+
}
|
|
896
|
+
/** Iterate raw array values without creating wrapper arrays. */
|
|
897
|
+
function iterateValues(values, getIterator) {
|
|
898
|
+
return (function* iterate() {
|
|
899
|
+
for (let index = 0; index < values.length; index++) {
|
|
900
|
+
yield getIterator(values[index], index);
|
|
901
|
+
}
|
|
902
|
+
})();
|
|
903
|
+
}
|
|
904
|
+
/** Yield the exact raw object carried by each internal iterator context. */
|
|
905
|
+
function iterateObjectData(objects) {
|
|
906
|
+
return (function* iterateRawData() {
|
|
907
|
+
for (const object of objects) {
|
|
908
|
+
yield object.data;
|
|
909
|
+
}
|
|
910
|
+
})();
|
|
911
|
+
}
|
|
912
|
+
/** Replace internal iterator contexts in a reference map with their exact raw objects. */
|
|
913
|
+
function mapObjectData(objects) {
|
|
914
|
+
return new Map(Array.from(objects, ([name, object]) => [name, object.data]));
|
|
915
|
+
}
|
|
916
|
+
/** Return the JSON collection name for a wrapper type. */
|
|
917
|
+
function getCollectionName(type) {
|
|
918
|
+
switch (type) {
|
|
919
|
+
case 'bufferView':
|
|
920
|
+
return 'bufferViews';
|
|
921
|
+
case 'externalAsset':
|
|
922
|
+
return 'externalAssets';
|
|
923
|
+
case 'mesh':
|
|
924
|
+
return 'meshes';
|
|
925
|
+
default:
|
|
926
|
+
return `${type}s`;
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
/** Remove every occurrence of a string from an optional array. */
|
|
930
|
+
function removeString(values, value) {
|
|
931
|
+
if (!values) {
|
|
932
|
+
return;
|
|
933
|
+
}
|
|
934
|
+
for (let index = values.length - 1; index >= 0; index--) {
|
|
935
|
+
if (values[index] === value) {
|
|
936
|
+
values.splice(index, 1);
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
//# sourceMappingURL=gltf-iterator.js.map
|