@loaders.gl/scene 5.0.0-beta.1 → 5.0.0-beta.4
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/DRACO-README.md +15 -0
- package/README.md +7 -1
- package/THIRD-PARTY-NOTICES.md +4 -1
- package/dist/dist.dev.js +8894 -5137
- package/dist/dist.min.js +32 -24
- package/dist/draco/bundled.cjs +37 -0
- package/dist/draco/bundled.cjs.map +7 -0
- package/dist/draco/bundled.d.ts +6 -0
- package/dist/draco/bundled.d.ts.map +1 -0
- package/dist/draco/bundled.js +7 -0
- package/dist/draco/bundled.js.map +1 -0
- package/dist/draco/draco-format.cjs +41 -0
- package/dist/draco/draco-format.cjs.map +7 -0
- package/dist/draco/draco-format.d.ts +15 -0
- package/dist/draco/draco-format.d.ts.map +1 -0
- package/dist/draco/draco-format.js +18 -0
- package/dist/draco/draco-format.js.map +1 -0
- package/dist/draco/draco-javascript-loader-with-parser.cjs +44 -0
- package/dist/draco/draco-javascript-loader-with-parser.cjs.map +7 -0
- package/dist/draco/draco-javascript-loader-with-parser.d.ts +34 -0
- package/dist/draco/draco-javascript-loader-with-parser.d.ts.map +1 -0
- package/dist/draco/draco-javascript-loader-with-parser.js +14 -0
- package/dist/draco/draco-javascript-loader-with-parser.js.map +1 -0
- package/dist/draco/draco-libraries.cjs +61 -0
- package/dist/draco/draco-libraries.cjs.map +7 -0
- package/dist/draco/draco-libraries.d.ts +28 -0
- package/dist/draco/draco-libraries.d.ts.map +1 -0
- package/dist/draco/draco-libraries.js +33 -0
- package/dist/draco/draco-libraries.js.map +1 -0
- package/dist/draco/draco-library-options.cjs +80 -0
- package/dist/draco/draco-library-options.cjs.map +7 -0
- package/dist/draco/draco-library-options.d.ts +16 -0
- package/dist/draco/draco-library-options.d.ts.map +1 -0
- package/dist/draco/draco-library-options.js +52 -0
- package/dist/draco/draco-library-options.js.map +1 -0
- package/dist/draco/draco-loader-options.cjs +37 -0
- package/dist/draco/draco-loader-options.cjs.map +7 -0
- package/dist/draco/draco-loader-options.d.ts +27 -0
- package/dist/draco/draco-loader-options.d.ts.map +1 -0
- package/dist/draco/draco-loader-options.js +12 -0
- package/dist/draco/draco-loader-options.js.map +1 -0
- package/dist/draco/draco-loader-types.cjs +88 -0
- package/dist/draco/draco-loader-types.cjs.map +7 -0
- package/dist/draco/draco-loader-types.d.ts +69 -0
- package/dist/draco/draco-loader-types.d.ts.map +1 -0
- package/dist/draco/draco-loader-types.js +54 -0
- package/dist/draco/draco-loader-types.js.map +1 -0
- package/dist/draco/draco-loader.cjs +51 -0
- package/dist/draco/draco-loader.cjs.map +7 -0
- package/dist/draco/draco-loader.d.ts +39 -0
- package/dist/draco/draco-loader.d.ts.map +1 -0
- package/dist/draco/draco-loader.js +22 -0
- package/dist/draco/draco-loader.js.map +1 -0
- package/dist/draco/draco-wasm-loader-with-parser.cjs +48 -0
- package/dist/draco/draco-wasm-loader-with-parser.cjs.map +7 -0
- package/dist/draco/draco-wasm-loader-with-parser.d.ts +34 -0
- package/dist/draco/draco-wasm-loader-with-parser.d.ts.map +1 -0
- package/dist/draco/draco-wasm-loader-with-parser.js +14 -0
- package/dist/draco/draco-wasm-loader-with-parser.js.map +1 -0
- package/dist/draco/draco-writer.cjs +183 -0
- package/dist/draco/draco-writer.cjs.map +7 -0
- package/dist/draco/draco-writer.d.ts +97 -0
- package/dist/draco/draco-writer.d.ts.map +1 -0
- package/dist/draco/draco-writer.js +166 -0
- package/dist/draco/draco-writer.js.map +1 -0
- package/dist/draco/draco3d/draco3d-types.cjs +76 -0
- package/dist/draco/draco3d/draco3d-types.cjs.map +7 -0
- package/dist/draco/draco3d/draco3d-types.d.ts +303 -0
- package/dist/draco/draco3d/draco3d-types.d.ts.map +1 -0
- package/dist/draco/draco3d/draco3d-types.js +47 -0
- package/dist/draco/draco3d/draco3d-types.js.map +1 -0
- package/dist/draco/draco3d-loader-with-parser.cjs +50 -0
- package/dist/draco/draco3d-loader-with-parser.cjs.map +7 -0
- package/dist/draco/draco3d-loader-with-parser.d.ts +34 -0
- package/dist/draco/draco3d-loader-with-parser.d.ts.map +1 -0
- package/dist/draco/draco3d-loader-with-parser.js +21 -0
- package/dist/draco/draco3d-loader-with-parser.js.map +1 -0
- package/dist/draco/index.cjs +54 -0
- package/dist/draco/index.cjs.map +7 -0
- package/dist/draco/index.d.ts +13 -0
- package/dist/draco/index.d.ts.map +1 -0
- package/dist/draco/index.js +13 -0
- package/dist/draco/index.js.map +1 -0
- package/dist/draco/lib/draco-builder.cjs +660 -0
- package/dist/draco/lib/draco-builder.cjs.map +7 -0
- package/dist/draco/lib/draco-builder.d.ts +175 -0
- package/dist/draco/lib/draco-builder.d.ts.map +1 -0
- package/dist/draco/lib/draco-builder.js +612 -0
- package/dist/draco/lib/draco-builder.js.map +1 -0
- package/dist/draco/lib/draco-library-loader.cjs +47 -0
- package/dist/draco/lib/draco-library-loader.cjs.map +7 -0
- package/dist/draco/lib/draco-library-loader.d.ts +5 -0
- package/dist/draco/lib/draco-library-loader.d.ts.map +1 -0
- package/dist/draco/lib/draco-library-loader.js +23 -0
- package/dist/draco/lib/draco-library-loader.js.map +1 -0
- package/dist/draco/lib/draco-module-loader.cjs +281 -0
- package/dist/draco/lib/draco-module-loader.cjs.map +7 -0
- package/dist/draco/lib/draco-module-loader.d.ts +25 -0
- package/dist/draco/lib/draco-module-loader.d.ts.map +1 -0
- package/dist/draco/lib/draco-module-loader.js +220 -0
- package/dist/draco/lib/draco-module-loader.js.map +1 -0
- package/dist/draco/lib/draco-parser.cjs +598 -0
- package/dist/draco/lib/draco-parser.cjs.map +7 -0
- package/dist/draco/lib/draco-parser.d.ts +142 -0
- package/dist/draco/lib/draco-parser.d.ts.map +1 -0
- package/dist/draco/lib/draco-parser.js +595 -0
- package/dist/draco/lib/draco-parser.js.map +1 -0
- package/dist/draco/lib/draco-types.cjs +19 -0
- package/dist/draco/lib/draco-types.cjs.map +7 -0
- package/dist/draco/lib/draco-types.d.ts +59 -0
- package/dist/draco/lib/draco-types.d.ts.map +1 -0
- package/dist/draco/lib/draco-types.js +5 -0
- package/dist/draco/lib/draco-types.js.map +1 -0
- package/dist/draco/lib/parse-draco.cjs +59 -0
- package/dist/draco/lib/parse-draco.cjs.map +7 -0
- package/dist/draco/lib/parse-draco.d.ts +22 -0
- package/dist/draco/lib/parse-draco.d.ts.map +1 -0
- package/dist/draco/lib/parse-draco.js +32 -0
- package/dist/draco/lib/parse-draco.js.map +1 -0
- package/dist/draco/lib/utils/get-draco-schema.cjs +74 -0
- package/dist/draco/lib/utils/get-draco-schema.cjs.map +7 -0
- package/dist/draco/lib/utils/get-draco-schema.d.ts +7 -0
- package/dist/draco/lib/utils/get-draco-schema.d.ts.map +1 -0
- package/dist/draco/lib/utils/get-draco-schema.js +45 -0
- package/dist/draco/lib/utils/get-draco-schema.js.map +1 -0
- package/dist/draco/lib/utils/version.cjs +31 -0
- package/dist/draco/lib/utils/version.cjs.map +7 -0
- package/dist/draco/lib/utils/version.d.ts +2 -0
- package/dist/draco/lib/utils/version.d.ts.map +1 -0
- package/dist/draco/lib/utils/version.js +8 -0
- package/dist/draco/lib/utils/version.js.map +1 -0
- package/dist/draco/unbundled.cjs +33 -0
- package/dist/draco/unbundled.cjs.map +7 -0
- package/dist/draco/unbundled.d.ts +3 -0
- package/dist/draco/unbundled.d.ts.map +1 -0
- package/dist/draco/unbundled.js +5 -0
- package/dist/draco/unbundled.js.map +1 -0
- package/dist/draco/workers/draco-worker-node.cjs +8 -0
- package/dist/draco/workers/draco-worker-node.cjs.map +7 -0
- package/dist/draco/workers/draco-worker-node.d.ts +2 -0
- package/dist/draco/workers/draco-worker-node.d.ts.map +1 -0
- package/dist/draco/workers/draco-worker-node.js +9 -0
- package/dist/draco/workers/draco-worker-node.js.map +1 -0
- package/dist/draco/workers/draco-worker.cjs +7 -0
- package/dist/draco/workers/draco-worker.cjs.map +7 -0
- package/dist/draco/workers/draco-worker.d.ts +2 -0
- package/dist/draco/workers/draco-worker.d.ts.map +1 -0
- package/dist/draco/workers/draco-worker.js +7 -0
- package/dist/draco/workers/draco-worker.js.map +1 -0
- package/dist/draco/workers/draco-writer-worker-node.cjs +11 -0
- package/dist/draco/workers/draco-writer-worker-node.cjs.map +7 -0
- package/dist/draco/workers/draco-writer-worker-node.d.cts +2 -0
- package/dist/draco/workers/draco-writer-worker-node.d.cts.map +1 -0
- package/dist/draco/workers/draco-writer-worker-node.d.ts +2 -0
- package/dist/draco/workers/draco-writer-worker-node.d.ts.map +1 -0
- package/dist/draco/workers/draco-writer-worker-node.js +9 -0
- package/dist/draco/workers/draco-writer-worker-node.js.map +1 -0
- package/dist/draco/workers/draco-writer-worker.cjs +10 -0
- package/dist/draco/workers/draco-writer-worker.cjs.map +7 -0
- package/dist/draco/workers/draco-writer-worker.d.ts +2 -0
- package/dist/draco/workers/draco-writer-worker.d.ts.map +1 -0
- package/dist/draco/workers/draco-writer-worker.js +7 -0
- package/dist/draco/workers/draco-writer-worker.js.map +1 -0
- package/dist/draco-javascript-loader.cjs +25 -0
- package/dist/draco-javascript-loader.cjs.map +7 -0
- package/dist/draco-javascript-loader.d.ts +2 -0
- package/dist/draco-javascript-loader.d.ts.map +1 -0
- package/dist/draco-javascript-loader.js +3 -0
- package/dist/draco-javascript-loader.js.map +1 -0
- package/dist/draco-library-options.cjs +36 -0
- package/dist/draco-library-options.cjs.map +7 -0
- package/dist/draco-library-options.d.ts +3 -0
- package/dist/draco-library-options.d.ts.map +1 -0
- package/dist/draco-library-options.js +4 -0
- package/dist/draco-library-options.js.map +1 -0
- package/dist/draco-loader-types.cjs +25 -0
- package/dist/draco-loader-types.cjs.map +7 -0
- package/dist/draco-loader-types.d.ts +2 -0
- package/dist/draco-loader-types.d.ts.map +1 -0
- package/dist/draco-loader-types.js +3 -0
- package/dist/draco-loader-types.js.map +1 -0
- package/dist/draco-loader.cjs +25 -0
- package/dist/draco-loader.cjs.map +7 -0
- package/dist/draco-loader.d.ts +2 -0
- package/dist/draco-loader.d.ts.map +1 -0
- package/dist/draco-loader.js +3 -0
- package/dist/draco-loader.js.map +1 -0
- package/dist/draco-wasm-loader.cjs +25 -0
- package/dist/draco-wasm-loader.cjs.map +7 -0
- package/dist/draco-wasm-loader.d.ts +2 -0
- package/dist/draco-wasm-loader.d.ts.map +1 -0
- package/dist/draco-wasm-loader.js +3 -0
- package/dist/draco-wasm-loader.js.map +1 -0
- package/dist/draco-worker-node.js +28640 -0
- package/dist/draco-worker-node.js.map +7 -0
- package/dist/draco-worker.js +18481 -0
- package/dist/draco-worker.js.map +7 -0
- package/dist/draco-writer-worker-node.cjs +28855 -0
- package/dist/draco-writer-worker-node.cjs.map +7 -0
- package/dist/draco-writer-worker.js +18617 -0
- package/dist/draco-writer-worker.js.map +7 -0
- package/dist/draco-writer.cjs +25 -0
- package/dist/draco-writer.cjs.map +7 -0
- package/dist/draco-writer.d.ts +2 -0
- package/dist/draco-writer.d.ts.map +1 -0
- package/dist/draco-writer.js +3 -0
- package/dist/draco-writer.js.map +1 -0
- package/dist/draco3d-loader.cjs +25 -0
- package/dist/draco3d-loader.cjs.map +7 -0
- package/dist/draco3d-loader.d.ts +2 -0
- package/dist/draco3d-loader.d.ts.map +1 -0
- package/dist/draco3d-loader.js +3 -0
- package/dist/draco3d-loader.js.map +1 -0
- package/dist/glb-loader-types.cjs +61 -0
- package/dist/glb-loader-types.cjs.map +7 -0
- package/dist/glb-loader-types.d.ts +2 -0
- package/dist/glb-loader-types.d.ts.map +1 -0
- package/dist/glb-loader-types.js +2 -0
- package/dist/glb-loader-types.js.map +1 -0
- package/dist/glb-loader.cjs +48 -0
- package/dist/glb-loader.cjs.map +7 -0
- package/dist/glb-loader.d.ts +2 -0
- package/dist/glb-loader.d.ts.map +1 -0
- package/dist/glb-loader.js +2 -0
- package/dist/glb-loader.js.map +1 -0
- package/dist/glb-writer.cjs +53 -0
- package/dist/glb-writer.cjs.map +7 -0
- package/dist/glb-writer.d.ts +2 -0
- package/dist/glb-writer.d.ts.map +1 -0
- package/dist/glb-writer.js +2 -0
- package/dist/glb-writer.js.map +1 -0
- package/dist/gltf/glb-loader-types.cjs +1 -1
- package/dist/gltf/glb-loader-types.cjs.map +2 -2
- package/dist/gltf/glb-loader-types.d.ts +2 -2
- package/dist/gltf/glb-loader-types.js +1 -1
- package/dist/gltf/glb-loader-types.js.map +1 -1
- package/dist/gltf/gltf-loader-types.cjs +1 -1
- package/dist/gltf/gltf-loader-types.cjs.map +2 -2
- package/dist/gltf/gltf-loader-types.d.ts +11 -5
- package/dist/gltf/gltf-loader-types.d.ts.map +1 -1
- package/dist/gltf/gltf-loader-types.js +1 -1
- package/dist/gltf/gltf-loader-types.js.map +1 -1
- package/dist/gltf/gltf-loader.cjs.map +1 -1
- package/dist/gltf/gltf-loader.d.ts +4 -4
- package/dist/gltf/gltf-loader.d.ts.map +1 -1
- package/dist/gltf/index.cjs +2 -0
- package/dist/gltf/index.cjs.map +2 -2
- package/dist/gltf/index.d.ts +2 -2
- package/dist/gltf/index.d.ts.map +1 -1
- package/dist/gltf/index.js +1 -1
- package/dist/gltf/index.js.map +1 -1
- package/dist/gltf/lib/api/gltf-extensions.cjs +7 -2
- package/dist/gltf/lib/api/gltf-extensions.cjs.map +2 -2
- package/dist/gltf/lib/api/gltf-extensions.d.ts.map +1 -1
- package/dist/gltf/lib/api/gltf-extensions.js +7 -5
- package/dist/gltf/lib/api/gltf-extensions.js.map +1 -1
- package/dist/gltf/lib/encoders/encode-gltf-draco.cjs +12 -2
- package/dist/gltf/lib/encoders/encode-gltf-draco.cjs.map +2 -2
- package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts +1 -1
- package/dist/gltf/lib/encoders/encode-gltf-draco.d.ts.map +1 -1
- package/dist/gltf/lib/encoders/encode-gltf-draco.js +1 -1
- package/dist/gltf/lib/encoders/encode-gltf-draco.js.map +1 -1
- package/dist/gltf/lib/extensions/EXT_texture_webp.cjs +1 -0
- package/dist/gltf/lib/extensions/EXT_texture_webp.cjs.map +2 -2
- package/dist/gltf/lib/extensions/EXT_texture_webp.d.ts.map +1 -1
- package/dist/gltf/lib/extensions/EXT_texture_webp.js +3 -0
- package/dist/gltf/lib/extensions/EXT_texture_webp.js.map +1 -1
- package/dist/gltf/lib/extensions/KHR_accessor_float64.cjs +45 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.cjs.map +7 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.d.ts +6 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.js +20 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.js.map +1 -0
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs +2 -2
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.cjs.map +2 -2
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -1
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js +1 -1
- package/dist/gltf/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs +12 -3
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs.map +2 -2
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts +2 -1
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts.map +1 -1
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js +9 -3
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js.map +1 -1
- package/dist/gltf/lib/extensions/MSFT_texture_dds.cjs +64 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.cjs.map +7 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.d.ts +12 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.js +39 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.js.map +1 -0
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.cjs +1 -1
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.cjs.map +2 -2
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -1
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.js +3 -1
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.js.map +1 -1
- package/dist/gltf/lib/parsers/parse-gltf.cjs +27 -2
- package/dist/gltf/lib/parsers/parse-gltf.cjs.map +3 -3
- package/dist/gltf/lib/parsers/parse-gltf.d.ts.map +1 -1
- package/dist/gltf/lib/parsers/parse-gltf.js +23 -5
- package/dist/gltf/lib/parsers/parse-gltf.js.map +1 -1
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.cjs.map +1 -1
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.d.ts +1 -1
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-texture-procedurals.cjs +19 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.d.ts +45 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.js +5 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.js.map +1 -0
- package/dist/gltf/lib/types/gltf-types.cjs.map +1 -1
- package/dist/gltf/lib/types/gltf-types.d.ts +7 -0
- package/dist/gltf/lib/types/gltf-types.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-zod-schema.cjs +3 -0
- package/dist/gltf/lib/types/gltf-zod-schema.cjs.map +2 -2
- package/dist/gltf/lib/types/gltf-zod-schema.d.ts +6 -1
- package/dist/gltf/lib/types/gltf-zod-schema.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-zod-schema.js +4 -0
- package/dist/gltf/lib/types/gltf-zod-schema.js.map +1 -1
- package/dist/gltf/lib/utils/version.cjs +1 -1
- package/dist/gltf/lib/utils/version.js +1 -1
- package/dist/gltf/schema.cjs +3 -0
- package/dist/gltf/schema.cjs.map +2 -2
- package/dist/gltf/schema.d.ts +1 -0
- package/dist/gltf/schema.d.ts.map +1 -1
- package/dist/gltf/schema.js +1 -0
- package/dist/gltf/schema.js.map +1 -1
- package/dist/gltf-loader-types.cjs +73 -0
- package/dist/gltf-loader-types.cjs.map +7 -0
- package/dist/gltf-loader-types.d.ts +2 -0
- package/dist/gltf-loader-types.d.ts.map +1 -0
- package/dist/gltf-loader-types.js +2 -0
- package/dist/gltf-loader-types.js.map +1 -0
- package/dist/gltf-loader.cjs +48 -0
- package/dist/gltf-loader.cjs.map +7 -0
- package/dist/gltf-loader.d.ts +2 -0
- package/dist/gltf-loader.d.ts.map +1 -0
- package/dist/gltf-loader.js +2 -0
- package/dist/gltf-loader.js.map +1 -0
- package/dist/gltf-source.cjs +238 -0
- package/dist/gltf-source.cjs.map +7 -0
- package/dist/gltf-source.d.ts +2 -0
- package/dist/gltf-source.d.ts.map +1 -0
- package/dist/gltf-source.js +2 -0
- package/dist/gltf-source.js.map +1 -0
- package/dist/gltf-writer.cjs +69 -0
- package/dist/gltf-writer.cjs.map +7 -0
- package/dist/gltf-writer.d.ts +2 -0
- package/dist/gltf-writer.d.ts.map +1 -0
- package/dist/gltf-writer.js +2 -0
- package/dist/gltf-writer.js.map +1 -0
- package/dist/index.cjs +16 -0
- package/dist/index.cjs.map +2 -2
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/libs/DRACO-LICENSE +252 -0
- package/dist/libs/README.md +20 -0
- package/dist/libs/draco_decoder.js +34 -0
- package/dist/libs/draco_decoder.mjs +37 -0
- package/dist/libs/draco_decoder.wasm +0 -0
- package/dist/libs/draco_decoder_gltf.wasm +0 -0
- package/dist/libs/draco_encoder.js +98 -0
- package/dist/libs/draco_encoder.mjs +101 -0
- package/dist/libs/draco_encoder.wasm +0 -0
- package/dist/libs/draco_wasm_wrapper.js +117 -0
- package/dist/libs/draco_wasm_wrapper.mjs +120 -0
- package/dist/libs/draco_wasm_wrapper_gltf.js +116 -0
- package/dist/libs/draco_wasm_wrapper_gltf.mjs +119 -0
- package/dist/materialx/parse-materialx.cjs +61 -0
- package/dist/materialx/parse-materialx.cjs.map +7 -0
- package/dist/materialx/parse-materialx.d.ts +23 -0
- package/dist/materialx/parse-materialx.d.ts.map +1 -0
- package/dist/materialx/parse-materialx.js +39 -0
- package/dist/materialx/parse-materialx.js.map +1 -0
- package/dist/materialx/procedural-graph.cjs +77 -0
- package/dist/materialx/procedural-graph.cjs.map +7 -0
- package/dist/materialx/procedural-graph.d.ts +40 -0
- package/dist/materialx/procedural-graph.d.ts.map +1 -0
- package/dist/materialx/procedural-graph.js +59 -0
- package/dist/materialx/procedural-graph.js.map +1 -0
- package/dist/materialx-loader-types.cjs +57 -0
- package/dist/materialx-loader-types.cjs.map +7 -0
- package/dist/materialx-loader-types.d.ts +34 -0
- package/dist/materialx-loader-types.d.ts.map +1 -0
- package/dist/materialx-loader-types.js +20 -0
- package/dist/materialx-loader-types.js.map +1 -0
- package/dist/materialx-loader.cjs +40 -0
- package/dist/materialx-loader.cjs.map +7 -0
- package/dist/materialx-loader.d.ts +19 -0
- package/dist/materialx-loader.d.ts.map +1 -0
- package/dist/materialx-loader.js +14 -0
- package/dist/materialx-loader.js.map +1 -0
- package/dist/mtl-loader-types.cjs +64 -0
- package/dist/mtl-loader-types.cjs.map +7 -0
- package/dist/mtl-loader-types.d.ts +2 -0
- package/dist/mtl-loader-types.d.ts.map +1 -0
- package/dist/mtl-loader-types.js +2 -0
- package/dist/mtl-loader-types.js.map +1 -0
- package/dist/mtl-loader.cjs +47 -0
- package/dist/mtl-loader.cjs.map +7 -0
- package/dist/mtl-loader.d.ts +2 -0
- package/dist/mtl-loader.d.ts.map +1 -0
- package/dist/mtl-loader.js +2 -0
- package/dist/mtl-loader.js.map +1 -0
- package/dist/obj/mtl-loader-types.cjs +2 -2
- package/dist/obj/mtl-loader-types.cjs.map +2 -2
- package/dist/obj/mtl-loader-types.d.ts +2 -2
- package/dist/obj/mtl-loader-types.js +2 -2
- package/dist/obj/mtl-loader-types.js.map +1 -1
- package/dist/obj/mtl-loader.cjs +1 -1
- package/dist/obj/mtl-loader.cjs.map +2 -2
- package/dist/obj/mtl-loader.js +1 -1
- package/dist/obj/mtl-loader.js.map +1 -1
- package/dist/obj/obj-loader-types.cjs +2 -2
- package/dist/obj/obj-loader-types.cjs.map +2 -2
- package/dist/obj/obj-loader-types.js +2 -2
- package/dist/obj/obj-loader-types.js.map +1 -1
- package/dist/obj/obj-writer.cjs +1 -1
- package/dist/obj/obj-writer.js +1 -1
- package/dist/obj-loader-types.cjs +71 -0
- package/dist/obj-loader-types.cjs.map +7 -0
- package/dist/obj-loader-types.d.ts +2 -0
- package/dist/obj-loader-types.d.ts.map +1 -0
- package/dist/obj-loader-types.js +2 -0
- package/dist/obj-loader-types.js.map +1 -0
- package/dist/obj-loader.cjs +163 -0
- package/dist/obj-loader.cjs.map +7 -0
- package/dist/obj-loader.d.ts +2 -0
- package/dist/obj-loader.d.ts.map +1 -0
- package/dist/obj-loader.js +2 -0
- package/dist/obj-loader.js.map +1 -0
- package/dist/obj-worker.js +586 -117
- package/dist/obj-writer.cjs +167 -0
- package/dist/obj-writer.cjs.map +7 -0
- package/dist/obj-writer.d.ts +2 -0
- package/dist/obj-writer.d.ts.map +1 -0
- package/dist/obj-writer.js +2 -0
- package/dist/obj-writer.js.map +1 -0
- package/dist/usd/usd-loader-types.cjs +2 -2
- package/dist/usd/usd-loader-types.cjs.map +2 -2
- package/dist/usd/usd-loader-types.js +2 -2
- package/dist/usd/usd-loader-types.js.map +1 -1
- package/dist/usd-loader-types.cjs +69 -0
- package/dist/usd-loader-types.cjs.map +7 -0
- package/dist/usd-loader-types.d.ts +2 -0
- package/dist/usd-loader-types.d.ts.map +1 -0
- package/dist/usd-loader-types.js +2 -0
- package/dist/usd-loader-types.js.map +1 -0
- package/dist/usd-loader.cjs +43 -0
- package/dist/usd-loader.cjs.map +7 -0
- package/dist/usd-loader.d.ts +2 -0
- package/dist/usd-loader.d.ts.map +1 -0
- package/dist/usd-loader.js +2 -0
- package/dist/usd-loader.js.map +1 -0
- package/package.json +136 -71
- package/src/draco/bundled.ts +10 -0
- package/src/draco/draco-format.ts +20 -0
- package/src/draco/draco-javascript-loader-with-parser.ts +26 -0
- package/src/draco/draco-libraries.ts +35 -0
- package/src/draco/draco-library-options.ts +76 -0
- package/src/draco/draco-loader-options.ts +33 -0
- package/src/draco/draco-loader-types.ts +78 -0
- package/src/draco/draco-loader.ts +45 -0
- package/src/draco/draco-wasm-loader-with-parser.ts +31 -0
- package/src/draco/draco-writer.ts +252 -0
- package/src/draco/draco3d/draco3d-types.ts +498 -0
- package/src/draco/draco3d-loader-with-parser.ts +34 -0
- package/src/draco/index.ts +46 -0
- package/src/draco/lib/draco-builder.ts +935 -0
- package/src/draco/lib/draco-library-loader.ts +38 -0
- package/src/draco/lib/draco-module-loader.ts +370 -0
- package/src/draco/lib/draco-parser.ts +776 -0
- package/src/draco/lib/draco-types.ts +72 -0
- package/src/draco/lib/parse-draco.ts +51 -0
- package/src/draco/lib/utils/get-draco-schema.ts +65 -0
- package/src/draco/lib/utils/version.ts +8 -0
- package/src/draco/libs/DRACO-LICENSE +252 -0
- package/src/draco/libs/README.md +20 -0
- package/src/draco/libs/draco_decoder.js +34 -0
- package/src/draco/libs/draco_decoder.wasm +0 -0
- package/src/draco/libs/draco_decoder_gltf.wasm +0 -0
- package/src/draco/libs/draco_encoder.js +98 -0
- package/src/draco/libs/draco_encoder.wasm +0 -0
- package/src/draco/libs/draco_wasm_wrapper.js +117 -0
- package/src/draco/libs/draco_wasm_wrapper_gltf.js +116 -0
- package/src/draco/unbundled.ts +6 -0
- package/src/draco/workers/draco-worker-node.ts +10 -0
- package/src/draco/workers/draco-worker.ts +8 -0
- package/src/draco/workers/draco-writer-worker-node.cjs +21 -0
- package/src/draco/workers/draco-writer-worker-node.ts +13 -0
- package/src/draco/workers/draco-writer-worker.ts +11 -0
- package/src/draco-javascript-loader.ts +2 -0
- package/src/draco-library-options.ts +6 -0
- package/src/draco-loader-types.ts +2 -0
- package/src/draco-loader.ts +2 -0
- package/src/draco-wasm-loader.ts +2 -0
- package/src/draco-writer.ts +2 -0
- package/src/draco3d-loader.ts +2 -0
- package/src/glb-loader-types.ts +1 -0
- package/src/glb-loader.ts +1 -0
- package/src/glb-writer.ts +1 -0
- package/src/gltf/glb-loader-types.ts +1 -1
- package/src/gltf/gltf-loader-types.ts +11 -5
- package/src/gltf/gltf-loader.ts +4 -4
- package/src/gltf/index.ts +4 -1
- package/src/gltf/lib/api/gltf-extensions.ts +7 -2
- package/src/gltf/lib/encoders/encode-gltf-draco.ts +2 -2
- package/src/gltf/lib/extensions/EXT_texture_webp.ts +3 -0
- package/src/gltf/lib/extensions/KHR_accessor_float64.ts +22 -0
- package/src/gltf/lib/extensions/KHR_draco_mesh_compression.ts +2 -1
- package/src/gltf/lib/extensions/KHR_gaussian_splatting.ts +17 -3
- package/src/gltf/lib/extensions/MSFT_texture_dds.ts +52 -0
- package/src/gltf/lib/extensions/utils/3d-tiles-utils.ts +5 -1
- package/src/gltf/lib/parsers/parse-gltf.ts +34 -5
- package/src/gltf/lib/types/gltf-ext-gaussian-splatting-schema.ts +1 -1
- package/src/gltf/lib/types/gltf-texture-procedurals.ts +67 -0
- package/src/gltf/lib/types/gltf-types.ts +8 -0
- package/src/gltf/lib/types/gltf-zod-schema.ts +5 -0
- package/src/gltf/schema.ts +1 -0
- package/src/gltf-loader-types.ts +1 -0
- package/src/gltf-loader.ts +1 -0
- package/src/gltf-source.ts +1 -0
- package/src/gltf-writer.ts +1 -0
- package/src/index.ts +8 -0
- package/src/materialx/README.md +5 -0
- package/src/materialx/parse-materialx.ts +70 -0
- package/src/materialx/procedural-graph.ts +94 -0
- package/src/materialx-loader-types.ts +24 -0
- package/src/materialx-loader.ts +15 -0
- package/src/mtl-loader-types.ts +1 -0
- package/src/mtl-loader.ts +1 -0
- package/src/obj/mtl-loader-types.ts +1 -1
- package/src/obj/mtl-loader.ts +1 -1
- package/src/obj/obj-loader-types.ts +1 -1
- package/src/obj-loader-types.ts +1 -0
- package/src/obj-loader.ts +1 -0
- package/src/obj-writer.ts +1 -0
- package/src/usd/usd-loader-types.ts +1 -1
- package/src/usd-loader-types.ts +1 -0
- package/src/usd-loader.ts +1 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/draco/lib/draco-library-loader.ts
|
|
21
|
+
var draco_library_loader_exports = {};
|
|
22
|
+
__export(draco_library_loader_exports, {
|
|
23
|
+
isBrowser: () => import_worker_utils.isBrowser,
|
|
24
|
+
loadLibrary: () => loadLibrary
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(draco_library_loader_exports);
|
|
27
|
+
var import_worker_utils = require("@loaders.gl/core/worker-utils");
|
|
28
|
+
async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null, moduleLibraryName = null) {
|
|
29
|
+
if (import_worker_utils.isBrowser && options.useLocalLibraries && !options.CDN && libraryName && options.modules?.[libraryName] === void 0) {
|
|
30
|
+
const directory = import_worker_utils.isWorker ? "./libs" : `modules/${moduleName}/dist/libs`;
|
|
31
|
+
options = {
|
|
32
|
+
...options,
|
|
33
|
+
modules: {
|
|
34
|
+
[libraryName]: `${directory}/${libraryName}`,
|
|
35
|
+
...moduleLibraryName ? { [moduleLibraryName]: `${directory}/${moduleLibraryName}` } : {},
|
|
36
|
+
...options.modules
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return await (0, import_worker_utils.loadLibrary)(libraryUrl, moduleName, options, libraryName, moduleLibraryName);
|
|
41
|
+
}
|
|
42
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
43
|
+
0 && (module.exports = {
|
|
44
|
+
isBrowser,
|
|
45
|
+
loadLibrary
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=draco-library-loader.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/draco/lib/draco-library-loader.ts"],
|
|
4
|
+
"sourcesContent": ["// SPDX-License-Identifier: MIT\n\nimport {\n isBrowser,\n isWorker,\n loadLibrary as loadCoreLibrary,\n type LoadLibraryOptions\n} from '@loaders.gl/core/worker-utils';\n\nexport {isBrowser, type LoadLibraryOptions};\n\n/** Resolves local Draco assets inside scene without changing core's format-neutral library paths. */\nexport async function loadLibrary(\n libraryUrl: string,\n moduleName: string | null = null,\n options: LoadLibraryOptions = {},\n libraryName: string | null = null,\n moduleLibraryName: string | null = null\n): Promise<unknown> {\n if (\n isBrowser &&\n options.useLocalLibraries &&\n !options.CDN &&\n libraryName &&\n options.modules?.[libraryName] === undefined\n ) {\n const directory = isWorker ? './libs' : `modules/${moduleName}/dist/libs`;\n options = {\n ...options,\n modules: {\n [libraryName]: `${directory}/${libraryName}`,\n ...(moduleLibraryName ? {[moduleLibraryName]: `${directory}/${moduleLibraryName}`} : {}),\n ...options.modules\n }\n };\n }\n return await loadCoreLibrary(libraryUrl, moduleName, options, libraryName, moduleLibraryName);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,0BAKO;AAKP,eAAsB,YACpB,YACA,aAA4B,MAC5B,UAA8B,CAAC,GAC/B,cAA6B,MAC7B,oBAAmC,MACjB;AAClB,MACE,iCACA,QAAQ,qBACR,CAAC,QAAQ,OACT,eACA,QAAQ,UAAU,WAAW,MAAM,QACnC;AACA,UAAM,YAAY,+BAAW,WAAW,WAAW,UAAU;AAC7D,cAAU;AAAA,MACR,GAAG;AAAA,MACH,SAAS;AAAA,QACP,CAAC,WAAW,GAAG,GAAG,SAAS,IAAI,WAAW;AAAA,QAC1C,GAAI,oBAAoB,EAAC,CAAC,iBAAiB,GAAG,GAAG,SAAS,IAAI,iBAAiB,GAAE,IAAI,CAAC;AAAA,QACtF,GAAG,QAAQ;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACA,SAAO,UAAM,oBAAAA,aAAgB,YAAY,YAAY,SAAS,aAAa,iBAAiB;AAC9F;",
|
|
6
|
+
"names": ["loadCoreLibrary"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { isBrowser, type LoadLibraryOptions } from '@loaders.gl/core/worker-utils';
|
|
2
|
+
export { isBrowser, type LoadLibraryOptions };
|
|
3
|
+
/** Resolves local Draco assets inside scene without changing core's format-neutral library paths. */
|
|
4
|
+
export declare function loadLibrary(libraryUrl: string, moduleName?: string | null, options?: LoadLibraryOptions, libraryName?: string | null, moduleLibraryName?: string | null): Promise<unknown>;
|
|
5
|
+
//# sourceMappingURL=draco-library-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draco-library-loader.d.ts","sourceRoot":"","sources":["../../../src/draco/lib/draco-library-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EAGT,KAAK,kBAAkB,EACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAC,SAAS,EAAE,KAAK,kBAAkB,EAAC,CAAC;AAE5C,qGAAqG;AACrG,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,OAAO,GAAE,kBAAuB,EAChC,WAAW,GAAE,MAAM,GAAG,IAAW,EACjC,iBAAiB,GAAE,MAAM,GAAG,IAAW,GACtC,OAAO,CAAC,OAAO,CAAC,CAmBlB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
import { isBrowser, isWorker, loadLibrary as loadCoreLibrary } from '@loaders.gl/core/worker-utils';
|
|
3
|
+
export { isBrowser };
|
|
4
|
+
/** Resolves local Draco assets inside scene without changing core's format-neutral library paths. */
|
|
5
|
+
export async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null, moduleLibraryName = null) {
|
|
6
|
+
if (isBrowser &&
|
|
7
|
+
options.useLocalLibraries &&
|
|
8
|
+
!options.CDN &&
|
|
9
|
+
libraryName &&
|
|
10
|
+
options.modules?.[libraryName] === undefined) {
|
|
11
|
+
const directory = isWorker ? './libs' : `modules/${moduleName}/dist/libs`;
|
|
12
|
+
options = {
|
|
13
|
+
...options,
|
|
14
|
+
modules: {
|
|
15
|
+
[libraryName]: `${directory}/${libraryName}`,
|
|
16
|
+
...(moduleLibraryName ? { [moduleLibraryName]: `${directory}/${moduleLibraryName}` } : {}),
|
|
17
|
+
...options.modules
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
return await loadCoreLibrary(libraryUrl, moduleName, options, libraryName, moduleLibraryName);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=draco-library-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draco-library-loader.js","sourceRoot":"","sources":["../../../src/draco/lib/draco-library-loader.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,OAAO,EACL,SAAS,EACT,QAAQ,EACR,WAAW,IAAI,eAAe,EAE/B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAC,SAAS,EAA0B,CAAC;AAE5C,qGAAqG;AACrG,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAAkB,EAClB,aAA4B,IAAI,EAChC,UAA8B,EAAE,EAChC,cAA6B,IAAI,EACjC,oBAAmC,IAAI;IAEvC,IACE,SAAS;QACT,OAAO,CAAC,iBAAiB;QACzB,CAAC,OAAO,CAAC,GAAG;QACZ,WAAW;QACX,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,SAAS,EAC5C,CAAC;QACD,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,UAAU,YAAY,CAAC;QAC1E,OAAO,GAAG;YACR,GAAG,OAAO;YACV,OAAO,EAAE;gBACP,CAAC,WAAW,CAAC,EAAE,GAAG,SAAS,IAAI,WAAW,EAAE;gBAC5C,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAC,CAAC,iBAAiB,CAAC,EAAE,GAAG,SAAS,IAAI,iBAAiB,EAAE,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxF,GAAG,OAAO,CAAC,OAAO;aACnB;SACF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAChG,CAAC"}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/draco/lib/draco-module-loader.ts
|
|
21
|
+
var draco_module_loader_exports = {};
|
|
22
|
+
__export(draco_module_loader_exports, {
|
|
23
|
+
DRACO_EXTERNAL_LIBRARIES: () => import_draco_libraries2.DRACO_EXTERNAL_LIBRARIES,
|
|
24
|
+
DRACO_EXTERNAL_LIBRARY_URLS: () => import_draco_libraries2.DRACO_EXTERNAL_LIBRARY_URLS,
|
|
25
|
+
loadDracoDecoderModule: () => loadDracoDecoderModule,
|
|
26
|
+
loadDracoDecoderModuleFromDraco3D: () => loadDracoDecoderModuleFromDraco3D,
|
|
27
|
+
loadDracoDecoderModuleFromLibrary: () => loadDracoDecoderModuleFromLibrary,
|
|
28
|
+
loadDracoEncoderModule: () => loadDracoEncoderModule
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(draco_module_loader_exports);
|
|
31
|
+
var import_loader_utils = require("@loaders.gl/core/loader-utils");
|
|
32
|
+
var import_draco_library_loader = require("./draco-library-loader.cjs");
|
|
33
|
+
var import_draco_libraries = require("../draco-libraries.cjs");
|
|
34
|
+
var import_draco_libraries2 = require("../draco-libraries.cjs");
|
|
35
|
+
var libraryDecoderPromises = /* @__PURE__ */ new Map();
|
|
36
|
+
var libraryEncoderPromises = /* @__PURE__ */ new Map();
|
|
37
|
+
var injectedDecoderPromises = /* @__PURE__ */ new WeakMap();
|
|
38
|
+
var injectedEncoderPromises = /* @__PURE__ */ new WeakMap();
|
|
39
|
+
async function loadDracoDecoderModule(options = {}, type, profile = "full") {
|
|
40
|
+
const draco3DModule = getInjectedDraco3DModule(options);
|
|
41
|
+
if (draco3DModule) {
|
|
42
|
+
return await loadDracoDecoderModuleFromDraco3D(draco3DModule);
|
|
43
|
+
}
|
|
44
|
+
return await loadDracoDecoderModuleFromLibrary(
|
|
45
|
+
options,
|
|
46
|
+
type === "js" ? "javascript" : type,
|
|
47
|
+
profile
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
async function loadDracoDecoderModuleFromLibrary(options = {}, type, profile = "full") {
|
|
51
|
+
const cacheKey = getLibraryCacheKey(`${type}:${profile}`, options);
|
|
52
|
+
let decoderPromise = libraryDecoderPromises.get(cacheKey);
|
|
53
|
+
if (!decoderPromise) {
|
|
54
|
+
decoderPromise = loadDracoDecoderWithFallback(options, type, profile);
|
|
55
|
+
libraryDecoderPromises.set(cacheKey, decoderPromise);
|
|
56
|
+
}
|
|
57
|
+
return await decoderPromise;
|
|
58
|
+
}
|
|
59
|
+
async function loadDracoDecoderModuleFromDraco3D(draco3DModule) {
|
|
60
|
+
const typedDraco3DModule = validateDracoDecoderModule(draco3DModule);
|
|
61
|
+
let decoderPromise = injectedDecoderPromises.get(typedDraco3DModule);
|
|
62
|
+
if (!decoderPromise) {
|
|
63
|
+
decoderPromise = (0, import_loader_utils.initializeWasmModule)(
|
|
64
|
+
() => typedDraco3DModule.createDecoderModule({}),
|
|
65
|
+
(draco) => ({ draco })
|
|
66
|
+
);
|
|
67
|
+
injectedDecoderPromises.set(typedDraco3DModule, decoderPromise);
|
|
68
|
+
}
|
|
69
|
+
return await decoderPromise;
|
|
70
|
+
}
|
|
71
|
+
async function loadDracoEncoderModule(options = {}) {
|
|
72
|
+
const draco3DModule = getInjectedDraco3DModule(options);
|
|
73
|
+
if (draco3DModule) {
|
|
74
|
+
const typedDraco3DModule = validateDracoEncoderModule(draco3DModule);
|
|
75
|
+
let encoderPromise2 = injectedEncoderPromises.get(typedDraco3DModule);
|
|
76
|
+
if (!encoderPromise2) {
|
|
77
|
+
encoderPromise2 = (0, import_loader_utils.initializeWasmModule)(
|
|
78
|
+
() => typedDraco3DModule.createEncoderModule({}),
|
|
79
|
+
(draco) => ({ draco })
|
|
80
|
+
);
|
|
81
|
+
injectedEncoderPromises.set(typedDraco3DModule, encoderPromise2);
|
|
82
|
+
}
|
|
83
|
+
return await encoderPromise2;
|
|
84
|
+
}
|
|
85
|
+
const cacheKey = getLibraryCacheKey("encoder", options);
|
|
86
|
+
let encoderPromise = libraryEncoderPromises.get(cacheKey);
|
|
87
|
+
if (!encoderPromise) {
|
|
88
|
+
encoderPromise = loadDracoEncoder(options);
|
|
89
|
+
libraryEncoderPromises.set(cacheKey, encoderPromise);
|
|
90
|
+
}
|
|
91
|
+
return await encoderPromise;
|
|
92
|
+
}
|
|
93
|
+
async function loadDracoDecoderWithFallback(options, type, profile) {
|
|
94
|
+
try {
|
|
95
|
+
return await loadDracoDecoder(options, type, profile);
|
|
96
|
+
} catch (wasmError) {
|
|
97
|
+
if (type === "javascript") {
|
|
98
|
+
throw wasmError;
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
return await loadDracoDecoder(options, "javascript", "full");
|
|
102
|
+
} catch (javascriptError) {
|
|
103
|
+
throw new AggregateError(
|
|
104
|
+
[wasmError, javascriptError],
|
|
105
|
+
"Draco decoder could not load either the WebAssembly or JavaScript backend"
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
var decoderInitializationQueue = Promise.resolve();
|
|
111
|
+
async function loadDracoDecoder(options, type, profile) {
|
|
112
|
+
const initialization = decoderInitializationQueue.then(
|
|
113
|
+
() => loadDracoDecoderInternal(options, type, profile)
|
|
114
|
+
);
|
|
115
|
+
decoderInitializationQueue = initialization.then(
|
|
116
|
+
() => void 0,
|
|
117
|
+
() => void 0
|
|
118
|
+
);
|
|
119
|
+
return await initialization;
|
|
120
|
+
}
|
|
121
|
+
async function loadDracoDecoderInternal(options, type, profile) {
|
|
122
|
+
if (type === "javascript") {
|
|
123
|
+
let decoderLibrary2;
|
|
124
|
+
try {
|
|
125
|
+
decoderLibrary2 = await (0, import_draco_library_loader.loadLibrary)(
|
|
126
|
+
import_draco_libraries.DRACO_EXTERNAL_LIBRARY_URLS[import_draco_libraries.DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],
|
|
127
|
+
"scene",
|
|
128
|
+
options,
|
|
129
|
+
import_draco_libraries.DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER,
|
|
130
|
+
"draco_decoder.mjs"
|
|
131
|
+
);
|
|
132
|
+
} catch (error) {
|
|
133
|
+
if (import_draco_library_loader.isBrowser || options.useLocalLibraries) {
|
|
134
|
+
throw error;
|
|
135
|
+
}
|
|
136
|
+
decoderLibrary2 = await (0, import_draco_library_loader.loadLibrary)(
|
|
137
|
+
import_draco_libraries.DRACO_EXTERNAL_LIBRARY_URLS[import_draco_libraries.DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],
|
|
138
|
+
"scene",
|
|
139
|
+
{ ...options, useLocalLibraries: true },
|
|
140
|
+
import_draco_libraries.DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER,
|
|
141
|
+
"draco_decoder.mjs"
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
const decoderInitializer2 = getLibraryExport(decoderLibrary2, "DracoDecoderModule") || globalThis.DracoDecoderModule;
|
|
145
|
+
return await initializeDracoModule(decoderInitializer2);
|
|
146
|
+
}
|
|
147
|
+
let decoderLibrary;
|
|
148
|
+
let wasmBinary;
|
|
149
|
+
try {
|
|
150
|
+
[decoderLibrary, wasmBinary] = await loadDecoderWasmAssets(options, profile);
|
|
151
|
+
} catch (error) {
|
|
152
|
+
if (import_draco_library_loader.isBrowser || options.useLocalLibraries) {
|
|
153
|
+
throw error;
|
|
154
|
+
}
|
|
155
|
+
[decoderLibrary, wasmBinary] = await loadDecoderWasmAssets(
|
|
156
|
+
{ ...options, useLocalLibraries: true },
|
|
157
|
+
profile
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
const decoderInitializer = getLibraryExport(decoderLibrary, "DracoDecoderModule") || globalThis.DracoDecoderModule;
|
|
161
|
+
return await initializeDracoModule(decoderInitializer, wasmBinary);
|
|
162
|
+
}
|
|
163
|
+
async function loadDecoderWasmAssets(options, profile) {
|
|
164
|
+
const decoderLibrary = profile === "gltf" ? import_draco_libraries.DRACO_EXTERNAL_LIBRARIES.GLTF_DECODER : import_draco_libraries.DRACO_EXTERNAL_LIBRARIES.DECODER;
|
|
165
|
+
const decoderWasm = profile === "gltf" ? import_draco_libraries.DRACO_EXTERNAL_LIBRARIES.GLTF_DECODER_WASM : import_draco_libraries.DRACO_EXTERNAL_LIBRARIES.DECODER_WASM;
|
|
166
|
+
return await Promise.all([
|
|
167
|
+
(0, import_draco_library_loader.loadLibrary)(
|
|
168
|
+
import_draco_libraries.DRACO_EXTERNAL_LIBRARY_URLS[decoderLibrary],
|
|
169
|
+
"scene",
|
|
170
|
+
options,
|
|
171
|
+
decoderLibrary,
|
|
172
|
+
profile === "gltf" ? "draco_wasm_wrapper_gltf.mjs" : "draco_wasm_wrapper.mjs"
|
|
173
|
+
),
|
|
174
|
+
(0, import_draco_library_loader.loadLibrary)(
|
|
175
|
+
import_draco_libraries.DRACO_EXTERNAL_LIBRARY_URLS[decoderWasm],
|
|
176
|
+
"scene",
|
|
177
|
+
options,
|
|
178
|
+
decoderWasm
|
|
179
|
+
)
|
|
180
|
+
]);
|
|
181
|
+
}
|
|
182
|
+
async function loadDracoEncoder(options) {
|
|
183
|
+
let encoderLibrary;
|
|
184
|
+
let wasmBinary;
|
|
185
|
+
try {
|
|
186
|
+
[encoderLibrary, wasmBinary] = await loadEncoderWasmAssets(options);
|
|
187
|
+
} catch (error) {
|
|
188
|
+
if (import_draco_library_loader.isBrowser || options.useLocalLibraries) {
|
|
189
|
+
throw error;
|
|
190
|
+
}
|
|
191
|
+
[encoderLibrary, wasmBinary] = await loadEncoderWasmAssets({
|
|
192
|
+
...options,
|
|
193
|
+
useLocalLibraries: true
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
const encoderInitializer = getLibraryExport(encoderLibrary, "DracoEncoderModule") || globalThis.DracoEncoderModule;
|
|
197
|
+
return await initializeDracoModule(encoderInitializer, wasmBinary);
|
|
198
|
+
}
|
|
199
|
+
async function loadEncoderWasmAssets(options) {
|
|
200
|
+
return await Promise.all([
|
|
201
|
+
(0, import_draco_library_loader.loadLibrary)(
|
|
202
|
+
import_draco_libraries.DRACO_EXTERNAL_LIBRARY_URLS[import_draco_libraries.DRACO_EXTERNAL_LIBRARIES.ENCODER],
|
|
203
|
+
"scene",
|
|
204
|
+
options,
|
|
205
|
+
import_draco_libraries.DRACO_EXTERNAL_LIBRARIES.ENCODER,
|
|
206
|
+
"draco_encoder.mjs"
|
|
207
|
+
),
|
|
208
|
+
(0, import_draco_library_loader.loadLibrary)(
|
|
209
|
+
import_draco_libraries.DRACO_EXTERNAL_LIBRARY_URLS[import_draco_libraries.DRACO_EXTERNAL_LIBRARIES.ENCODER_WASM],
|
|
210
|
+
"scene",
|
|
211
|
+
options,
|
|
212
|
+
import_draco_libraries.DRACO_EXTERNAL_LIBRARIES.ENCODER_WASM
|
|
213
|
+
)
|
|
214
|
+
]);
|
|
215
|
+
}
|
|
216
|
+
function initializeDracoModule(initializer, wasmBinary) {
|
|
217
|
+
if (typeof initializer !== "function") {
|
|
218
|
+
throw new Error("Draco module initializer could not be loaded");
|
|
219
|
+
}
|
|
220
|
+
return (0, import_loader_utils.initializeWasmModule)(
|
|
221
|
+
(onInitialized) => initializer({
|
|
222
|
+
...wasmBinary ? { wasmBinary } : {},
|
|
223
|
+
onModuleLoaded: onInitialized
|
|
224
|
+
}),
|
|
225
|
+
(draco) => ({ draco })
|
|
226
|
+
);
|
|
227
|
+
}
|
|
228
|
+
function getLibraryExport(library, exportName) {
|
|
229
|
+
if (typeof library === "function") {
|
|
230
|
+
return library;
|
|
231
|
+
}
|
|
232
|
+
if (library && typeof library === "object") {
|
|
233
|
+
const exports2 = library;
|
|
234
|
+
const exportedInitializer = exports2[exportName] || exports2.default;
|
|
235
|
+
return typeof exportedInitializer === "function" ? exportedInitializer : void 0;
|
|
236
|
+
}
|
|
237
|
+
return void 0;
|
|
238
|
+
}
|
|
239
|
+
function getInjectedDraco3DModule(options) {
|
|
240
|
+
const module2 = options.modules?.draco3d;
|
|
241
|
+
if (!module2) {
|
|
242
|
+
return void 0;
|
|
243
|
+
}
|
|
244
|
+
if (typeof module2 !== "object" && typeof module2 !== "function") {
|
|
245
|
+
throw new Error("Invalid draco3d module");
|
|
246
|
+
}
|
|
247
|
+
return module2;
|
|
248
|
+
}
|
|
249
|
+
function validateDracoDecoderModule(module2) {
|
|
250
|
+
const typedModule = module2;
|
|
251
|
+
if (typeof typedModule?.createDecoderModule !== "function") {
|
|
252
|
+
throw new Error("Invalid draco3d decoder module");
|
|
253
|
+
}
|
|
254
|
+
return typedModule;
|
|
255
|
+
}
|
|
256
|
+
function validateDracoEncoderModule(module2) {
|
|
257
|
+
const typedModule = module2;
|
|
258
|
+
if (typeof typedModule?.createEncoderModule !== "function") {
|
|
259
|
+
throw new Error("Invalid draco3d encoder module");
|
|
260
|
+
}
|
|
261
|
+
return typedModule;
|
|
262
|
+
}
|
|
263
|
+
function getLibraryCacheKey(type, options) {
|
|
264
|
+
const libraryOverrides = Object.entries(options.modules || {}).filter(([name]) => name !== "draco3d").map(([name, value]) => `${name}:${String(value)}`).sort().join("|");
|
|
265
|
+
return [
|
|
266
|
+
type,
|
|
267
|
+
options.useLocalLibraries ? "local" : "remote",
|
|
268
|
+
options.CDN || "",
|
|
269
|
+
libraryOverrides
|
|
270
|
+
].join("|");
|
|
271
|
+
}
|
|
272
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
273
|
+
0 && (module.exports = {
|
|
274
|
+
DRACO_EXTERNAL_LIBRARIES,
|
|
275
|
+
DRACO_EXTERNAL_LIBRARY_URLS,
|
|
276
|
+
loadDracoDecoderModule,
|
|
277
|
+
loadDracoDecoderModuleFromDraco3D,
|
|
278
|
+
loadDracoDecoderModuleFromLibrary,
|
|
279
|
+
loadDracoEncoderModule
|
|
280
|
+
});
|
|
281
|
+
//# sourceMappingURL=draco-module-loader.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/draco/lib/draco-module-loader.ts"],
|
|
4
|
+
"sourcesContent": ["// SPDX-License-Identifier: MIT\n\n// Dynamic DRACO module loading inspired by THREE.DRACOLoader\n// https://github.com/mrdoob/three.js/blob/dev/examples/jsm/loaders/DRACOLoader.js\n// by Don McCurdy / https://www.donmccurdy.com / MIT license\n\nimport {initializeWasmModule} from '@loaders.gl/core/loader-utils';\nimport {isBrowser, loadLibrary, type LoadLibraryOptions} from './draco-library-loader';\nimport type {Draco3D} from '../draco3d/draco3d-types';\n\nimport {DRACO_EXTERNAL_LIBRARIES, DRACO_EXTERNAL_LIBRARY_URLS} from '../draco-libraries';\nexport {DRACO_EXTERNAL_LIBRARIES, DRACO_EXTERNAL_LIBRARY_URLS} from '../draco-libraries';\n\n/** Initialized Draco module returned to the parser or builder. */\nexport type LoadedDracoModule = {draco: Draco3D};\n\n/** Draco decoder build selected for general data or glTF-compatible bitstreams. */\nexport type DracoDecoderProfile = 'full' | 'gltf';\n\n/** Subset of the `draco3d` npm package accepted through `options.modules`. */\nexport type Draco3DModule = {\n /** Creates an initialized decoder module. */\n createDecoderModule?: (options?: Record<string, unknown>) => Promise<Draco3D>;\n /** Creates an initialized encoder module. */\n createEncoderModule?: (options?: Record<string, unknown>) => Promise<Draco3D>;\n};\n\ntype DracoDecoderModule = Required<Pick<Draco3DModule, 'createDecoderModule'>>;\ntype DracoEncoderModule = Required<Pick<Draco3DModule, 'createEncoderModule'>>;\n\ntype DracoModuleInitializerOptions = {\n /** Optional preloaded WASM bytes. */\n wasmBinary?: ArrayBuffer;\n /** Reports an initialized Emscripten module. */\n onModuleLoaded?: (draco: Draco3D) => void;\n};\n\ntype DracoModuleInitializer = (\n options: DracoModuleInitializerOptions\n) => Promise<Draco3D> | undefined;\n\ntype DracoGlobal = typeof globalThis & {\n DracoDecoderModule?: DracoModuleInitializer;\n DracoEncoderModule?: DracoModuleInitializer;\n};\n\nconst libraryDecoderPromises = new Map<string, Promise<LoadedDracoModule>>();\nconst libraryEncoderPromises = new Map<string, Promise<LoadedDracoModule>>();\nconst injectedDecoderPromises = new WeakMap<DracoDecoderModule, Promise<LoadedDracoModule>>();\nconst injectedEncoderPromises = new WeakMap<DracoEncoderModule, Promise<LoadedDracoModule>>();\n\n/** Loads a Draco decoder from either an injected `draco3d` package or external libraries. */\nexport async function loadDracoDecoderModule(\n options: LoadLibraryOptions = {},\n type: 'wasm' | 'js',\n profile: DracoDecoderProfile = 'full'\n): Promise<LoadedDracoModule> {\n const draco3DModule = getInjectedDraco3DModule(options);\n if (draco3DModule) {\n return await loadDracoDecoderModuleFromDraco3D(draco3DModule);\n }\n\n return await loadDracoDecoderModuleFromLibrary(\n options,\n type === 'js' ? 'javascript' : type,\n profile\n );\n}\n\n/** Loads a Draco decoder from external WASM or JavaScript fallback libraries. */\nexport async function loadDracoDecoderModuleFromLibrary(\n options: LoadLibraryOptions = {},\n type: 'wasm' | 'javascript',\n profile: DracoDecoderProfile = 'full'\n): Promise<LoadedDracoModule> {\n const cacheKey = getLibraryCacheKey(`${type}:${profile}`, options);\n let decoderPromise = libraryDecoderPromises.get(cacheKey);\n if (!decoderPromise) {\n decoderPromise = loadDracoDecoderWithFallback(options, type, profile);\n libraryDecoderPromises.set(cacheKey, decoderPromise);\n }\n return await decoderPromise;\n}\n\n/** Loads a decoder from an injected `draco3d` npm package. */\nexport async function loadDracoDecoderModuleFromDraco3D(\n draco3DModule: unknown\n): Promise<LoadedDracoModule> {\n const typedDraco3DModule = validateDracoDecoderModule(draco3DModule);\n let decoderPromise = injectedDecoderPromises.get(typedDraco3DModule);\n if (!decoderPromise) {\n decoderPromise = initializeWasmModule(\n () => typedDraco3DModule.createDecoderModule({}),\n draco => ({draco})\n );\n injectedDecoderPromises.set(typedDraco3DModule, decoderPromise);\n }\n return await decoderPromise;\n}\n\n/** Loads a Draco encoder from an injected `draco3d` package or external WASM libraries. */\nexport async function loadDracoEncoderModule(\n options: LoadLibraryOptions = {}\n): Promise<LoadedDracoModule> {\n const draco3DModule = getInjectedDraco3DModule(options);\n if (draco3DModule) {\n const typedDraco3DModule = validateDracoEncoderModule(draco3DModule);\n let encoderPromise = injectedEncoderPromises.get(typedDraco3DModule);\n if (!encoderPromise) {\n encoderPromise = initializeWasmModule(\n () => typedDraco3DModule.createEncoderModule({}),\n draco => ({draco})\n );\n injectedEncoderPromises.set(typedDraco3DModule, encoderPromise);\n }\n return await encoderPromise;\n }\n\n const cacheKey = getLibraryCacheKey('encoder', options);\n let encoderPromise = libraryEncoderPromises.get(cacheKey);\n if (!encoderPromise) {\n encoderPromise = loadDracoEncoder(options);\n libraryEncoderPromises.set(cacheKey, encoderPromise);\n }\n return await encoderPromise;\n}\n\n/** Loads the selected decoder and retries with the JavaScript backend after a WASM failure. */\nasync function loadDracoDecoderWithFallback(\n options: LoadLibraryOptions,\n type: 'wasm' | 'javascript',\n profile: DracoDecoderProfile\n): Promise<LoadedDracoModule> {\n try {\n return await loadDracoDecoder(options, type, profile);\n } catch (wasmError) {\n if (type === 'javascript') {\n throw wasmError;\n }\n try {\n return await loadDracoDecoder(options, 'javascript', 'full');\n } catch (javascriptError) {\n throw new AggregateError(\n [wasmError, javascriptError],\n 'Draco decoder could not load either the WebAssembly or JavaScript backend'\n );\n }\n }\n}\n\nlet decoderInitializationQueue = Promise.resolve();\n\n/** Loads and initializes one external Draco decoder backend. */\nasync function loadDracoDecoder(\n options: LoadLibraryOptions,\n type: 'wasm' | 'javascript',\n profile: DracoDecoderProfile\n): Promise<LoadedDracoModule> {\n const initialization = decoderInitializationQueue.then(() =>\n loadDracoDecoderInternal(options, type, profile)\n );\n decoderInitializationQueue = initialization.then(\n () => undefined,\n () => undefined\n );\n return await initialization;\n}\n\n/** Performs decoder loading after preceding global initializers have completed. */\nasync function loadDracoDecoderInternal(\n options: LoadLibraryOptions,\n type: 'wasm' | 'javascript',\n profile: DracoDecoderProfile\n): Promise<LoadedDracoModule> {\n if (type === 'javascript') {\n let decoderLibrary: unknown;\n try {\n decoderLibrary = await loadLibrary(\n DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],\n 'scene',\n options,\n DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER,\n 'draco_decoder.mjs'\n );\n } catch (error) {\n if (isBrowser || options.useLocalLibraries) {\n throw error;\n }\n decoderLibrary = await loadLibrary(\n DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],\n 'scene',\n {...options, useLocalLibraries: true},\n DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER,\n 'draco_decoder.mjs'\n );\n }\n const decoderInitializer =\n getLibraryExport(decoderLibrary, 'DracoDecoderModule') ||\n (globalThis as DracoGlobal).DracoDecoderModule;\n return await initializeDracoModule(decoderInitializer);\n }\n\n let decoderLibrary: unknown;\n let wasmBinary: ArrayBuffer;\n try {\n [decoderLibrary, wasmBinary] = await loadDecoderWasmAssets(options, profile);\n } catch (error) {\n if (isBrowser || options.useLocalLibraries) {\n throw error;\n }\n [decoderLibrary, wasmBinary] = await loadDecoderWasmAssets(\n {...options, useLocalLibraries: true},\n profile\n );\n }\n const decoderInitializer =\n getLibraryExport(decoderLibrary, 'DracoDecoderModule') ||\n (globalThis as DracoGlobal).DracoDecoderModule;\n return await initializeDracoModule(decoderInitializer, wasmBinary);\n}\n\n/** Loads the decoder wrapper and WASM binary concurrently. */\nasync function loadDecoderWasmAssets(\n options: LoadLibraryOptions,\n profile: DracoDecoderProfile\n): Promise<[unknown, ArrayBuffer]> {\n const decoderLibrary =\n profile === 'gltf' ? DRACO_EXTERNAL_LIBRARIES.GLTF_DECODER : DRACO_EXTERNAL_LIBRARIES.DECODER;\n const decoderWasm =\n profile === 'gltf'\n ? DRACO_EXTERNAL_LIBRARIES.GLTF_DECODER_WASM\n : DRACO_EXTERNAL_LIBRARIES.DECODER_WASM;\n return await Promise.all([\n loadLibrary(\n DRACO_EXTERNAL_LIBRARY_URLS[decoderLibrary],\n 'scene',\n options,\n decoderLibrary,\n profile === 'gltf' ? 'draco_wasm_wrapper_gltf.mjs' : 'draco_wasm_wrapper.mjs'\n ),\n loadLibrary(\n DRACO_EXTERNAL_LIBRARY_URLS[decoderWasm],\n 'scene',\n options,\n decoderWasm\n ) as Promise<ArrayBuffer>\n ]);\n}\n\n/** Loads and initializes the external Draco WASM encoder. */\nasync function loadDracoEncoder(options: LoadLibraryOptions): Promise<LoadedDracoModule> {\n let encoderLibrary: unknown;\n let wasmBinary: ArrayBuffer;\n try {\n [encoderLibrary, wasmBinary] = await loadEncoderWasmAssets(options);\n } catch (error) {\n if (isBrowser || options.useLocalLibraries) {\n throw error;\n }\n [encoderLibrary, wasmBinary] = await loadEncoderWasmAssets({\n ...options,\n useLocalLibraries: true\n });\n }\n const encoderInitializer =\n getLibraryExport(encoderLibrary, 'DracoEncoderModule') ||\n (globalThis as DracoGlobal).DracoEncoderModule;\n return await initializeDracoModule(encoderInitializer, wasmBinary);\n}\n\n/** Loads the encoder wrapper and WASM binary concurrently. */\nasync function loadEncoderWasmAssets(options: LoadLibraryOptions): Promise<[unknown, ArrayBuffer]> {\n return await Promise.all([\n loadLibrary(\n DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.ENCODER],\n 'scene',\n options,\n DRACO_EXTERNAL_LIBRARIES.ENCODER,\n 'draco_encoder.mjs'\n ),\n loadLibrary(\n DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.ENCODER_WASM],\n 'scene',\n options,\n DRACO_EXTERNAL_LIBRARIES.ENCODER_WASM\n ) as Promise<ArrayBuffer>\n ]);\n}\n\n/** Initializes an Emscripten Draco factory that may use callbacks, promises, or both. */\nfunction initializeDracoModule(\n initializer: DracoModuleInitializer | undefined,\n wasmBinary?: ArrayBuffer\n): Promise<LoadedDracoModule> {\n if (typeof initializer !== 'function') {\n throw new Error('Draco module initializer could not be loaded');\n }\n\n return initializeWasmModule(\n onInitialized =>\n initializer({\n ...(wasmBinary ? {wasmBinary} : {}),\n onModuleLoaded: onInitialized\n }),\n (draco: Draco3D) => ({draco})\n );\n}\n\n/** Resolves a Draco initializer from a direct, named, or default library export. */\nfunction getLibraryExport(\n library: unknown,\n exportName: 'DracoDecoderModule' | 'DracoEncoderModule'\n): DracoModuleInitializer | undefined {\n if (typeof library === 'function') {\n return library as DracoModuleInitializer;\n }\n if (library && typeof library === 'object') {\n const exports = library as Record<string, unknown>;\n const exportedInitializer = exports[exportName] || exports.default;\n return typeof exportedInitializer === 'function'\n ? (exportedInitializer as DracoModuleInitializer)\n : undefined;\n }\n return undefined;\n}\n\n/** Returns and validates the optional injected `draco3d` package reference. */\nfunction getInjectedDraco3DModule(options: LoadLibraryOptions): Draco3DModule | undefined {\n const module = options.modules?.draco3d;\n if (!module) {\n return undefined;\n }\n if (typeof module !== 'object' && typeof module !== 'function') {\n throw new Error('Invalid draco3d module');\n }\n return module as Draco3DModule;\n}\n\n/** Narrows an injected package to the decoder factory interface. */\nfunction validateDracoDecoderModule(module: unknown): DracoDecoderModule {\n const typedModule = module as Draco3DModule;\n if (typeof typedModule?.createDecoderModule !== 'function') {\n throw new Error('Invalid draco3d decoder module');\n }\n return typedModule as DracoDecoderModule;\n}\n\n/** Narrows an injected package to the encoder factory interface. */\nfunction validateDracoEncoderModule(module: unknown): DracoEncoderModule {\n const typedModule = module as Draco3DModule;\n if (typeof typedModule?.createEncoderModule !== 'function') {\n throw new Error('Invalid draco3d encoder module');\n }\n return typedModule as DracoEncoderModule;\n}\n\n/** Builds a stable cache key from the backend and external-library configuration. */\nfunction getLibraryCacheKey(type: string, options: LoadLibraryOptions): string {\n const libraryOverrides = Object.entries(options.modules || {})\n .filter(([name]) => name !== 'draco3d')\n .map(([name, value]) => `${name}:${String(value)}`)\n .sort()\n .join('|');\n return [\n type,\n options.useLocalLibraries ? 'local' : 'remote',\n options.CDN || '',\n libraryOverrides\n ].join('|');\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_draco_libraries", "encoderPromise", "decoderLibrary", "decoderInitializer", "exports", "module"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type LoadLibraryOptions } from "./draco-library-loader.js";
|
|
2
|
+
import type { Draco3D } from "../draco3d/draco3d-types.js";
|
|
3
|
+
export { DRACO_EXTERNAL_LIBRARIES, DRACO_EXTERNAL_LIBRARY_URLS } from "../draco-libraries.js";
|
|
4
|
+
/** Initialized Draco module returned to the parser or builder. */
|
|
5
|
+
export type LoadedDracoModule = {
|
|
6
|
+
draco: Draco3D;
|
|
7
|
+
};
|
|
8
|
+
/** Draco decoder build selected for general data or glTF-compatible bitstreams. */
|
|
9
|
+
export type DracoDecoderProfile = 'full' | 'gltf';
|
|
10
|
+
/** Subset of the `draco3d` npm package accepted through `options.modules`. */
|
|
11
|
+
export type Draco3DModule = {
|
|
12
|
+
/** Creates an initialized decoder module. */
|
|
13
|
+
createDecoderModule?: (options?: Record<string, unknown>) => Promise<Draco3D>;
|
|
14
|
+
/** Creates an initialized encoder module. */
|
|
15
|
+
createEncoderModule?: (options?: Record<string, unknown>) => Promise<Draco3D>;
|
|
16
|
+
};
|
|
17
|
+
/** Loads a Draco decoder from either an injected `draco3d` package or external libraries. */
|
|
18
|
+
export declare function loadDracoDecoderModule(options: LoadLibraryOptions | undefined, type: 'wasm' | 'js', profile?: DracoDecoderProfile): Promise<LoadedDracoModule>;
|
|
19
|
+
/** Loads a Draco decoder from external WASM or JavaScript fallback libraries. */
|
|
20
|
+
export declare function loadDracoDecoderModuleFromLibrary(options: LoadLibraryOptions | undefined, type: 'wasm' | 'javascript', profile?: DracoDecoderProfile): Promise<LoadedDracoModule>;
|
|
21
|
+
/** Loads a decoder from an injected `draco3d` npm package. */
|
|
22
|
+
export declare function loadDracoDecoderModuleFromDraco3D(draco3DModule: unknown): Promise<LoadedDracoModule>;
|
|
23
|
+
/** Loads a Draco encoder from an injected `draco3d` package or external WASM libraries. */
|
|
24
|
+
export declare function loadDracoEncoderModule(options?: LoadLibraryOptions): Promise<LoadedDracoModule>;
|
|
25
|
+
//# sourceMappingURL=draco-module-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draco-module-loader.d.ts","sourceRoot":"","sources":["../../../src/draco/lib/draco-module-loader.ts"],"names":[],"mappings":"AAOA,OAAO,EAAyB,KAAK,kBAAkB,EAAC,kCAA+B;AACvF,OAAO,KAAK,EAAC,OAAO,EAAC,oCAAiC;AAGtD,OAAO,EAAC,wBAAwB,EAAE,2BAA2B,EAAC,8BAA2B;AAEzF,kEAAkE;AAClE,MAAM,MAAM,iBAAiB,GAAG;IAAC,KAAK,EAAE,OAAO,CAAA;CAAC,CAAC;AAEjD,mFAAmF;AACnF,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD,8EAA8E;AAC9E,MAAM,MAAM,aAAa,GAAG;IAC1B,6CAA6C;IAC7C,mBAAmB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9E,6CAA6C;IAC7C,mBAAmB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/E,CAAC;AA0BF,6FAA6F;AAC7F,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,kBAAkB,YAAK,EAChC,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,OAAO,GAAE,mBAA4B,GACpC,OAAO,CAAC,iBAAiB,CAAC,CAW5B;AAED,iFAAiF;AACjF,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,kBAAkB,YAAK,EAChC,IAAI,EAAE,MAAM,GAAG,YAAY,EAC3B,OAAO,GAAE,mBAA4B,GACpC,OAAO,CAAC,iBAAiB,CAAC,CAQ5B;AAED,8DAA8D;AAC9D,wBAAsB,iCAAiC,CACrD,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAW5B;AAED,2FAA2F;AAC3F,wBAAsB,sBAAsB,CAC1C,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAsB5B"}
|