@loaders.gl/gltf 4.0.0-alpha.5 → 4.0.0-alpha.6
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.js +2 -2
- package/dist/dist.min.js +2037 -1013
- 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 +35 -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 +49 -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 +578 -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 +422 -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 +21 -0
- package/dist/es5/lib/encoders/encode-gltf.js.map +1 -0
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js +96 -0
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -0
- package/dist/es5/lib/extensions/EXT_texture_webp.js +44 -0
- package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -0
- package/dist/es5/lib/extensions/KHR_binary_gltf.js +40 -0
- package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -0
- package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +246 -0
- package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
- package/dist/es5/lib/extensions/KHR_texture_basisu.js +37 -0
- package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -0
- package/dist/es5/lib/extensions/KHR_texture_transform.js +229 -0
- package/dist/es5/lib/extensions/KHR_texture_transform.js.map +1 -0
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +103 -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 +62 -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 +287 -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 +7 -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 +441 -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 +341 -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 +42 -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 +110 -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 +181 -0
- package/dist/esm/lib/extensions/KHR_texture_transform.js.map +1 -0
- package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js +77 -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 +54 -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 +156 -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 +3 -2
- package/dist/glb-loader.d.ts.map +1 -1
- package/dist/glb-loader.js +33 -28
- package/dist/glb-writer.d.ts +7 -16
- package/dist/glb-writer.d.ts.map +1 -1
- package/dist/glb-writer.js +34 -26
- package/dist/gltf-loader.d.ts +3 -2
- package/dist/gltf-loader.d.ts.map +1 -1
- package/dist/gltf-loader.js +46 -43
- package/dist/gltf-writer.d.ts +2 -2
- package/dist/gltf-writer.d.ts.map +1 -1
- package/dist/gltf-writer.js +29 -26
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -7
- package/dist/lib/api/gltf-extensions.d.ts +6 -1
- package/dist/lib/api/gltf-extensions.d.ts.map +1 -1
- package/dist/lib/api/gltf-extensions.js +79 -31
- package/dist/lib/api/gltf-scenegraph.d.ts +5 -11
- package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -1
- package/dist/lib/api/gltf-scenegraph.js +563 -512
- package/dist/lib/api/normalize-gltf-v1.d.ts.map +1 -1
- package/dist/lib/api/normalize-gltf-v1.js +278 -229
- package/dist/lib/api/post-process-gltf.js +324 -376
- package/dist/lib/encoders/encode-glb.d.ts +2 -1
- package/dist/lib/encoders/encode-glb.d.ts.map +1 -1
- package/dist/lib/encoders/encode-glb.js +56 -58
- package/dist/lib/encoders/encode-gltf.d.ts +18 -0
- package/dist/lib/encoders/encode-gltf.d.ts.map +1 -1
- package/dist/lib/encoders/encode-gltf.js +33 -12
- package/dist/lib/extensions/EXT_meshopt_compression.d.ts +0 -3
- package/dist/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_meshopt_compression.js +39 -50
- package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_texture_webp.js +35 -28
- package/dist/lib/extensions/KHR_binary_gltf.js +39 -23
- package/dist/lib/extensions/KHR_draco_mesh_compression.js +126 -111
- package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -1
- package/dist/lib/extensions/KHR_texture_basisu.js +29 -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 +230 -0
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts +6 -0
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -0
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.js +118 -0
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.js +57 -44
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +42 -32
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -1
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +76 -62
- package/dist/lib/gltf-utils/get-typed-array.js +39 -14
- package/dist/lib/gltf-utils/gltf-attribute-utils.js +65 -65
- package/dist/lib/gltf-utils/gltf-constants.d.ts +17 -0
- package/dist/lib/gltf-utils/gltf-constants.d.ts.map +1 -1
- package/dist/lib/gltf-utils/gltf-constants.js +38 -32
- package/dist/lib/gltf-utils/gltf-utils.js +52 -45
- package/dist/lib/gltf-utils/resolve-url.js +17 -15
- package/dist/lib/parsers/parse-glb.d.ts +1 -1
- package/dist/lib/parsers/parse-glb.d.ts.map +1 -1
- package/dist/lib/parsers/parse-glb.js +120 -107
- package/dist/lib/parsers/parse-gltf.d.ts +2 -2
- package/dist/lib/parsers/parse-gltf.d.ts.map +1 -1
- package/dist/lib/parsers/parse-gltf.js +187 -154
- package/dist/lib/types/glb-types.d.ts +3 -3
- package/dist/lib/types/glb-types.d.ts.map +1 -1
- package/dist/lib/types/glb-types.js +2 -2
- package/dist/lib/types/gltf-json-schema.d.ts +396 -11
- package/dist/lib/types/gltf-json-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-json-schema.js +4 -2
- package/dist/lib/types/gltf-postprocessed-schema.d.ts +10 -10
- package/dist/lib/types/gltf-postprocessed-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-postprocessed-schema.js +4 -2
- package/dist/lib/types/gltf-types.d.ts +8 -5
- package/dist/lib/types/gltf-types.d.ts.map +1 -1
- package/dist/lib/types/gltf-types.js +3 -2
- package/dist/lib/utils/assert.js +11 -5
- package/dist/lib/utils/version.js +7 -2
- package/dist/meshopt/meshopt-decoder.js +97 -82
- package/dist/webp/webp.d.ts +1 -1
- package/dist/webp/webp.d.ts.map +1 -1
- package/dist/webp/webp.js +32 -23
- package/package.json +9 -8
- package/src/glb-loader.ts +1 -1
- package/src/glb-writer.ts +9 -3
- package/src/gltf-writer.ts +2 -2
- package/src/index.ts +10 -1
- package/src/lib/api/gltf-extensions.ts +13 -2
- package/src/lib/api/gltf-scenegraph.ts +21 -12
- package/src/lib/api/normalize-gltf-v1.ts +2 -1
- package/src/lib/encoders/encode-glb.ts +8 -1
- package/src/lib/encoders/encode-gltf.ts +18 -9
- package/src/lib/extensions/EXT_meshopt_compression.ts +12 -19
- package/src/lib/extensions/EXT_texture_webp.ts +3 -2
- package/src/lib/extensions/KHR_binary_gltf.ts +1 -1
- package/src/lib/extensions/KHR_draco_mesh_compression.ts +1 -1
- package/src/lib/extensions/KHR_texture_basisu.ts +1 -0
- package/src/lib/extensions/KHR_texture_transform.ts +305 -0
- package/src/lib/extensions/deprecated/EXT_feature_metadata.ts +163 -0
- package/src/lib/extensions/deprecated/KHR_materials_unlit.ts +3 -3
- package/src/lib/extensions/deprecated/KHR_techniques_webgl.ts +1 -0
- package/src/lib/gltf-utils/gltf-constants.ts +2 -2
- package/src/lib/parsers/parse-gltf.ts +10 -1
- package/src/lib/types/glb-types.ts +1 -1
- package/src/lib/types/gltf-json-schema.ts +434 -5
- package/src/lib/types/gltf-postprocessed-schema.ts +9 -9
- package/src/lib/types/gltf-types.ts +24 -3
- 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/dist/{meshopt → es5/meshopt}/meshopt-encoder.ts.disabled +0 -0
package/dist/dist.min.js
CHANGED
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
};
|
|
15
15
|
var __export = (target, all) => {
|
|
16
16
|
__markAsModule(target);
|
|
17
|
-
for (var
|
|
18
|
-
__defProp(target,
|
|
17
|
+
for (var name10 in all)
|
|
18
|
+
__defProp(target, name10, { get: all[name10], enumerable: true });
|
|
19
19
|
};
|
|
20
20
|
var __reExport = (target, module, desc) => {
|
|
21
21
|
if (module && typeof module === "object" || typeof module === "function") {
|
|
@@ -37,20 +37,43 @@
|
|
|
37
37
|
}
|
|
38
38
|
});
|
|
39
39
|
|
|
40
|
-
// ../
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
// ../loader-utils/src/lib/env-utils/assert.ts
|
|
41
|
+
function assert(condition, message) {
|
|
42
|
+
if (!condition) {
|
|
43
|
+
throw new Error(message || "loader assertion failed.");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
var init_assert = __esm({
|
|
47
|
+
"../loader-utils/src/lib/env-utils/assert.ts"() {
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// ../loader-utils/src/lib/env-utils/globals.ts
|
|
52
|
+
var globals, self_, window_, global_, document_, isBrowser, matches, nodeVersion;
|
|
53
|
+
var init_globals = __esm({
|
|
54
|
+
"../loader-utils/src/lib/env-utils/globals.ts"() {
|
|
55
|
+
globals = {
|
|
56
|
+
self: typeof self !== "undefined" && self,
|
|
57
|
+
window: typeof window !== "undefined" && window,
|
|
58
|
+
global: typeof global !== "undefined" && global,
|
|
59
|
+
document: typeof document !== "undefined" && document
|
|
60
|
+
};
|
|
61
|
+
self_ = globals.self || globals.window || globals.global || {};
|
|
62
|
+
window_ = globals.window || globals.self || globals.global || {};
|
|
63
|
+
global_ = globals.global || globals.self || globals.window || {};
|
|
64
|
+
document_ = globals.document || {};
|
|
65
|
+
isBrowser = Boolean(typeof process !== "object" || String(process) !== "[object process]" || process.browser);
|
|
66
|
+
matches = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
|
|
67
|
+
nodeVersion = matches && parseFloat(matches[1]) || 0;
|
|
45
68
|
}
|
|
46
69
|
});
|
|
47
70
|
|
|
48
71
|
// ../worker-utils/src/lib/env-utils/version.ts
|
|
49
|
-
var DEFAULT_VERSION,
|
|
50
|
-
var
|
|
72
|
+
var DEFAULT_VERSION, VERSION2;
|
|
73
|
+
var init_version2 = __esm({
|
|
51
74
|
"../worker-utils/src/lib/env-utils/version.ts"() {
|
|
52
75
|
DEFAULT_VERSION = "beta";
|
|
53
|
-
|
|
76
|
+
VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : DEFAULT_VERSION;
|
|
54
77
|
if (typeof __VERSION__ === "undefined") {
|
|
55
78
|
console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
|
|
56
79
|
}
|
|
@@ -58,35 +81,35 @@
|
|
|
58
81
|
});
|
|
59
82
|
|
|
60
83
|
// ../worker-utils/src/lib/env-utils/assert.ts
|
|
61
|
-
function
|
|
84
|
+
function assert2(condition, message) {
|
|
62
85
|
if (!condition) {
|
|
63
86
|
throw new Error(message || "loaders.gl assertion failed.");
|
|
64
87
|
}
|
|
65
88
|
}
|
|
66
|
-
var
|
|
89
|
+
var init_assert2 = __esm({
|
|
67
90
|
"../worker-utils/src/lib/env-utils/assert.ts"() {
|
|
68
91
|
}
|
|
69
92
|
});
|
|
70
93
|
|
|
71
94
|
// ../worker-utils/src/lib/env-utils/globals.ts
|
|
72
|
-
var
|
|
73
|
-
var
|
|
95
|
+
var globals2, self_2, window_2, global_2, document_2, isBrowser2, isWorker, isMobile, matches2, nodeVersion2;
|
|
96
|
+
var init_globals2 = __esm({
|
|
74
97
|
"../worker-utils/src/lib/env-utils/globals.ts"() {
|
|
75
|
-
|
|
98
|
+
globals2 = {
|
|
76
99
|
self: typeof self !== "undefined" && self,
|
|
77
100
|
window: typeof window !== "undefined" && window,
|
|
78
101
|
global: typeof global !== "undefined" && global,
|
|
79
102
|
document: typeof document !== "undefined" && document
|
|
80
103
|
};
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
104
|
+
self_2 = globals2.self || globals2.window || globals2.global || {};
|
|
105
|
+
window_2 = globals2.window || globals2.self || globals2.global || {};
|
|
106
|
+
global_2 = globals2.global || globals2.self || globals2.window || {};
|
|
107
|
+
document_2 = globals2.document || {};
|
|
108
|
+
isBrowser2 = typeof process !== "object" || String(process) !== "[object process]" || process.browser;
|
|
86
109
|
isWorker = typeof importScripts === "function";
|
|
87
110
|
isMobile = typeof window !== "undefined" && typeof window.orientation !== "undefined";
|
|
88
|
-
|
|
89
|
-
|
|
111
|
+
matches2 = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
|
|
112
|
+
nodeVersion2 = matches2 && parseFloat(matches2[1]) || 0;
|
|
90
113
|
}
|
|
91
114
|
});
|
|
92
115
|
|
|
@@ -112,12 +135,12 @@
|
|
|
112
135
|
if (modules[library]) {
|
|
113
136
|
return modules[library];
|
|
114
137
|
}
|
|
115
|
-
if (!
|
|
138
|
+
if (!isBrowser2) {
|
|
116
139
|
return `modules/${moduleName}/dist/libs/${library}`;
|
|
117
140
|
}
|
|
118
141
|
if (options.CDN) {
|
|
119
|
-
|
|
120
|
-
return `${options.CDN}/${moduleName}@${
|
|
142
|
+
assert2(options.CDN.startsWith("http"));
|
|
143
|
+
return `${options.CDN}/${moduleName}@${VERSION3}/dist/libs/${library}`;
|
|
121
144
|
}
|
|
122
145
|
if (isWorker) {
|
|
123
146
|
return `../src/libs/${library}`;
|
|
@@ -129,7 +152,7 @@
|
|
|
129
152
|
const response2 = await fetch(libraryUrl);
|
|
130
153
|
return await response2.arrayBuffer();
|
|
131
154
|
}
|
|
132
|
-
if (!
|
|
155
|
+
if (!isBrowser2) {
|
|
133
156
|
try {
|
|
134
157
|
return node && node.requireFromFile && await node.requireFromFile(libraryUrl);
|
|
135
158
|
} catch {
|
|
@@ -144,11 +167,11 @@
|
|
|
144
167
|
return loadLibraryFromString(scriptSource, libraryUrl);
|
|
145
168
|
}
|
|
146
169
|
function loadLibraryFromString(scriptSource, id) {
|
|
147
|
-
if (!
|
|
170
|
+
if (!isBrowser2) {
|
|
148
171
|
return node.requireFromString && node.requireFromString(scriptSource, id);
|
|
149
172
|
}
|
|
150
173
|
if (isWorker) {
|
|
151
|
-
eval.call(
|
|
174
|
+
eval.call(global_2, scriptSource);
|
|
152
175
|
return null;
|
|
153
176
|
}
|
|
154
177
|
const script = document.createElement("script");
|
|
@@ -161,15 +184,15 @@
|
|
|
161
184
|
document.body.appendChild(script);
|
|
162
185
|
return null;
|
|
163
186
|
}
|
|
164
|
-
var node, LATEST,
|
|
187
|
+
var node, LATEST, VERSION3, loadLibraryPromises;
|
|
165
188
|
var init_library_utils = __esm({
|
|
166
189
|
"../worker-utils/src/lib/library-utils/library-utils.ts"() {
|
|
167
|
-
|
|
190
|
+
init_globals2();
|
|
168
191
|
node = __toModule(require_require_utils());
|
|
169
|
-
|
|
170
|
-
|
|
192
|
+
init_assert2();
|
|
193
|
+
init_version2();
|
|
171
194
|
LATEST = "beta";
|
|
172
|
-
|
|
195
|
+
VERSION3 = typeof VERSION2 !== "undefined" ? VERSION2 : LATEST;
|
|
173
196
|
loadLibraryPromises = {};
|
|
174
197
|
}
|
|
175
198
|
});
|
|
@@ -177,10 +200,135 @@
|
|
|
177
200
|
// ../worker-utils/src/index.ts
|
|
178
201
|
var init_src = __esm({
|
|
179
202
|
"../worker-utils/src/index.ts"() {
|
|
203
|
+
init_globals2();
|
|
180
204
|
init_library_utils();
|
|
181
205
|
}
|
|
182
206
|
});
|
|
183
207
|
|
|
208
|
+
// ../loader-utils/src/lib/binary-utils/get-first-characters.ts
|
|
209
|
+
function getFirstCharacters(data, length = 5) {
|
|
210
|
+
if (typeof data === "string") {
|
|
211
|
+
return data.slice(0, length);
|
|
212
|
+
} else if (ArrayBuffer.isView(data)) {
|
|
213
|
+
return getMagicString(data.buffer, data.byteOffset, length);
|
|
214
|
+
} else if (data instanceof ArrayBuffer) {
|
|
215
|
+
const byteOffset = 0;
|
|
216
|
+
return getMagicString(data, byteOffset, length);
|
|
217
|
+
}
|
|
218
|
+
return "";
|
|
219
|
+
}
|
|
220
|
+
function getMagicString(arrayBuffer, byteOffset, length) {
|
|
221
|
+
if (arrayBuffer.byteLength <= byteOffset + length) {
|
|
222
|
+
return "";
|
|
223
|
+
}
|
|
224
|
+
const dataView = new DataView(arrayBuffer);
|
|
225
|
+
let magic = "";
|
|
226
|
+
for (let i2 = 0; i2 < length; i2++) {
|
|
227
|
+
magic += String.fromCharCode(dataView.getUint8(byteOffset + i2));
|
|
228
|
+
}
|
|
229
|
+
return magic;
|
|
230
|
+
}
|
|
231
|
+
var init_get_first_characters = __esm({
|
|
232
|
+
"../loader-utils/src/lib/binary-utils/get-first-characters.ts"() {
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
// ../loader-utils/src/lib/parser-utils/parse-json.ts
|
|
237
|
+
function parseJSON(string) {
|
|
238
|
+
try {
|
|
239
|
+
return JSON.parse(string);
|
|
240
|
+
} catch (_) {
|
|
241
|
+
throw new Error(`Failed to parse JSON from data starting with "${getFirstCharacters(string)}"`);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
var init_parse_json = __esm({
|
|
245
|
+
"../loader-utils/src/lib/parser-utils/parse-json.ts"() {
|
|
246
|
+
init_get_first_characters();
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
// ../loader-utils/src/lib/binary-utils/array-buffer-utils.ts
|
|
251
|
+
function sliceArrayBuffer(arrayBuffer, byteOffset, byteLength) {
|
|
252
|
+
const subArray = byteLength !== void 0 ? new Uint8Array(arrayBuffer).subarray(byteOffset, byteOffset + byteLength) : new Uint8Array(arrayBuffer).subarray(byteOffset);
|
|
253
|
+
const arrayCopy = new Uint8Array(subArray);
|
|
254
|
+
return arrayCopy.buffer;
|
|
255
|
+
}
|
|
256
|
+
var init_array_buffer_utils = __esm({
|
|
257
|
+
"../loader-utils/src/lib/binary-utils/array-buffer-utils.ts"() {
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
// ../loader-utils/src/lib/binary-utils/memory-copy-utils.ts
|
|
262
|
+
function padToNBytes(byteLength, padding) {
|
|
263
|
+
assert(byteLength >= 0);
|
|
264
|
+
assert(padding > 0);
|
|
265
|
+
return byteLength + (padding - 1) & ~(padding - 1);
|
|
266
|
+
}
|
|
267
|
+
function copyToArray(source, target, targetOffset) {
|
|
268
|
+
let sourceArray;
|
|
269
|
+
if (source instanceof ArrayBuffer) {
|
|
270
|
+
sourceArray = new Uint8Array(source);
|
|
271
|
+
} else {
|
|
272
|
+
const srcByteOffset = source.byteOffset;
|
|
273
|
+
const srcByteLength = source.byteLength;
|
|
274
|
+
sourceArray = new Uint8Array(source.buffer || source.arrayBuffer, srcByteOffset, srcByteLength);
|
|
275
|
+
}
|
|
276
|
+
target.set(sourceArray, targetOffset);
|
|
277
|
+
return targetOffset + padToNBytes(sourceArray.byteLength, 4);
|
|
278
|
+
}
|
|
279
|
+
var init_memory_copy_utils = __esm({
|
|
280
|
+
"../loader-utils/src/lib/binary-utils/memory-copy-utils.ts"() {
|
|
281
|
+
init_assert();
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
// ../loader-utils/src/lib/binary-utils/dataview-copy-utils.ts
|
|
286
|
+
function copyPaddedArrayBufferToDataView(dataView, byteOffset, sourceBuffer, padding) {
|
|
287
|
+
const paddedLength = padToNBytes(sourceBuffer.byteLength, padding);
|
|
288
|
+
const padLength = paddedLength - sourceBuffer.byteLength;
|
|
289
|
+
if (dataView) {
|
|
290
|
+
const targetArray = new Uint8Array(dataView.buffer, dataView.byteOffset + byteOffset, sourceBuffer.byteLength);
|
|
291
|
+
const sourceArray = new Uint8Array(sourceBuffer);
|
|
292
|
+
targetArray.set(sourceArray);
|
|
293
|
+
for (let i2 = 0; i2 < padLength; ++i2) {
|
|
294
|
+
dataView.setUint8(byteOffset + sourceBuffer.byteLength + i2, 32);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
byteOffset += paddedLength;
|
|
298
|
+
return byteOffset;
|
|
299
|
+
}
|
|
300
|
+
function copyPaddedStringToDataView(dataView, byteOffset, string, padding) {
|
|
301
|
+
const textEncoder = new TextEncoder();
|
|
302
|
+
const stringBuffer = textEncoder.encode(string);
|
|
303
|
+
byteOffset = copyPaddedArrayBufferToDataView(dataView, byteOffset, stringBuffer, padding);
|
|
304
|
+
return byteOffset;
|
|
305
|
+
}
|
|
306
|
+
var init_dataview_copy_utils = __esm({
|
|
307
|
+
"../loader-utils/src/lib/binary-utils/dataview-copy-utils.ts"() {
|
|
308
|
+
init_memory_copy_utils();
|
|
309
|
+
}
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
// ../loader-utils/src/index.ts
|
|
313
|
+
var init_src2 = __esm({
|
|
314
|
+
"../loader-utils/src/index.ts"() {
|
|
315
|
+
init_assert();
|
|
316
|
+
init_globals();
|
|
317
|
+
init_parse_json();
|
|
318
|
+
init_array_buffer_utils();
|
|
319
|
+
init_memory_copy_utils();
|
|
320
|
+
init_dataview_copy_utils();
|
|
321
|
+
}
|
|
322
|
+
});
|
|
323
|
+
|
|
324
|
+
// ../textures/src/lib/utils/version.ts
|
|
325
|
+
var VERSION4;
|
|
326
|
+
var init_version3 = __esm({
|
|
327
|
+
"../textures/src/lib/utils/version.ts"() {
|
|
328
|
+
VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
329
|
+
}
|
|
330
|
+
});
|
|
331
|
+
|
|
184
332
|
// ../textures/src/lib/parsers/basis-module-loader.ts
|
|
185
333
|
async function loadBasisTrascoderModule(options) {
|
|
186
334
|
const modules = options.modules || {};
|
|
@@ -513,6 +661,7 @@
|
|
|
513
661
|
height,
|
|
514
662
|
data: decodedData,
|
|
515
663
|
compressed,
|
|
664
|
+
levelSize: decodedSize,
|
|
516
665
|
hasAlpha: alphaFlag,
|
|
517
666
|
format
|
|
518
667
|
};
|
|
@@ -606,13 +755,14 @@
|
|
|
606
755
|
var BasisWorkerLoader, BasisLoader;
|
|
607
756
|
var init_basis_loader = __esm({
|
|
608
757
|
"../textures/src/basis-loader.ts"() {
|
|
609
|
-
|
|
758
|
+
init_src();
|
|
759
|
+
init_version3();
|
|
610
760
|
init_parse_basis();
|
|
611
761
|
BasisWorkerLoader = {
|
|
612
762
|
name: "Basis",
|
|
613
|
-
id: "basis",
|
|
763
|
+
id: isBrowser2 ? "basis" : "basis-nodejs",
|
|
614
764
|
module: "textures",
|
|
615
|
-
version:
|
|
765
|
+
version: VERSION4,
|
|
616
766
|
worker: true,
|
|
617
767
|
extensions: ["basis", "ktx2"],
|
|
618
768
|
mimeTypes: ["application/octet-stream", "image/ktx2"],
|
|
@@ -634,185 +784,38 @@
|
|
|
634
784
|
}
|
|
635
785
|
});
|
|
636
786
|
|
|
637
|
-
// ../
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
}
|
|
643
|
-
var init_assert2 = __esm({
|
|
644
|
-
"../loader-utils/src/lib/env-utils/assert.ts"() {
|
|
645
|
-
}
|
|
646
|
-
});
|
|
647
|
-
|
|
648
|
-
// ../loader-utils/src/lib/env-utils/globals.ts
|
|
649
|
-
var globals2, self_2, window_2, global_2, document_2, isBrowser2, matches2, nodeVersion2;
|
|
650
|
-
var init_globals2 = __esm({
|
|
651
|
-
"../loader-utils/src/lib/env-utils/globals.ts"() {
|
|
652
|
-
globals2 = {
|
|
653
|
-
self: typeof self !== "undefined" && self,
|
|
654
|
-
window: typeof window !== "undefined" && window,
|
|
655
|
-
global: typeof global !== "undefined" && global,
|
|
656
|
-
document: typeof document !== "undefined" && document
|
|
657
|
-
};
|
|
658
|
-
self_2 = globals2.self || globals2.window || globals2.global || {};
|
|
659
|
-
window_2 = globals2.window || globals2.self || globals2.global || {};
|
|
660
|
-
global_2 = globals2.global || globals2.self || globals2.window || {};
|
|
661
|
-
document_2 = globals2.document || {};
|
|
662
|
-
isBrowser2 = Boolean(typeof process !== "object" || String(process) !== "[object process]" || process.browser);
|
|
663
|
-
matches2 = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
|
|
664
|
-
nodeVersion2 = matches2 && parseFloat(matches2[1]) || 0;
|
|
787
|
+
// ../images/src/lib/utils/version.ts
|
|
788
|
+
var VERSION6;
|
|
789
|
+
var init_version4 = __esm({
|
|
790
|
+
"../images/src/lib/utils/version.ts"() {
|
|
791
|
+
VERSION6 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
665
792
|
}
|
|
666
793
|
});
|
|
667
794
|
|
|
668
|
-
// ../
|
|
669
|
-
function
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
795
|
+
// ../images/src/lib/category-api/image-type.ts
|
|
796
|
+
function isImageTypeSupported(type) {
|
|
797
|
+
switch (type) {
|
|
798
|
+
case "auto":
|
|
799
|
+
return IMAGE_BITMAP_SUPPORTED || IMAGE_SUPPORTED || DATA_SUPPORTED;
|
|
800
|
+
case "imagebitmap":
|
|
801
|
+
return IMAGE_BITMAP_SUPPORTED;
|
|
802
|
+
case "image":
|
|
803
|
+
return IMAGE_SUPPORTED;
|
|
804
|
+
case "data":
|
|
805
|
+
return DATA_SUPPORTED;
|
|
806
|
+
default:
|
|
807
|
+
throw new Error(`@loaders.gl/images: image ${type} not supported in this environment`);
|
|
677
808
|
}
|
|
678
|
-
return "";
|
|
679
809
|
}
|
|
680
|
-
function
|
|
681
|
-
if (
|
|
682
|
-
return "";
|
|
810
|
+
function getDefaultImageType() {
|
|
811
|
+
if (IMAGE_BITMAP_SUPPORTED) {
|
|
812
|
+
return "imagebitmap";
|
|
683
813
|
}
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
for (let i2 = 0; i2 < length; i2++) {
|
|
687
|
-
magic += String.fromCharCode(dataView.getUint8(byteOffset + i2));
|
|
814
|
+
if (IMAGE_SUPPORTED) {
|
|
815
|
+
return "image";
|
|
688
816
|
}
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
var init_get_first_characters = __esm({
|
|
692
|
-
"../loader-utils/src/lib/binary-utils/get-first-characters.ts"() {
|
|
693
|
-
}
|
|
694
|
-
});
|
|
695
|
-
|
|
696
|
-
// ../loader-utils/src/lib/parser-utils/parse-json.ts
|
|
697
|
-
function parseJSON(string) {
|
|
698
|
-
try {
|
|
699
|
-
return JSON.parse(string);
|
|
700
|
-
} catch (_) {
|
|
701
|
-
throw new Error(`Failed to parse JSON from data starting with "${getFirstCharacters(string)}"`);
|
|
702
|
-
}
|
|
703
|
-
}
|
|
704
|
-
var init_parse_json = __esm({
|
|
705
|
-
"../loader-utils/src/lib/parser-utils/parse-json.ts"() {
|
|
706
|
-
init_get_first_characters();
|
|
707
|
-
}
|
|
708
|
-
});
|
|
709
|
-
|
|
710
|
-
// ../loader-utils/src/lib/binary-utils/array-buffer-utils.ts
|
|
711
|
-
function sliceArrayBuffer(arrayBuffer, byteOffset, byteLength) {
|
|
712
|
-
const subArray = byteLength !== void 0 ? new Uint8Array(arrayBuffer).subarray(byteOffset, byteOffset + byteLength) : new Uint8Array(arrayBuffer).subarray(byteOffset);
|
|
713
|
-
const arrayCopy = new Uint8Array(subArray);
|
|
714
|
-
return arrayCopy.buffer;
|
|
715
|
-
}
|
|
716
|
-
var init_array_buffer_utils = __esm({
|
|
717
|
-
"../loader-utils/src/lib/binary-utils/array-buffer-utils.ts"() {
|
|
718
|
-
}
|
|
719
|
-
});
|
|
720
|
-
|
|
721
|
-
// ../loader-utils/src/lib/binary-utils/memory-copy-utils.ts
|
|
722
|
-
function padToNBytes(byteLength, padding) {
|
|
723
|
-
assert2(byteLength >= 0);
|
|
724
|
-
assert2(padding > 0);
|
|
725
|
-
return byteLength + (padding - 1) & ~(padding - 1);
|
|
726
|
-
}
|
|
727
|
-
function copyToArray(source, target, targetOffset) {
|
|
728
|
-
let sourceArray;
|
|
729
|
-
if (source instanceof ArrayBuffer) {
|
|
730
|
-
sourceArray = new Uint8Array(source);
|
|
731
|
-
} else {
|
|
732
|
-
const srcByteOffset = source.byteOffset;
|
|
733
|
-
const srcByteLength = source.byteLength;
|
|
734
|
-
sourceArray = new Uint8Array(source.buffer || source.arrayBuffer, srcByteOffset, srcByteLength);
|
|
735
|
-
}
|
|
736
|
-
target.set(sourceArray, targetOffset);
|
|
737
|
-
return targetOffset + padToNBytes(sourceArray.byteLength, 4);
|
|
738
|
-
}
|
|
739
|
-
var init_memory_copy_utils = __esm({
|
|
740
|
-
"../loader-utils/src/lib/binary-utils/memory-copy-utils.ts"() {
|
|
741
|
-
init_assert2();
|
|
742
|
-
}
|
|
743
|
-
});
|
|
744
|
-
|
|
745
|
-
// ../loader-utils/src/lib/binary-utils/binary-copy-utils.ts
|
|
746
|
-
function copyPaddedArrayBufferToDataView(dataView, byteOffset, sourceBuffer, padding) {
|
|
747
|
-
const paddedLength = padToNBytes(sourceBuffer.byteLength, padding);
|
|
748
|
-
const padLength = paddedLength - sourceBuffer.byteLength;
|
|
749
|
-
if (dataView) {
|
|
750
|
-
const targetArray = new Uint8Array(dataView.buffer, dataView.byteOffset + byteOffset, sourceBuffer.byteLength);
|
|
751
|
-
const sourceArray = new Uint8Array(sourceBuffer);
|
|
752
|
-
targetArray.set(sourceArray);
|
|
753
|
-
for (let i2 = 0; i2 < padLength; ++i2) {
|
|
754
|
-
dataView.setUint8(byteOffset + sourceBuffer.byteLength + i2, 32);
|
|
755
|
-
}
|
|
756
|
-
}
|
|
757
|
-
byteOffset += paddedLength;
|
|
758
|
-
return byteOffset;
|
|
759
|
-
}
|
|
760
|
-
function copyPaddedStringToDataView(dataView, byteOffset, string, padding) {
|
|
761
|
-
const textEncoder = new TextEncoder();
|
|
762
|
-
const stringBuffer = textEncoder.encode(string);
|
|
763
|
-
byteOffset = copyPaddedArrayBufferToDataView(dataView, byteOffset, stringBuffer, padding);
|
|
764
|
-
return byteOffset;
|
|
765
|
-
}
|
|
766
|
-
var init_binary_copy_utils = __esm({
|
|
767
|
-
"../loader-utils/src/lib/binary-utils/binary-copy-utils.ts"() {
|
|
768
|
-
init_memory_copy_utils();
|
|
769
|
-
}
|
|
770
|
-
});
|
|
771
|
-
|
|
772
|
-
// ../loader-utils/src/index.ts
|
|
773
|
-
var init_src2 = __esm({
|
|
774
|
-
"../loader-utils/src/index.ts"() {
|
|
775
|
-
init_assert2();
|
|
776
|
-
init_globals2();
|
|
777
|
-
init_parse_json();
|
|
778
|
-
init_array_buffer_utils();
|
|
779
|
-
init_memory_copy_utils();
|
|
780
|
-
init_binary_copy_utils();
|
|
781
|
-
}
|
|
782
|
-
});
|
|
783
|
-
|
|
784
|
-
// ../images/src/lib/utils/version.ts
|
|
785
|
-
var VERSION6;
|
|
786
|
-
var init_version4 = __esm({
|
|
787
|
-
"../images/src/lib/utils/version.ts"() {
|
|
788
|
-
VERSION6 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
789
|
-
}
|
|
790
|
-
});
|
|
791
|
-
|
|
792
|
-
// ../images/src/lib/category-api/image-type.ts
|
|
793
|
-
function isImageTypeSupported(type) {
|
|
794
|
-
switch (type) {
|
|
795
|
-
case "auto":
|
|
796
|
-
return IMAGE_BITMAP_SUPPORTED || IMAGE_SUPPORTED || DATA_SUPPORTED;
|
|
797
|
-
case "imagebitmap":
|
|
798
|
-
return IMAGE_BITMAP_SUPPORTED;
|
|
799
|
-
case "image":
|
|
800
|
-
return IMAGE_SUPPORTED;
|
|
801
|
-
case "data":
|
|
802
|
-
return DATA_SUPPORTED;
|
|
803
|
-
default:
|
|
804
|
-
throw new Error(`@loaders.gl/images: image ${type} not supported in this environment`);
|
|
805
|
-
}
|
|
806
|
-
}
|
|
807
|
-
function getDefaultImageType() {
|
|
808
|
-
if (IMAGE_BITMAP_SUPPORTED) {
|
|
809
|
-
return "imagebitmap";
|
|
810
|
-
}
|
|
811
|
-
if (IMAGE_SUPPORTED) {
|
|
812
|
-
return "image";
|
|
813
|
-
}
|
|
814
|
-
if (DATA_SUPPORTED) {
|
|
815
|
-
return "data";
|
|
817
|
+
if (DATA_SUPPORTED) {
|
|
818
|
+
return "data";
|
|
816
819
|
}
|
|
817
820
|
throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js");
|
|
818
821
|
}
|
|
@@ -824,7 +827,7 @@
|
|
|
824
827
|
IMAGE_SUPPORTED = typeof Image !== "undefined";
|
|
825
828
|
IMAGE_BITMAP_SUPPORTED = typeof ImageBitmap !== "undefined";
|
|
826
829
|
NODE_IMAGE_SUPPORTED = Boolean(_parseImageNode);
|
|
827
|
-
DATA_SUPPORTED =
|
|
830
|
+
DATA_SUPPORTED = isBrowser ? true : NODE_IMAGE_SUPPORTED;
|
|
828
831
|
}
|
|
829
832
|
});
|
|
830
833
|
|
|
@@ -983,10 +986,62 @@
|
|
|
983
986
|
}
|
|
984
987
|
});
|
|
985
988
|
|
|
989
|
+
// ../images/src/lib/category-api/parse-isobmff-binary.ts
|
|
990
|
+
function getISOBMFFMediaType(buffer) {
|
|
991
|
+
if (!checkString(buffer, "ftyp", 4)) {
|
|
992
|
+
return null;
|
|
993
|
+
}
|
|
994
|
+
if ((buffer[8] & 96) === 0) {
|
|
995
|
+
return null;
|
|
996
|
+
}
|
|
997
|
+
return decodeMajorBrand(buffer);
|
|
998
|
+
}
|
|
999
|
+
function decodeMajorBrand(buffer) {
|
|
1000
|
+
const brandMajor = getUTF8String(buffer, 8, 12).replace("\0", " ").trim();
|
|
1001
|
+
switch (brandMajor) {
|
|
1002
|
+
case "avif":
|
|
1003
|
+
case "avis":
|
|
1004
|
+
return { extension: "avif", mimeType: "image/avif" };
|
|
1005
|
+
default:
|
|
1006
|
+
return null;
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
function getUTF8String(array, start, end) {
|
|
1010
|
+
return String.fromCharCode(...array.slice(start, end));
|
|
1011
|
+
}
|
|
1012
|
+
function stringToBytes(string) {
|
|
1013
|
+
return [...string].map((character) => character.charCodeAt(0));
|
|
1014
|
+
}
|
|
1015
|
+
function checkString(buffer, header, offset = 0) {
|
|
1016
|
+
const headerBytes = stringToBytes(header);
|
|
1017
|
+
for (let i2 = 0; i2 < headerBytes.length; ++i2) {
|
|
1018
|
+
if (headerBytes[i2] !== buffer[i2 + offset]) {
|
|
1019
|
+
return false;
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
return true;
|
|
1023
|
+
}
|
|
1024
|
+
var init_parse_isobmff_binary = __esm({
|
|
1025
|
+
"../images/src/lib/category-api/parse-isobmff-binary.ts"() {
|
|
1026
|
+
}
|
|
1027
|
+
});
|
|
1028
|
+
|
|
986
1029
|
// ../images/src/lib/category-api/binary-image-api.ts
|
|
987
1030
|
function getBinaryImageMetadata(binaryData) {
|
|
988
1031
|
const dataView = toDataView(binaryData);
|
|
989
|
-
return getPngMetadata(dataView) || getJpegMetadata(dataView) || getGifMetadata(dataView) || getBmpMetadata(dataView);
|
|
1032
|
+
return getPngMetadata(dataView) || getJpegMetadata(dataView) || getGifMetadata(dataView) || getBmpMetadata(dataView) || getISOBMFFMetadata(dataView);
|
|
1033
|
+
}
|
|
1034
|
+
function getISOBMFFMetadata(binaryData) {
|
|
1035
|
+
const buffer = new Uint8Array(binaryData instanceof DataView ? binaryData.buffer : binaryData);
|
|
1036
|
+
const mediaType = getISOBMFFMediaType(buffer);
|
|
1037
|
+
if (!mediaType) {
|
|
1038
|
+
return null;
|
|
1039
|
+
}
|
|
1040
|
+
return {
|
|
1041
|
+
mimeType: mediaType.mimeType,
|
|
1042
|
+
width: 0,
|
|
1043
|
+
height: 0
|
|
1044
|
+
};
|
|
990
1045
|
}
|
|
991
1046
|
function getPngMetadata(binaryData) {
|
|
992
1047
|
const dataView = toDataView(binaryData);
|
|
@@ -1087,6 +1142,7 @@
|
|
|
1087
1142
|
var BIG_ENDIAN, LITTLE_ENDIAN;
|
|
1088
1143
|
var init_binary_image_api = __esm({
|
|
1089
1144
|
"../images/src/lib/category-api/binary-image-api.ts"() {
|
|
1145
|
+
init_parse_isobmff_binary();
|
|
1090
1146
|
BIG_ENDIAN = false;
|
|
1091
1147
|
LITTLE_ENDIAN = true;
|
|
1092
1148
|
}
|
|
@@ -1096,7 +1152,7 @@
|
|
|
1096
1152
|
async function parseToNodeImage(arrayBuffer, options) {
|
|
1097
1153
|
const { mimeType } = getBinaryImageMetadata(arrayBuffer) || {};
|
|
1098
1154
|
const _parseImageNode2 = globalThis._parseImageNode;
|
|
1099
|
-
|
|
1155
|
+
assert(_parseImageNode2);
|
|
1100
1156
|
return await _parseImageNode2(arrayBuffer, mimeType);
|
|
1101
1157
|
}
|
|
1102
1158
|
var init_parse_to_node_image = __esm({
|
|
@@ -1125,7 +1181,7 @@
|
|
|
1125
1181
|
image = await parseToNodeImage(arrayBuffer, options);
|
|
1126
1182
|
break;
|
|
1127
1183
|
default:
|
|
1128
|
-
|
|
1184
|
+
assert(false);
|
|
1129
1185
|
}
|
|
1130
1186
|
if (imageType === "data") {
|
|
1131
1187
|
image = getImageData(image);
|
|
@@ -1160,12 +1216,13 @@
|
|
|
1160
1216
|
init_version4();
|
|
1161
1217
|
init_parse_image();
|
|
1162
1218
|
init_binary_image_api();
|
|
1163
|
-
EXTENSIONS = ["png", "jpg", "jpeg", "gif", "webp", "bmp", "ico", "svg"];
|
|
1219
|
+
EXTENSIONS = ["png", "jpg", "jpeg", "gif", "webp", "bmp", "ico", "svg", "avif"];
|
|
1164
1220
|
MIME_TYPES = [
|
|
1165
1221
|
"image/png",
|
|
1166
1222
|
"image/jpeg",
|
|
1167
1223
|
"image/gif",
|
|
1168
1224
|
"image/webp",
|
|
1225
|
+
"image/avif",
|
|
1169
1226
|
"image/bmp",
|
|
1170
1227
|
"image/vnd.microsoft.icon",
|
|
1171
1228
|
"image/svg+xml"
|
|
@@ -1191,43 +1248,41 @@
|
|
|
1191
1248
|
});
|
|
1192
1249
|
|
|
1193
1250
|
// ../images/src/lib/category-api/image-format.ts
|
|
1194
|
-
function
|
|
1195
|
-
if (
|
|
1196
|
-
|
|
1251
|
+
function isImageFormatSupported(mimeType) {
|
|
1252
|
+
if (mimeTypeSupportedSync[mimeType] === void 0) {
|
|
1253
|
+
const supported = isBrowser ? checkBrowserImageFormatSupport(mimeType) : checkNodeImageFormatSupport(mimeType);
|
|
1254
|
+
mimeTypeSupportedSync[mimeType] = supported;
|
|
1197
1255
|
}
|
|
1198
|
-
return
|
|
1256
|
+
return mimeTypeSupportedSync[mimeType];
|
|
1199
1257
|
}
|
|
1200
|
-
function
|
|
1258
|
+
function checkNodeImageFormatSupport(mimeType) {
|
|
1259
|
+
const NODE_FORMAT_SUPPORT = ["image/png", "image/jpeg", "image/gif"];
|
|
1260
|
+
const { _parseImageNode: _parseImageNode2, _imageFormatsNode = NODE_FORMAT_SUPPORT } = globalThis;
|
|
1261
|
+
return Boolean(_parseImageNode2) && _imageFormatsNode.includes(mimeType);
|
|
1262
|
+
}
|
|
1263
|
+
function checkBrowserImageFormatSupport(mimeType) {
|
|
1201
1264
|
switch (mimeType) {
|
|
1265
|
+
case "image/avif":
|
|
1202
1266
|
case "image/webp":
|
|
1203
|
-
return
|
|
1204
|
-
case "image/svg":
|
|
1205
|
-
return isBrowser2;
|
|
1267
|
+
return testBrowserImageFormatSupport(mimeType);
|
|
1206
1268
|
default:
|
|
1207
|
-
if (!isBrowser2) {
|
|
1208
|
-
const { _parseImageNode: _parseImageNode2 } = globalThis;
|
|
1209
|
-
return Boolean(_parseImageNode2) && NODE_FORMAT_SUPPORT.includes(mimeType);
|
|
1210
|
-
}
|
|
1211
1269
|
return true;
|
|
1212
1270
|
}
|
|
1213
1271
|
}
|
|
1214
|
-
function
|
|
1215
|
-
if (!isBrowser2) {
|
|
1216
|
-
return false;
|
|
1217
|
-
}
|
|
1272
|
+
function testBrowserImageFormatSupport(mimeType) {
|
|
1218
1273
|
try {
|
|
1219
1274
|
const element = document.createElement("canvas");
|
|
1220
|
-
|
|
1275
|
+
const dataURL = element.toDataURL(mimeType);
|
|
1276
|
+
return dataURL.indexOf(`data:${mimeType}`) === 0;
|
|
1221
1277
|
} catch {
|
|
1222
1278
|
return false;
|
|
1223
1279
|
}
|
|
1224
1280
|
}
|
|
1225
|
-
var
|
|
1281
|
+
var mimeTypeSupportedSync;
|
|
1226
1282
|
var init_image_format = __esm({
|
|
1227
1283
|
"../images/src/lib/category-api/image-format.ts"() {
|
|
1228
1284
|
init_src2();
|
|
1229
|
-
|
|
1230
|
-
mimeTypeSupported = {};
|
|
1285
|
+
mimeTypeSupportedSync = {};
|
|
1231
1286
|
}
|
|
1232
1287
|
});
|
|
1233
1288
|
|
|
@@ -1396,12 +1451,12 @@
|
|
|
1396
1451
|
return extras[key];
|
|
1397
1452
|
}
|
|
1398
1453
|
getExtension(extensionName) {
|
|
1399
|
-
const isExtension = this.getUsedExtensions().find((
|
|
1454
|
+
const isExtension = this.getUsedExtensions().find((name10) => name10 === extensionName);
|
|
1400
1455
|
const extensions = this.json.extensions || {};
|
|
1401
1456
|
return isExtension ? extensions[extensionName] || true : null;
|
|
1402
1457
|
}
|
|
1403
1458
|
getRequiredExtension(extensionName) {
|
|
1404
|
-
const isRequired = this.getRequiredExtensions().find((
|
|
1459
|
+
const isRequired = this.getRequiredExtensions().find((name10) => name10 === extensionName);
|
|
1405
1460
|
return isRequired ? this.getExtension(extensionName) : null;
|
|
1406
1461
|
}
|
|
1407
1462
|
getRequiredExtensions() {
|
|
@@ -1410,6 +1465,9 @@
|
|
|
1410
1465
|
getUsedExtensions() {
|
|
1411
1466
|
return this.json.extensionsUsed || [];
|
|
1412
1467
|
}
|
|
1468
|
+
getRemovedExtensions() {
|
|
1469
|
+
return this.json.extensionsRemoved || [];
|
|
1470
|
+
}
|
|
1413
1471
|
getObjectExtension(object, extensionName) {
|
|
1414
1472
|
const extensions = object.extensions || {};
|
|
1415
1473
|
return extensions[extensionName];
|
|
@@ -1534,6 +1592,9 @@
|
|
|
1534
1592
|
}
|
|
1535
1593
|
}
|
|
1536
1594
|
removeExtension(extensionName) {
|
|
1595
|
+
if (!this.getExtension(extensionName)) {
|
|
1596
|
+
return;
|
|
1597
|
+
}
|
|
1537
1598
|
if (this.json.extensionsRequired) {
|
|
1538
1599
|
this._removeStringFromArray(this.json.extensionsRequired, extensionName);
|
|
1539
1600
|
}
|
|
@@ -1543,6 +1604,13 @@
|
|
|
1543
1604
|
if (this.json.extensions) {
|
|
1544
1605
|
delete this.json.extensions[extensionName];
|
|
1545
1606
|
}
|
|
1607
|
+
if (!Array.isArray(this.json.extensionsRemoved)) {
|
|
1608
|
+
this.json.extensionsRemoved = [];
|
|
1609
|
+
}
|
|
1610
|
+
const extensionsRemoved = this.json.extensionsRemoved;
|
|
1611
|
+
if (!extensionsRemoved.includes(extensionName)) {
|
|
1612
|
+
extensionsRemoved.push(extensionName);
|
|
1613
|
+
}
|
|
1546
1614
|
}
|
|
1547
1615
|
setDefaultScene(sceneIndex) {
|
|
1548
1616
|
this.json.scene = sceneIndex;
|
|
@@ -1753,9 +1821,6 @@
|
|
|
1753
1821
|
});
|
|
1754
1822
|
|
|
1755
1823
|
// src/meshopt/meshopt-decoder.ts
|
|
1756
|
-
function isMeshoptSupported() {
|
|
1757
|
-
return isWebAssemblySupported;
|
|
1758
|
-
}
|
|
1759
1824
|
async function meshoptDecodeGltfBuffer(target, count, size, source, mode, filter = "NONE") {
|
|
1760
1825
|
const instance = await loadWasmInstance();
|
|
1761
1826
|
decode(instance, instance.exports[DECODERS[mode]], target, count, size, source, instance.exports[FILTERS[filter || "NONE"]]);
|
|
@@ -1805,10 +1870,9 @@
|
|
|
1805
1870
|
throw new Error(`Malformed buffer data: ${res}`);
|
|
1806
1871
|
}
|
|
1807
1872
|
}
|
|
1808
|
-
var
|
|
1873
|
+
var wasm_base, wasm_simd, detector, wasmpack, FILTERS, DECODERS, wasmPromise;
|
|
1809
1874
|
var init_meshopt_decoder = __esm({
|
|
1810
1875
|
"src/meshopt/meshopt-decoder.ts"() {
|
|
1811
|
-
isWebAssemblySupported = typeof WebAssembly !== "object";
|
|
1812
1876
|
wasm_base = "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";
|
|
1813
1877
|
wasm_simd = "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";
|
|
1814
1878
|
detector = new Uint8Array([
|
|
@@ -1951,15 +2015,8 @@
|
|
|
1951
2015
|
var EXT_meshopt_compression_exports = {};
|
|
1952
2016
|
__export(EXT_meshopt_compression_exports, {
|
|
1953
2017
|
decode: () => decode2,
|
|
1954
|
-
name: () => name
|
|
1955
|
-
preprocess: () => preprocess
|
|
2018
|
+
name: () => name
|
|
1956
2019
|
});
|
|
1957
|
-
function preprocess(gltfData) {
|
|
1958
|
-
const scenegraph = new GLTFScenegraph(gltfData);
|
|
1959
|
-
if (scenegraph.getRequiredExtensions().includes(EXT_MESHOPT_COMPRESSION) && !isMeshoptSupported()) {
|
|
1960
|
-
throw new Error(`gltf: Required extension ${EXT_MESHOPT_COMPRESSION} not supported by browser`);
|
|
1961
|
-
}
|
|
1962
|
-
}
|
|
1963
2020
|
async function decode2(gltfData, options) {
|
|
1964
2021
|
const scenegraph = new GLTFScenegraph(gltfData);
|
|
1965
2022
|
if (!options?.gltf?.decompressMeshes) {
|
|
@@ -1975,18 +2032,19 @@
|
|
|
1975
2032
|
async function decodeMeshoptBufferView(scenegraph, bufferView) {
|
|
1976
2033
|
const meshoptExtension = scenegraph.getObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);
|
|
1977
2034
|
if (meshoptExtension) {
|
|
1978
|
-
const buffer = bufferView.buffer;
|
|
1979
2035
|
const {
|
|
1980
2036
|
byteOffset = 0,
|
|
1981
2037
|
byteLength = 0,
|
|
1982
2038
|
byteStride,
|
|
1983
2039
|
count,
|
|
1984
2040
|
mode,
|
|
1985
|
-
filter = "NONE"
|
|
2041
|
+
filter = "NONE",
|
|
2042
|
+
buffer: bufferIndex
|
|
1986
2043
|
} = meshoptExtension;
|
|
1987
|
-
const
|
|
1988
|
-
const
|
|
1989
|
-
|
|
2044
|
+
const buffer = scenegraph.gltf.buffers[bufferIndex];
|
|
2045
|
+
const source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);
|
|
2046
|
+
const result = new Uint8Array(scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer, bufferView.byteOffset, bufferView.byteLength);
|
|
2047
|
+
await meshoptDecodeGltfBuffer(result, count, byteStride, source, mode, filter);
|
|
1990
2048
|
return result;
|
|
1991
2049
|
}
|
|
1992
2050
|
return null;
|
|
@@ -2005,11 +2063,11 @@
|
|
|
2005
2063
|
var EXT_texture_webp_exports = {};
|
|
2006
2064
|
__export(EXT_texture_webp_exports, {
|
|
2007
2065
|
name: () => name2,
|
|
2008
|
-
preprocess: () =>
|
|
2066
|
+
preprocess: () => preprocess
|
|
2009
2067
|
});
|
|
2010
|
-
function
|
|
2068
|
+
function preprocess(gltfData, options) {
|
|
2011
2069
|
const scenegraph = new GLTFScenegraph(gltfData);
|
|
2012
|
-
if (!
|
|
2070
|
+
if (!isImageFormatSupported("image/webp")) {
|
|
2013
2071
|
if (scenegraph.getRequiredExtensions().includes(EXT_TEXTURE_WEBP)) {
|
|
2014
2072
|
throw new Error(`gltf: Required extension ${EXT_TEXTURE_WEBP} not supported by browser`);
|
|
2015
2073
|
}
|
|
@@ -2039,9 +2097,9 @@
|
|
|
2039
2097
|
var KHR_texture_basisu_exports = {};
|
|
2040
2098
|
__export(KHR_texture_basisu_exports, {
|
|
2041
2099
|
name: () => name3,
|
|
2042
|
-
preprocess: () =>
|
|
2100
|
+
preprocess: () => preprocess2
|
|
2043
2101
|
});
|
|
2044
|
-
function
|
|
2102
|
+
function preprocess2(gltfData, options) {
|
|
2045
2103
|
const scene = new GLTFScenegraph(gltfData);
|
|
2046
2104
|
const { json } = scene;
|
|
2047
2105
|
for (const texture of json.textures || []) {
|
|
@@ -2074,6 +2132,7 @@
|
|
|
2074
2132
|
var DEFAULT_DRACO_OPTIONS, DracoLoader;
|
|
2075
2133
|
var init_draco_loader = __esm({
|
|
2076
2134
|
"../draco/src/draco-loader.ts"() {
|
|
2135
|
+
init_src();
|
|
2077
2136
|
init_version5();
|
|
2078
2137
|
DEFAULT_DRACO_OPTIONS = {
|
|
2079
2138
|
draco: {
|
|
@@ -2085,9 +2144,8 @@
|
|
|
2085
2144
|
};
|
|
2086
2145
|
DracoLoader = {
|
|
2087
2146
|
name: "Draco",
|
|
2088
|
-
id: "draco",
|
|
2147
|
+
id: isBrowser2 ? "draco" : "draco-nodejs",
|
|
2089
2148
|
module: "draco",
|
|
2090
|
-
shapes: ["mesh"],
|
|
2091
2149
|
version: VERSION7,
|
|
2092
2150
|
worker: true,
|
|
2093
2151
|
extensions: ["drc"],
|
|
@@ -2099,7 +2157,36 @@
|
|
|
2099
2157
|
}
|
|
2100
2158
|
});
|
|
2101
2159
|
|
|
2102
|
-
// ../schema/src/
|
|
2160
|
+
// ../schema/src/lib/table/simple-table/data-type.ts
|
|
2161
|
+
function getDataTypeFromTypedArray(array) {
|
|
2162
|
+
switch (array.constructor) {
|
|
2163
|
+
case Int8Array:
|
|
2164
|
+
return "int8";
|
|
2165
|
+
case Uint8Array:
|
|
2166
|
+
case Uint8ClampedArray:
|
|
2167
|
+
return "uint8";
|
|
2168
|
+
case Int16Array:
|
|
2169
|
+
return "int16";
|
|
2170
|
+
case Uint16Array:
|
|
2171
|
+
return "uint16";
|
|
2172
|
+
case Int32Array:
|
|
2173
|
+
return "int32";
|
|
2174
|
+
case Uint32Array:
|
|
2175
|
+
return "uint32";
|
|
2176
|
+
case Float32Array:
|
|
2177
|
+
return "float32";
|
|
2178
|
+
case Float64Array:
|
|
2179
|
+
return "float64";
|
|
2180
|
+
default:
|
|
2181
|
+
return "null";
|
|
2182
|
+
}
|
|
2183
|
+
}
|
|
2184
|
+
var init_data_type = __esm({
|
|
2185
|
+
"../schema/src/lib/table/simple-table/data-type.ts"() {
|
|
2186
|
+
}
|
|
2187
|
+
});
|
|
2188
|
+
|
|
2189
|
+
// ../schema/src/lib/mesh/mesh-utils.ts
|
|
2103
2190
|
function getMeshBoundingBox(attributes) {
|
|
2104
2191
|
let minX = Infinity;
|
|
2105
2192
|
let minY = Infinity;
|
|
@@ -2126,595 +2213,88 @@
|
|
|
2126
2213
|
];
|
|
2127
2214
|
}
|
|
2128
2215
|
var init_mesh_utils = __esm({
|
|
2129
|
-
"../schema/src/
|
|
2216
|
+
"../schema/src/lib/mesh/mesh-utils.ts"() {
|
|
2130
2217
|
}
|
|
2131
2218
|
});
|
|
2132
2219
|
|
|
2133
|
-
// ../schema/src/lib/
|
|
2134
|
-
function
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2220
|
+
// ../schema/src/lib/mesh/deduce-mesh-schema.ts
|
|
2221
|
+
function deduceMeshField(name10, attribute, optionalMetadata) {
|
|
2222
|
+
const type = getDataTypeFromTypedArray(attribute.value);
|
|
2223
|
+
const metadata = optionalMetadata ? optionalMetadata : makeMeshAttributeMetadata(attribute);
|
|
2224
|
+
return {
|
|
2225
|
+
name: name10,
|
|
2226
|
+
type: { type: "fixed-size-list", listSize: attribute.size, children: [{ name: "value", type }] },
|
|
2227
|
+
nullable: false,
|
|
2228
|
+
metadata
|
|
2229
|
+
};
|
|
2138
2230
|
}
|
|
2139
|
-
|
|
2140
|
-
|
|
2231
|
+
function makeMeshAttributeMetadata(attribute) {
|
|
2232
|
+
const result = {};
|
|
2233
|
+
if ("byteOffset" in attribute) {
|
|
2234
|
+
result.byteOffset = attribute.byteOffset.toString(10);
|
|
2141
2235
|
}
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
// ../schema/src/lib/schema/impl/schema.ts
|
|
2145
|
-
function checkNames(fields) {
|
|
2146
|
-
const usedNames = {};
|
|
2147
|
-
for (const field of fields) {
|
|
2148
|
-
if (usedNames[field.name]) {
|
|
2149
|
-
console.warn("Schema: duplicated field name", field.name, field);
|
|
2150
|
-
}
|
|
2151
|
-
usedNames[field.name] = true;
|
|
2236
|
+
if ("byteStride" in attribute) {
|
|
2237
|
+
result.byteStride = attribute.byteStride.toString(10);
|
|
2152
2238
|
}
|
|
2239
|
+
if ("normalized" in attribute) {
|
|
2240
|
+
result.normalized = attribute.normalized.toString();
|
|
2241
|
+
}
|
|
2242
|
+
return result;
|
|
2153
2243
|
}
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
var Schema;
|
|
2158
|
-
var init_schema = __esm({
|
|
2159
|
-
"../schema/src/lib/schema/impl/schema.ts"() {
|
|
2160
|
-
init_assert4();
|
|
2161
|
-
Schema = class {
|
|
2162
|
-
constructor(fields, metadata) {
|
|
2163
|
-
assert4(Array.isArray(fields));
|
|
2164
|
-
checkNames(fields);
|
|
2165
|
-
this.fields = fields;
|
|
2166
|
-
this.metadata = metadata || new Map();
|
|
2167
|
-
}
|
|
2168
|
-
compareTo(other) {
|
|
2169
|
-
if (this.metadata !== other.metadata) {
|
|
2170
|
-
return false;
|
|
2171
|
-
}
|
|
2172
|
-
if (this.fields.length !== other.fields.length) {
|
|
2173
|
-
return false;
|
|
2174
|
-
}
|
|
2175
|
-
for (let i2 = 0; i2 < this.fields.length; ++i2) {
|
|
2176
|
-
if (!this.fields[i2].compareTo(other.fields[i2])) {
|
|
2177
|
-
return false;
|
|
2178
|
-
}
|
|
2179
|
-
}
|
|
2180
|
-
return true;
|
|
2181
|
-
}
|
|
2182
|
-
select(...columnNames) {
|
|
2183
|
-
const nameMap = Object.create(null);
|
|
2184
|
-
for (const name8 of columnNames) {
|
|
2185
|
-
nameMap[name8] = true;
|
|
2186
|
-
}
|
|
2187
|
-
const selectedFields = this.fields.filter((field) => nameMap[field.name]);
|
|
2188
|
-
return new Schema(selectedFields, this.metadata);
|
|
2189
|
-
}
|
|
2190
|
-
selectAt(...columnIndices) {
|
|
2191
|
-
const selectedFields = columnIndices.map((index) => this.fields[index]).filter(Boolean);
|
|
2192
|
-
return new Schema(selectedFields, this.metadata);
|
|
2193
|
-
}
|
|
2194
|
-
assign(schemaOrFields) {
|
|
2195
|
-
let fields;
|
|
2196
|
-
let metadata = this.metadata;
|
|
2197
|
-
if (schemaOrFields instanceof Schema) {
|
|
2198
|
-
const otherSchema = schemaOrFields;
|
|
2199
|
-
fields = otherSchema.fields;
|
|
2200
|
-
metadata = mergeMaps(mergeMaps(new Map(), this.metadata), otherSchema.metadata);
|
|
2201
|
-
} else {
|
|
2202
|
-
fields = schemaOrFields;
|
|
2203
|
-
}
|
|
2204
|
-
const fieldMap = Object.create(null);
|
|
2205
|
-
for (const field of this.fields) {
|
|
2206
|
-
fieldMap[field.name] = field;
|
|
2207
|
-
}
|
|
2208
|
-
for (const field of fields) {
|
|
2209
|
-
fieldMap[field.name] = field;
|
|
2210
|
-
}
|
|
2211
|
-
const mergedFields = Object.values(fieldMap);
|
|
2212
|
-
return new Schema(mergedFields, metadata);
|
|
2213
|
-
}
|
|
2214
|
-
};
|
|
2244
|
+
var init_deduce_mesh_schema = __esm({
|
|
2245
|
+
"../schema/src/lib/mesh/deduce-mesh-schema.ts"() {
|
|
2246
|
+
init_data_type();
|
|
2215
2247
|
}
|
|
2216
2248
|
});
|
|
2217
2249
|
|
|
2218
|
-
// ../schema/src/
|
|
2219
|
-
var
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
constructor(name8, type, nullable = false, metadata = new Map()) {
|
|
2224
|
-
this.name = name8;
|
|
2225
|
-
this.type = type;
|
|
2226
|
-
this.nullable = nullable;
|
|
2227
|
-
this.metadata = metadata;
|
|
2228
|
-
}
|
|
2229
|
-
get typeId() {
|
|
2230
|
-
return this.type && this.type.typeId;
|
|
2231
|
-
}
|
|
2232
|
-
clone() {
|
|
2233
|
-
return new Field(this.name, this.type, this.nullable, this.metadata);
|
|
2234
|
-
}
|
|
2235
|
-
compareTo(other) {
|
|
2236
|
-
return this.name === other.name && this.type === other.type && this.nullable === other.nullable && this.metadata === other.metadata;
|
|
2237
|
-
}
|
|
2238
|
-
toString() {
|
|
2239
|
-
return `${this.type}${this.nullable ? ", nullable" : ""}${this.metadata ? `, metadata: ${this.metadata}` : ""}`;
|
|
2240
|
-
}
|
|
2241
|
-
};
|
|
2250
|
+
// ../schema/src/index.ts
|
|
2251
|
+
var init_src5 = __esm({
|
|
2252
|
+
"../schema/src/index.ts"() {
|
|
2253
|
+
init_mesh_utils();
|
|
2254
|
+
init_deduce_mesh_schema();
|
|
2242
2255
|
}
|
|
2243
2256
|
});
|
|
2244
2257
|
|
|
2245
|
-
// ../
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
Type2[Type2["TimestampNanosecond"] = -18] = "TimestampNanosecond";
|
|
2286
|
-
Type2[Type2["TimeSecond"] = -19] = "TimeSecond";
|
|
2287
|
-
Type2[Type2["TimeMillisecond"] = -20] = "TimeMillisecond";
|
|
2288
|
-
Type2[Type2["TimeMicrosecond"] = -21] = "TimeMicrosecond";
|
|
2289
|
-
Type2[Type2["TimeNanosecond"] = -22] = "TimeNanosecond";
|
|
2290
|
-
Type2[Type2["DenseUnion"] = -23] = "DenseUnion";
|
|
2291
|
-
Type2[Type2["SparseUnion"] = -24] = "SparseUnion";
|
|
2292
|
-
Type2[Type2["IntervalDayTime"] = -25] = "IntervalDayTime";
|
|
2293
|
-
Type2[Type2["IntervalYearMonth"] = -26] = "IntervalYearMonth";
|
|
2294
|
-
})(Type || (Type = {}));
|
|
2295
|
-
}
|
|
2296
|
-
});
|
|
2297
|
-
|
|
2298
|
-
// ../schema/src/lib/schema/impl/type.ts
|
|
2299
|
-
var DataType, Null, Bool, Int, Int8, Int16, Int32, Uint8, Uint16, Uint32, Precision, Float, Float32, Float64, Binary, Utf8, DateUnit, Date, TimeUnit, Time, Timestamp, IntervalUnit, Interval, FixedSizeList, Struct;
|
|
2300
|
-
var init_type = __esm({
|
|
2301
|
-
"../schema/src/lib/schema/impl/type.ts"() {
|
|
2302
|
-
init_enum();
|
|
2303
|
-
DataType = class {
|
|
2304
|
-
static isNull(x) {
|
|
2305
|
-
return x && x.typeId === Type.Null;
|
|
2306
|
-
}
|
|
2307
|
-
static isInt(x) {
|
|
2308
|
-
return x && x.typeId === Type.Int;
|
|
2309
|
-
}
|
|
2310
|
-
static isFloat(x) {
|
|
2311
|
-
return x && x.typeId === Type.Float;
|
|
2312
|
-
}
|
|
2313
|
-
static isBinary(x) {
|
|
2314
|
-
return x && x.typeId === Type.Binary;
|
|
2315
|
-
}
|
|
2316
|
-
static isUtf8(x) {
|
|
2317
|
-
return x && x.typeId === Type.Utf8;
|
|
2318
|
-
}
|
|
2319
|
-
static isBool(x) {
|
|
2320
|
-
return x && x.typeId === Type.Bool;
|
|
2321
|
-
}
|
|
2322
|
-
static isDecimal(x) {
|
|
2323
|
-
return x && x.typeId === Type.Decimal;
|
|
2324
|
-
}
|
|
2325
|
-
static isDate(x) {
|
|
2326
|
-
return x && x.typeId === Type.Date;
|
|
2327
|
-
}
|
|
2328
|
-
static isTime(x) {
|
|
2329
|
-
return x && x.typeId === Type.Time;
|
|
2330
|
-
}
|
|
2331
|
-
static isTimestamp(x) {
|
|
2332
|
-
return x && x.typeId === Type.Timestamp;
|
|
2333
|
-
}
|
|
2334
|
-
static isInterval(x) {
|
|
2335
|
-
return x && x.typeId === Type.Interval;
|
|
2336
|
-
}
|
|
2337
|
-
static isList(x) {
|
|
2338
|
-
return x && x.typeId === Type.List;
|
|
2339
|
-
}
|
|
2340
|
-
static isStruct(x) {
|
|
2341
|
-
return x && x.typeId === Type.Struct;
|
|
2342
|
-
}
|
|
2343
|
-
static isUnion(x) {
|
|
2344
|
-
return x && x.typeId === Type.Union;
|
|
2345
|
-
}
|
|
2346
|
-
static isFixedSizeBinary(x) {
|
|
2347
|
-
return x && x.typeId === Type.FixedSizeBinary;
|
|
2348
|
-
}
|
|
2349
|
-
static isFixedSizeList(x) {
|
|
2350
|
-
return x && x.typeId === Type.FixedSizeList;
|
|
2351
|
-
}
|
|
2352
|
-
static isMap(x) {
|
|
2353
|
-
return x && x.typeId === Type.Map;
|
|
2354
|
-
}
|
|
2355
|
-
static isDictionary(x) {
|
|
2356
|
-
return x && x.typeId === Type.Dictionary;
|
|
2357
|
-
}
|
|
2358
|
-
get typeId() {
|
|
2359
|
-
return Type.NONE;
|
|
2360
|
-
}
|
|
2361
|
-
compareTo(other) {
|
|
2362
|
-
return this === other;
|
|
2363
|
-
}
|
|
2364
|
-
};
|
|
2365
|
-
Null = class extends DataType {
|
|
2366
|
-
get typeId() {
|
|
2367
|
-
return Type.Null;
|
|
2368
|
-
}
|
|
2369
|
-
get [Symbol.toStringTag]() {
|
|
2370
|
-
return "Null";
|
|
2371
|
-
}
|
|
2372
|
-
toString() {
|
|
2373
|
-
return "Null";
|
|
2374
|
-
}
|
|
2375
|
-
};
|
|
2376
|
-
Bool = class extends DataType {
|
|
2377
|
-
get typeId() {
|
|
2378
|
-
return Type.Bool;
|
|
2379
|
-
}
|
|
2380
|
-
get [Symbol.toStringTag]() {
|
|
2381
|
-
return "Bool";
|
|
2382
|
-
}
|
|
2383
|
-
toString() {
|
|
2384
|
-
return "Bool";
|
|
2385
|
-
}
|
|
2386
|
-
};
|
|
2387
|
-
Int = class extends DataType {
|
|
2388
|
-
constructor(isSigned, bitWidth) {
|
|
2389
|
-
super();
|
|
2390
|
-
this.isSigned = isSigned;
|
|
2391
|
-
this.bitWidth = bitWidth;
|
|
2392
|
-
}
|
|
2393
|
-
get typeId() {
|
|
2394
|
-
return Type.Int;
|
|
2395
|
-
}
|
|
2396
|
-
get [Symbol.toStringTag]() {
|
|
2397
|
-
return "Int";
|
|
2398
|
-
}
|
|
2399
|
-
toString() {
|
|
2400
|
-
return `${this.isSigned ? "I" : "Ui"}nt${this.bitWidth}`;
|
|
2401
|
-
}
|
|
2402
|
-
};
|
|
2403
|
-
Int8 = class extends Int {
|
|
2404
|
-
constructor() {
|
|
2405
|
-
super(true, 8);
|
|
2406
|
-
}
|
|
2407
|
-
};
|
|
2408
|
-
Int16 = class extends Int {
|
|
2409
|
-
constructor() {
|
|
2410
|
-
super(true, 16);
|
|
2411
|
-
}
|
|
2412
|
-
};
|
|
2413
|
-
Int32 = class extends Int {
|
|
2414
|
-
constructor() {
|
|
2415
|
-
super(true, 32);
|
|
2416
|
-
}
|
|
2417
|
-
};
|
|
2418
|
-
Uint8 = class extends Int {
|
|
2419
|
-
constructor() {
|
|
2420
|
-
super(false, 8);
|
|
2421
|
-
}
|
|
2422
|
-
};
|
|
2423
|
-
Uint16 = class extends Int {
|
|
2424
|
-
constructor() {
|
|
2425
|
-
super(false, 16);
|
|
2426
|
-
}
|
|
2427
|
-
};
|
|
2428
|
-
Uint32 = class extends Int {
|
|
2429
|
-
constructor() {
|
|
2430
|
-
super(false, 32);
|
|
2431
|
-
}
|
|
2432
|
-
};
|
|
2433
|
-
Precision = {
|
|
2434
|
-
HALF: 16,
|
|
2435
|
-
SINGLE: 32,
|
|
2436
|
-
DOUBLE: 64
|
|
2437
|
-
};
|
|
2438
|
-
Float = class extends DataType {
|
|
2439
|
-
constructor(precision) {
|
|
2440
|
-
super();
|
|
2441
|
-
this.precision = precision;
|
|
2442
|
-
}
|
|
2443
|
-
get typeId() {
|
|
2444
|
-
return Type.Float;
|
|
2445
|
-
}
|
|
2446
|
-
get [Symbol.toStringTag]() {
|
|
2447
|
-
return "Float";
|
|
2448
|
-
}
|
|
2449
|
-
toString() {
|
|
2450
|
-
return `Float${this.precision}`;
|
|
2451
|
-
}
|
|
2452
|
-
};
|
|
2453
|
-
Float32 = class extends Float {
|
|
2454
|
-
constructor() {
|
|
2455
|
-
super(Precision.SINGLE);
|
|
2456
|
-
}
|
|
2457
|
-
};
|
|
2458
|
-
Float64 = class extends Float {
|
|
2459
|
-
constructor() {
|
|
2460
|
-
super(Precision.DOUBLE);
|
|
2461
|
-
}
|
|
2462
|
-
};
|
|
2463
|
-
Binary = class extends DataType {
|
|
2464
|
-
constructor() {
|
|
2465
|
-
super();
|
|
2466
|
-
}
|
|
2467
|
-
get typeId() {
|
|
2468
|
-
return Type.Binary;
|
|
2469
|
-
}
|
|
2470
|
-
toString() {
|
|
2471
|
-
return "Binary";
|
|
2472
|
-
}
|
|
2473
|
-
get [Symbol.toStringTag]() {
|
|
2474
|
-
return "Binary";
|
|
2475
|
-
}
|
|
2476
|
-
};
|
|
2477
|
-
Utf8 = class extends DataType {
|
|
2478
|
-
get typeId() {
|
|
2479
|
-
return Type.Utf8;
|
|
2480
|
-
}
|
|
2481
|
-
get [Symbol.toStringTag]() {
|
|
2482
|
-
return "Utf8";
|
|
2483
|
-
}
|
|
2484
|
-
toString() {
|
|
2485
|
-
return "Utf8";
|
|
2486
|
-
}
|
|
2487
|
-
};
|
|
2488
|
-
DateUnit = {
|
|
2489
|
-
DAY: 0,
|
|
2490
|
-
MILLISECOND: 1
|
|
2491
|
-
};
|
|
2492
|
-
Date = class extends DataType {
|
|
2493
|
-
constructor(unit) {
|
|
2494
|
-
super();
|
|
2495
|
-
this.unit = unit;
|
|
2496
|
-
}
|
|
2497
|
-
get typeId() {
|
|
2498
|
-
return Type.Date;
|
|
2499
|
-
}
|
|
2500
|
-
get [Symbol.toStringTag]() {
|
|
2501
|
-
return "Date";
|
|
2502
|
-
}
|
|
2503
|
-
toString() {
|
|
2504
|
-
return `Date${(this.unit + 1) * 32}<${DateUnit[this.unit]}>`;
|
|
2505
|
-
}
|
|
2506
|
-
};
|
|
2507
|
-
TimeUnit = {
|
|
2508
|
-
SECOND: 1,
|
|
2509
|
-
MILLISECOND: 1e3,
|
|
2510
|
-
MICROSECOND: 1e6,
|
|
2511
|
-
NANOSECOND: 1e9
|
|
2512
|
-
};
|
|
2513
|
-
Time = class extends DataType {
|
|
2514
|
-
constructor(unit, bitWidth) {
|
|
2515
|
-
super();
|
|
2516
|
-
this.unit = unit;
|
|
2517
|
-
this.bitWidth = bitWidth;
|
|
2518
|
-
}
|
|
2519
|
-
get typeId() {
|
|
2520
|
-
return Type.Time;
|
|
2521
|
-
}
|
|
2522
|
-
toString() {
|
|
2523
|
-
return `Time${this.bitWidth}<${TimeUnit[this.unit]}>`;
|
|
2524
|
-
}
|
|
2525
|
-
get [Symbol.toStringTag]() {
|
|
2526
|
-
return "Time";
|
|
2527
|
-
}
|
|
2528
|
-
};
|
|
2529
|
-
Timestamp = class extends DataType {
|
|
2530
|
-
constructor(unit, timezone = null) {
|
|
2531
|
-
super();
|
|
2532
|
-
this.unit = unit;
|
|
2533
|
-
this.timezone = timezone;
|
|
2534
|
-
}
|
|
2535
|
-
get typeId() {
|
|
2536
|
-
return Type.Timestamp;
|
|
2537
|
-
}
|
|
2538
|
-
get [Symbol.toStringTag]() {
|
|
2539
|
-
return "Timestamp";
|
|
2540
|
-
}
|
|
2541
|
-
toString() {
|
|
2542
|
-
return `Timestamp<${TimeUnit[this.unit]}${this.timezone ? `, ${this.timezone}` : ""}>`;
|
|
2543
|
-
}
|
|
2544
|
-
};
|
|
2545
|
-
IntervalUnit = {
|
|
2546
|
-
DAY_TIME: 0,
|
|
2547
|
-
YEAR_MONTH: 1
|
|
2548
|
-
};
|
|
2549
|
-
Interval = class extends DataType {
|
|
2550
|
-
constructor(unit) {
|
|
2551
|
-
super();
|
|
2552
|
-
this.unit = unit;
|
|
2553
|
-
}
|
|
2554
|
-
get typeId() {
|
|
2555
|
-
return Type.Interval;
|
|
2556
|
-
}
|
|
2557
|
-
get [Symbol.toStringTag]() {
|
|
2558
|
-
return "Interval";
|
|
2559
|
-
}
|
|
2560
|
-
toString() {
|
|
2561
|
-
return `Interval<${IntervalUnit[this.unit]}>`;
|
|
2562
|
-
}
|
|
2563
|
-
};
|
|
2564
|
-
FixedSizeList = class extends DataType {
|
|
2565
|
-
constructor(listSize, child) {
|
|
2566
|
-
super();
|
|
2567
|
-
this.listSize = listSize;
|
|
2568
|
-
this.children = [child];
|
|
2569
|
-
}
|
|
2570
|
-
get typeId() {
|
|
2571
|
-
return Type.FixedSizeList;
|
|
2572
|
-
}
|
|
2573
|
-
get valueType() {
|
|
2574
|
-
return this.children[0].type;
|
|
2575
|
-
}
|
|
2576
|
-
get valueField() {
|
|
2577
|
-
return this.children[0];
|
|
2578
|
-
}
|
|
2579
|
-
get [Symbol.toStringTag]() {
|
|
2580
|
-
return "FixedSizeList";
|
|
2581
|
-
}
|
|
2582
|
-
toString() {
|
|
2583
|
-
return `FixedSizeList[${this.listSize}]<${this.valueType}>`;
|
|
2584
|
-
}
|
|
2585
|
-
};
|
|
2586
|
-
Struct = class extends DataType {
|
|
2587
|
-
constructor(children) {
|
|
2588
|
-
super();
|
|
2589
|
-
this.children = children;
|
|
2590
|
-
}
|
|
2591
|
-
get typeId() {
|
|
2592
|
-
return Type.Struct;
|
|
2593
|
-
}
|
|
2594
|
-
toString() {
|
|
2595
|
-
return `Struct<{${this.children.map((f2) => `${f2.name}:${f2.type}`).join(", ")}}>`;
|
|
2596
|
-
}
|
|
2597
|
-
get [Symbol.toStringTag]() {
|
|
2598
|
-
return "Struct";
|
|
2599
|
-
}
|
|
2600
|
-
};
|
|
2601
|
-
}
|
|
2602
|
-
});
|
|
2603
|
-
|
|
2604
|
-
// ../schema/src/lib/schema/schema.ts
|
|
2605
|
-
var init_schema2 = __esm({
|
|
2606
|
-
"../schema/src/lib/schema/schema.ts"() {
|
|
2607
|
-
init_schema();
|
|
2608
|
-
init_field();
|
|
2609
|
-
init_type();
|
|
2610
|
-
}
|
|
2611
|
-
});
|
|
2612
|
-
|
|
2613
|
-
// ../schema/src/lib/arrow/arrow-like-type-utils.ts
|
|
2614
|
-
function getArrowTypeFromTypedArray(array) {
|
|
2615
|
-
switch (array.constructor) {
|
|
2616
|
-
case Int8Array:
|
|
2617
|
-
return new Int8();
|
|
2618
|
-
case Uint8Array:
|
|
2619
|
-
return new Uint8();
|
|
2620
|
-
case Int16Array:
|
|
2621
|
-
return new Int16();
|
|
2622
|
-
case Uint16Array:
|
|
2623
|
-
return new Uint16();
|
|
2624
|
-
case Int32Array:
|
|
2625
|
-
return new Int32();
|
|
2626
|
-
case Uint32Array:
|
|
2627
|
-
return new Uint32();
|
|
2628
|
-
case Float32Array:
|
|
2629
|
-
return new Float32();
|
|
2630
|
-
case Float64Array:
|
|
2631
|
-
return new Float64();
|
|
2632
|
-
default:
|
|
2633
|
-
throw new Error("array type not supported");
|
|
2634
|
-
}
|
|
2635
|
-
}
|
|
2636
|
-
var init_arrow_like_type_utils = __esm({
|
|
2637
|
-
"../schema/src/lib/arrow/arrow-like-type-utils.ts"() {
|
|
2638
|
-
init_schema2();
|
|
2639
|
-
}
|
|
2640
|
-
});
|
|
2641
|
-
|
|
2642
|
-
// ../schema/src/category/mesh/deduce-mesh-schema.ts
|
|
2643
|
-
function deduceMeshField(attributeName, attribute, optionalMetadata) {
|
|
2644
|
-
const type = getArrowTypeFromTypedArray(attribute.value);
|
|
2645
|
-
const metadata = optionalMetadata ? optionalMetadata : makeMeshAttributeMetadata(attribute);
|
|
2646
|
-
const field = new Field(attributeName, new FixedSizeList(attribute.size, new Field("value", type)), false, metadata);
|
|
2647
|
-
return field;
|
|
2648
|
-
}
|
|
2649
|
-
function makeMeshAttributeMetadata(attribute) {
|
|
2650
|
-
const result = new Map();
|
|
2651
|
-
if ("byteOffset" in attribute) {
|
|
2652
|
-
result.set("byteOffset", attribute.byteOffset.toString(10));
|
|
2653
|
-
}
|
|
2654
|
-
if ("byteStride" in attribute) {
|
|
2655
|
-
result.set("byteStride", attribute.byteStride.toString(10));
|
|
2656
|
-
}
|
|
2657
|
-
if ("normalized" in attribute) {
|
|
2658
|
-
result.set("normalized", attribute.normalized.toString());
|
|
2659
|
-
}
|
|
2660
|
-
return result;
|
|
2661
|
-
}
|
|
2662
|
-
var init_deduce_mesh_schema = __esm({
|
|
2663
|
-
"../schema/src/category/mesh/deduce-mesh-schema.ts"() {
|
|
2664
|
-
init_schema2();
|
|
2665
|
-
init_arrow_like_type_utils();
|
|
2666
|
-
}
|
|
2667
|
-
});
|
|
2668
|
-
|
|
2669
|
-
// ../schema/src/index.ts
|
|
2670
|
-
var init_src5 = __esm({
|
|
2671
|
-
"../schema/src/index.ts"() {
|
|
2672
|
-
init_mesh_utils();
|
|
2673
|
-
init_deduce_mesh_schema();
|
|
2674
|
-
init_schema2();
|
|
2675
|
-
}
|
|
2676
|
-
});
|
|
2677
|
-
|
|
2678
|
-
// ../draco/src/lib/utils/get-draco-schema.ts
|
|
2679
|
-
function getDracoSchema(attributes, loaderData, indices) {
|
|
2680
|
-
const metadataMap = makeMetadata(loaderData.metadata);
|
|
2681
|
-
const fields = [];
|
|
2682
|
-
const namedLoaderDataAttributes = transformAttributesLoaderData(loaderData.attributes);
|
|
2683
|
-
for (const attributeName in attributes) {
|
|
2684
|
-
const attribute = attributes[attributeName];
|
|
2685
|
-
const field = getArrowFieldFromAttribute(attributeName, attribute, namedLoaderDataAttributes[attributeName]);
|
|
2686
|
-
fields.push(field);
|
|
2687
|
-
}
|
|
2688
|
-
if (indices) {
|
|
2689
|
-
const indicesField = getArrowFieldFromAttribute("indices", indices);
|
|
2690
|
-
fields.push(indicesField);
|
|
2691
|
-
}
|
|
2692
|
-
return new Schema(fields, metadataMap);
|
|
2693
|
-
}
|
|
2694
|
-
function transformAttributesLoaderData(loaderData) {
|
|
2695
|
-
const result = {};
|
|
2696
|
-
for (const key in loaderData) {
|
|
2697
|
-
const dracoAttribute = loaderData[key];
|
|
2698
|
-
result[dracoAttribute.name || "undefined"] = dracoAttribute;
|
|
2699
|
-
}
|
|
2700
|
-
return result;
|
|
2701
|
-
}
|
|
2702
|
-
function getArrowFieldFromAttribute(attributeName, attribute, loaderData) {
|
|
2703
|
-
const metadataMap = loaderData ? makeMetadata(loaderData.metadata) : void 0;
|
|
2704
|
-
const field = deduceMeshField(attributeName, attribute, metadataMap);
|
|
2705
|
-
return field;
|
|
2706
|
-
}
|
|
2707
|
-
function makeMetadata(metadata) {
|
|
2708
|
-
const metadataMap = new Map();
|
|
2709
|
-
for (const key in metadata) {
|
|
2710
|
-
metadataMap.set(`${key}.string`, JSON.stringify(metadata[key]));
|
|
2711
|
-
}
|
|
2712
|
-
return metadataMap;
|
|
2713
|
-
}
|
|
2714
|
-
var init_get_draco_schema = __esm({
|
|
2715
|
-
"../draco/src/lib/utils/get-draco-schema.ts"() {
|
|
2716
|
-
init_src5();
|
|
2717
|
-
init_src5();
|
|
2258
|
+
// ../draco/src/lib/utils/get-draco-schema.ts
|
|
2259
|
+
function getDracoSchema(attributes, loaderData, indices) {
|
|
2260
|
+
const metadata = makeMetadata(loaderData.metadata);
|
|
2261
|
+
const fields = [];
|
|
2262
|
+
const namedLoaderDataAttributes = transformAttributesLoaderData(loaderData.attributes);
|
|
2263
|
+
for (const attributeName in attributes) {
|
|
2264
|
+
const attribute = attributes[attributeName];
|
|
2265
|
+
const field = getArrowFieldFromAttribute(attributeName, attribute, namedLoaderDataAttributes[attributeName]);
|
|
2266
|
+
fields.push(field);
|
|
2267
|
+
}
|
|
2268
|
+
if (indices) {
|
|
2269
|
+
const indicesField = getArrowFieldFromAttribute("indices", indices);
|
|
2270
|
+
fields.push(indicesField);
|
|
2271
|
+
}
|
|
2272
|
+
return { fields, metadata };
|
|
2273
|
+
}
|
|
2274
|
+
function transformAttributesLoaderData(loaderData) {
|
|
2275
|
+
const result = {};
|
|
2276
|
+
for (const key in loaderData) {
|
|
2277
|
+
const dracoAttribute = loaderData[key];
|
|
2278
|
+
result[dracoAttribute.name || "undefined"] = dracoAttribute;
|
|
2279
|
+
}
|
|
2280
|
+
return result;
|
|
2281
|
+
}
|
|
2282
|
+
function getArrowFieldFromAttribute(attributeName, attribute, loaderData) {
|
|
2283
|
+
const metadataMap = loaderData ? makeMetadata(loaderData.metadata) : void 0;
|
|
2284
|
+
const field = deduceMeshField(attributeName, attribute, metadataMap);
|
|
2285
|
+
return field;
|
|
2286
|
+
}
|
|
2287
|
+
function makeMetadata(metadata) {
|
|
2288
|
+
Object.entries(metadata);
|
|
2289
|
+
const serializedMetadata = {};
|
|
2290
|
+
for (const key in metadata) {
|
|
2291
|
+
serializedMetadata[`${key}.string`] = JSON.stringify(metadata[key]);
|
|
2292
|
+
}
|
|
2293
|
+
return serializedMetadata;
|
|
2294
|
+
}
|
|
2295
|
+
var init_get_draco_schema = __esm({
|
|
2296
|
+
"../draco/src/lib/utils/get-draco-schema.ts"() {
|
|
2297
|
+
init_src5();
|
|
2718
2298
|
}
|
|
2719
2299
|
});
|
|
2720
2300
|
|
|
@@ -3106,15 +2686,17 @@
|
|
|
3106
2686
|
});
|
|
3107
2687
|
});
|
|
3108
2688
|
}
|
|
3109
|
-
var
|
|
2689
|
+
var DRACO_DECODER_VERSION, DRACO_ENCODER_VERSION, STATIC_DECODER_URL, DRACO_JS_DECODER_URL, DRACO_WASM_WRAPPER_URL, DRACO_WASM_DECODER_URL, DRACO_ENCODER_URL, loadDecoderPromise;
|
|
3110
2690
|
var init_draco_module_loader = __esm({
|
|
3111
2691
|
"../draco/src/lib/draco-module-loader.ts"() {
|
|
3112
2692
|
init_src();
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
2693
|
+
DRACO_DECODER_VERSION = "1.5.5";
|
|
2694
|
+
DRACO_ENCODER_VERSION = "1.4.1";
|
|
2695
|
+
STATIC_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_DECODER_VERSION}`;
|
|
2696
|
+
DRACO_JS_DECODER_URL = `${STATIC_DECODER_URL}/draco_decoder.js`;
|
|
2697
|
+
DRACO_WASM_WRAPPER_URL = `${STATIC_DECODER_URL}/draco_wasm_wrapper.js`;
|
|
2698
|
+
DRACO_WASM_DECODER_URL = `${STATIC_DECODER_URL}/draco_decoder.wasm`;
|
|
2699
|
+
DRACO_ENCODER_URL = `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/draco_encoder.js`;
|
|
3118
2700
|
}
|
|
3119
2701
|
});
|
|
3120
2702
|
|
|
@@ -3141,184 +2723,1528 @@
|
|
|
3141
2723
|
}
|
|
3142
2724
|
});
|
|
3143
2725
|
|
|
3144
|
-
// src/lib/gltf-utils/gltf-attribute-utils.ts
|
|
3145
|
-
function getGLTFAccessors(attributes) {
|
|
3146
|
-
const accessors = {};
|
|
3147
|
-
for (const
|
|
3148
|
-
const attribute = attributes[
|
|
3149
|
-
if (
|
|
3150
|
-
const glTFAccessor = getGLTFAccessor(attribute);
|
|
3151
|
-
accessors[
|
|
3152
|
-
}
|
|
3153
|
-
}
|
|
3154
|
-
return accessors;
|
|
3155
|
-
}
|
|
3156
|
-
function getGLTFAccessor(attribute) {
|
|
3157
|
-
const { buffer, size, count } = getAccessorData(attribute);
|
|
3158
|
-
const glTFAccessor = {
|
|
3159
|
-
value: buffer,
|
|
3160
|
-
size,
|
|
3161
|
-
byteOffset: 0,
|
|
3162
|
-
count,
|
|
3163
|
-
type: getAccessorTypeFromSize(size),
|
|
3164
|
-
componentType: getComponentTypeFromArray(buffer)
|
|
3165
|
-
};
|
|
3166
|
-
return glTFAccessor;
|
|
3167
|
-
}
|
|
3168
|
-
function getAccessorData(attribute) {
|
|
3169
|
-
let buffer = attribute;
|
|
3170
|
-
let size = 1;
|
|
3171
|
-
let count = 0;
|
|
3172
|
-
if (attribute && attribute.value) {
|
|
3173
|
-
buffer = attribute.value;
|
|
3174
|
-
size = attribute.size || 1;
|
|
3175
|
-
}
|
|
3176
|
-
if (buffer) {
|
|
3177
|
-
if (!ArrayBuffer.isView(buffer)) {
|
|
3178
|
-
buffer = toTypedArray(buffer, Float32Array);
|
|
3179
|
-
}
|
|
3180
|
-
count = buffer.length / size;
|
|
3181
|
-
}
|
|
3182
|
-
return { buffer, size, count };
|
|
3183
|
-
}
|
|
3184
|
-
function toTypedArray(array, ArrayType, convertTypedArrays = false) {
|
|
3185
|
-
if (!array) {
|
|
2726
|
+
// src/lib/gltf-utils/gltf-attribute-utils.ts
|
|
2727
|
+
function getGLTFAccessors(attributes) {
|
|
2728
|
+
const accessors = {};
|
|
2729
|
+
for (const name10 in attributes) {
|
|
2730
|
+
const attribute = attributes[name10];
|
|
2731
|
+
if (name10 !== "indices") {
|
|
2732
|
+
const glTFAccessor = getGLTFAccessor(attribute);
|
|
2733
|
+
accessors[name10] = glTFAccessor;
|
|
2734
|
+
}
|
|
2735
|
+
}
|
|
2736
|
+
return accessors;
|
|
2737
|
+
}
|
|
2738
|
+
function getGLTFAccessor(attribute) {
|
|
2739
|
+
const { buffer, size, count } = getAccessorData(attribute);
|
|
2740
|
+
const glTFAccessor = {
|
|
2741
|
+
value: buffer,
|
|
2742
|
+
size,
|
|
2743
|
+
byteOffset: 0,
|
|
2744
|
+
count,
|
|
2745
|
+
type: getAccessorTypeFromSize(size),
|
|
2746
|
+
componentType: getComponentTypeFromArray(buffer)
|
|
2747
|
+
};
|
|
2748
|
+
return glTFAccessor;
|
|
2749
|
+
}
|
|
2750
|
+
function getAccessorData(attribute) {
|
|
2751
|
+
let buffer = attribute;
|
|
2752
|
+
let size = 1;
|
|
2753
|
+
let count = 0;
|
|
2754
|
+
if (attribute && attribute.value) {
|
|
2755
|
+
buffer = attribute.value;
|
|
2756
|
+
size = attribute.size || 1;
|
|
2757
|
+
}
|
|
2758
|
+
if (buffer) {
|
|
2759
|
+
if (!ArrayBuffer.isView(buffer)) {
|
|
2760
|
+
buffer = toTypedArray(buffer, Float32Array);
|
|
2761
|
+
}
|
|
2762
|
+
count = buffer.length / size;
|
|
2763
|
+
}
|
|
2764
|
+
return { buffer, size, count };
|
|
2765
|
+
}
|
|
2766
|
+
function toTypedArray(array, ArrayType, convertTypedArrays = false) {
|
|
2767
|
+
if (!array) {
|
|
2768
|
+
return null;
|
|
2769
|
+
}
|
|
2770
|
+
if (Array.isArray(array)) {
|
|
2771
|
+
return new ArrayType(array);
|
|
2772
|
+
}
|
|
2773
|
+
if (convertTypedArrays && !(array instanceof ArrayType)) {
|
|
2774
|
+
return new ArrayType(array);
|
|
2775
|
+
}
|
|
2776
|
+
return array;
|
|
2777
|
+
}
|
|
2778
|
+
var init_gltf_attribute_utils = __esm({
|
|
2779
|
+
"src/lib/gltf-utils/gltf-attribute-utils.ts"() {
|
|
2780
|
+
init_gltf_utils();
|
|
2781
|
+
}
|
|
2782
|
+
});
|
|
2783
|
+
|
|
2784
|
+
// src/lib/extensions/KHR_draco_mesh_compression.ts
|
|
2785
|
+
var KHR_draco_mesh_compression_exports = {};
|
|
2786
|
+
__export(KHR_draco_mesh_compression_exports, {
|
|
2787
|
+
decode: () => decode3,
|
|
2788
|
+
encode: () => encode,
|
|
2789
|
+
name: () => name4,
|
|
2790
|
+
preprocess: () => preprocess3
|
|
2791
|
+
});
|
|
2792
|
+
function preprocess3(gltfData, options, context) {
|
|
2793
|
+
const scenegraph = new GLTFScenegraph(gltfData);
|
|
2794
|
+
for (const primitive of makeMeshPrimitiveIterator(scenegraph)) {
|
|
2795
|
+
if (scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {
|
|
2796
|
+
}
|
|
2797
|
+
}
|
|
2798
|
+
}
|
|
2799
|
+
async function decode3(gltfData, options, context) {
|
|
2800
|
+
if (!options?.gltf?.decompressMeshes) {
|
|
2801
|
+
return;
|
|
2802
|
+
}
|
|
2803
|
+
const scenegraph = new GLTFScenegraph(gltfData);
|
|
2804
|
+
const promises = [];
|
|
2805
|
+
for (const primitive of makeMeshPrimitiveIterator(scenegraph)) {
|
|
2806
|
+
if (scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {
|
|
2807
|
+
promises.push(decompressPrimitive(scenegraph, primitive, options, context));
|
|
2808
|
+
}
|
|
2809
|
+
}
|
|
2810
|
+
await Promise.all(promises);
|
|
2811
|
+
scenegraph.removeExtension(KHR_DRACO_MESH_COMPRESSION);
|
|
2812
|
+
}
|
|
2813
|
+
function encode(gltfData, options = {}) {
|
|
2814
|
+
const scenegraph = new GLTFScenegraph(gltfData);
|
|
2815
|
+
for (const mesh of scenegraph.json.meshes || []) {
|
|
2816
|
+
compressMesh(mesh, options);
|
|
2817
|
+
scenegraph.addRequiredExtension(KHR_DRACO_MESH_COMPRESSION);
|
|
2818
|
+
}
|
|
2819
|
+
}
|
|
2820
|
+
async function decompressPrimitive(scenegraph, primitive, options, context) {
|
|
2821
|
+
const dracoExtension = scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION);
|
|
2822
|
+
if (!dracoExtension) {
|
|
2823
|
+
return;
|
|
2824
|
+
}
|
|
2825
|
+
const buffer = scenegraph.getTypedArrayForBufferView(dracoExtension.bufferView);
|
|
2826
|
+
const bufferCopy = sliceArrayBuffer(buffer.buffer, buffer.byteOffset);
|
|
2827
|
+
const { parse: parse4 } = context;
|
|
2828
|
+
const dracoOptions = { ...options };
|
|
2829
|
+
delete dracoOptions["3d-tiles"];
|
|
2830
|
+
const decodedData = await parse4(bufferCopy, DracoLoader2, dracoOptions, context);
|
|
2831
|
+
const decodedAttributes = getGLTFAccessors(decodedData.attributes);
|
|
2832
|
+
for (const [attributeName, decodedAttribute] of Object.entries(decodedAttributes)) {
|
|
2833
|
+
if (attributeName in primitive.attributes) {
|
|
2834
|
+
const accessorIndex = primitive.attributes[attributeName];
|
|
2835
|
+
const accessor = scenegraph.getAccessor(accessorIndex);
|
|
2836
|
+
if (accessor?.min && accessor?.max) {
|
|
2837
|
+
decodedAttribute.min = accessor.min;
|
|
2838
|
+
decodedAttribute.max = accessor.max;
|
|
2839
|
+
}
|
|
2840
|
+
}
|
|
2841
|
+
}
|
|
2842
|
+
primitive.attributes = decodedAttributes;
|
|
2843
|
+
if (decodedData.indices) {
|
|
2844
|
+
primitive.indices = getGLTFAccessor(decodedData.indices);
|
|
2845
|
+
}
|
|
2846
|
+
checkPrimitive(primitive);
|
|
2847
|
+
}
|
|
2848
|
+
function compressMesh(attributes, indices, mode = 4, options, context) {
|
|
2849
|
+
if (!options.DracoWriter) {
|
|
2850
|
+
throw new Error("options.gltf.DracoWriter not provided");
|
|
2851
|
+
}
|
|
2852
|
+
const compressedData = options.DracoWriter.encodeSync({ attributes });
|
|
2853
|
+
const decodedData = context?.parseSync?.({ attributes });
|
|
2854
|
+
const fauxAccessors = options._addFauxAttributes(decodedData.attributes);
|
|
2855
|
+
const bufferViewIndex = options.addBufferView(compressedData);
|
|
2856
|
+
const glTFMesh = {
|
|
2857
|
+
primitives: [
|
|
2858
|
+
{
|
|
2859
|
+
attributes: fauxAccessors,
|
|
2860
|
+
mode,
|
|
2861
|
+
extensions: {
|
|
2862
|
+
[KHR_DRACO_MESH_COMPRESSION]: {
|
|
2863
|
+
bufferView: bufferViewIndex,
|
|
2864
|
+
attributes: fauxAccessors
|
|
2865
|
+
}
|
|
2866
|
+
}
|
|
2867
|
+
}
|
|
2868
|
+
]
|
|
2869
|
+
};
|
|
2870
|
+
return glTFMesh;
|
|
2871
|
+
}
|
|
2872
|
+
function checkPrimitive(primitive) {
|
|
2873
|
+
if (!primitive.attributes && Object.keys(primitive.attributes).length > 0) {
|
|
2874
|
+
throw new Error("glTF: Empty primitive detected: Draco decompression failure?");
|
|
2875
|
+
}
|
|
2876
|
+
}
|
|
2877
|
+
function* makeMeshPrimitiveIterator(scenegraph) {
|
|
2878
|
+
for (const mesh of scenegraph.json.meshes || []) {
|
|
2879
|
+
for (const primitive of mesh.primitives) {
|
|
2880
|
+
yield primitive;
|
|
2881
|
+
}
|
|
2882
|
+
}
|
|
2883
|
+
}
|
|
2884
|
+
var KHR_DRACO_MESH_COMPRESSION, name4;
|
|
2885
|
+
var init_KHR_draco_mesh_compression = __esm({
|
|
2886
|
+
"src/lib/extensions/KHR_draco_mesh_compression.ts"() {
|
|
2887
|
+
init_src6();
|
|
2888
|
+
init_src2();
|
|
2889
|
+
init_gltf_scenegraph();
|
|
2890
|
+
init_gltf_attribute_utils();
|
|
2891
|
+
KHR_DRACO_MESH_COMPRESSION = "KHR_draco_mesh_compression";
|
|
2892
|
+
name4 = KHR_DRACO_MESH_COMPRESSION;
|
|
2893
|
+
}
|
|
2894
|
+
});
|
|
2895
|
+
|
|
2896
|
+
// ../../node_modules/@math.gl/core/dist/esm/lib/assert.js
|
|
2897
|
+
function assert4(condition, message) {
|
|
2898
|
+
if (!condition) {
|
|
2899
|
+
throw new Error("math.gl assertion ".concat(message));
|
|
2900
|
+
}
|
|
2901
|
+
}
|
|
2902
|
+
var init_assert4 = __esm({
|
|
2903
|
+
"../../node_modules/@math.gl/core/dist/esm/lib/assert.js"() {
|
|
2904
|
+
}
|
|
2905
|
+
});
|
|
2906
|
+
|
|
2907
|
+
// ../../node_modules/@math.gl/core/dist/esm/lib/common.js
|
|
2908
|
+
function formatValue(value, {
|
|
2909
|
+
precision = config.precision
|
|
2910
|
+
} = {}) {
|
|
2911
|
+
value = round(value);
|
|
2912
|
+
return "".concat(parseFloat(value.toPrecision(precision)));
|
|
2913
|
+
}
|
|
2914
|
+
function isArray(value) {
|
|
2915
|
+
return Array.isArray(value) || ArrayBuffer.isView(value) && !(value instanceof DataView);
|
|
2916
|
+
}
|
|
2917
|
+
function equals(a2, b, epsilon) {
|
|
2918
|
+
const oldEpsilon = config.EPSILON;
|
|
2919
|
+
if (epsilon) {
|
|
2920
|
+
config.EPSILON = epsilon;
|
|
2921
|
+
}
|
|
2922
|
+
try {
|
|
2923
|
+
if (a2 === b) {
|
|
2924
|
+
return true;
|
|
2925
|
+
}
|
|
2926
|
+
if (isArray(a2) && isArray(b)) {
|
|
2927
|
+
if (a2.length !== b.length) {
|
|
2928
|
+
return false;
|
|
2929
|
+
}
|
|
2930
|
+
for (let i2 = 0; i2 < a2.length; ++i2) {
|
|
2931
|
+
if (!equals(a2[i2], b[i2])) {
|
|
2932
|
+
return false;
|
|
2933
|
+
}
|
|
2934
|
+
}
|
|
2935
|
+
return true;
|
|
2936
|
+
}
|
|
2937
|
+
if (a2 && a2.equals) {
|
|
2938
|
+
return a2.equals(b);
|
|
2939
|
+
}
|
|
2940
|
+
if (b && b.equals) {
|
|
2941
|
+
return b.equals(a2);
|
|
2942
|
+
}
|
|
2943
|
+
if (typeof a2 === "number" && typeof b === "number") {
|
|
2944
|
+
return Math.abs(a2 - b) <= config.EPSILON * Math.max(1, Math.abs(a2), Math.abs(b));
|
|
2945
|
+
}
|
|
2946
|
+
return false;
|
|
2947
|
+
} finally {
|
|
2948
|
+
config.EPSILON = oldEpsilon;
|
|
2949
|
+
}
|
|
2950
|
+
}
|
|
2951
|
+
function round(value) {
|
|
2952
|
+
return Math.round(value / config.EPSILON) * config.EPSILON;
|
|
2953
|
+
}
|
|
2954
|
+
var RADIANS_TO_DEGREES, DEGREES_TO_RADIANS, config;
|
|
2955
|
+
var init_common = __esm({
|
|
2956
|
+
"../../node_modules/@math.gl/core/dist/esm/lib/common.js"() {
|
|
2957
|
+
RADIANS_TO_DEGREES = 1 / Math.PI * 180;
|
|
2958
|
+
DEGREES_TO_RADIANS = 1 / 180 * Math.PI;
|
|
2959
|
+
config = {
|
|
2960
|
+
EPSILON: 1e-12,
|
|
2961
|
+
debug: false,
|
|
2962
|
+
precision: 4,
|
|
2963
|
+
printTypes: false,
|
|
2964
|
+
printDegrees: false,
|
|
2965
|
+
printRowMajor: true
|
|
2966
|
+
};
|
|
2967
|
+
}
|
|
2968
|
+
});
|
|
2969
|
+
|
|
2970
|
+
// ../../node_modules/@math.gl/core/dist/esm/classes/base/math-array.js
|
|
2971
|
+
function _extendableBuiltin(cls) {
|
|
2972
|
+
function ExtendableBuiltin() {
|
|
2973
|
+
var instance = Reflect.construct(cls, Array.from(arguments));
|
|
2974
|
+
Object.setPrototypeOf(instance, Object.getPrototypeOf(this));
|
|
2975
|
+
return instance;
|
|
2976
|
+
}
|
|
2977
|
+
ExtendableBuiltin.prototype = Object.create(cls.prototype, {
|
|
2978
|
+
constructor: {
|
|
2979
|
+
value: cls,
|
|
2980
|
+
enumerable: false,
|
|
2981
|
+
writable: true,
|
|
2982
|
+
configurable: true
|
|
2983
|
+
}
|
|
2984
|
+
});
|
|
2985
|
+
if (Object.setPrototypeOf) {
|
|
2986
|
+
Object.setPrototypeOf(ExtendableBuiltin, cls);
|
|
2987
|
+
} else {
|
|
2988
|
+
ExtendableBuiltin.__proto__ = cls;
|
|
2989
|
+
}
|
|
2990
|
+
return ExtendableBuiltin;
|
|
2991
|
+
}
|
|
2992
|
+
var MathArray;
|
|
2993
|
+
var init_math_array = __esm({
|
|
2994
|
+
"../../node_modules/@math.gl/core/dist/esm/classes/base/math-array.js"() {
|
|
2995
|
+
init_common();
|
|
2996
|
+
MathArray = class extends _extendableBuiltin(Array) {
|
|
2997
|
+
clone() {
|
|
2998
|
+
return new this.constructor().copy(this);
|
|
2999
|
+
}
|
|
3000
|
+
fromArray(array, offset = 0) {
|
|
3001
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3002
|
+
this[i2] = array[i2 + offset];
|
|
3003
|
+
}
|
|
3004
|
+
return this.check();
|
|
3005
|
+
}
|
|
3006
|
+
toArray(targetArray = [], offset = 0) {
|
|
3007
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3008
|
+
targetArray[offset + i2] = this[i2];
|
|
3009
|
+
}
|
|
3010
|
+
return targetArray;
|
|
3011
|
+
}
|
|
3012
|
+
from(arrayOrObject) {
|
|
3013
|
+
return Array.isArray(arrayOrObject) ? this.copy(arrayOrObject) : this.fromObject(arrayOrObject);
|
|
3014
|
+
}
|
|
3015
|
+
to(arrayOrObject) {
|
|
3016
|
+
if (arrayOrObject === this) {
|
|
3017
|
+
return this;
|
|
3018
|
+
}
|
|
3019
|
+
return isArray(arrayOrObject) ? this.toArray(arrayOrObject) : this.toObject(arrayOrObject);
|
|
3020
|
+
}
|
|
3021
|
+
toTarget(target) {
|
|
3022
|
+
return target ? this.to(target) : this;
|
|
3023
|
+
}
|
|
3024
|
+
toFloat32Array() {
|
|
3025
|
+
return new Float32Array(this);
|
|
3026
|
+
}
|
|
3027
|
+
toString() {
|
|
3028
|
+
return this.formatString(config);
|
|
3029
|
+
}
|
|
3030
|
+
formatString(opts) {
|
|
3031
|
+
let string = "";
|
|
3032
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3033
|
+
string += (i2 > 0 ? ", " : "") + formatValue(this[i2], opts);
|
|
3034
|
+
}
|
|
3035
|
+
return "".concat(opts.printTypes ? this.constructor.name : "", "[").concat(string, "]");
|
|
3036
|
+
}
|
|
3037
|
+
equals(array) {
|
|
3038
|
+
if (!array || this.length !== array.length) {
|
|
3039
|
+
return false;
|
|
3040
|
+
}
|
|
3041
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3042
|
+
if (!equals(this[i2], array[i2])) {
|
|
3043
|
+
return false;
|
|
3044
|
+
}
|
|
3045
|
+
}
|
|
3046
|
+
return true;
|
|
3047
|
+
}
|
|
3048
|
+
exactEquals(array) {
|
|
3049
|
+
if (!array || this.length !== array.length) {
|
|
3050
|
+
return false;
|
|
3051
|
+
}
|
|
3052
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3053
|
+
if (this[i2] !== array[i2]) {
|
|
3054
|
+
return false;
|
|
3055
|
+
}
|
|
3056
|
+
}
|
|
3057
|
+
return true;
|
|
3058
|
+
}
|
|
3059
|
+
negate() {
|
|
3060
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3061
|
+
this[i2] = -this[i2];
|
|
3062
|
+
}
|
|
3063
|
+
return this.check();
|
|
3064
|
+
}
|
|
3065
|
+
lerp(a2, b, t2) {
|
|
3066
|
+
if (t2 === void 0) {
|
|
3067
|
+
return this.lerp(this, a2, b);
|
|
3068
|
+
}
|
|
3069
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3070
|
+
const ai = a2[i2];
|
|
3071
|
+
this[i2] = ai + t2 * (b[i2] - ai);
|
|
3072
|
+
}
|
|
3073
|
+
return this.check();
|
|
3074
|
+
}
|
|
3075
|
+
min(vector) {
|
|
3076
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3077
|
+
this[i2] = Math.min(vector[i2], this[i2]);
|
|
3078
|
+
}
|
|
3079
|
+
return this.check();
|
|
3080
|
+
}
|
|
3081
|
+
max(vector) {
|
|
3082
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3083
|
+
this[i2] = Math.max(vector[i2], this[i2]);
|
|
3084
|
+
}
|
|
3085
|
+
return this.check();
|
|
3086
|
+
}
|
|
3087
|
+
clamp(minVector, maxVector) {
|
|
3088
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3089
|
+
this[i2] = Math.min(Math.max(this[i2], minVector[i2]), maxVector[i2]);
|
|
3090
|
+
}
|
|
3091
|
+
return this.check();
|
|
3092
|
+
}
|
|
3093
|
+
add(...vectors) {
|
|
3094
|
+
for (const vector of vectors) {
|
|
3095
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3096
|
+
this[i2] += vector[i2];
|
|
3097
|
+
}
|
|
3098
|
+
}
|
|
3099
|
+
return this.check();
|
|
3100
|
+
}
|
|
3101
|
+
subtract(...vectors) {
|
|
3102
|
+
for (const vector of vectors) {
|
|
3103
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3104
|
+
this[i2] -= vector[i2];
|
|
3105
|
+
}
|
|
3106
|
+
}
|
|
3107
|
+
return this.check();
|
|
3108
|
+
}
|
|
3109
|
+
scale(scale2) {
|
|
3110
|
+
if (typeof scale2 === "number") {
|
|
3111
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3112
|
+
this[i2] *= scale2;
|
|
3113
|
+
}
|
|
3114
|
+
} else {
|
|
3115
|
+
for (let i2 = 0; i2 < this.ELEMENTS && i2 < scale2.length; ++i2) {
|
|
3116
|
+
this[i2] *= scale2[i2];
|
|
3117
|
+
}
|
|
3118
|
+
}
|
|
3119
|
+
return this.check();
|
|
3120
|
+
}
|
|
3121
|
+
multiplyByScalar(scalar) {
|
|
3122
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3123
|
+
this[i2] *= scalar;
|
|
3124
|
+
}
|
|
3125
|
+
return this.check();
|
|
3126
|
+
}
|
|
3127
|
+
check() {
|
|
3128
|
+
if (config.debug && !this.validate()) {
|
|
3129
|
+
throw new Error("math.gl: ".concat(this.constructor.name, " some fields set to invalid numbers'"));
|
|
3130
|
+
}
|
|
3131
|
+
return this;
|
|
3132
|
+
}
|
|
3133
|
+
validate() {
|
|
3134
|
+
let valid = this.length === this.ELEMENTS;
|
|
3135
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3136
|
+
valid = valid && Number.isFinite(this[i2]);
|
|
3137
|
+
}
|
|
3138
|
+
return valid;
|
|
3139
|
+
}
|
|
3140
|
+
sub(a2) {
|
|
3141
|
+
return this.subtract(a2);
|
|
3142
|
+
}
|
|
3143
|
+
setScalar(a2) {
|
|
3144
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3145
|
+
this[i2] = a2;
|
|
3146
|
+
}
|
|
3147
|
+
return this.check();
|
|
3148
|
+
}
|
|
3149
|
+
addScalar(a2) {
|
|
3150
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3151
|
+
this[i2] += a2;
|
|
3152
|
+
}
|
|
3153
|
+
return this.check();
|
|
3154
|
+
}
|
|
3155
|
+
subScalar(a2) {
|
|
3156
|
+
return this.addScalar(-a2);
|
|
3157
|
+
}
|
|
3158
|
+
multiplyScalar(scalar) {
|
|
3159
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3160
|
+
this[i2] *= scalar;
|
|
3161
|
+
}
|
|
3162
|
+
return this.check();
|
|
3163
|
+
}
|
|
3164
|
+
divideScalar(a2) {
|
|
3165
|
+
return this.multiplyByScalar(1 / a2);
|
|
3166
|
+
}
|
|
3167
|
+
clampScalar(min, max) {
|
|
3168
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3169
|
+
this[i2] = Math.min(Math.max(this[i2], min), max);
|
|
3170
|
+
}
|
|
3171
|
+
return this.check();
|
|
3172
|
+
}
|
|
3173
|
+
get elements() {
|
|
3174
|
+
return this;
|
|
3175
|
+
}
|
|
3176
|
+
};
|
|
3177
|
+
}
|
|
3178
|
+
});
|
|
3179
|
+
|
|
3180
|
+
// ../../node_modules/@math.gl/core/dist/esm/lib/validators.js
|
|
3181
|
+
function validateVector(v, length) {
|
|
3182
|
+
if (v.length !== length) {
|
|
3183
|
+
return false;
|
|
3184
|
+
}
|
|
3185
|
+
for (let i2 = 0; i2 < v.length; ++i2) {
|
|
3186
|
+
if (!Number.isFinite(v[i2])) {
|
|
3187
|
+
return false;
|
|
3188
|
+
}
|
|
3189
|
+
}
|
|
3190
|
+
return true;
|
|
3191
|
+
}
|
|
3192
|
+
function checkNumber(value) {
|
|
3193
|
+
if (!Number.isFinite(value)) {
|
|
3194
|
+
throw new Error("Invalid number ".concat(value));
|
|
3195
|
+
}
|
|
3196
|
+
return value;
|
|
3197
|
+
}
|
|
3198
|
+
function checkVector(v, length, callerName = "") {
|
|
3199
|
+
if (config.debug && !validateVector(v, length)) {
|
|
3200
|
+
throw new Error("math.gl: ".concat(callerName, " some fields set to invalid numbers'"));
|
|
3201
|
+
}
|
|
3202
|
+
return v;
|
|
3203
|
+
}
|
|
3204
|
+
var init_validators = __esm({
|
|
3205
|
+
"../../node_modules/@math.gl/core/dist/esm/lib/validators.js"() {
|
|
3206
|
+
init_common();
|
|
3207
|
+
}
|
|
3208
|
+
});
|
|
3209
|
+
|
|
3210
|
+
// ../../node_modules/@math.gl/core/dist/esm/classes/base/vector.js
|
|
3211
|
+
var Vector;
|
|
3212
|
+
var init_vector = __esm({
|
|
3213
|
+
"../../node_modules/@math.gl/core/dist/esm/classes/base/vector.js"() {
|
|
3214
|
+
init_math_array();
|
|
3215
|
+
init_validators();
|
|
3216
|
+
init_assert4();
|
|
3217
|
+
Vector = class extends MathArray {
|
|
3218
|
+
get x() {
|
|
3219
|
+
return this[0];
|
|
3220
|
+
}
|
|
3221
|
+
set x(value) {
|
|
3222
|
+
this[0] = checkNumber(value);
|
|
3223
|
+
}
|
|
3224
|
+
get y() {
|
|
3225
|
+
return this[1];
|
|
3226
|
+
}
|
|
3227
|
+
set y(value) {
|
|
3228
|
+
this[1] = checkNumber(value);
|
|
3229
|
+
}
|
|
3230
|
+
len() {
|
|
3231
|
+
return Math.sqrt(this.lengthSquared());
|
|
3232
|
+
}
|
|
3233
|
+
magnitude() {
|
|
3234
|
+
return this.len();
|
|
3235
|
+
}
|
|
3236
|
+
lengthSquared() {
|
|
3237
|
+
let length = 0;
|
|
3238
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3239
|
+
length += this[i2] * this[i2];
|
|
3240
|
+
}
|
|
3241
|
+
return length;
|
|
3242
|
+
}
|
|
3243
|
+
magnitudeSquared() {
|
|
3244
|
+
return this.lengthSquared();
|
|
3245
|
+
}
|
|
3246
|
+
distance(mathArray) {
|
|
3247
|
+
return Math.sqrt(this.distanceSquared(mathArray));
|
|
3248
|
+
}
|
|
3249
|
+
distanceSquared(mathArray) {
|
|
3250
|
+
let length = 0;
|
|
3251
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3252
|
+
const dist = this[i2] - mathArray[i2];
|
|
3253
|
+
length += dist * dist;
|
|
3254
|
+
}
|
|
3255
|
+
return checkNumber(length);
|
|
3256
|
+
}
|
|
3257
|
+
dot(mathArray) {
|
|
3258
|
+
let product = 0;
|
|
3259
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3260
|
+
product += this[i2] * mathArray[i2];
|
|
3261
|
+
}
|
|
3262
|
+
return checkNumber(product);
|
|
3263
|
+
}
|
|
3264
|
+
normalize() {
|
|
3265
|
+
const length = this.magnitude();
|
|
3266
|
+
if (length !== 0) {
|
|
3267
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3268
|
+
this[i2] /= length;
|
|
3269
|
+
}
|
|
3270
|
+
}
|
|
3271
|
+
return this.check();
|
|
3272
|
+
}
|
|
3273
|
+
multiply(...vectors) {
|
|
3274
|
+
for (const vector of vectors) {
|
|
3275
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3276
|
+
this[i2] *= vector[i2];
|
|
3277
|
+
}
|
|
3278
|
+
}
|
|
3279
|
+
return this.check();
|
|
3280
|
+
}
|
|
3281
|
+
divide(...vectors) {
|
|
3282
|
+
for (const vector of vectors) {
|
|
3283
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3284
|
+
this[i2] /= vector[i2];
|
|
3285
|
+
}
|
|
3286
|
+
}
|
|
3287
|
+
return this.check();
|
|
3288
|
+
}
|
|
3289
|
+
lengthSq() {
|
|
3290
|
+
return this.lengthSquared();
|
|
3291
|
+
}
|
|
3292
|
+
distanceTo(vector) {
|
|
3293
|
+
return this.distance(vector);
|
|
3294
|
+
}
|
|
3295
|
+
distanceToSquared(vector) {
|
|
3296
|
+
return this.distanceSquared(vector);
|
|
3297
|
+
}
|
|
3298
|
+
getComponent(i2) {
|
|
3299
|
+
assert4(i2 >= 0 && i2 < this.ELEMENTS, "index is out of range");
|
|
3300
|
+
return checkNumber(this[i2]);
|
|
3301
|
+
}
|
|
3302
|
+
setComponent(i2, value) {
|
|
3303
|
+
assert4(i2 >= 0 && i2 < this.ELEMENTS, "index is out of range");
|
|
3304
|
+
this[i2] = value;
|
|
3305
|
+
return this.check();
|
|
3306
|
+
}
|
|
3307
|
+
addVectors(a2, b) {
|
|
3308
|
+
return this.copy(a2).add(b);
|
|
3309
|
+
}
|
|
3310
|
+
subVectors(a2, b) {
|
|
3311
|
+
return this.copy(a2).subtract(b);
|
|
3312
|
+
}
|
|
3313
|
+
multiplyVectors(a2, b) {
|
|
3314
|
+
return this.copy(a2).multiply(b);
|
|
3315
|
+
}
|
|
3316
|
+
addScaledVector(a2, b) {
|
|
3317
|
+
return this.add(new this.constructor(a2).multiplyScalar(b));
|
|
3318
|
+
}
|
|
3319
|
+
};
|
|
3320
|
+
}
|
|
3321
|
+
});
|
|
3322
|
+
|
|
3323
|
+
// ../../node_modules/gl-matrix/esm/common.js
|
|
3324
|
+
var ARRAY_TYPE, degree;
|
|
3325
|
+
var init_common2 = __esm({
|
|
3326
|
+
"../../node_modules/gl-matrix/esm/common.js"() {
|
|
3327
|
+
ARRAY_TYPE = typeof Float32Array !== "undefined" ? Float32Array : Array;
|
|
3328
|
+
degree = Math.PI / 180;
|
|
3329
|
+
if (!Math.hypot)
|
|
3330
|
+
Math.hypot = function() {
|
|
3331
|
+
var y = 0, i2 = arguments.length;
|
|
3332
|
+
while (i2--) {
|
|
3333
|
+
y += arguments[i2] * arguments[i2];
|
|
3334
|
+
}
|
|
3335
|
+
return Math.sqrt(y);
|
|
3336
|
+
};
|
|
3337
|
+
}
|
|
3338
|
+
});
|
|
3339
|
+
|
|
3340
|
+
// ../../node_modules/gl-matrix/esm/vec2.js
|
|
3341
|
+
function create() {
|
|
3342
|
+
var out = new ARRAY_TYPE(2);
|
|
3343
|
+
if (ARRAY_TYPE != Float32Array) {
|
|
3344
|
+
out[0] = 0;
|
|
3345
|
+
out[1] = 0;
|
|
3346
|
+
}
|
|
3347
|
+
return out;
|
|
3348
|
+
}
|
|
3349
|
+
function transformMat3(out, a2, m) {
|
|
3350
|
+
var x = a2[0], y = a2[1];
|
|
3351
|
+
out[0] = m[0] * x + m[3] * y + m[6];
|
|
3352
|
+
out[1] = m[1] * x + m[4] * y + m[7];
|
|
3353
|
+
return out;
|
|
3354
|
+
}
|
|
3355
|
+
var forEach;
|
|
3356
|
+
var init_vec2 = __esm({
|
|
3357
|
+
"../../node_modules/gl-matrix/esm/vec2.js"() {
|
|
3358
|
+
init_common2();
|
|
3359
|
+
forEach = function() {
|
|
3360
|
+
var vec = create();
|
|
3361
|
+
return function(a2, stride, offset, count, fn, arg) {
|
|
3362
|
+
var i2, l2;
|
|
3363
|
+
if (!stride) {
|
|
3364
|
+
stride = 2;
|
|
3365
|
+
}
|
|
3366
|
+
if (!offset) {
|
|
3367
|
+
offset = 0;
|
|
3368
|
+
}
|
|
3369
|
+
if (count) {
|
|
3370
|
+
l2 = Math.min(count * stride + offset, a2.length);
|
|
3371
|
+
} else {
|
|
3372
|
+
l2 = a2.length;
|
|
3373
|
+
}
|
|
3374
|
+
for (i2 = offset; i2 < l2; i2 += stride) {
|
|
3375
|
+
vec[0] = a2[i2];
|
|
3376
|
+
vec[1] = a2[i2 + 1];
|
|
3377
|
+
fn(vec, vec, arg);
|
|
3378
|
+
a2[i2] = vec[0];
|
|
3379
|
+
a2[i2 + 1] = vec[1];
|
|
3380
|
+
}
|
|
3381
|
+
return a2;
|
|
3382
|
+
};
|
|
3383
|
+
}();
|
|
3384
|
+
}
|
|
3385
|
+
});
|
|
3386
|
+
|
|
3387
|
+
// ../../node_modules/@math.gl/core/dist/esm/lib/gl-matrix-extras.js
|
|
3388
|
+
function vec3_transformMat4AsVector(out, a2, m) {
|
|
3389
|
+
const x = a2[0];
|
|
3390
|
+
const y = a2[1];
|
|
3391
|
+
const z = a2[2];
|
|
3392
|
+
const w = m[3] * x + m[7] * y + m[11] * z || 1;
|
|
3393
|
+
out[0] = (m[0] * x + m[4] * y + m[8] * z) / w;
|
|
3394
|
+
out[1] = (m[1] * x + m[5] * y + m[9] * z) / w;
|
|
3395
|
+
out[2] = (m[2] * x + m[6] * y + m[10] * z) / w;
|
|
3396
|
+
return out;
|
|
3397
|
+
}
|
|
3398
|
+
function vec3_transformMat2(out, a2, m) {
|
|
3399
|
+
const x = a2[0];
|
|
3400
|
+
const y = a2[1];
|
|
3401
|
+
out[0] = m[0] * x + m[2] * y;
|
|
3402
|
+
out[1] = m[1] * x + m[3] * y;
|
|
3403
|
+
out[2] = a2[2];
|
|
3404
|
+
return out;
|
|
3405
|
+
}
|
|
3406
|
+
function vec4_transformMat3(out, a2, m) {
|
|
3407
|
+
const x = a2[0];
|
|
3408
|
+
const y = a2[1];
|
|
3409
|
+
const z = a2[2];
|
|
3410
|
+
out[0] = m[0] * x + m[3] * y + m[6] * z;
|
|
3411
|
+
out[1] = m[1] * x + m[4] * y + m[7] * z;
|
|
3412
|
+
out[2] = m[2] * x + m[5] * y + m[8] * z;
|
|
3413
|
+
out[3] = a2[3];
|
|
3414
|
+
return out;
|
|
3415
|
+
}
|
|
3416
|
+
var init_gl_matrix_extras = __esm({
|
|
3417
|
+
"../../node_modules/@math.gl/core/dist/esm/lib/gl-matrix-extras.js"() {
|
|
3418
|
+
}
|
|
3419
|
+
});
|
|
3420
|
+
|
|
3421
|
+
// ../../node_modules/gl-matrix/esm/vec3.js
|
|
3422
|
+
function create2() {
|
|
3423
|
+
var out = new ARRAY_TYPE(3);
|
|
3424
|
+
if (ARRAY_TYPE != Float32Array) {
|
|
3425
|
+
out[0] = 0;
|
|
3426
|
+
out[1] = 0;
|
|
3427
|
+
out[2] = 0;
|
|
3428
|
+
}
|
|
3429
|
+
return out;
|
|
3430
|
+
}
|
|
3431
|
+
function dot(a2, b) {
|
|
3432
|
+
return a2[0] * b[0] + a2[1] * b[1] + a2[2] * b[2];
|
|
3433
|
+
}
|
|
3434
|
+
function cross(out, a2, b) {
|
|
3435
|
+
var ax = a2[0], ay = a2[1], az = a2[2];
|
|
3436
|
+
var bx = b[0], by = b[1], bz = b[2];
|
|
3437
|
+
out[0] = ay * bz - az * by;
|
|
3438
|
+
out[1] = az * bx - ax * bz;
|
|
3439
|
+
out[2] = ax * by - ay * bx;
|
|
3440
|
+
return out;
|
|
3441
|
+
}
|
|
3442
|
+
function transformMat4(out, a2, m) {
|
|
3443
|
+
var x = a2[0], y = a2[1], z = a2[2];
|
|
3444
|
+
var w = m[3] * x + m[7] * y + m[11] * z + m[15];
|
|
3445
|
+
w = w || 1;
|
|
3446
|
+
out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;
|
|
3447
|
+
out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;
|
|
3448
|
+
out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;
|
|
3449
|
+
return out;
|
|
3450
|
+
}
|
|
3451
|
+
function transformMat32(out, a2, m) {
|
|
3452
|
+
var x = a2[0], y = a2[1], z = a2[2];
|
|
3453
|
+
out[0] = x * m[0] + y * m[3] + z * m[6];
|
|
3454
|
+
out[1] = x * m[1] + y * m[4] + z * m[7];
|
|
3455
|
+
out[2] = x * m[2] + y * m[5] + z * m[8];
|
|
3456
|
+
return out;
|
|
3457
|
+
}
|
|
3458
|
+
function transformQuat(out, a2, q) {
|
|
3459
|
+
var qx = q[0], qy = q[1], qz = q[2], qw = q[3];
|
|
3460
|
+
var x = a2[0], y = a2[1], z = a2[2];
|
|
3461
|
+
var uvx = qy * z - qz * y, uvy = qz * x - qx * z, uvz = qx * y - qy * x;
|
|
3462
|
+
var uuvx = qy * uvz - qz * uvy, uuvy = qz * uvx - qx * uvz, uuvz = qx * uvy - qy * uvx;
|
|
3463
|
+
var w2 = qw * 2;
|
|
3464
|
+
uvx *= w2;
|
|
3465
|
+
uvy *= w2;
|
|
3466
|
+
uvz *= w2;
|
|
3467
|
+
uuvx *= 2;
|
|
3468
|
+
uuvy *= 2;
|
|
3469
|
+
uuvz *= 2;
|
|
3470
|
+
out[0] = x + uvx + uuvx;
|
|
3471
|
+
out[1] = y + uvy + uuvy;
|
|
3472
|
+
out[2] = z + uvz + uuvz;
|
|
3473
|
+
return out;
|
|
3474
|
+
}
|
|
3475
|
+
function rotateX(out, a2, b, rad) {
|
|
3476
|
+
var p2 = [], r2 = [];
|
|
3477
|
+
p2[0] = a2[0] - b[0];
|
|
3478
|
+
p2[1] = a2[1] - b[1];
|
|
3479
|
+
p2[2] = a2[2] - b[2];
|
|
3480
|
+
r2[0] = p2[0];
|
|
3481
|
+
r2[1] = p2[1] * Math.cos(rad) - p2[2] * Math.sin(rad);
|
|
3482
|
+
r2[2] = p2[1] * Math.sin(rad) + p2[2] * Math.cos(rad);
|
|
3483
|
+
out[0] = r2[0] + b[0];
|
|
3484
|
+
out[1] = r2[1] + b[1];
|
|
3485
|
+
out[2] = r2[2] + b[2];
|
|
3486
|
+
return out;
|
|
3487
|
+
}
|
|
3488
|
+
function rotateY(out, a2, b, rad) {
|
|
3489
|
+
var p2 = [], r2 = [];
|
|
3490
|
+
p2[0] = a2[0] - b[0];
|
|
3491
|
+
p2[1] = a2[1] - b[1];
|
|
3492
|
+
p2[2] = a2[2] - b[2];
|
|
3493
|
+
r2[0] = p2[2] * Math.sin(rad) + p2[0] * Math.cos(rad);
|
|
3494
|
+
r2[1] = p2[1];
|
|
3495
|
+
r2[2] = p2[2] * Math.cos(rad) - p2[0] * Math.sin(rad);
|
|
3496
|
+
out[0] = r2[0] + b[0];
|
|
3497
|
+
out[1] = r2[1] + b[1];
|
|
3498
|
+
out[2] = r2[2] + b[2];
|
|
3499
|
+
return out;
|
|
3500
|
+
}
|
|
3501
|
+
function rotateZ(out, a2, b, rad) {
|
|
3502
|
+
var p2 = [], r2 = [];
|
|
3503
|
+
p2[0] = a2[0] - b[0];
|
|
3504
|
+
p2[1] = a2[1] - b[1];
|
|
3505
|
+
p2[2] = a2[2] - b[2];
|
|
3506
|
+
r2[0] = p2[0] * Math.cos(rad) - p2[1] * Math.sin(rad);
|
|
3507
|
+
r2[1] = p2[0] * Math.sin(rad) + p2[1] * Math.cos(rad);
|
|
3508
|
+
r2[2] = p2[2];
|
|
3509
|
+
out[0] = r2[0] + b[0];
|
|
3510
|
+
out[1] = r2[1] + b[1];
|
|
3511
|
+
out[2] = r2[2] + b[2];
|
|
3512
|
+
return out;
|
|
3513
|
+
}
|
|
3514
|
+
function angle(a2, b) {
|
|
3515
|
+
var ax = a2[0], ay = a2[1], az = a2[2], bx = b[0], by = b[1], bz = b[2], mag1 = Math.sqrt(ax * ax + ay * ay + az * az), mag2 = Math.sqrt(bx * bx + by * by + bz * bz), mag = mag1 * mag2, cosine = mag && dot(a2, b) / mag;
|
|
3516
|
+
return Math.acos(Math.min(Math.max(cosine, -1), 1));
|
|
3517
|
+
}
|
|
3518
|
+
var forEach2;
|
|
3519
|
+
var init_vec3 = __esm({
|
|
3520
|
+
"../../node_modules/gl-matrix/esm/vec3.js"() {
|
|
3521
|
+
init_common2();
|
|
3522
|
+
forEach2 = function() {
|
|
3523
|
+
var vec = create2();
|
|
3524
|
+
return function(a2, stride, offset, count, fn, arg) {
|
|
3525
|
+
var i2, l2;
|
|
3526
|
+
if (!stride) {
|
|
3527
|
+
stride = 3;
|
|
3528
|
+
}
|
|
3529
|
+
if (!offset) {
|
|
3530
|
+
offset = 0;
|
|
3531
|
+
}
|
|
3532
|
+
if (count) {
|
|
3533
|
+
l2 = Math.min(count * stride + offset, a2.length);
|
|
3534
|
+
} else {
|
|
3535
|
+
l2 = a2.length;
|
|
3536
|
+
}
|
|
3537
|
+
for (i2 = offset; i2 < l2; i2 += stride) {
|
|
3538
|
+
vec[0] = a2[i2];
|
|
3539
|
+
vec[1] = a2[i2 + 1];
|
|
3540
|
+
vec[2] = a2[i2 + 2];
|
|
3541
|
+
fn(vec, vec, arg);
|
|
3542
|
+
a2[i2] = vec[0];
|
|
3543
|
+
a2[i2 + 1] = vec[1];
|
|
3544
|
+
a2[i2 + 2] = vec[2];
|
|
3545
|
+
}
|
|
3546
|
+
return a2;
|
|
3547
|
+
};
|
|
3548
|
+
}();
|
|
3549
|
+
}
|
|
3550
|
+
});
|
|
3551
|
+
|
|
3552
|
+
// ../../node_modules/@math.gl/core/dist/esm/classes/vector3.js
|
|
3553
|
+
var ORIGIN, ZERO, Vector3;
|
|
3554
|
+
var init_vector3 = __esm({
|
|
3555
|
+
"../../node_modules/@math.gl/core/dist/esm/classes/vector3.js"() {
|
|
3556
|
+
init_vector();
|
|
3557
|
+
init_common();
|
|
3558
|
+
init_validators();
|
|
3559
|
+
init_vec3();
|
|
3560
|
+
init_gl_matrix_extras();
|
|
3561
|
+
ORIGIN = [0, 0, 0];
|
|
3562
|
+
Vector3 = class extends Vector {
|
|
3563
|
+
static get ZERO() {
|
|
3564
|
+
if (!ZERO) {
|
|
3565
|
+
ZERO = new Vector3(0, 0, 0);
|
|
3566
|
+
Object.freeze(ZERO);
|
|
3567
|
+
}
|
|
3568
|
+
return ZERO;
|
|
3569
|
+
}
|
|
3570
|
+
constructor(x = 0, y = 0, z = 0) {
|
|
3571
|
+
super(-0, -0, -0);
|
|
3572
|
+
if (arguments.length === 1 && isArray(x)) {
|
|
3573
|
+
this.copy(x);
|
|
3574
|
+
} else {
|
|
3575
|
+
if (config.debug) {
|
|
3576
|
+
checkNumber(x);
|
|
3577
|
+
checkNumber(y);
|
|
3578
|
+
checkNumber(z);
|
|
3579
|
+
}
|
|
3580
|
+
this[0] = x;
|
|
3581
|
+
this[1] = y;
|
|
3582
|
+
this[2] = z;
|
|
3583
|
+
}
|
|
3584
|
+
}
|
|
3585
|
+
set(x, y, z) {
|
|
3586
|
+
this[0] = x;
|
|
3587
|
+
this[1] = y;
|
|
3588
|
+
this[2] = z;
|
|
3589
|
+
return this.check();
|
|
3590
|
+
}
|
|
3591
|
+
copy(array) {
|
|
3592
|
+
this[0] = array[0];
|
|
3593
|
+
this[1] = array[1];
|
|
3594
|
+
this[2] = array[2];
|
|
3595
|
+
return this.check();
|
|
3596
|
+
}
|
|
3597
|
+
fromObject(object) {
|
|
3598
|
+
if (config.debug) {
|
|
3599
|
+
checkNumber(object.x);
|
|
3600
|
+
checkNumber(object.y);
|
|
3601
|
+
checkNumber(object.z);
|
|
3602
|
+
}
|
|
3603
|
+
this[0] = object.x;
|
|
3604
|
+
this[1] = object.y;
|
|
3605
|
+
this[2] = object.z;
|
|
3606
|
+
return this.check();
|
|
3607
|
+
}
|
|
3608
|
+
toObject(object) {
|
|
3609
|
+
object.x = this[0];
|
|
3610
|
+
object.y = this[1];
|
|
3611
|
+
object.z = this[2];
|
|
3612
|
+
return object;
|
|
3613
|
+
}
|
|
3614
|
+
get ELEMENTS() {
|
|
3615
|
+
return 3;
|
|
3616
|
+
}
|
|
3617
|
+
get z() {
|
|
3618
|
+
return this[2];
|
|
3619
|
+
}
|
|
3620
|
+
set z(value) {
|
|
3621
|
+
this[2] = checkNumber(value);
|
|
3622
|
+
}
|
|
3623
|
+
angle(vector) {
|
|
3624
|
+
return angle(this, vector);
|
|
3625
|
+
}
|
|
3626
|
+
cross(vector) {
|
|
3627
|
+
cross(this, this, vector);
|
|
3628
|
+
return this.check();
|
|
3629
|
+
}
|
|
3630
|
+
rotateX({
|
|
3631
|
+
radians,
|
|
3632
|
+
origin = ORIGIN
|
|
3633
|
+
}) {
|
|
3634
|
+
rotateX(this, this, origin, radians);
|
|
3635
|
+
return this.check();
|
|
3636
|
+
}
|
|
3637
|
+
rotateY({
|
|
3638
|
+
radians,
|
|
3639
|
+
origin = ORIGIN
|
|
3640
|
+
}) {
|
|
3641
|
+
rotateY(this, this, origin, radians);
|
|
3642
|
+
return this.check();
|
|
3643
|
+
}
|
|
3644
|
+
rotateZ({
|
|
3645
|
+
radians,
|
|
3646
|
+
origin = ORIGIN
|
|
3647
|
+
}) {
|
|
3648
|
+
rotateZ(this, this, origin, radians);
|
|
3649
|
+
return this.check();
|
|
3650
|
+
}
|
|
3651
|
+
transform(matrix4) {
|
|
3652
|
+
return this.transformAsPoint(matrix4);
|
|
3653
|
+
}
|
|
3654
|
+
transformAsPoint(matrix4) {
|
|
3655
|
+
transformMat4(this, this, matrix4);
|
|
3656
|
+
return this.check();
|
|
3657
|
+
}
|
|
3658
|
+
transformAsVector(matrix4) {
|
|
3659
|
+
vec3_transformMat4AsVector(this, this, matrix4);
|
|
3660
|
+
return this.check();
|
|
3661
|
+
}
|
|
3662
|
+
transformByMatrix3(matrix3) {
|
|
3663
|
+
transformMat32(this, this, matrix3);
|
|
3664
|
+
return this.check();
|
|
3665
|
+
}
|
|
3666
|
+
transformByMatrix2(matrix2) {
|
|
3667
|
+
vec3_transformMat2(this, this, matrix2);
|
|
3668
|
+
return this.check();
|
|
3669
|
+
}
|
|
3670
|
+
transformByQuaternion(quaternion) {
|
|
3671
|
+
transformQuat(this, this, quaternion);
|
|
3672
|
+
return this.check();
|
|
3673
|
+
}
|
|
3674
|
+
};
|
|
3675
|
+
}
|
|
3676
|
+
});
|
|
3677
|
+
|
|
3678
|
+
// ../../node_modules/@math.gl/core/dist/esm/classes/base/matrix.js
|
|
3679
|
+
var Matrix;
|
|
3680
|
+
var init_matrix = __esm({
|
|
3681
|
+
"../../node_modules/@math.gl/core/dist/esm/classes/base/matrix.js"() {
|
|
3682
|
+
init_math_array();
|
|
3683
|
+
init_validators();
|
|
3684
|
+
init_common();
|
|
3685
|
+
Matrix = class extends MathArray {
|
|
3686
|
+
toString() {
|
|
3687
|
+
let string = "[";
|
|
3688
|
+
if (config.printRowMajor) {
|
|
3689
|
+
string += "row-major:";
|
|
3690
|
+
for (let row = 0; row < this.RANK; ++row) {
|
|
3691
|
+
for (let col = 0; col < this.RANK; ++col) {
|
|
3692
|
+
string += " ".concat(this[col * this.RANK + row]);
|
|
3693
|
+
}
|
|
3694
|
+
}
|
|
3695
|
+
} else {
|
|
3696
|
+
string += "column-major:";
|
|
3697
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3698
|
+
string += " ".concat(this[i2]);
|
|
3699
|
+
}
|
|
3700
|
+
}
|
|
3701
|
+
string += "]";
|
|
3702
|
+
return string;
|
|
3703
|
+
}
|
|
3704
|
+
getElementIndex(row, col) {
|
|
3705
|
+
return col * this.RANK + row;
|
|
3706
|
+
}
|
|
3707
|
+
getElement(row, col) {
|
|
3708
|
+
return this[col * this.RANK + row];
|
|
3709
|
+
}
|
|
3710
|
+
setElement(row, col, value) {
|
|
3711
|
+
this[col * this.RANK + row] = checkNumber(value);
|
|
3712
|
+
return this;
|
|
3713
|
+
}
|
|
3714
|
+
getColumn(columnIndex, result = new Array(this.RANK).fill(-0)) {
|
|
3715
|
+
const firstIndex = columnIndex * this.RANK;
|
|
3716
|
+
for (let i2 = 0; i2 < this.RANK; ++i2) {
|
|
3717
|
+
result[i2] = this[firstIndex + i2];
|
|
3718
|
+
}
|
|
3719
|
+
return result;
|
|
3720
|
+
}
|
|
3721
|
+
setColumn(columnIndex, columnVector) {
|
|
3722
|
+
const firstIndex = columnIndex * this.RANK;
|
|
3723
|
+
for (let i2 = 0; i2 < this.RANK; ++i2) {
|
|
3724
|
+
this[firstIndex + i2] = columnVector[i2];
|
|
3725
|
+
}
|
|
3726
|
+
return this;
|
|
3727
|
+
}
|
|
3728
|
+
};
|
|
3729
|
+
}
|
|
3730
|
+
});
|
|
3731
|
+
|
|
3732
|
+
// ../../node_modules/gl-matrix/esm/mat3.js
|
|
3733
|
+
function transpose(out, a2) {
|
|
3734
|
+
if (out === a2) {
|
|
3735
|
+
var a01 = a2[1], a02 = a2[2], a12 = a2[5];
|
|
3736
|
+
out[1] = a2[3];
|
|
3737
|
+
out[2] = a2[6];
|
|
3738
|
+
out[3] = a01;
|
|
3739
|
+
out[5] = a2[7];
|
|
3740
|
+
out[6] = a02;
|
|
3741
|
+
out[7] = a12;
|
|
3742
|
+
} else {
|
|
3743
|
+
out[0] = a2[0];
|
|
3744
|
+
out[1] = a2[3];
|
|
3745
|
+
out[2] = a2[6];
|
|
3746
|
+
out[3] = a2[1];
|
|
3747
|
+
out[4] = a2[4];
|
|
3748
|
+
out[5] = a2[7];
|
|
3749
|
+
out[6] = a2[2];
|
|
3750
|
+
out[7] = a2[5];
|
|
3751
|
+
out[8] = a2[8];
|
|
3752
|
+
}
|
|
3753
|
+
return out;
|
|
3754
|
+
}
|
|
3755
|
+
function invert(out, a2) {
|
|
3756
|
+
var a00 = a2[0], a01 = a2[1], a02 = a2[2];
|
|
3757
|
+
var a10 = a2[3], a11 = a2[4], a12 = a2[5];
|
|
3758
|
+
var a20 = a2[6], a21 = a2[7], a22 = a2[8];
|
|
3759
|
+
var b01 = a22 * a11 - a12 * a21;
|
|
3760
|
+
var b11 = -a22 * a10 + a12 * a20;
|
|
3761
|
+
var b21 = a21 * a10 - a11 * a20;
|
|
3762
|
+
var det = a00 * b01 + a01 * b11 + a02 * b21;
|
|
3763
|
+
if (!det) {
|
|
3186
3764
|
return null;
|
|
3187
3765
|
}
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3766
|
+
det = 1 / det;
|
|
3767
|
+
out[0] = b01 * det;
|
|
3768
|
+
out[1] = (-a22 * a01 + a02 * a21) * det;
|
|
3769
|
+
out[2] = (a12 * a01 - a02 * a11) * det;
|
|
3770
|
+
out[3] = b11 * det;
|
|
3771
|
+
out[4] = (a22 * a00 - a02 * a20) * det;
|
|
3772
|
+
out[5] = (-a12 * a00 + a02 * a10) * det;
|
|
3773
|
+
out[6] = b21 * det;
|
|
3774
|
+
out[7] = (-a21 * a00 + a01 * a20) * det;
|
|
3775
|
+
out[8] = (a11 * a00 - a01 * a10) * det;
|
|
3776
|
+
return out;
|
|
3777
|
+
}
|
|
3778
|
+
function determinant(a2) {
|
|
3779
|
+
var a00 = a2[0], a01 = a2[1], a02 = a2[2];
|
|
3780
|
+
var a10 = a2[3], a11 = a2[4], a12 = a2[5];
|
|
3781
|
+
var a20 = a2[6], a21 = a2[7], a22 = a2[8];
|
|
3782
|
+
return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);
|
|
3783
|
+
}
|
|
3784
|
+
function multiply(out, a2, b) {
|
|
3785
|
+
var a00 = a2[0], a01 = a2[1], a02 = a2[2];
|
|
3786
|
+
var a10 = a2[3], a11 = a2[4], a12 = a2[5];
|
|
3787
|
+
var a20 = a2[6], a21 = a2[7], a22 = a2[8];
|
|
3788
|
+
var b00 = b[0], b01 = b[1], b02 = b[2];
|
|
3789
|
+
var b10 = b[3], b11 = b[4], b12 = b[5];
|
|
3790
|
+
var b20 = b[6], b21 = b[7], b22 = b[8];
|
|
3791
|
+
out[0] = b00 * a00 + b01 * a10 + b02 * a20;
|
|
3792
|
+
out[1] = b00 * a01 + b01 * a11 + b02 * a21;
|
|
3793
|
+
out[2] = b00 * a02 + b01 * a12 + b02 * a22;
|
|
3794
|
+
out[3] = b10 * a00 + b11 * a10 + b12 * a20;
|
|
3795
|
+
out[4] = b10 * a01 + b11 * a11 + b12 * a21;
|
|
3796
|
+
out[5] = b10 * a02 + b11 * a12 + b12 * a22;
|
|
3797
|
+
out[6] = b20 * a00 + b21 * a10 + b22 * a20;
|
|
3798
|
+
out[7] = b20 * a01 + b21 * a11 + b22 * a21;
|
|
3799
|
+
out[8] = b20 * a02 + b21 * a12 + b22 * a22;
|
|
3800
|
+
return out;
|
|
3801
|
+
}
|
|
3802
|
+
function translate(out, a2, v) {
|
|
3803
|
+
var a00 = a2[0], a01 = a2[1], a02 = a2[2], a10 = a2[3], a11 = a2[4], a12 = a2[5], a20 = a2[6], a21 = a2[7], a22 = a2[8], x = v[0], y = v[1];
|
|
3804
|
+
out[0] = a00;
|
|
3805
|
+
out[1] = a01;
|
|
3806
|
+
out[2] = a02;
|
|
3807
|
+
out[3] = a10;
|
|
3808
|
+
out[4] = a11;
|
|
3809
|
+
out[5] = a12;
|
|
3810
|
+
out[6] = x * a00 + y * a10 + a20;
|
|
3811
|
+
out[7] = x * a01 + y * a11 + a21;
|
|
3812
|
+
out[8] = x * a02 + y * a12 + a22;
|
|
3813
|
+
return out;
|
|
3814
|
+
}
|
|
3815
|
+
function rotate(out, a2, rad) {
|
|
3816
|
+
var a00 = a2[0], a01 = a2[1], a02 = a2[2], a10 = a2[3], a11 = a2[4], a12 = a2[5], a20 = a2[6], a21 = a2[7], a22 = a2[8], s2 = Math.sin(rad), c = Math.cos(rad);
|
|
3817
|
+
out[0] = c * a00 + s2 * a10;
|
|
3818
|
+
out[1] = c * a01 + s2 * a11;
|
|
3819
|
+
out[2] = c * a02 + s2 * a12;
|
|
3820
|
+
out[3] = c * a10 - s2 * a00;
|
|
3821
|
+
out[4] = c * a11 - s2 * a01;
|
|
3822
|
+
out[5] = c * a12 - s2 * a02;
|
|
3823
|
+
out[6] = a20;
|
|
3824
|
+
out[7] = a21;
|
|
3825
|
+
out[8] = a22;
|
|
3826
|
+
return out;
|
|
3827
|
+
}
|
|
3828
|
+
function scale(out, a2, v) {
|
|
3829
|
+
var x = v[0], y = v[1];
|
|
3830
|
+
out[0] = x * a2[0];
|
|
3831
|
+
out[1] = x * a2[1];
|
|
3832
|
+
out[2] = x * a2[2];
|
|
3833
|
+
out[3] = y * a2[3];
|
|
3834
|
+
out[4] = y * a2[4];
|
|
3835
|
+
out[5] = y * a2[5];
|
|
3836
|
+
out[6] = a2[6];
|
|
3837
|
+
out[7] = a2[7];
|
|
3838
|
+
out[8] = a2[8];
|
|
3839
|
+
return out;
|
|
3840
|
+
}
|
|
3841
|
+
function fromQuat(out, q) {
|
|
3842
|
+
var x = q[0], y = q[1], z = q[2], w = q[3];
|
|
3843
|
+
var x2 = x + x;
|
|
3844
|
+
var y2 = y + y;
|
|
3845
|
+
var z2 = z + z;
|
|
3846
|
+
var xx = x * x2;
|
|
3847
|
+
var yx = y * x2;
|
|
3848
|
+
var yy = y * y2;
|
|
3849
|
+
var zx = z * x2;
|
|
3850
|
+
var zy = z * y2;
|
|
3851
|
+
var zz = z * z2;
|
|
3852
|
+
var wx = w * x2;
|
|
3853
|
+
var wy = w * y2;
|
|
3854
|
+
var wz = w * z2;
|
|
3855
|
+
out[0] = 1 - yy - zz;
|
|
3856
|
+
out[3] = yx - wz;
|
|
3857
|
+
out[6] = zx + wy;
|
|
3858
|
+
out[1] = yx + wz;
|
|
3859
|
+
out[4] = 1 - xx - zz;
|
|
3860
|
+
out[7] = zy - wx;
|
|
3861
|
+
out[2] = zx - wy;
|
|
3862
|
+
out[5] = zy + wx;
|
|
3863
|
+
out[8] = 1 - xx - yy;
|
|
3864
|
+
return out;
|
|
3865
|
+
}
|
|
3866
|
+
var init_mat3 = __esm({
|
|
3867
|
+
"../../node_modules/gl-matrix/esm/mat3.js"() {
|
|
3193
3868
|
}
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3869
|
+
});
|
|
3870
|
+
|
|
3871
|
+
// ../../node_modules/@math.gl/core/dist/esm/classes/matrix3.js
|
|
3872
|
+
function getZeroMatrix() {
|
|
3873
|
+
if (!ZERO_MATRIX3) {
|
|
3874
|
+
ZERO_MATRIX3 = new Matrix3([0, 0, 0, 0, 0, 0, 0, 0, 0]);
|
|
3875
|
+
Object.freeze(ZERO_MATRIX3);
|
|
3876
|
+
}
|
|
3877
|
+
return ZERO_MATRIX3;
|
|
3878
|
+
}
|
|
3879
|
+
function getIdentityMatrix() {
|
|
3880
|
+
if (!IDENTITY_MATRIX3) {
|
|
3881
|
+
IDENTITY_MATRIX3 = new Matrix3();
|
|
3882
|
+
Object.freeze(IDENTITY_MATRIX3);
|
|
3883
|
+
}
|
|
3884
|
+
return IDENTITY_MATRIX3;
|
|
3885
|
+
}
|
|
3886
|
+
var INDICES, IDENTITY_MATRIX, Matrix3, ZERO_MATRIX3, IDENTITY_MATRIX3;
|
|
3887
|
+
var init_matrix3 = __esm({
|
|
3888
|
+
"../../node_modules/@math.gl/core/dist/esm/classes/matrix3.js"() {
|
|
3889
|
+
init_matrix();
|
|
3890
|
+
init_validators();
|
|
3891
|
+
init_gl_matrix_extras();
|
|
3892
|
+
init_mat3();
|
|
3893
|
+
init_vec2();
|
|
3894
|
+
init_vec3();
|
|
3895
|
+
(function(INDICES2) {
|
|
3896
|
+
INDICES2[INDICES2["COL0ROW0"] = 0] = "COL0ROW0";
|
|
3897
|
+
INDICES2[INDICES2["COL0ROW1"] = 1] = "COL0ROW1";
|
|
3898
|
+
INDICES2[INDICES2["COL0ROW2"] = 2] = "COL0ROW2";
|
|
3899
|
+
INDICES2[INDICES2["COL1ROW0"] = 3] = "COL1ROW0";
|
|
3900
|
+
INDICES2[INDICES2["COL1ROW1"] = 4] = "COL1ROW1";
|
|
3901
|
+
INDICES2[INDICES2["COL1ROW2"] = 5] = "COL1ROW2";
|
|
3902
|
+
INDICES2[INDICES2["COL2ROW0"] = 6] = "COL2ROW0";
|
|
3903
|
+
INDICES2[INDICES2["COL2ROW1"] = 7] = "COL2ROW1";
|
|
3904
|
+
INDICES2[INDICES2["COL2ROW2"] = 8] = "COL2ROW2";
|
|
3905
|
+
})(INDICES || (INDICES = {}));
|
|
3906
|
+
IDENTITY_MATRIX = Object.freeze([1, 0, 0, 0, 1, 0, 0, 0, 1]);
|
|
3907
|
+
Matrix3 = class extends Matrix {
|
|
3908
|
+
static get IDENTITY() {
|
|
3909
|
+
return getIdentityMatrix();
|
|
3910
|
+
}
|
|
3911
|
+
static get ZERO() {
|
|
3912
|
+
return getZeroMatrix();
|
|
3913
|
+
}
|
|
3914
|
+
get ELEMENTS() {
|
|
3915
|
+
return 9;
|
|
3916
|
+
}
|
|
3917
|
+
get RANK() {
|
|
3918
|
+
return 3;
|
|
3919
|
+
}
|
|
3920
|
+
get INDICES() {
|
|
3921
|
+
return INDICES;
|
|
3922
|
+
}
|
|
3923
|
+
constructor(array, ...args) {
|
|
3924
|
+
super(-0, -0, -0, -0, -0, -0, -0, -0, -0);
|
|
3925
|
+
if (arguments.length === 1 && Array.isArray(array)) {
|
|
3926
|
+
this.copy(array);
|
|
3927
|
+
} else if (args.length > 0) {
|
|
3928
|
+
this.copy([array, ...args]);
|
|
3929
|
+
} else {
|
|
3930
|
+
this.identity();
|
|
3931
|
+
}
|
|
3932
|
+
}
|
|
3933
|
+
copy(array) {
|
|
3934
|
+
this[0] = array[0];
|
|
3935
|
+
this[1] = array[1];
|
|
3936
|
+
this[2] = array[2];
|
|
3937
|
+
this[3] = array[3];
|
|
3938
|
+
this[4] = array[4];
|
|
3939
|
+
this[5] = array[5];
|
|
3940
|
+
this[6] = array[6];
|
|
3941
|
+
this[7] = array[7];
|
|
3942
|
+
this[8] = array[8];
|
|
3943
|
+
return this.check();
|
|
3944
|
+
}
|
|
3945
|
+
identity() {
|
|
3946
|
+
return this.copy(IDENTITY_MATRIX);
|
|
3947
|
+
}
|
|
3948
|
+
fromObject(object) {
|
|
3949
|
+
return this.check();
|
|
3950
|
+
}
|
|
3951
|
+
fromQuaternion(q) {
|
|
3952
|
+
fromQuat(this, q);
|
|
3953
|
+
return this.check();
|
|
3954
|
+
}
|
|
3955
|
+
set(m00, m10, m20, m01, m11, m21, m02, m12, m22) {
|
|
3956
|
+
this[0] = m00;
|
|
3957
|
+
this[1] = m10;
|
|
3958
|
+
this[2] = m20;
|
|
3959
|
+
this[3] = m01;
|
|
3960
|
+
this[4] = m11;
|
|
3961
|
+
this[5] = m21;
|
|
3962
|
+
this[6] = m02;
|
|
3963
|
+
this[7] = m12;
|
|
3964
|
+
this[8] = m22;
|
|
3965
|
+
return this.check();
|
|
3966
|
+
}
|
|
3967
|
+
setRowMajor(m00, m01, m02, m10, m11, m12, m20, m21, m22) {
|
|
3968
|
+
this[0] = m00;
|
|
3969
|
+
this[1] = m10;
|
|
3970
|
+
this[2] = m20;
|
|
3971
|
+
this[3] = m01;
|
|
3972
|
+
this[4] = m11;
|
|
3973
|
+
this[5] = m21;
|
|
3974
|
+
this[6] = m02;
|
|
3975
|
+
this[7] = m12;
|
|
3976
|
+
this[8] = m22;
|
|
3977
|
+
return this.check();
|
|
3978
|
+
}
|
|
3979
|
+
determinant() {
|
|
3980
|
+
return determinant(this);
|
|
3981
|
+
}
|
|
3982
|
+
transpose() {
|
|
3983
|
+
transpose(this, this);
|
|
3984
|
+
return this.check();
|
|
3985
|
+
}
|
|
3986
|
+
invert() {
|
|
3987
|
+
invert(this, this);
|
|
3988
|
+
return this.check();
|
|
3989
|
+
}
|
|
3990
|
+
multiplyLeft(a2) {
|
|
3991
|
+
multiply(this, a2, this);
|
|
3992
|
+
return this.check();
|
|
3993
|
+
}
|
|
3994
|
+
multiplyRight(a2) {
|
|
3995
|
+
multiply(this, this, a2);
|
|
3996
|
+
return this.check();
|
|
3997
|
+
}
|
|
3998
|
+
rotate(radians) {
|
|
3999
|
+
rotate(this, this, radians);
|
|
4000
|
+
return this.check();
|
|
4001
|
+
}
|
|
4002
|
+
scale(factor) {
|
|
4003
|
+
if (Array.isArray(factor)) {
|
|
4004
|
+
scale(this, this, factor);
|
|
4005
|
+
} else {
|
|
4006
|
+
scale(this, this, [factor, factor]);
|
|
4007
|
+
}
|
|
4008
|
+
return this.check();
|
|
4009
|
+
}
|
|
4010
|
+
translate(vec) {
|
|
4011
|
+
translate(this, this, vec);
|
|
4012
|
+
return this.check();
|
|
4013
|
+
}
|
|
4014
|
+
transform(vector, result) {
|
|
4015
|
+
let out;
|
|
4016
|
+
switch (vector.length) {
|
|
4017
|
+
case 2:
|
|
4018
|
+
out = transformMat3(result || [-0, -0], vector, this);
|
|
4019
|
+
break;
|
|
4020
|
+
case 3:
|
|
4021
|
+
out = transformMat32(result || [-0, -0, -0], vector, this);
|
|
4022
|
+
break;
|
|
4023
|
+
case 4:
|
|
4024
|
+
out = vec4_transformMat3(result || [-0, -0, -0, -0], vector, this);
|
|
4025
|
+
break;
|
|
4026
|
+
default:
|
|
4027
|
+
throw new Error("Illegal vector");
|
|
4028
|
+
}
|
|
4029
|
+
checkVector(out, vector.length);
|
|
4030
|
+
return out;
|
|
4031
|
+
}
|
|
4032
|
+
transformVector(vector, result) {
|
|
4033
|
+
return this.transform(vector, result);
|
|
4034
|
+
}
|
|
4035
|
+
transformVector2(vector, result) {
|
|
4036
|
+
return this.transform(vector, result);
|
|
4037
|
+
}
|
|
4038
|
+
transformVector3(vector, result) {
|
|
4039
|
+
return this.transform(vector, result);
|
|
4040
|
+
}
|
|
4041
|
+
};
|
|
3199
4042
|
}
|
|
3200
4043
|
});
|
|
3201
4044
|
|
|
3202
|
-
//
|
|
3203
|
-
var
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
preprocess: () => preprocess4
|
|
4045
|
+
// ../../node_modules/@math.gl/core/dist/esm/index.js
|
|
4046
|
+
var init_esm = __esm({
|
|
4047
|
+
"../../node_modules/@math.gl/core/dist/esm/index.js"() {
|
|
4048
|
+
init_vector3();
|
|
4049
|
+
init_matrix3();
|
|
4050
|
+
}
|
|
3209
4051
|
});
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
4052
|
+
|
|
4053
|
+
// src/lib/gltf-utils/gltf-constants.ts
|
|
4054
|
+
var COMPONENTS, BYTES;
|
|
4055
|
+
var init_gltf_constants = __esm({
|
|
4056
|
+
"src/lib/gltf-utils/gltf-constants.ts"() {
|
|
4057
|
+
COMPONENTS = {
|
|
4058
|
+
SCALAR: 1,
|
|
4059
|
+
VEC2: 2,
|
|
4060
|
+
VEC3: 3,
|
|
4061
|
+
VEC4: 4,
|
|
4062
|
+
MAT2: 4,
|
|
4063
|
+
MAT3: 9,
|
|
4064
|
+
MAT4: 16
|
|
4065
|
+
};
|
|
4066
|
+
BYTES = {
|
|
4067
|
+
5120: 1,
|
|
4068
|
+
5121: 1,
|
|
4069
|
+
5122: 2,
|
|
4070
|
+
5123: 2,
|
|
4071
|
+
5125: 4,
|
|
4072
|
+
5126: 4
|
|
4073
|
+
};
|
|
3215
4074
|
}
|
|
3216
|
-
}
|
|
3217
|
-
|
|
3218
|
-
|
|
4075
|
+
});
|
|
4076
|
+
|
|
4077
|
+
// src/lib/extensions/KHR_texture_transform.ts
|
|
4078
|
+
var KHR_texture_transform_exports = {};
|
|
4079
|
+
__export(KHR_texture_transform_exports, {
|
|
4080
|
+
decode: () => decode4,
|
|
4081
|
+
name: () => name5
|
|
4082
|
+
});
|
|
4083
|
+
async function decode4(gltfData, options) {
|
|
4084
|
+
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
4085
|
+
const extension = gltfScenegraph.getExtension(EXT_MESHOPT_TRANSFORM);
|
|
4086
|
+
if (!extension) {
|
|
3219
4087
|
return;
|
|
3220
4088
|
}
|
|
3221
|
-
const
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
if (scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {
|
|
3225
|
-
promises.push(decompressPrimitive(scenegraph, primitive, options, context));
|
|
3226
|
-
}
|
|
4089
|
+
const materials = gltfData.json.materials || [];
|
|
4090
|
+
for (let i2 = 0; i2 < materials.length; i2++) {
|
|
4091
|
+
transformTexCoords(i2, gltfData);
|
|
3227
4092
|
}
|
|
3228
|
-
await Promise.all(promises);
|
|
3229
|
-
scenegraph.removeExtension(KHR_DRACO_MESH_COMPRESSION);
|
|
3230
4093
|
}
|
|
3231
|
-
function
|
|
3232
|
-
const
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
|
|
4094
|
+
function transformTexCoords(materialIndex, gltfData) {
|
|
4095
|
+
const processedTexCoords = [];
|
|
4096
|
+
const material = gltfData.json.materials?.[materialIndex];
|
|
4097
|
+
const baseColorTexture = material?.pbrMetallicRoughness?.baseColorTexture;
|
|
4098
|
+
if (baseColorTexture) {
|
|
4099
|
+
transformPrimitives(gltfData, materialIndex, baseColorTexture, processedTexCoords);
|
|
4100
|
+
}
|
|
4101
|
+
const emisiveTexture = material?.emissiveTexture;
|
|
4102
|
+
if (emisiveTexture) {
|
|
4103
|
+
transformPrimitives(gltfData, materialIndex, emisiveTexture, processedTexCoords);
|
|
4104
|
+
}
|
|
4105
|
+
const normalTexture = material?.normalTexture;
|
|
4106
|
+
if (normalTexture) {
|
|
4107
|
+
transformPrimitives(gltfData, materialIndex, normalTexture, processedTexCoords);
|
|
4108
|
+
}
|
|
4109
|
+
const occlusionTexture = material?.occlusionTexture;
|
|
4110
|
+
if (occlusionTexture) {
|
|
4111
|
+
transformPrimitives(gltfData, materialIndex, occlusionTexture, processedTexCoords);
|
|
4112
|
+
}
|
|
4113
|
+
const metallicRoughnessTexture = material?.pbrMetallicRoughness?.metallicRoughnessTexture;
|
|
4114
|
+
if (metallicRoughnessTexture) {
|
|
4115
|
+
transformPrimitives(gltfData, materialIndex, metallicRoughnessTexture, processedTexCoords);
|
|
3236
4116
|
}
|
|
3237
4117
|
}
|
|
3238
|
-
|
|
3239
|
-
const
|
|
3240
|
-
if (!
|
|
4118
|
+
function transformPrimitives(gltfData, materialIndex, texture, processedTexCoords) {
|
|
4119
|
+
const transformParameters = getTransformParameters(texture, processedTexCoords);
|
|
4120
|
+
if (!transformParameters) {
|
|
3241
4121
|
return;
|
|
3242
4122
|
}
|
|
3243
|
-
const
|
|
3244
|
-
const
|
|
3245
|
-
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
const decodedAttributes = getGLTFAccessors(decodedData.attributes);
|
|
3250
|
-
for (const [attributeName, decodedAttribute] of Object.entries(decodedAttributes)) {
|
|
3251
|
-
if (attributeName in primitive.attributes) {
|
|
3252
|
-
const accessorIndex = primitive.attributes[attributeName];
|
|
3253
|
-
const accessor = scenegraph.getAccessor(accessorIndex);
|
|
3254
|
-
if (accessor?.min && accessor?.max) {
|
|
3255
|
-
decodedAttribute.min = accessor.min;
|
|
3256
|
-
decodedAttribute.max = accessor.max;
|
|
4123
|
+
const meshes = gltfData.json.meshes || [];
|
|
4124
|
+
for (const mesh of meshes) {
|
|
4125
|
+
for (const primitive of mesh.primitives) {
|
|
4126
|
+
const material = primitive.material;
|
|
4127
|
+
if (Number.isFinite(material) && materialIndex === material) {
|
|
4128
|
+
transformPrimitive(gltfData, primitive, transformParameters);
|
|
3257
4129
|
}
|
|
3258
4130
|
}
|
|
3259
4131
|
}
|
|
3260
|
-
primitive.attributes = decodedAttributes;
|
|
3261
|
-
if (decodedData.indices) {
|
|
3262
|
-
primitive.indices = getGLTFAccessor(decodedData.indices);
|
|
3263
|
-
}
|
|
3264
|
-
checkPrimitive(primitive);
|
|
3265
4132
|
}
|
|
3266
|
-
function
|
|
3267
|
-
|
|
3268
|
-
|
|
4133
|
+
function getTransformParameters(texture, processedTexCoords) {
|
|
4134
|
+
const textureInfo = texture.extensions?.[EXT_MESHOPT_TRANSFORM];
|
|
4135
|
+
const { texCoord: originalTexCoord = 0 } = texture;
|
|
4136
|
+
const { texCoord = originalTexCoord } = textureInfo;
|
|
4137
|
+
const isProcessed = processedTexCoords.findIndex(([original, newTexCoord]) => original === originalTexCoord && newTexCoord === texCoord) !== -1;
|
|
4138
|
+
if (!isProcessed) {
|
|
4139
|
+
const matrix = makeTransformationMatrix(textureInfo);
|
|
4140
|
+
if (originalTexCoord !== texCoord) {
|
|
4141
|
+
texture.texCoord = texCoord;
|
|
4142
|
+
}
|
|
4143
|
+
processedTexCoords.push([originalTexCoord, texCoord]);
|
|
4144
|
+
return { originalTexCoord, texCoord, matrix };
|
|
3269
4145
|
}
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
const
|
|
3274
|
-
const
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
|
|
3282
|
-
|
|
3283
|
-
|
|
4146
|
+
return null;
|
|
4147
|
+
}
|
|
4148
|
+
function transformPrimitive(gltfData, primitive, transformParameters) {
|
|
4149
|
+
const { originalTexCoord, texCoord, matrix } = transformParameters;
|
|
4150
|
+
const texCoordAccessor = primitive.attributes[`TEXCOORD_${originalTexCoord}`];
|
|
4151
|
+
if (Number.isFinite(texCoordAccessor)) {
|
|
4152
|
+
const accessor = gltfData.json.accessors?.[texCoordAccessor];
|
|
4153
|
+
if (accessor && accessor.bufferView) {
|
|
4154
|
+
const bufferView = gltfData.json.bufferViews?.[accessor.bufferView];
|
|
4155
|
+
if (bufferView) {
|
|
4156
|
+
const { arrayBuffer, byteOffset: bufferByteOffset } = gltfData.buffers[bufferView.buffer];
|
|
4157
|
+
const byteOffset = (bufferByteOffset || 0) + (accessor.byteOffset || 0) + (bufferView.byteOffset || 0);
|
|
4158
|
+
const { ArrayType, length } = getAccessorArrayTypeAndLength(accessor, bufferView);
|
|
4159
|
+
const bytes = BYTES[accessor.componentType];
|
|
4160
|
+
const components = COMPONENTS[accessor.type];
|
|
4161
|
+
const elementAddressScale = bufferView.byteStride || bytes * components;
|
|
4162
|
+
const result = new Float32Array(length);
|
|
4163
|
+
for (let i2 = 0; i2 < accessor.count; i2++) {
|
|
4164
|
+
const uv = new ArrayType(arrayBuffer, byteOffset + i2 * elementAddressScale, 2);
|
|
4165
|
+
scratchVector.set(uv[0], uv[1], 1);
|
|
4166
|
+
scratchVector.transformByMatrix3(matrix);
|
|
4167
|
+
result.set([scratchVector[0], scratchVector[1]], i2 * components);
|
|
4168
|
+
}
|
|
4169
|
+
if (originalTexCoord === texCoord) {
|
|
4170
|
+
updateGltf(accessor, bufferView, gltfData.buffers, result);
|
|
4171
|
+
} else {
|
|
4172
|
+
createAttribute(texCoord, accessor, primitive, gltfData, result);
|
|
3284
4173
|
}
|
|
3285
4174
|
}
|
|
3286
|
-
]
|
|
3287
|
-
};
|
|
3288
|
-
return glTFMesh;
|
|
3289
|
-
}
|
|
3290
|
-
function checkPrimitive(primitive) {
|
|
3291
|
-
if (!primitive.attributes && Object.keys(primitive.attributes).length > 0) {
|
|
3292
|
-
throw new Error("glTF: Empty primitive detected: Draco decompression failure?");
|
|
3293
|
-
}
|
|
3294
|
-
}
|
|
3295
|
-
function* makeMeshPrimitiveIterator(scenegraph) {
|
|
3296
|
-
for (const mesh of scenegraph.json.meshes || []) {
|
|
3297
|
-
for (const primitive of mesh.primitives) {
|
|
3298
|
-
yield primitive;
|
|
3299
4175
|
}
|
|
3300
4176
|
}
|
|
3301
4177
|
}
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
|
|
3306
|
-
|
|
4178
|
+
function updateGltf(accessor, bufferView, buffers, newTexCoordArray) {
|
|
4179
|
+
accessor.componentType = 5126;
|
|
4180
|
+
buffers.push({
|
|
4181
|
+
arrayBuffer: newTexCoordArray.buffer,
|
|
4182
|
+
byteOffset: 0,
|
|
4183
|
+
byteLength: newTexCoordArray.buffer.byteLength
|
|
4184
|
+
});
|
|
4185
|
+
bufferView.buffer = buffers.length - 1;
|
|
4186
|
+
bufferView.byteLength = newTexCoordArray.buffer.byteLength;
|
|
4187
|
+
bufferView.byteOffset = 0;
|
|
4188
|
+
delete bufferView.byteStride;
|
|
4189
|
+
}
|
|
4190
|
+
function createAttribute(newTexCoord, originalAccessor, primitive, gltfData, newTexCoordArray) {
|
|
4191
|
+
gltfData.buffers.push({
|
|
4192
|
+
arrayBuffer: newTexCoordArray.buffer,
|
|
4193
|
+
byteOffset: 0,
|
|
4194
|
+
byteLength: newTexCoordArray.buffer.byteLength
|
|
4195
|
+
});
|
|
4196
|
+
const bufferViews = gltfData.json.bufferViews;
|
|
4197
|
+
if (!bufferViews) {
|
|
4198
|
+
return;
|
|
4199
|
+
}
|
|
4200
|
+
bufferViews.push({
|
|
4201
|
+
buffer: gltfData.buffers.length - 1,
|
|
4202
|
+
byteLength: newTexCoordArray.buffer.byteLength,
|
|
4203
|
+
byteOffset: 0
|
|
4204
|
+
});
|
|
4205
|
+
const accessors = gltfData.json.accessors;
|
|
4206
|
+
if (!accessors) {
|
|
4207
|
+
return;
|
|
4208
|
+
}
|
|
4209
|
+
accessors.push({
|
|
4210
|
+
bufferView: bufferViews?.length - 1,
|
|
4211
|
+
byteOffset: 0,
|
|
4212
|
+
componentType: 5126,
|
|
4213
|
+
count: originalAccessor.count,
|
|
4214
|
+
type: "VEC2"
|
|
4215
|
+
});
|
|
4216
|
+
primitive.attributes[`TEXCOORD_${newTexCoord}`] = accessors.length - 1;
|
|
4217
|
+
}
|
|
4218
|
+
function makeTransformationMatrix(extensionData) {
|
|
4219
|
+
const { offset = [0, 0], rotation = 0, scale: scale2 = [1, 1] } = extensionData;
|
|
4220
|
+
const translationMatirx = new Matrix3().set(1, 0, 0, 0, 1, 0, offset[0], offset[1], 1);
|
|
4221
|
+
const rotationMatirx = scratchRotationMatrix.set(Math.cos(rotation), Math.sin(rotation), 0, -Math.sin(rotation), Math.cos(rotation), 0, 0, 0, 1);
|
|
4222
|
+
const scaleMatrix = scratchScaleMatrix.set(scale2[0], 0, 0, 0, scale2[1], 0, 0, 0, 1);
|
|
4223
|
+
return translationMatirx.multiplyRight(rotationMatirx).multiplyRight(scaleMatrix);
|
|
4224
|
+
}
|
|
4225
|
+
var EXT_MESHOPT_TRANSFORM, name5, scratchVector, scratchRotationMatrix, scratchScaleMatrix;
|
|
4226
|
+
var init_KHR_texture_transform = __esm({
|
|
4227
|
+
"src/lib/extensions/KHR_texture_transform.ts"() {
|
|
4228
|
+
init_esm();
|
|
4229
|
+
init_gltf_utils();
|
|
4230
|
+
init_gltf_constants();
|
|
3307
4231
|
init_gltf_scenegraph();
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
4232
|
+
EXT_MESHOPT_TRANSFORM = "KHR_texture_transform";
|
|
4233
|
+
name5 = EXT_MESHOPT_TRANSFORM;
|
|
4234
|
+
scratchVector = new Vector3();
|
|
4235
|
+
scratchRotationMatrix = new Matrix3();
|
|
4236
|
+
scratchScaleMatrix = new Matrix3();
|
|
3311
4237
|
}
|
|
3312
4238
|
});
|
|
3313
4239
|
|
|
3314
4240
|
// src/lib/extensions/deprecated/KHR_lights_punctual.ts
|
|
3315
4241
|
var KHR_lights_punctual_exports = {};
|
|
3316
4242
|
__export(KHR_lights_punctual_exports, {
|
|
3317
|
-
decode: () =>
|
|
4243
|
+
decode: () => decode5,
|
|
3318
4244
|
encode: () => encode2,
|
|
3319
|
-
name: () =>
|
|
4245
|
+
name: () => name6
|
|
3320
4246
|
});
|
|
3321
|
-
async function
|
|
4247
|
+
async function decode5(gltfData) {
|
|
3322
4248
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
3323
4249
|
const { json } = gltfScenegraph;
|
|
3324
4250
|
const extension = gltfScenegraph.getExtension(KHR_LIGHTS_PUNCTUAL);
|
|
@@ -3351,27 +4277,26 @@
|
|
|
3351
4277
|
delete gltfScenegraph.json.lights;
|
|
3352
4278
|
}
|
|
3353
4279
|
}
|
|
3354
|
-
var KHR_LIGHTS_PUNCTUAL,
|
|
4280
|
+
var KHR_LIGHTS_PUNCTUAL, name6;
|
|
3355
4281
|
var init_KHR_lights_punctual = __esm({
|
|
3356
4282
|
"src/lib/extensions/deprecated/KHR_lights_punctual.ts"() {
|
|
3357
4283
|
init_assert3();
|
|
3358
4284
|
init_gltf_scenegraph();
|
|
3359
4285
|
KHR_LIGHTS_PUNCTUAL = "KHR_lights_punctual";
|
|
3360
|
-
|
|
4286
|
+
name6 = KHR_LIGHTS_PUNCTUAL;
|
|
3361
4287
|
}
|
|
3362
4288
|
});
|
|
3363
4289
|
|
|
3364
4290
|
// src/lib/extensions/deprecated/KHR_materials_unlit.ts
|
|
3365
4291
|
var KHR_materials_unlit_exports = {};
|
|
3366
4292
|
__export(KHR_materials_unlit_exports, {
|
|
3367
|
-
decode: () =>
|
|
4293
|
+
decode: () => decode6,
|
|
3368
4294
|
encode: () => encode3,
|
|
3369
|
-
name: () =>
|
|
4295
|
+
name: () => name7
|
|
3370
4296
|
});
|
|
3371
|
-
async function
|
|
4297
|
+
async function decode6(gltfData) {
|
|
3372
4298
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
3373
4299
|
const { json } = gltfScenegraph;
|
|
3374
|
-
gltfScenegraph.removeExtension(KHR_MATERIALS_UNLIT);
|
|
3375
4300
|
for (const material of json.materials || []) {
|
|
3376
4301
|
const extension = material.extensions && material.extensions.KHR_materials_unlit;
|
|
3377
4302
|
if (extension) {
|
|
@@ -3379,6 +4304,7 @@
|
|
|
3379
4304
|
}
|
|
3380
4305
|
gltfScenegraph.removeObjectExtension(material, KHR_MATERIALS_UNLIT);
|
|
3381
4306
|
}
|
|
4307
|
+
gltfScenegraph.removeExtension(KHR_MATERIALS_UNLIT);
|
|
3382
4308
|
}
|
|
3383
4309
|
function encode3(gltfData) {
|
|
3384
4310
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
@@ -3393,23 +4319,23 @@
|
|
|
3393
4319
|
}
|
|
3394
4320
|
}
|
|
3395
4321
|
}
|
|
3396
|
-
var KHR_MATERIALS_UNLIT,
|
|
4322
|
+
var KHR_MATERIALS_UNLIT, name7;
|
|
3397
4323
|
var init_KHR_materials_unlit = __esm({
|
|
3398
4324
|
"src/lib/extensions/deprecated/KHR_materials_unlit.ts"() {
|
|
3399
4325
|
init_gltf_scenegraph();
|
|
3400
4326
|
KHR_MATERIALS_UNLIT = "KHR_materials_unlit";
|
|
3401
|
-
|
|
4327
|
+
name7 = KHR_MATERIALS_UNLIT;
|
|
3402
4328
|
}
|
|
3403
4329
|
});
|
|
3404
4330
|
|
|
3405
4331
|
// src/lib/extensions/deprecated/KHR_techniques_webgl.ts
|
|
3406
4332
|
var KHR_techniques_webgl_exports = {};
|
|
3407
4333
|
__export(KHR_techniques_webgl_exports, {
|
|
3408
|
-
decode: () =>
|
|
4334
|
+
decode: () => decode7,
|
|
3409
4335
|
encode: () => encode4,
|
|
3410
|
-
name: () =>
|
|
4336
|
+
name: () => name8
|
|
3411
4337
|
});
|
|
3412
|
-
async function
|
|
4338
|
+
async function decode7(gltfData) {
|
|
3413
4339
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
3414
4340
|
const { json } = gltfScenegraph;
|
|
3415
4341
|
const extension = gltfScenegraph.getExtension(KHR_TECHNIQUES_WEBGL);
|
|
@@ -3461,12 +4387,97 @@
|
|
|
3461
4387
|
});
|
|
3462
4388
|
return values;
|
|
3463
4389
|
}
|
|
3464
|
-
var KHR_TECHNIQUES_WEBGL,
|
|
4390
|
+
var KHR_TECHNIQUES_WEBGL, name8;
|
|
3465
4391
|
var init_KHR_techniques_webgl = __esm({
|
|
3466
4392
|
"src/lib/extensions/deprecated/KHR_techniques_webgl.ts"() {
|
|
3467
4393
|
init_gltf_scenegraph();
|
|
3468
4394
|
KHR_TECHNIQUES_WEBGL = "KHR_techniques_webgl";
|
|
3469
|
-
|
|
4395
|
+
name8 = KHR_TECHNIQUES_WEBGL;
|
|
4396
|
+
}
|
|
4397
|
+
});
|
|
4398
|
+
|
|
4399
|
+
// src/lib/extensions/deprecated/EXT_feature_metadata.ts
|
|
4400
|
+
var EXT_feature_metadata_exports = {};
|
|
4401
|
+
__export(EXT_feature_metadata_exports, {
|
|
4402
|
+
decode: () => decode8,
|
|
4403
|
+
name: () => name9
|
|
4404
|
+
});
|
|
4405
|
+
async function decode8(gltfData) {
|
|
4406
|
+
const scenegraph = new GLTFScenegraph(gltfData);
|
|
4407
|
+
decodeExtFeatureMetadata(scenegraph);
|
|
4408
|
+
}
|
|
4409
|
+
function decodeExtFeatureMetadata(scenegraph) {
|
|
4410
|
+
const extension = scenegraph.getExtension(EXT_FEATURE_METADATA);
|
|
4411
|
+
const schemaClasses = extension?.schema?.classes;
|
|
4412
|
+
const featureTables = extension?.featureTables;
|
|
4413
|
+
const featureTextures = extension?.featureTextures;
|
|
4414
|
+
if (featureTextures) {
|
|
4415
|
+
console.warn('featureTextures is not yet supported in the "EXT_feature_metadata" extension.');
|
|
4416
|
+
}
|
|
4417
|
+
if (schemaClasses && featureTables) {
|
|
4418
|
+
for (const schemaName in schemaClasses) {
|
|
4419
|
+
const schemaClass = schemaClasses[schemaName];
|
|
4420
|
+
const featureTable = findFeatureTableByName(featureTables, schemaName);
|
|
4421
|
+
if (featureTable) {
|
|
4422
|
+
handleFeatureTableProperties(scenegraph, featureTable, schemaClass);
|
|
4423
|
+
}
|
|
4424
|
+
}
|
|
4425
|
+
}
|
|
4426
|
+
}
|
|
4427
|
+
function handleFeatureTableProperties(scenegraph, featureTable, schemaClass) {
|
|
4428
|
+
for (const propertyName in schemaClass.properties) {
|
|
4429
|
+
const schemaProperty = schemaClass.properties[propertyName];
|
|
4430
|
+
const featureTableProperty = featureTable?.properties?.[propertyName];
|
|
4431
|
+
const numberOfFeatures = featureTable.count;
|
|
4432
|
+
if (featureTableProperty) {
|
|
4433
|
+
const data = getPropertyDataFromBinarySource(scenegraph, schemaProperty, numberOfFeatures, featureTableProperty);
|
|
4434
|
+
featureTableProperty.data = data;
|
|
4435
|
+
}
|
|
4436
|
+
}
|
|
4437
|
+
}
|
|
4438
|
+
function getPropertyDataFromBinarySource(scenegraph, schemaProperty, numberOfFeatures, featureTableProperty) {
|
|
4439
|
+
const bufferView = featureTableProperty.bufferView;
|
|
4440
|
+
let data = scenegraph.getTypedArrayForBufferView(bufferView);
|
|
4441
|
+
switch (schemaProperty.type) {
|
|
4442
|
+
case "STRING": {
|
|
4443
|
+
const stringOffsetBufferView = featureTableProperty.stringOffsetBufferView;
|
|
4444
|
+
const offsetsData = scenegraph.getTypedArrayForBufferView(stringOffsetBufferView);
|
|
4445
|
+
data = getStringAttributes(data, offsetsData, numberOfFeatures);
|
|
4446
|
+
break;
|
|
4447
|
+
}
|
|
4448
|
+
default:
|
|
4449
|
+
}
|
|
4450
|
+
return data;
|
|
4451
|
+
}
|
|
4452
|
+
function findFeatureTableByName(featureTables, schemaClassName) {
|
|
4453
|
+
for (const featureTableName in featureTables) {
|
|
4454
|
+
const featureTable = featureTables[featureTableName];
|
|
4455
|
+
if (featureTable.class === schemaClassName) {
|
|
4456
|
+
return featureTable;
|
|
4457
|
+
}
|
|
4458
|
+
}
|
|
4459
|
+
return null;
|
|
4460
|
+
}
|
|
4461
|
+
function getStringAttributes(data, offsetsData, stringsCount) {
|
|
4462
|
+
const stringsArray = [];
|
|
4463
|
+
const textDecoder = new TextDecoder("utf8");
|
|
4464
|
+
let stringOffset = 0;
|
|
4465
|
+
const bytesPerStringSize = 4;
|
|
4466
|
+
for (let index = 0; index < stringsCount; index++) {
|
|
4467
|
+
const stringByteSize = offsetsData[(index + 1) * bytesPerStringSize] - offsetsData[index * bytesPerStringSize];
|
|
4468
|
+
const stringData = data.subarray(stringOffset, stringByteSize + stringOffset);
|
|
4469
|
+
const stringAttribute = textDecoder.decode(stringData);
|
|
4470
|
+
stringsArray.push(stringAttribute);
|
|
4471
|
+
stringOffset += stringByteSize;
|
|
4472
|
+
}
|
|
4473
|
+
return stringsArray;
|
|
4474
|
+
}
|
|
4475
|
+
var EXT_FEATURE_METADATA, name9;
|
|
4476
|
+
var init_EXT_feature_metadata = __esm({
|
|
4477
|
+
"src/lib/extensions/deprecated/EXT_feature_metadata.ts"() {
|
|
4478
|
+
init_gltf_scenegraph();
|
|
4479
|
+
EXT_FEATURE_METADATA = "EXT_feature_metadata";
|
|
4480
|
+
name9 = EXT_FEATURE_METADATA;
|
|
3470
4481
|
}
|
|
3471
4482
|
});
|
|
3472
4483
|
|
|
@@ -3495,9 +4506,11 @@
|
|
|
3495
4506
|
init_EXT_texture_webp();
|
|
3496
4507
|
init_KHR_texture_basisu();
|
|
3497
4508
|
init_KHR_draco_mesh_compression();
|
|
4509
|
+
init_KHR_texture_transform();
|
|
3498
4510
|
init_KHR_lights_punctual();
|
|
3499
4511
|
init_KHR_materials_unlit();
|
|
3500
4512
|
init_KHR_techniques_webgl();
|
|
4513
|
+
init_EXT_feature_metadata();
|
|
3501
4514
|
EXTENSIONS2 = [
|
|
3502
4515
|
EXT_meshopt_compression_exports,
|
|
3503
4516
|
EXT_texture_webp_exports,
|
|
@@ -3505,13 +4518,15 @@
|
|
|
3505
4518
|
KHR_draco_mesh_compression_exports,
|
|
3506
4519
|
KHR_lights_punctual_exports,
|
|
3507
4520
|
KHR_materials_unlit_exports,
|
|
3508
|
-
KHR_techniques_webgl_exports
|
|
4521
|
+
KHR_techniques_webgl_exports,
|
|
4522
|
+
KHR_texture_transform_exports,
|
|
4523
|
+
EXT_feature_metadata_exports
|
|
3509
4524
|
];
|
|
3510
4525
|
}
|
|
3511
4526
|
});
|
|
3512
4527
|
|
|
3513
4528
|
// src/lib/extensions/KHR_binary_gltf.ts
|
|
3514
|
-
function
|
|
4529
|
+
function preprocess4(gltfData) {
|
|
3515
4530
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
3516
4531
|
const { json } = gltfScenegraph;
|
|
3517
4532
|
for (const image of json.images || []) {
|
|
@@ -3606,7 +4621,7 @@
|
|
|
3606
4621
|
console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail.");
|
|
3607
4622
|
this._addAsset(json);
|
|
3608
4623
|
this._convertTopLevelObjectsToArrays(json);
|
|
3609
|
-
|
|
4624
|
+
preprocess4(gltf);
|
|
3610
4625
|
this._convertObjectIdsToArrayIndices(json);
|
|
3611
4626
|
this._updateObjects(json);
|
|
3612
4627
|
this._updateMaterial(json);
|
|
@@ -3723,7 +4738,7 @@
|
|
|
3723
4738
|
metallicFactor: 1,
|
|
3724
4739
|
roughnessFactor: 1
|
|
3725
4740
|
};
|
|
3726
|
-
const textureId = material.values
|
|
4741
|
+
const textureId = material.values?.tex || material.values?.texture2d_0 || material.values?.diffuseTex;
|
|
3727
4742
|
const textureIndex = json.textures.findIndex((texture) => texture.id === textureId);
|
|
3728
4743
|
if (textureIndex !== -1) {
|
|
3729
4744
|
material.pbrMetallicRoughness.baseColorTexture = { index: textureIndex };
|
|
@@ -3736,20 +4751,20 @@
|
|
|
3736
4751
|
|
|
3737
4752
|
// src/lib/api/post-process-gltf.ts
|
|
3738
4753
|
function getBytesFromComponentType(componentType) {
|
|
3739
|
-
return
|
|
4754
|
+
return BYTES2[componentType];
|
|
3740
4755
|
}
|
|
3741
4756
|
function getSizeFromAccessorType(type) {
|
|
3742
|
-
return
|
|
4757
|
+
return COMPONENTS2[type];
|
|
3743
4758
|
}
|
|
3744
4759
|
function postProcessGLTF(gltf, options) {
|
|
3745
4760
|
return new GLTFPostProcessor().postProcess(gltf, options);
|
|
3746
4761
|
}
|
|
3747
|
-
var
|
|
4762
|
+
var COMPONENTS2, BYTES2, GL_SAMPLER, SAMPLER_PARAMETER_GLTF_TO_GL, DEFAULT_SAMPLER, GLTFPostProcessor;
|
|
3748
4763
|
var init_post_process_gltf = __esm({
|
|
3749
4764
|
"src/lib/api/post-process-gltf.ts"() {
|
|
3750
4765
|
init_assert3();
|
|
3751
4766
|
init_gltf_utils();
|
|
3752
|
-
|
|
4767
|
+
COMPONENTS2 = {
|
|
3753
4768
|
SCALAR: 1,
|
|
3754
4769
|
VEC2: 2,
|
|
3755
4770
|
VEC3: 3,
|
|
@@ -3758,7 +4773,7 @@
|
|
|
3758
4773
|
MAT3: 9,
|
|
3759
4774
|
MAT4: 16
|
|
3760
4775
|
};
|
|
3761
|
-
|
|
4776
|
+
BYTES2 = {
|
|
3762
4777
|
5120: 1,
|
|
3763
4778
|
5121: 1,
|
|
3764
4779
|
5122: 2,
|
|
@@ -4093,18 +5108,18 @@
|
|
|
4093
5108
|
}
|
|
4094
5109
|
}
|
|
4095
5110
|
function parseGLBV1(glb, dataView, byteOffset) {
|
|
4096
|
-
|
|
5111
|
+
assert(glb.header.byteLength > GLB_FILE_HEADER_SIZE + GLB_CHUNK_HEADER_SIZE);
|
|
4097
5112
|
const contentLength = dataView.getUint32(byteOffset + 0, LE);
|
|
4098
5113
|
const contentFormat = dataView.getUint32(byteOffset + 4, LE);
|
|
4099
5114
|
byteOffset += GLB_CHUNK_HEADER_SIZE;
|
|
4100
|
-
|
|
5115
|
+
assert(contentFormat === GLB_V1_CONTENT_FORMAT_JSON);
|
|
4101
5116
|
parseJSONChunk(glb, dataView, byteOffset, contentLength);
|
|
4102
5117
|
byteOffset += contentLength;
|
|
4103
5118
|
byteOffset += parseBINChunk(glb, dataView, byteOffset, glb.header.byteLength);
|
|
4104
5119
|
return byteOffset;
|
|
4105
5120
|
}
|
|
4106
5121
|
function parseGLBV2(glb, dataView, byteOffset, options) {
|
|
4107
|
-
|
|
5122
|
+
assert(glb.header.byteLength > GLB_FILE_HEADER_SIZE + GLB_CHUNK_HEADER_SIZE);
|
|
4108
5123
|
parseGLBChunksSync(glb, dataView, byteOffset, options);
|
|
4109
5124
|
return byteOffset + glb.header.byteLength;
|
|
4110
5125
|
}
|
|
@@ -4235,6 +5250,12 @@
|
|
|
4235
5250
|
byteLength: arrayBuffer.byteLength
|
|
4236
5251
|
};
|
|
4237
5252
|
delete buffer.uri;
|
|
5253
|
+
} else if (gltf.buffers[i2] === null) {
|
|
5254
|
+
gltf.buffers[i2] = {
|
|
5255
|
+
arrayBuffer: new ArrayBuffer(buffer.byteLength),
|
|
5256
|
+
byteOffset: 0,
|
|
5257
|
+
byteLength: buffer.byteLength
|
|
5258
|
+
};
|
|
4238
5259
|
}
|
|
4239
5260
|
}
|
|
4240
5261
|
}
|
|
@@ -4260,10 +5281,13 @@
|
|
|
4260
5281
|
async function loadImage(gltf, image, index, options, context) {
|
|
4261
5282
|
const { fetch: fetch2, parse: parse4 } = context;
|
|
4262
5283
|
let arrayBuffer;
|
|
4263
|
-
if (image.uri) {
|
|
5284
|
+
if (image.uri && !image.hasOwnProperty("bufferView")) {
|
|
4264
5285
|
const uri = resolveUrl(image.uri, options);
|
|
4265
5286
|
const response = await fetch2(uri);
|
|
4266
5287
|
arrayBuffer = await response.arrayBuffer();
|
|
5288
|
+
image.bufferView = {
|
|
5289
|
+
data: arrayBuffer
|
|
5290
|
+
};
|
|
4267
5291
|
}
|
|
4268
5292
|
if (Number.isFinite(image.bufferView)) {
|
|
4269
5293
|
const array = getTypedArrayForBufferView(gltf.json, gltf.buffers, image.bufferView);
|
|
@@ -4490,8 +5514,8 @@
|
|
|
4490
5514
|
var GLBWriter;
|
|
4491
5515
|
var init_glb_writer = __esm({
|
|
4492
5516
|
"src/glb-writer.ts"() {
|
|
4493
|
-
init_version();
|
|
4494
5517
|
init_encode_glb();
|
|
5518
|
+
init_version();
|
|
4495
5519
|
GLBWriter = {
|
|
4496
5520
|
name: "GLB",
|
|
4497
5521
|
id: "glb",
|