@loaders.gl/gltf 4.0.0-alpha.1 → 4.0.0-alpha.11
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/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +2 -2
- package/dist/dist.min.js +5767 -0
- package/dist/es5/bundle.js +6 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/glb-loader.js +56 -0
- package/dist/es5/glb-loader.js.map +1 -0
- package/dist/es5/glb-writer.js +34 -0
- package/dist/es5/glb-writer.js.map +1 -0
- package/dist/es5/gltf-loader.js +81 -0
- package/dist/es5/gltf-loader.js.map +1 -0
- package/dist/es5/gltf-writer.js +35 -0
- package/dist/es5/gltf-writer.js.map +1 -0
- package/dist/es5/index.js +55 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/lib/api/gltf-extensions.js +109 -0
- package/dist/es5/lib/api/gltf-extensions.js.map +1 -0
- package/dist/es5/lib/api/gltf-scenegraph.js +598 -0
- package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -0
- package/dist/es5/lib/api/normalize-gltf-v1.js +331 -0
- package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -0
- package/dist/es5/lib/api/post-process-gltf.js +470 -0
- package/dist/es5/lib/api/post-process-gltf.js.map +1 -0
- package/dist/es5/lib/encoders/encode-glb.js +61 -0
- package/dist/es5/lib/encoders/encode-glb.js.map +1 -0
- package/dist/es5/lib/encoders/encode-gltf.js +20 -0
- package/dist/es5/lib/encoders/encode-gltf.js.map +1 -0
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js +94 -0
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -0
- package/dist/es5/lib/extensions/EXT_texture_webp.js +43 -0
- package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -0
- package/dist/es5/lib/extensions/KHR_binary_gltf.js +39 -0
- package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -0
- package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +247 -0
- package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
- package/dist/es5/lib/extensions/KHR_texture_basisu.js +36 -0
- package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -0
- package/dist/es5/lib/extensions/KHR_texture_transform.js +230 -0
- package/dist/es5/lib/extensions/KHR_texture_transform.js.map +1 -0
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +281 -0
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
- package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +99 -0
- package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
- package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +76 -0
- package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
- package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +113 -0
- package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
- package/dist/es5/lib/gltf-utils/get-typed-array.js +23 -0
- package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -0
- package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +68 -0
- package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
- package/dist/es5/lib/gltf-utils/gltf-constants.js +48 -0
- package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -0
- package/dist/es5/lib/gltf-utils/gltf-utils.js +86 -0
- package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -0
- package/dist/es5/lib/gltf-utils/resolve-url.js +18 -0
- package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -0
- package/dist/es5/lib/parsers/parse-glb.js +120 -0
- package/dist/es5/lib/parsers/parse-glb.js.map +1 -0
- package/dist/es5/lib/parsers/parse-gltf.js +280 -0
- package/dist/es5/lib/parsers/parse-gltf.js.map +1 -0
- package/dist/es5/lib/types/glb-types.js +2 -0
- package/dist/es5/lib/types/glb-types.js.map +1 -0
- package/dist/es5/lib/types/gltf-json-schema.js +2 -0
- package/dist/es5/lib/types/gltf-json-schema.js.map +1 -0
- package/dist/es5/lib/types/gltf-postprocessed-schema.js +2 -0
- package/dist/es5/lib/types/gltf-postprocessed-schema.js.map +1 -0
- package/dist/es5/lib/types/gltf-types.js +2 -0
- package/dist/es5/lib/types/gltf-types.js.map +1 -0
- package/dist/es5/lib/utils/assert.js +12 -0
- package/dist/es5/lib/utils/assert.js.map +1 -0
- package/dist/es5/lib/utils/version.js +9 -0
- package/dist/es5/lib/utils/version.js.map +1 -0
- package/dist/es5/meshopt/meshopt-decoder.js +215 -0
- package/dist/es5/meshopt/meshopt-decoder.js.map +1 -0
- package/dist/es5/webp/webp.js +83 -0
- package/dist/es5/webp/webp.js.map +1 -0
- package/dist/esm/bundle.js +4 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/esm/glb-loader.js +31 -0
- package/dist/esm/glb-loader.js.map +1 -0
- package/dist/esm/glb-writer.js +27 -0
- package/dist/esm/glb-writer.js.map +1 -0
- package/dist/esm/gltf-loader.js +51 -0
- package/dist/esm/gltf-loader.js.map +1 -0
- package/dist/esm/gltf-writer.js +28 -0
- package/dist/esm/gltf-writer.js.map +1 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/api/gltf-extensions.js +35 -0
- package/dist/esm/lib/api/gltf-extensions.js.map +1 -0
- package/dist/esm/lib/api/gltf-scenegraph.js +455 -0
- package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -0
- package/dist/esm/lib/api/normalize-gltf-v1.js +204 -0
- package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -0
- package/dist/esm/lib/api/post-process-gltf.js +396 -0
- package/dist/esm/lib/api/post-process-gltf.js.map +1 -0
- package/dist/esm/lib/encoders/encode-glb.js +54 -0
- package/dist/esm/lib/encoders/encode-glb.js.map +1 -0
- package/dist/esm/lib/encoders/encode-gltf.js +14 -0
- package/dist/esm/lib/encoders/encode-gltf.js.map +1 -0
- package/dist/esm/lib/extensions/EXT_meshopt_compression.js +41 -0
- package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -0
- package/dist/esm/lib/extensions/EXT_texture_webp.js +25 -0
- package/dist/esm/lib/extensions/EXT_texture_webp.js.map +1 -0
- package/dist/esm/lib/extensions/KHR_binary_gltf.js +21 -0
- package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +1 -0
- package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js +111 -0
- package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
- package/dist/esm/lib/extensions/KHR_texture_basisu.js +18 -0
- package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +1 -0
- package/dist/esm/lib/extensions/KHR_texture_transform.js +182 -0
- package/dist/esm/lib/extensions/KHR_texture_transform.js.map +1 -0
- package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js +223 -0
- package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
- package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js +42 -0
- package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
- package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js +33 -0
- package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
- package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js +61 -0
- package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
- package/dist/esm/lib/gltf-utils/get-typed-array.js +16 -0
- package/dist/esm/lib/gltf-utils/get-typed-array.js.map +1 -0
- package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js +62 -0
- package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
- package/dist/esm/lib/gltf-utils/gltf-constants.js +37 -0
- package/dist/esm/lib/gltf-utils/gltf-constants.js.map +1 -0
- package/dist/esm/lib/gltf-utils/gltf-utils.js +74 -0
- package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -0
- package/dist/esm/lib/gltf-utils/resolve-url.js +12 -0
- package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -0
- package/dist/esm/lib/parsers/parse-glb.js +114 -0
- package/dist/esm/lib/parsers/parse-glb.js.map +1 -0
- package/dist/esm/lib/parsers/parse-gltf.js +151 -0
- package/dist/esm/lib/parsers/parse-gltf.js.map +1 -0
- package/dist/esm/lib/types/glb-types.js +2 -0
- package/dist/esm/lib/types/glb-types.js.map +1 -0
- package/dist/esm/lib/types/gltf-json-schema.js +2 -0
- package/dist/esm/lib/types/gltf-json-schema.js.map +1 -0
- package/dist/esm/lib/types/gltf-postprocessed-schema.js +2 -0
- package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +1 -0
- package/dist/esm/lib/types/gltf-types.js +2 -0
- package/dist/esm/lib/types/gltf-types.js.map +1 -0
- package/dist/esm/lib/utils/assert.js +6 -0
- package/dist/esm/lib/utils/assert.js.map +1 -0
- package/dist/esm/lib/utils/version.js +2 -0
- package/dist/esm/lib/utils/version.js.map +1 -0
- package/dist/esm/meshopt/meshopt-decoder.js +91 -0
- package/dist/esm/meshopt/meshopt-decoder.js.map +1 -0
- package/dist/esm/meshopt/meshopt-encoder.ts.disabled +409 -0
- package/dist/esm/webp/webp.js +25 -0
- package/dist/esm/webp/webp.js.map +1 -0
- package/dist/glb-loader.d.ts +14 -0
- package/dist/glb-loader.d.ts.map +1 -0
- package/dist/glb-loader.js +30 -28
- package/dist/glb-writer.d.ts +13 -0
- package/dist/glb-writer.d.ts.map +1 -0
- package/dist/glb-writer.js +32 -26
- package/dist/gltf-loader.d.ts +19 -0
- package/dist/gltf-loader.d.ts.map +1 -0
- package/dist/gltf-loader.js +46 -43
- package/dist/gltf-writer.d.ts +25 -0
- package/dist/gltf-writer.d.ts.map +1 -0
- package/dist/gltf-writer.js +29 -26
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -7
- package/dist/lib/api/gltf-extensions.d.ts +31 -0
- package/dist/lib/api/gltf-extensions.d.ts.map +1 -0
- package/dist/lib/api/gltf-extensions.js +79 -31
- package/dist/lib/api/gltf-scenegraph.d.ts +180 -0
- package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -0
- package/dist/lib/api/gltf-scenegraph.js +578 -513
- package/dist/lib/api/normalize-gltf-v1.d.ts +2 -0
- package/dist/lib/api/normalize-gltf-v1.d.ts.map +1 -0
- package/dist/lib/api/normalize-gltf-v1.js +278 -226
- package/dist/lib/api/post-process-gltf.d.ts +5 -0
- package/dist/lib/api/post-process-gltf.d.ts.map +1 -0
- package/dist/lib/api/post-process-gltf.js +386 -345
- package/dist/lib/encoders/encode-glb.d.ts +15 -0
- package/dist/lib/encoders/encode-glb.d.ts.map +1 -0
- package/dist/lib/encoders/encode-glb.js +67 -58
- package/dist/lib/encoders/encode-gltf.d.ts +20 -0
- package/dist/lib/encoders/encode-gltf.d.ts.map +1 -0
- package/dist/lib/encoders/encode-gltf.js +30 -12
- package/dist/lib/extensions/EXT_meshopt_compression.d.ts +7 -0
- package/dist/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -0
- package/dist/lib/extensions/EXT_meshopt_compression.js +35 -50
- package/dist/lib/extensions/EXT_texture_webp.d.ts +12 -0
- package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -0
- package/dist/lib/extensions/EXT_texture_webp.js +32 -28
- package/dist/lib/extensions/KHR_binary_gltf.d.ts +7 -0
- package/dist/lib/extensions/KHR_binary_gltf.d.ts.map +1 -0
- package/dist/lib/extensions/KHR_binary_gltf.js +36 -23
- package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts +13 -0
- package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -0
- package/dist/lib/extensions/KHR_draco_mesh_compression.js +123 -111
- package/dist/lib/extensions/KHR_texture_basisu.d.ts +12 -0
- package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -0
- package/dist/lib/extensions/KHR_texture_basisu.js +26 -19
- package/dist/lib/extensions/KHR_texture_transform.d.ts +13 -0
- package/dist/lib/extensions/KHR_texture_transform.d.ts.map +1 -0
- package/dist/lib/extensions/KHR_texture_transform.js +227 -0
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts +7 -0
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -0
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.js +290 -0
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts +7 -0
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts.map +1 -0
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.js +54 -44
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts +7 -0
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts.map +1 -0
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +39 -32
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts +7 -0
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -0
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +73 -62
- package/dist/lib/gltf-utils/get-typed-array.d.ts +3 -0
- package/dist/lib/gltf-utils/get-typed-array.d.ts.map +1 -0
- package/dist/lib/gltf-utils/get-typed-array.js +39 -14
- package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts +6 -0
- package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts.map +1 -0
- package/dist/lib/gltf-utils/gltf-attribute-utils.js +65 -65
- package/dist/lib/gltf-utils/gltf-constants.d.ts +21 -0
- package/dist/lib/gltf-utils/gltf-constants.d.ts.map +1 -0
- package/dist/lib/gltf-utils/gltf-constants.js +38 -32
- package/dist/lib/gltf-utils/gltf-utils.d.ts +15 -0
- package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -0
- package/dist/lib/gltf-utils/gltf-utils.js +79 -45
- package/dist/lib/gltf-utils/resolve-url.d.ts +2 -0
- package/dist/lib/gltf-utils/resolve-url.d.ts.map +1 -0
- package/dist/lib/gltf-utils/resolve-url.js +17 -15
- package/dist/lib/parsers/parse-glb.d.ts +20 -0
- package/dist/lib/parsers/parse-glb.d.ts.map +1 -0
- package/dist/lib/parsers/parse-glb.js +143 -105
- package/dist/lib/parsers/parse-gltf.d.ts +18 -0
- package/dist/lib/parsers/parse-gltf.d.ts.map +1 -0
- package/dist/lib/parsers/parse-gltf.js +164 -155
- package/dist/lib/types/glb-types.d.ts +17 -0
- package/dist/lib/types/glb-types.d.ts.map +1 -0
- package/dist/lib/types/glb-types.js +2 -2
- package/dist/lib/types/gltf-json-schema.d.ts +1119 -0
- package/dist/lib/types/gltf-json-schema.d.ts.map +1 -0
- package/dist/lib/types/gltf-json-schema.js +4 -2
- package/dist/lib/types/gltf-postprocessed-schema.d.ts +651 -0
- package/dist/lib/types/gltf-postprocessed-schema.d.ts.map +1 -0
- package/dist/lib/types/gltf-postprocessed-schema.js +4 -2
- package/dist/lib/types/gltf-types.d.ts +26 -0
- package/dist/lib/types/gltf-types.d.ts.map +1 -0
- package/dist/lib/types/gltf-types.js +3 -2
- package/dist/lib/utils/assert.d.ts +2 -0
- package/dist/lib/utils/assert.d.ts.map +1 -0
- package/dist/lib/utils/assert.js +11 -5
- package/dist/lib/utils/version.d.ts +2 -0
- package/dist/lib/utils/version.d.ts.map +1 -0
- package/dist/lib/utils/version.js +7 -2
- package/dist/meshopt/meshopt-decoder.d.ts +6 -0
- package/dist/meshopt/meshopt-decoder.d.ts.map +1 -0
- package/dist/meshopt/meshopt-decoder.js +97 -82
- package/dist/webp/webp.d.ts +7 -0
- package/dist/webp/webp.d.ts.map +1 -0
- package/dist/webp/webp.js +32 -23
- package/package.json +11 -13
- package/src/glb-loader.ts +4 -4
- package/src/glb-writer.ts +11 -3
- package/src/gltf-loader.ts +12 -8
- package/src/gltf-writer.ts +2 -2
- package/src/index.ts +34 -5
- package/src/lib/api/gltf-extensions.ts +14 -3
- package/src/lib/api/gltf-scenegraph.ts +68 -40
- package/src/lib/api/{normalize-gltf-v1.js → normalize-gltf-v1.ts} +20 -17
- package/src/lib/api/post-process-gltf.ts +556 -0
- package/src/lib/encoders/{encode-glb.js → encode-glb.ts} +21 -4
- package/src/lib/encoders/encode-gltf.ts +34 -0
- package/src/lib/extensions/EXT_meshopt_compression.ts +16 -25
- package/src/lib/extensions/EXT_texture_webp.ts +5 -4
- package/src/lib/extensions/KHR_binary_gltf.ts +3 -3
- package/src/lib/extensions/KHR_draco_mesh_compression.ts +8 -8
- package/src/lib/extensions/KHR_texture_basisu.ts +6 -5
- package/src/lib/extensions/KHR_texture_transform.ts +308 -0
- package/src/lib/extensions/deprecated/EXT_feature_metadata.ts +404 -0
- package/src/lib/extensions/deprecated/KHR_lights_punctual.ts +2 -2
- package/src/lib/extensions/deprecated/KHR_materials_unlit.ts +5 -5
- package/src/lib/extensions/deprecated/KHR_techniques_webgl.ts +3 -2
- package/src/lib/gltf-utils/gltf-attribute-utils.ts +1 -1
- package/src/lib/gltf-utils/gltf-constants.ts +2 -2
- package/src/lib/gltf-utils/gltf-utils.ts +31 -0
- package/src/lib/parsers/parse-glb.ts +50 -24
- package/src/lib/parsers/parse-gltf.ts +38 -28
- package/src/lib/types/glb-types.ts +1 -1
- package/src/lib/types/gltf-json-schema.ts +585 -126
- package/src/lib/types/gltf-postprocessed-schema.ts +290 -212
- package/src/lib/types/gltf-types.ts +43 -43
- package/src/lib/utils/{assert.js → assert.ts} +1 -1
- package/dist/bundle.js.map +0 -1
- package/dist/glb-loader.js.map +0 -1
- package/dist/glb-writer.js.map +0 -1
- package/dist/gltf-loader.js.map +0 -1
- package/dist/gltf-writer.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/api/gltf-extensions.js.map +0 -1
- package/dist/lib/api/gltf-scenegraph.js.map +0 -1
- package/dist/lib/api/normalize-gltf-v1.js.map +0 -1
- package/dist/lib/api/post-process-gltf.js.map +0 -1
- package/dist/lib/encoders/encode-glb.js.map +0 -1
- package/dist/lib/encoders/encode-gltf.js.map +0 -1
- package/dist/lib/extensions/EXT_meshopt_compression.js.map +0 -1
- package/dist/lib/extensions/EXT_texture_webp.js.map +0 -1
- package/dist/lib/extensions/KHR_binary_gltf.js.map +0 -1
- package/dist/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
- package/dist/lib/extensions/KHR_texture_basisu.js.map +0 -1
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
- package/dist/lib/gltf-utils/get-typed-array.js.map +0 -1
- package/dist/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
- package/dist/lib/gltf-utils/gltf-constants.js.map +0 -1
- package/dist/lib/gltf-utils/gltf-utils.js.map +0 -1
- package/dist/lib/gltf-utils/resolve-url.js.map +0 -1
- package/dist/lib/parsers/parse-glb.js.map +0 -1
- package/dist/lib/parsers/parse-gltf.js.map +0 -1
- package/dist/lib/types/glb-types.js.map +0 -1
- package/dist/lib/types/gltf-json-schema.js.map +0 -1
- package/dist/lib/types/gltf-postprocessed-schema.js.map +0 -1
- package/dist/lib/types/gltf-types.js.map +0 -1
- package/dist/lib/utils/assert.js.map +0 -1
- package/dist/lib/utils/version.js.map +0 -1
- package/dist/meshopt/meshopt-decoder.js.map +0 -1
- package/dist/webp/webp.js.map +0 -1
- package/src/lib/api/post-process-gltf.js +0 -388
- package/src/lib/encoders/encode-gltf.js +0 -25
- /package/dist/{meshopt → es5/meshopt}/meshopt-encoder.ts.disabled +0 -0
- /package/src/lib/utils/{version.js → version.ts} +0 -0
package/src/index.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/* eslint-disable camelcase, indent */
|
|
2
2
|
export type {GLB} from './lib/types/glb-types';
|
|
3
|
+
|
|
4
|
+
// Raw GLTF Types (i.e. not post-processed)
|
|
3
5
|
export type {
|
|
4
6
|
GLTF,
|
|
5
7
|
GLTFAccessor,
|
|
@@ -14,13 +16,32 @@ export type {
|
|
|
14
16
|
GLTFSkin,
|
|
15
17
|
GLTFTexture,
|
|
16
18
|
GLTFImage,
|
|
19
|
+
GLTFObject,
|
|
17
20
|
// The following extensions are handled by the GLTFLoader and removed from the parsed glTF (disable via options.gltf.excludeExtensions)
|
|
18
21
|
GLTF_KHR_binary_glTF,
|
|
19
22
|
GLTF_KHR_draco_mesh_compression,
|
|
20
23
|
GLTF_KHR_texture_basisu,
|
|
21
24
|
GLTF_EXT_meshopt_compression,
|
|
22
|
-
GLTF_EXT_texture_webp
|
|
23
|
-
|
|
25
|
+
GLTF_EXT_texture_webp,
|
|
26
|
+
GLTF_EXT_feature_metadata,
|
|
27
|
+
GLTF_EXT_feature_metadata_primitive,
|
|
28
|
+
GLTF_EXT_feature_metadata_attribute,
|
|
29
|
+
GLTF_EXT_mesh_features
|
|
30
|
+
} from './lib/types/gltf-json-schema';
|
|
31
|
+
|
|
32
|
+
// Postprocessed types (modified GLTF types)
|
|
33
|
+
export type {
|
|
34
|
+
GLTFPostprocessed,
|
|
35
|
+
GLTFAccessorPostprocessed,
|
|
36
|
+
GLTFNodePostprocessed,
|
|
37
|
+
GLTFMaterialPostprocessed,
|
|
38
|
+
GLTFMeshPostprocessed,
|
|
39
|
+
GLTFMeshPrimitivePostprocessed,
|
|
40
|
+
GLTFImagePostprocessed,
|
|
41
|
+
GLTFTexturePostprocessed
|
|
42
|
+
} from './lib/types/gltf-postprocessed-schema';
|
|
43
|
+
|
|
44
|
+
export type {GLTFWithBuffers} from './lib/types/gltf-types';
|
|
24
45
|
|
|
25
46
|
// glTF loader/writer definition objects
|
|
26
47
|
export {GLTFLoader} from './gltf-loader';
|
|
@@ -31,7 +52,15 @@ export {GLBLoader} from './glb-loader';
|
|
|
31
52
|
export {GLBWriter} from './glb-writer';
|
|
32
53
|
|
|
33
54
|
// glTF Data Access Helper Class
|
|
34
|
-
export {
|
|
55
|
+
export {GLTFScenegraph} from './lib/api/gltf-scenegraph';
|
|
35
56
|
export {postProcessGLTF} from './lib/api/post-process-gltf';
|
|
36
|
-
export
|
|
37
|
-
|
|
57
|
+
export {getMemoryUsageGLTF as _getMemoryUsageGLTF} from './lib/gltf-utils/gltf-utils';
|
|
58
|
+
|
|
59
|
+
/** @deprecated */
|
|
60
|
+
// export type {GLTFMesh as Mesh} from './lib/types/gltf-json-schema';
|
|
61
|
+
/** @deprecated */
|
|
62
|
+
// export type {GLTFNodePostprocessed as Node} from './lib/types/gltf-postprocessed-schema';
|
|
63
|
+
/** @deprecated */
|
|
64
|
+
// export type {GLTFAccessorPostprocessed as Accessor} from './lib/types/gltf-postprocessed-schema';
|
|
65
|
+
// /** @deprecated */
|
|
66
|
+
// export type {GLTFImagePostprocessed as Image} from './lib/types/gltf-postprocessed-schema';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable camelcase */
|
|
2
|
-
import {GLTF} from '../types/gltf-
|
|
2
|
+
import {GLTF} from '../types/gltf-json-schema';
|
|
3
3
|
import type {GLTFLoaderOptions} from '../../gltf-loader';
|
|
4
4
|
|
|
5
5
|
// GLTF 1.0 extensions (decode only)
|
|
@@ -10,18 +10,27 @@ import * as EXT_meshopt_compression from '../extensions/EXT_meshopt_compression'
|
|
|
10
10
|
import * as EXT_texture_webp from '../extensions/EXT_texture_webp';
|
|
11
11
|
import * as KHR_texture_basisu from '../extensions/KHR_texture_basisu';
|
|
12
12
|
import * as KHR_draco_mesh_compression from '../extensions/KHR_draco_mesh_compression';
|
|
13
|
+
import * as KHR_texture_transform from '../extensions/KHR_texture_transform';
|
|
13
14
|
|
|
14
15
|
// Deprecated. These should be handled by rendering library (e.g. luma.gl), not the loader.
|
|
15
16
|
import * as KHR_lights_punctual from '../extensions/deprecated/KHR_lights_punctual';
|
|
16
17
|
import * as KHR_materials_unlit from '../extensions/deprecated/KHR_materials_unlit';
|
|
17
18
|
import * as KHR_techniques_webgl from '../extensions/deprecated/KHR_techniques_webgl';
|
|
19
|
+
import * as EXT_feature_metadata from '../extensions/deprecated/EXT_feature_metadata';
|
|
18
20
|
|
|
19
21
|
// Vendor extensions
|
|
20
22
|
|
|
21
23
|
type GLTFExtensionPlugin = {
|
|
22
24
|
name: string;
|
|
23
25
|
preprocess?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => void;
|
|
24
|
-
decode?: (
|
|
26
|
+
decode?: (
|
|
27
|
+
gltfData: {
|
|
28
|
+
json: GLTF;
|
|
29
|
+
buffers: {arrayBuffer: ArrayBuffer; byteOffset: number; byteLength: number}[];
|
|
30
|
+
},
|
|
31
|
+
options: GLTFLoaderOptions,
|
|
32
|
+
context
|
|
33
|
+
) => Promise<void>;
|
|
25
34
|
encode?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions) => void;
|
|
26
35
|
};
|
|
27
36
|
|
|
@@ -43,7 +52,9 @@ export const EXTENSIONS: GLTFExtensionPlugin[] = [
|
|
|
43
52
|
KHR_draco_mesh_compression,
|
|
44
53
|
KHR_lights_punctual,
|
|
45
54
|
KHR_materials_unlit,
|
|
46
|
-
KHR_techniques_webgl
|
|
55
|
+
KHR_techniques_webgl,
|
|
56
|
+
KHR_texture_transform,
|
|
57
|
+
EXT_feature_metadata
|
|
47
58
|
];
|
|
48
59
|
|
|
49
60
|
/** Call before any resource loading starts */
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import type {GLTFWithBuffers} from '../types/gltf-types';
|
|
1
4
|
import type {
|
|
2
5
|
GLTF,
|
|
3
6
|
GLTFScene,
|
|
@@ -11,7 +14,7 @@ import type {
|
|
|
11
14
|
GLTFImage,
|
|
12
15
|
GLTFBuffer,
|
|
13
16
|
GLTFBufferView
|
|
14
|
-
} from '../types/gltf-
|
|
17
|
+
} from '../types/gltf-json-schema';
|
|
15
18
|
|
|
16
19
|
import {getBinaryImageMetadata} from '@loaders.gl/images';
|
|
17
20
|
import {padToNBytes, copyToArray} from '@loaders.gl/loader-utils';
|
|
@@ -22,35 +25,38 @@ import {
|
|
|
22
25
|
getComponentTypeFromArray
|
|
23
26
|
} from '../gltf-utils/gltf-utils';
|
|
24
27
|
|
|
25
|
-
type
|
|
26
|
-
json: GLTF;
|
|
27
|
-
buffers: any[];
|
|
28
|
-
binary?: ArrayBuffer;
|
|
29
|
-
};
|
|
28
|
+
type Extension = {[key: string]: any};
|
|
30
29
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
30
|
+
function makeDefaultGLTFJson(): GLTF {
|
|
31
|
+
return {
|
|
32
|
+
asset: {
|
|
33
|
+
version: '2.0',
|
|
34
|
+
generator: 'loaders.gl'
|
|
35
|
+
},
|
|
36
|
+
buffers: [],
|
|
37
|
+
extensions: {},
|
|
38
|
+
extensionsRequired: [],
|
|
39
|
+
extensionsUsed: []
|
|
40
|
+
};
|
|
41
|
+
}
|
|
38
42
|
|
|
39
|
-
type Extension = {[key: string]: any};
|
|
40
43
|
/**
|
|
41
44
|
* Class for structured access to GLTF data
|
|
42
45
|
*/
|
|
43
|
-
export
|
|
46
|
+
export class GLTFScenegraph {
|
|
44
47
|
// internal
|
|
45
48
|
gltf: GLTFWithBuffers;
|
|
46
49
|
sourceBuffers: any[];
|
|
47
50
|
byteLength: number;
|
|
48
51
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
// TODO - why is this not GLTFWithBuffers - what happens to images?
|
|
53
|
+
constructor(gltf?: {json: GLTF; buffers?: any[]; images?: any[]}) {
|
|
54
|
+
// Declare locally so
|
|
55
|
+
|
|
56
|
+
this.gltf = {
|
|
57
|
+
json: gltf?.json || makeDefaultGLTFJson(),
|
|
58
|
+
buffers: gltf?.buffers || [],
|
|
59
|
+
images: gltf?.images || []
|
|
54
60
|
};
|
|
55
61
|
this.sourceBuffers = [];
|
|
56
62
|
this.byteLength = 0;
|
|
@@ -68,22 +74,28 @@ export default class GLTFScenegraph {
|
|
|
68
74
|
return this.gltf.json;
|
|
69
75
|
}
|
|
70
76
|
|
|
71
|
-
getApplicationData(key: string):
|
|
77
|
+
getApplicationData(key: string): unknown {
|
|
72
78
|
// TODO - Data is already unpacked by GLBParser
|
|
73
79
|
const data = this.json[key];
|
|
74
80
|
return data;
|
|
75
81
|
}
|
|
76
82
|
|
|
77
|
-
getExtraData(key: string): {[key: string]:
|
|
83
|
+
getExtraData(key: string): {[key: string]: unknown} {
|
|
78
84
|
// TODO - Data is already unpacked by GLBParser
|
|
79
85
|
const extras = this.json.extras || {};
|
|
80
86
|
return extras[key];
|
|
81
87
|
}
|
|
82
88
|
|
|
89
|
+
hasExtension(extensionName: string): boolean {
|
|
90
|
+
const isUsedExtension = this.getUsedExtensions().find((name) => name === extensionName);
|
|
91
|
+
const isRequiredExtension = this.getRequiredExtensions().find((name) => name === extensionName);
|
|
92
|
+
return typeof isUsedExtension === 'string' || typeof isRequiredExtension === 'string';
|
|
93
|
+
}
|
|
94
|
+
|
|
83
95
|
getExtension<T = Extension>(extensionName: string): T | null {
|
|
84
96
|
const isExtension = this.getUsedExtensions().find((name) => name === extensionName);
|
|
85
97
|
const extensions = this.json.extensions || {};
|
|
86
|
-
return isExtension ? extensions[extensionName]
|
|
98
|
+
return isExtension ? (extensions[extensionName] as T) : null;
|
|
87
99
|
}
|
|
88
100
|
|
|
89
101
|
getRequiredExtension<T = Extension>(extensionName: string): T | null {
|
|
@@ -99,6 +111,10 @@ export default class GLTFScenegraph {
|
|
|
99
111
|
return this.json.extensionsUsed || [];
|
|
100
112
|
}
|
|
101
113
|
|
|
114
|
+
getRemovedExtensions(): string[] {
|
|
115
|
+
return (this.json.extensionsRemoved || []) as string[];
|
|
116
|
+
}
|
|
117
|
+
|
|
102
118
|
getObjectExtension<T = Extension>(object: {[key: string]: any}, extensionName: string): T | null {
|
|
103
119
|
const extensions = object.extensions || {};
|
|
104
120
|
return extensions[extensionName];
|
|
@@ -157,7 +173,7 @@ export default class GLTFScenegraph {
|
|
|
157
173
|
if (typeof index === 'object') {
|
|
158
174
|
return index;
|
|
159
175
|
}
|
|
160
|
-
const object = this.json[array] && this.json[array][index];
|
|
176
|
+
const object = this.json[array] && (this.json[array] as {}[])[index];
|
|
161
177
|
if (!object) {
|
|
162
178
|
throw new Error(`glTF file error: Could not find ${array}[${index}]`); // eslint-disable-line
|
|
163
179
|
}
|
|
@@ -234,7 +250,7 @@ export default class GLTFScenegraph {
|
|
|
234
250
|
*/
|
|
235
251
|
addExtraData(key: string, data: object): GLTFScenegraph {
|
|
236
252
|
this.json.extras = this.json.extras || {};
|
|
237
|
-
this.json.extras[key] = data;
|
|
253
|
+
(this.json.extras as Record<string, unknown>)[key] = data;
|
|
238
254
|
return this;
|
|
239
255
|
}
|
|
240
256
|
|
|
@@ -248,19 +264,24 @@ export default class GLTFScenegraph {
|
|
|
248
264
|
return this;
|
|
249
265
|
}
|
|
250
266
|
|
|
251
|
-
setObjectExtension(object:
|
|
252
|
-
// @ts-ignore
|
|
267
|
+
setObjectExtension(object: any, extensionName: string, data: object): void {
|
|
253
268
|
const extensions = object.extensions || {};
|
|
254
269
|
extensions[extensionName] = data;
|
|
255
270
|
// TODO - add to usedExtensions...
|
|
256
271
|
}
|
|
257
272
|
|
|
258
|
-
removeObjectExtension(object:
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
273
|
+
removeObjectExtension(object: any, extensionName: string): void {
|
|
274
|
+
const extensions = object?.extensions || {};
|
|
275
|
+
|
|
276
|
+
if (extensions[extensionName]) {
|
|
277
|
+
this.json.extensionsRemoved = this.json.extensionsRemoved || [];
|
|
278
|
+
const extensionsRemoved = this.json.extensionsRemoved as string[];
|
|
279
|
+
if (!extensionsRemoved.includes(extensionName)) {
|
|
280
|
+
extensionsRemoved.push(extensionName);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
262
284
|
delete extensions[extensionName];
|
|
263
|
-
return extension;
|
|
264
285
|
}
|
|
265
286
|
|
|
266
287
|
/**
|
|
@@ -309,15 +330,22 @@ export default class GLTFScenegraph {
|
|
|
309
330
|
* Removes an extension from the top-level list
|
|
310
331
|
*/
|
|
311
332
|
removeExtension(extensionName: string): void {
|
|
333
|
+
if (this.json.extensions?.[extensionName]) {
|
|
334
|
+
this.json.extensionsRemoved = this.json.extensionsRemoved || [];
|
|
335
|
+
const extensionsRemoved = this.json.extensionsRemoved as string[];
|
|
336
|
+
if (!extensionsRemoved.includes(extensionName)) {
|
|
337
|
+
extensionsRemoved.push(extensionName);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
if (this.json.extensions) {
|
|
341
|
+
delete this.json.extensions[extensionName];
|
|
342
|
+
}
|
|
312
343
|
if (this.json.extensionsRequired) {
|
|
313
344
|
this._removeStringFromArray(this.json.extensionsRequired, extensionName);
|
|
314
345
|
}
|
|
315
346
|
if (this.json.extensionsUsed) {
|
|
316
347
|
this._removeStringFromArray(this.json.extensionsUsed, extensionName);
|
|
317
348
|
}
|
|
318
|
-
if (this.json.extensions) {
|
|
319
|
-
delete this.json.extensions[extensionName];
|
|
320
|
-
}
|
|
321
349
|
}
|
|
322
350
|
|
|
323
351
|
/**
|
|
@@ -344,7 +372,7 @@ export default class GLTFScenegraph {
|
|
|
344
372
|
* `name`, `extensions`, `extras`, `camera`, `children`, `skin`, `rotation`, `scale`, `translation`, `weights`
|
|
345
373
|
* https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#node
|
|
346
374
|
*/
|
|
347
|
-
addNode(node: {meshIndex: number; matrix
|
|
375
|
+
addNode(node: {meshIndex: number; matrix?: number[]}): number {
|
|
348
376
|
const {meshIndex, matrix} = node;
|
|
349
377
|
this.json.nodes = this.json.nodes || [];
|
|
350
378
|
const nodeData = {mesh: meshIndex};
|
|
@@ -357,7 +385,7 @@ export default class GLTFScenegraph {
|
|
|
357
385
|
}
|
|
358
386
|
|
|
359
387
|
/** Adds a mesh to the json part */
|
|
360
|
-
addMesh(mesh: {attributes: object; indices
|
|
388
|
+
addMesh(mesh: {attributes: object; indices?: object; material?: number; mode?: number}): number {
|
|
361
389
|
const {attributes, indices, material, mode = 4} = mesh;
|
|
362
390
|
const accessors = this._addAttributes(attributes);
|
|
363
391
|
|
|
@@ -434,7 +462,7 @@ export default class GLTFScenegraph {
|
|
|
434
462
|
* Add one untyped source buffer, create a matching glTF `bufferView`, and return its index
|
|
435
463
|
* @param buffer
|
|
436
464
|
*/
|
|
437
|
-
addBufferView(buffer: any): number {
|
|
465
|
+
addBufferView(buffer: any, bufferIndex = 0, byteOffset = this.byteLength): number {
|
|
438
466
|
const byteLength = buffer.byteLength;
|
|
439
467
|
assert(Number.isFinite(byteLength));
|
|
440
468
|
|
|
@@ -443,9 +471,9 @@ export default class GLTFScenegraph {
|
|
|
443
471
|
this.sourceBuffers.push(buffer);
|
|
444
472
|
|
|
445
473
|
const glTFBufferView = {
|
|
446
|
-
buffer:
|
|
474
|
+
buffer: bufferIndex,
|
|
447
475
|
// Write offset from the start of the binary body
|
|
448
|
-
byteOffset
|
|
476
|
+
byteOffset,
|
|
449
477
|
byteLength
|
|
450
478
|
};
|
|
451
479
|
|
|
@@ -80,22 +80,24 @@ const GLTF_KEYS = {
|
|
|
80
80
|
* Converts (normalizes) glTF v1 to v2
|
|
81
81
|
*/
|
|
82
82
|
class GLTFV1Normalizer {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
83
|
+
idToIndexMap = {
|
|
84
|
+
animations: {},
|
|
85
|
+
accessors: {},
|
|
86
|
+
buffers: {},
|
|
87
|
+
bufferViews: {},
|
|
88
|
+
images: {},
|
|
89
|
+
materials: {},
|
|
90
|
+
meshes: {},
|
|
91
|
+
nodes: {},
|
|
92
|
+
samplers: {},
|
|
93
|
+
scenes: {},
|
|
94
|
+
skins: {},
|
|
95
|
+
textures: {}
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
json;
|
|
99
|
+
|
|
100
|
+
// constructor() {}
|
|
99
101
|
|
|
100
102
|
/**
|
|
101
103
|
* Convert (normalize) glTF < 2.0 to glTF 2.0
|
|
@@ -296,7 +298,8 @@ class GLTFV1Normalizer {
|
|
|
296
298
|
roughnessFactor: 1
|
|
297
299
|
};
|
|
298
300
|
|
|
299
|
-
const textureId =
|
|
301
|
+
const textureId =
|
|
302
|
+
material.values?.tex || material.values?.texture2d_0 || material.values?.diffuseTex;
|
|
300
303
|
const textureIndex = json.textures.findIndex((texture) => texture.id === textureId);
|
|
301
304
|
if (textureIndex !== -1) {
|
|
302
305
|
material.pbrMetallicRoughness.baseColorTexture = {index: textureIndex};
|