@loaders.gl/gltf 3.3.0-alpha.1 → 3.3.0-alpha.10
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/dist.min.js +236 -148
- package/dist/es5/bundle.js +0 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/glb-loader.js +2 -13
- package/dist/es5/glb-loader.js.map +1 -1
- package/dist/es5/glb-writer.js +3 -6
- package/dist/es5/glb-writer.js.map +1 -1
- package/dist/es5/gltf-loader.js +11 -23
- package/dist/es5/gltf-loader.js.map +1 -1
- package/dist/es5/gltf-writer.js +2 -5
- package/dist/es5/gltf-writer.js.map +1 -1
- package/dist/es5/index.js +10 -17
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/api/gltf-extensions.js +15 -47
- package/dist/es5/lib/api/gltf-extensions.js.map +1 -1
- package/dist/es5/lib/api/gltf-scenegraph.js +128 -96
- package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -1
- package/dist/es5/lib/api/normalize-gltf-v1.js +34 -72
- package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -1
- package/dist/es5/lib/api/post-process-gltf.js +26 -89
- package/dist/es5/lib/api/post-process-gltf.js.map +1 -1
- package/dist/es5/lib/encoders/encode-glb.js +10 -8
- package/dist/es5/lib/encoders/encode-glb.js.map +1 -1
- package/dist/es5/lib/encoders/encode-gltf.js +3 -6
- package/dist/es5/lib/encoders/encode-gltf.js.map +1 -1
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js +2 -28
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -1
- package/dist/es5/lib/extensions/EXT_texture_webp.js +5 -18
- package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -1
- package/dist/es5/lib/extensions/KHR_binary_gltf.js +5 -12
- package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -1
- package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +11 -79
- package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
- package/dist/es5/lib/extensions/KHR_texture_basisu.js +5 -14
- package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -1
- package/dist/es5/lib/extensions/KHR_texture_transform.js +17 -72
- package/dist/es5/lib/extensions/KHR_texture_transform.js.map +1 -1
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +110 -0
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
- package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +0 -24
- package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
- package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +3 -20
- package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
- package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +12 -29
- package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
- package/dist/es5/lib/gltf-utils/get-typed-array.js +1 -1
- package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -1
- package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +5 -17
- package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
- package/dist/es5/lib/gltf-utils/gltf-constants.js +3 -4
- package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -1
- package/dist/es5/lib/gltf-utils/gltf-utils.js +1 -8
- package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -1
- package/dist/es5/lib/gltf-utils/resolve-url.js +0 -5
- package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -1
- package/dist/es5/lib/parsers/parse-glb.js +11 -17
- package/dist/es5/lib/parsers/parse-glb.js.map +1 -1
- package/dist/es5/lib/parsers/parse-gltf.js +21 -79
- package/dist/es5/lib/parsers/parse-gltf.js.map +1 -1
- package/dist/es5/lib/types/glb-types.js.map +1 -1
- package/dist/es5/lib/types/gltf-json-schema.js.map +1 -1
- package/dist/es5/lib/types/gltf-postprocessed-schema.js.map +1 -1
- package/dist/es5/lib/types/gltf-types.js.map +1 -1
- package/dist/es5/lib/utils/assert.js +0 -1
- package/dist/es5/lib/utils/assert.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/lib/utils/version.js.map +1 -1
- package/dist/es5/meshopt/meshopt-decoder.js +10 -47
- package/dist/es5/meshopt/meshopt-decoder.js.map +1 -1
- package/dist/es5/webp/webp.js +3 -19
- package/dist/es5/webp/webp.js.map +1 -1
- package/dist/esm/bundle.js +1 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/glb-loader.js +0 -1
- package/dist/esm/glb-loader.js.map +1 -1
- package/dist/esm/glb-writer.js +3 -1
- package/dist/esm/glb-writer.js.map +1 -1
- package/dist/esm/gltf-loader.js +9 -3
- package/dist/esm/gltf-loader.js.map +1 -1
- package/dist/esm/gltf-writer.js +3 -2
- package/dist/esm/gltf-writer.js.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/api/gltf-extensions.js +17 -9
- package/dist/esm/lib/api/gltf-extensions.js.map +1 -1
- package/dist/esm/lib/api/gltf-scenegraph.js +40 -68
- package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -1
- package/dist/esm/lib/api/normalize-gltf-v1.js +5 -36
- package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -1
- package/dist/esm/lib/api/post-process-gltf.js +26 -93
- package/dist/esm/lib/api/post-process-gltf.js.map +1 -1
- package/dist/esm/lib/encoders/encode-glb.js +9 -2
- package/dist/esm/lib/encoders/encode-glb.js.map +1 -1
- package/dist/esm/lib/encoders/encode-gltf.js +6 -4
- package/dist/esm/lib/encoders/encode-gltf.js.map +1 -1
- package/dist/esm/lib/extensions/EXT_meshopt_compression.js +5 -6
- package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -1
- package/dist/esm/lib/extensions/EXT_texture_webp.js +4 -6
- package/dist/esm/lib/extensions/EXT_texture_webp.js.map +1 -1
- package/dist/esm/lib/extensions/KHR_binary_gltf.js +3 -2
- package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +1 -1
- package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js +18 -17
- package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
- package/dist/esm/lib/extensions/KHR_texture_basisu.js +4 -3
- package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +1 -1
- package/dist/esm/lib/extensions/KHR_texture_transform.js +8 -34
- package/dist/esm/lib/extensions/KHR_texture_transform.js.map +1 -1
- package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js +84 -0
- package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
- package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js +4 -4
- package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
- package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js +4 -3
- package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
- package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js +10 -9
- package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
- package/dist/esm/lib/gltf-utils/get-typed-array.js +4 -0
- package/dist/esm/lib/gltf-utils/get-typed-array.js.map +1 -1
- package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js +7 -11
- package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
- package/dist/esm/lib/gltf-utils/gltf-constants.js +1 -0
- package/dist/esm/lib/gltf-utils/gltf-constants.js.map +1 -1
- package/dist/esm/lib/gltf-utils/gltf-utils.js +0 -2
- package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -1
- package/dist/esm/lib/gltf-utils/resolve-url.js +1 -4
- package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -1
- package/dist/esm/lib/parsers/parse-glb.js +19 -16
- package/dist/esm/lib/parsers/parse-glb.js.map +1 -1
- package/dist/esm/lib/parsers/parse-gltf.js +15 -17
- package/dist/esm/lib/parsers/parse-gltf.js.map +1 -1
- package/dist/esm/lib/types/glb-types.js.map +1 -1
- package/dist/esm/lib/types/gltf-json-schema.js.map +1 -1
- package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +1 -1
- package/dist/esm/lib/types/gltf-types.js.map +1 -1
- package/dist/esm/lib/utils/assert.js +1 -0
- package/dist/esm/lib/utils/assert.js.map +1 -1
- package/dist/esm/lib/utils/version.js +2 -1
- package/dist/esm/lib/utils/version.js.map +1 -1
- package/dist/esm/meshopt/meshopt-decoder.js +11 -15
- package/dist/esm/meshopt/meshopt-decoder.js.map +1 -1
- package/dist/esm/webp/webp.js +3 -5
- package/dist/esm/webp/webp.js.map +1 -1
- package/dist/glb-loader.d.ts +1 -1
- package/dist/glb-loader.d.ts.map +1 -1
- package/dist/gltf-loader.d.ts +1 -1
- package/dist/gltf-loader.d.ts.map +1 -1
- package/dist/gltf-writer.d.ts +1 -1
- package/dist/gltf-writer.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/api/gltf-extensions.d.ts +1 -1
- package/dist/lib/api/gltf-extensions.d.ts.map +1 -1
- package/dist/lib/api/gltf-extensions.js +8 -2
- 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 +13 -0
- package/dist/lib/api/normalize-gltf-v1.d.ts.map +1 -1
- package/dist/lib/api/normalize-gltf-v1.js +6 -2
- package/dist/lib/extensions/EXT_meshopt_compression.js +1 -1
- package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_texture_webp.js +1 -0
- package/dist/lib/extensions/KHR_binary_gltf.js +1 -1
- package/dist/lib/extensions/KHR_draco_mesh_compression.js +1 -1
- package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -1
- package/dist/lib/extensions/KHR_texture_basisu.js +1 -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_materials_unlit.js +2 -2
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -1
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +1 -0
- 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-gltf.d.ts +1 -1
- package/dist/lib/parsers/parse-gltf.d.ts.map +1 -1
- package/dist/lib/parsers/parse-gltf.js +9 -2
- package/dist/lib/types/glb-types.d.ts +2 -2
- package/dist/lib/types/glb-types.d.ts.map +1 -1
- package/dist/lib/types/gltf-json-schema.d.ts +394 -9
- package/dist/lib/types/gltf-json-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-postprocessed-schema.d.ts +1 -1
- package/dist/lib/types/gltf-postprocessed-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-types.d.ts +8 -5
- package/dist/lib/types/gltf-types.d.ts.map +1 -1
- package/dist/webp/webp.d.ts +1 -1
- package/dist/webp/webp.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/index.ts +7 -1
- package/src/lib/api/gltf-extensions.ts +3 -1
- package/src/lib/api/gltf-scenegraph.ts +21 -12
- package/src/lib/api/normalize-gltf-v1.ts +2 -1
- package/src/lib/extensions/EXT_meshopt_compression.ts +1 -1
- package/src/lib/extensions/EXT_texture_webp.ts +1 -0
- 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/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/parsers/parse-gltf.ts +4 -1
- package/src/lib/types/gltf-json-schema.ts +432 -3
- package/src/lib/types/gltf-types.ts +9 -2
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") {
|
|
@@ -200,6 +200,7 @@
|
|
|
200
200
|
// ../worker-utils/src/index.ts
|
|
201
201
|
var init_src = __esm({
|
|
202
202
|
"../worker-utils/src/index.ts"() {
|
|
203
|
+
init_globals2();
|
|
203
204
|
init_library_utils();
|
|
204
205
|
}
|
|
205
206
|
});
|
|
@@ -753,11 +754,12 @@
|
|
|
753
754
|
var BasisWorkerLoader, BasisLoader;
|
|
754
755
|
var init_basis_loader = __esm({
|
|
755
756
|
"../textures/src/basis-loader.ts"() {
|
|
757
|
+
init_src();
|
|
756
758
|
init_version3();
|
|
757
759
|
init_parse_basis();
|
|
758
760
|
BasisWorkerLoader = {
|
|
759
761
|
name: "Basis",
|
|
760
|
-
id: "basis",
|
|
762
|
+
id: isBrowser2 ? "basis" : "basis-nodejs",
|
|
761
763
|
module: "textures",
|
|
762
764
|
version: VERSION4,
|
|
763
765
|
worker: true,
|
|
@@ -1396,12 +1398,12 @@
|
|
|
1396
1398
|
return extras[key];
|
|
1397
1399
|
}
|
|
1398
1400
|
getExtension(extensionName) {
|
|
1399
|
-
const isExtension = this.getUsedExtensions().find((
|
|
1401
|
+
const isExtension = this.getUsedExtensions().find((name10) => name10 === extensionName);
|
|
1400
1402
|
const extensions = this.json.extensions || {};
|
|
1401
1403
|
return isExtension ? extensions[extensionName] || true : null;
|
|
1402
1404
|
}
|
|
1403
1405
|
getRequiredExtension(extensionName) {
|
|
1404
|
-
const isRequired = this.getRequiredExtensions().find((
|
|
1406
|
+
const isRequired = this.getRequiredExtensions().find((name10) => name10 === extensionName);
|
|
1405
1407
|
return isRequired ? this.getExtension(extensionName) : null;
|
|
1406
1408
|
}
|
|
1407
1409
|
getRequiredExtensions() {
|
|
@@ -1410,6 +1412,9 @@
|
|
|
1410
1412
|
getUsedExtensions() {
|
|
1411
1413
|
return this.json.extensionsUsed || [];
|
|
1412
1414
|
}
|
|
1415
|
+
getRemovedExtensions() {
|
|
1416
|
+
return this.json.extensionsRemoved || [];
|
|
1417
|
+
}
|
|
1413
1418
|
getObjectExtension(object, extensionName) {
|
|
1414
1419
|
const extensions = object.extensions || {};
|
|
1415
1420
|
return extensions[extensionName];
|
|
@@ -1534,6 +1539,9 @@
|
|
|
1534
1539
|
}
|
|
1535
1540
|
}
|
|
1536
1541
|
removeExtension(extensionName) {
|
|
1542
|
+
if (!this.getExtension(extensionName)) {
|
|
1543
|
+
return;
|
|
1544
|
+
}
|
|
1537
1545
|
if (this.json.extensionsRequired) {
|
|
1538
1546
|
this._removeStringFromArray(this.json.extensionsRequired, extensionName);
|
|
1539
1547
|
}
|
|
@@ -1543,6 +1551,13 @@
|
|
|
1543
1551
|
if (this.json.extensions) {
|
|
1544
1552
|
delete this.json.extensions[extensionName];
|
|
1545
1553
|
}
|
|
1554
|
+
if (!Array.isArray(this.json.extensionsRemoved)) {
|
|
1555
|
+
this.json.extensionsRemoved = [];
|
|
1556
|
+
}
|
|
1557
|
+
const extensionsRemoved = this.json.extensionsRemoved;
|
|
1558
|
+
if (!extensionsRemoved.includes(extensionName)) {
|
|
1559
|
+
extensionsRemoved.push(extensionName);
|
|
1560
|
+
}
|
|
1546
1561
|
}
|
|
1547
1562
|
setDefaultScene(sceneIndex) {
|
|
1548
1563
|
this.json.scene = sceneIndex;
|
|
@@ -2064,6 +2079,7 @@
|
|
|
2064
2079
|
var DEFAULT_DRACO_OPTIONS, DracoLoader;
|
|
2065
2080
|
var init_draco_loader = __esm({
|
|
2066
2081
|
"../draco/src/draco-loader.ts"() {
|
|
2082
|
+
init_src();
|
|
2067
2083
|
init_version5();
|
|
2068
2084
|
DEFAULT_DRACO_OPTIONS = {
|
|
2069
2085
|
draco: {
|
|
@@ -2075,7 +2091,7 @@
|
|
|
2075
2091
|
};
|
|
2076
2092
|
DracoLoader = {
|
|
2077
2093
|
name: "Draco",
|
|
2078
|
-
id: "draco",
|
|
2094
|
+
id: isBrowser2 ? "draco" : "draco-nodejs",
|
|
2079
2095
|
module: "draco",
|
|
2080
2096
|
shapes: ["mesh"],
|
|
2081
2097
|
version: VERSION7,
|
|
@@ -2171,8 +2187,8 @@
|
|
|
2171
2187
|
}
|
|
2172
2188
|
select(...columnNames) {
|
|
2173
2189
|
const nameMap = Object.create(null);
|
|
2174
|
-
for (const
|
|
2175
|
-
nameMap[
|
|
2190
|
+
for (const name10 of columnNames) {
|
|
2191
|
+
nameMap[name10] = true;
|
|
2176
2192
|
}
|
|
2177
2193
|
const selectedFields = this.fields.filter((field) => nameMap[field.name]);
|
|
2178
2194
|
return new Schema(selectedFields, this.metadata);
|
|
@@ -2210,8 +2226,8 @@
|
|
|
2210
2226
|
var init_field = __esm({
|
|
2211
2227
|
"../schema/src/lib/schema/impl/field.ts"() {
|
|
2212
2228
|
Field = class {
|
|
2213
|
-
constructor(
|
|
2214
|
-
this.name =
|
|
2229
|
+
constructor(name10, type, nullable = false, metadata = new Map()) {
|
|
2230
|
+
this.name = name10;
|
|
2215
2231
|
this.type = type;
|
|
2216
2232
|
this.nullable = nullable;
|
|
2217
2233
|
this.metadata = metadata;
|
|
@@ -3096,15 +3112,17 @@
|
|
|
3096
3112
|
});
|
|
3097
3113
|
});
|
|
3098
3114
|
}
|
|
3099
|
-
var
|
|
3115
|
+
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;
|
|
3100
3116
|
var init_draco_module_loader = __esm({
|
|
3101
3117
|
"../draco/src/lib/draco-module-loader.ts"() {
|
|
3102
3118
|
init_src();
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3119
|
+
DRACO_DECODER_VERSION = "1.5.5";
|
|
3120
|
+
DRACO_ENCODER_VERSION = "1.4.1";
|
|
3121
|
+
STATIC_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_DECODER_VERSION}`;
|
|
3122
|
+
DRACO_JS_DECODER_URL = `${STATIC_DECODER_URL}/draco_decoder.js`;
|
|
3123
|
+
DRACO_WASM_WRAPPER_URL = `${STATIC_DECODER_URL}/draco_wasm_wrapper.js`;
|
|
3124
|
+
DRACO_WASM_DECODER_URL = `${STATIC_DECODER_URL}/draco_decoder.wasm`;
|
|
3125
|
+
DRACO_ENCODER_URL = `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/draco_encoder.js`;
|
|
3108
3126
|
}
|
|
3109
3127
|
});
|
|
3110
3128
|
|
|
@@ -3134,11 +3152,11 @@
|
|
|
3134
3152
|
// src/lib/gltf-utils/gltf-attribute-utils.ts
|
|
3135
3153
|
function getGLTFAccessors(attributes) {
|
|
3136
3154
|
const accessors = {};
|
|
3137
|
-
for (const
|
|
3138
|
-
const attribute = attributes[
|
|
3139
|
-
if (
|
|
3155
|
+
for (const name10 in attributes) {
|
|
3156
|
+
const attribute = attributes[name10];
|
|
3157
|
+
if (name10 !== "indices") {
|
|
3140
3158
|
const glTFAccessor = getGLTFAccessor(attribute);
|
|
3141
|
-
accessors[
|
|
3159
|
+
accessors[name10] = glTFAccessor;
|
|
3142
3160
|
}
|
|
3143
3161
|
}
|
|
3144
3162
|
return accessors;
|
|
@@ -3313,11 +3331,8 @@
|
|
|
3313
3331
|
});
|
|
3314
3332
|
|
|
3315
3333
|
// ../../node_modules/@math.gl/core/dist/esm/lib/common.js
|
|
3316
|
-
function round(value) {
|
|
3317
|
-
return Math.round(value / config.EPSILON) * config.EPSILON;
|
|
3318
|
-
}
|
|
3319
3334
|
function formatValue(value, {
|
|
3320
|
-
precision = config.precision
|
|
3335
|
+
precision = config.precision
|
|
3321
3336
|
} = {}) {
|
|
3322
3337
|
value = round(value);
|
|
3323
3338
|
return "".concat(parseFloat(value.toPrecision(precision)));
|
|
@@ -3351,7 +3366,7 @@
|
|
|
3351
3366
|
if (b && b.equals) {
|
|
3352
3367
|
return b.equals(a2);
|
|
3353
3368
|
}
|
|
3354
|
-
if (
|
|
3369
|
+
if (typeof a2 === "number" && typeof b === "number") {
|
|
3355
3370
|
return Math.abs(a2 - b) <= config.EPSILON * Math.max(1, Math.abs(a2), Math.abs(b));
|
|
3356
3371
|
}
|
|
3357
3372
|
return false;
|
|
@@ -3359,18 +3374,22 @@
|
|
|
3359
3374
|
config.EPSILON = oldEpsilon;
|
|
3360
3375
|
}
|
|
3361
3376
|
}
|
|
3377
|
+
function round(value) {
|
|
3378
|
+
return Math.round(value / config.EPSILON) * config.EPSILON;
|
|
3379
|
+
}
|
|
3362
3380
|
var RADIANS_TO_DEGREES, DEGREES_TO_RADIANS, config;
|
|
3363
3381
|
var init_common = __esm({
|
|
3364
3382
|
"../../node_modules/@math.gl/core/dist/esm/lib/common.js"() {
|
|
3365
3383
|
RADIANS_TO_DEGREES = 1 / Math.PI * 180;
|
|
3366
3384
|
DEGREES_TO_RADIANS = 1 / 180 * Math.PI;
|
|
3367
|
-
config = {
|
|
3368
|
-
|
|
3369
|
-
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3385
|
+
config = {
|
|
3386
|
+
EPSILON: 1e-12,
|
|
3387
|
+
debug: false,
|
|
3388
|
+
precision: 4,
|
|
3389
|
+
printTypes: false,
|
|
3390
|
+
printDegrees: false,
|
|
3391
|
+
printRowMajor: true
|
|
3392
|
+
};
|
|
3374
3393
|
}
|
|
3375
3394
|
});
|
|
3376
3395
|
|
|
@@ -3400,24 +3419,25 @@
|
|
|
3400
3419
|
var init_math_array = __esm({
|
|
3401
3420
|
"../../node_modules/@math.gl/core/dist/esm/classes/base/math-array.js"() {
|
|
3402
3421
|
init_common();
|
|
3403
|
-
init_assert5();
|
|
3404
3422
|
MathArray = class extends _extendableBuiltin(Array) {
|
|
3405
|
-
get ELEMENTS() {
|
|
3406
|
-
assert5(false);
|
|
3407
|
-
return 0;
|
|
3408
|
-
}
|
|
3409
3423
|
clone() {
|
|
3410
3424
|
return new this.constructor().copy(this);
|
|
3411
3425
|
}
|
|
3412
|
-
from(arrayOrObject) {
|
|
3413
|
-
return Array.isArray(arrayOrObject) ? this.copy(arrayOrObject) : this.fromObject(arrayOrObject);
|
|
3414
|
-
}
|
|
3415
3426
|
fromArray(array, offset = 0) {
|
|
3416
3427
|
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3417
3428
|
this[i2] = array[i2 + offset];
|
|
3418
3429
|
}
|
|
3419
3430
|
return this.check();
|
|
3420
3431
|
}
|
|
3432
|
+
toArray(targetArray = [], offset = 0) {
|
|
3433
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3434
|
+
targetArray[offset + i2] = this[i2];
|
|
3435
|
+
}
|
|
3436
|
+
return targetArray;
|
|
3437
|
+
}
|
|
3438
|
+
from(arrayOrObject) {
|
|
3439
|
+
return Array.isArray(arrayOrObject) ? this.copy(arrayOrObject) : this.fromObject(arrayOrObject);
|
|
3440
|
+
}
|
|
3421
3441
|
to(arrayOrObject) {
|
|
3422
3442
|
if (arrayOrObject === this) {
|
|
3423
3443
|
return this;
|
|
@@ -3427,12 +3447,6 @@
|
|
|
3427
3447
|
toTarget(target) {
|
|
3428
3448
|
return target ? this.to(target) : this;
|
|
3429
3449
|
}
|
|
3430
|
-
toArray(array = [], offset = 0) {
|
|
3431
|
-
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3432
|
-
array[offset + i2] = this[i2];
|
|
3433
|
-
}
|
|
3434
|
-
return array;
|
|
3435
|
-
}
|
|
3436
3450
|
toFloat32Array() {
|
|
3437
3451
|
return new Float32Array(this);
|
|
3438
3452
|
}
|
|
@@ -3476,9 +3490,7 @@
|
|
|
3476
3490
|
}
|
|
3477
3491
|
lerp(a2, b, t2) {
|
|
3478
3492
|
if (t2 === void 0) {
|
|
3479
|
-
|
|
3480
|
-
b = a2;
|
|
3481
|
-
a2 = this;
|
|
3493
|
+
return this.lerp(this, a2, b);
|
|
3482
3494
|
}
|
|
3483
3495
|
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3484
3496
|
const ai = a2[i2];
|
|
@@ -3521,14 +3533,36 @@
|
|
|
3521
3533
|
return this.check();
|
|
3522
3534
|
}
|
|
3523
3535
|
scale(scale2) {
|
|
3524
|
-
if (
|
|
3525
|
-
|
|
3536
|
+
if (typeof scale2 === "number") {
|
|
3537
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3538
|
+
this[i2] *= scale2;
|
|
3539
|
+
}
|
|
3540
|
+
} else {
|
|
3541
|
+
for (let i2 = 0; i2 < this.ELEMENTS && i2 < scale2.length; ++i2) {
|
|
3542
|
+
this[i2] *= scale2[i2];
|
|
3543
|
+
}
|
|
3526
3544
|
}
|
|
3545
|
+
return this.check();
|
|
3546
|
+
}
|
|
3547
|
+
multiplyByScalar(scalar) {
|
|
3527
3548
|
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3528
|
-
this[i2] *=
|
|
3549
|
+
this[i2] *= scalar;
|
|
3529
3550
|
}
|
|
3530
3551
|
return this.check();
|
|
3531
3552
|
}
|
|
3553
|
+
check() {
|
|
3554
|
+
if (config.debug && !this.validate()) {
|
|
3555
|
+
throw new Error("math.gl: ".concat(this.constructor.name, " some fields set to invalid numbers'"));
|
|
3556
|
+
}
|
|
3557
|
+
return this;
|
|
3558
|
+
}
|
|
3559
|
+
validate() {
|
|
3560
|
+
let valid = this.length === this.ELEMENTS;
|
|
3561
|
+
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3562
|
+
valid = valid && Number.isFinite(this[i2]);
|
|
3563
|
+
}
|
|
3564
|
+
return valid;
|
|
3565
|
+
}
|
|
3532
3566
|
sub(a2) {
|
|
3533
3567
|
return this.subtract(a2);
|
|
3534
3568
|
}
|
|
@@ -3554,7 +3588,7 @@
|
|
|
3554
3588
|
return this.check();
|
|
3555
3589
|
}
|
|
3556
3590
|
divideScalar(a2) {
|
|
3557
|
-
return this.
|
|
3591
|
+
return this.multiplyByScalar(1 / a2);
|
|
3558
3592
|
}
|
|
3559
3593
|
clampScalar(min, max) {
|
|
3560
3594
|
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
@@ -3562,25 +3596,9 @@
|
|
|
3562
3596
|
}
|
|
3563
3597
|
return this.check();
|
|
3564
3598
|
}
|
|
3565
|
-
multiplyByScalar(scalar) {
|
|
3566
|
-
return this.scale(scalar);
|
|
3567
|
-
}
|
|
3568
3599
|
get elements() {
|
|
3569
3600
|
return this;
|
|
3570
3601
|
}
|
|
3571
|
-
check() {
|
|
3572
|
-
if (config.debug && !this.validate()) {
|
|
3573
|
-
throw new Error("math.gl: ".concat(this.constructor.name, " some fields set to invalid numbers'"));
|
|
3574
|
-
}
|
|
3575
|
-
return this;
|
|
3576
|
-
}
|
|
3577
|
-
validate() {
|
|
3578
|
-
let valid = this.length === this.ELEMENTS;
|
|
3579
|
-
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
3580
|
-
valid = valid && Number.isFinite(this[i2]);
|
|
3581
|
-
}
|
|
3582
|
-
return valid;
|
|
3583
|
-
}
|
|
3584
3602
|
};
|
|
3585
3603
|
}
|
|
3586
3604
|
});
|
|
@@ -3609,17 +3627,9 @@
|
|
|
3609
3627
|
}
|
|
3610
3628
|
return v;
|
|
3611
3629
|
}
|
|
3612
|
-
function deprecated(method, version) {
|
|
3613
|
-
if (!map[method]) {
|
|
3614
|
-
map[method] = true;
|
|
3615
|
-
console.warn("".concat(method, " has been removed in version ").concat(version, ", see upgrade guide for more information"));
|
|
3616
|
-
}
|
|
3617
|
-
}
|
|
3618
|
-
var map;
|
|
3619
3630
|
var init_validators = __esm({
|
|
3620
3631
|
"../../node_modules/@math.gl/core/dist/esm/lib/validators.js"() {
|
|
3621
3632
|
init_common();
|
|
3622
|
-
map = {};
|
|
3623
3633
|
}
|
|
3624
3634
|
});
|
|
3625
3635
|
|
|
@@ -3631,14 +3641,6 @@
|
|
|
3631
3641
|
init_validators();
|
|
3632
3642
|
init_assert5();
|
|
3633
3643
|
Vector = class extends MathArray {
|
|
3634
|
-
get ELEMENTS() {
|
|
3635
|
-
assert5(false);
|
|
3636
|
-
return 0;
|
|
3637
|
-
}
|
|
3638
|
-
copy(vector) {
|
|
3639
|
-
assert5(false);
|
|
3640
|
-
return this;
|
|
3641
|
-
}
|
|
3642
3644
|
get x() {
|
|
3643
3645
|
return this[0];
|
|
3644
3646
|
}
|
|
@@ -3974,7 +3976,7 @@
|
|
|
3974
3976
|
});
|
|
3975
3977
|
|
|
3976
3978
|
// ../../node_modules/@math.gl/core/dist/esm/classes/vector3.js
|
|
3977
|
-
var ORIGIN,
|
|
3979
|
+
var ORIGIN, ZERO, Vector3;
|
|
3978
3980
|
var init_vector3 = __esm({
|
|
3979
3981
|
"../../node_modules/@math.gl/core/dist/esm/classes/vector3.js"() {
|
|
3980
3982
|
init_vector();
|
|
@@ -3983,10 +3985,13 @@
|
|
|
3983
3985
|
init_vec3();
|
|
3984
3986
|
init_gl_matrix_extras();
|
|
3985
3987
|
ORIGIN = [0, 0, 0];
|
|
3986
|
-
constants = {};
|
|
3987
3988
|
Vector3 = class extends Vector {
|
|
3988
3989
|
static get ZERO() {
|
|
3989
|
-
|
|
3990
|
+
if (!ZERO) {
|
|
3991
|
+
ZERO = new Vector3(0, 0, 0);
|
|
3992
|
+
Object.freeze(ZERO);
|
|
3993
|
+
}
|
|
3994
|
+
return ZERO;
|
|
3990
3995
|
}
|
|
3991
3996
|
constructor(x = 0, y = 0, z = 0) {
|
|
3992
3997
|
super(-0, -0, -0);
|
|
@@ -4103,16 +4108,7 @@
|
|
|
4103
4108
|
init_math_array();
|
|
4104
4109
|
init_validators();
|
|
4105
4110
|
init_common();
|
|
4106
|
-
init_assert5();
|
|
4107
4111
|
Matrix = class extends MathArray {
|
|
4108
|
-
get ELEMENTS() {
|
|
4109
|
-
assert5(false);
|
|
4110
|
-
return 0;
|
|
4111
|
-
}
|
|
4112
|
-
get RANK() {
|
|
4113
|
-
assert5(false);
|
|
4114
|
-
return 0;
|
|
4115
|
-
}
|
|
4116
4112
|
toString() {
|
|
4117
4113
|
let string = "[";
|
|
4118
4114
|
if (config.printRowMajor) {
|
|
@@ -4299,7 +4295,21 @@
|
|
|
4299
4295
|
});
|
|
4300
4296
|
|
|
4301
4297
|
// ../../node_modules/@math.gl/core/dist/esm/classes/matrix3.js
|
|
4302
|
-
|
|
4298
|
+
function getZeroMatrix() {
|
|
4299
|
+
if (!ZERO_MATRIX3) {
|
|
4300
|
+
ZERO_MATRIX3 = new Matrix3([0, 0, 0, 0, 0, 0, 0, 0, 0]);
|
|
4301
|
+
Object.freeze(ZERO_MATRIX3);
|
|
4302
|
+
}
|
|
4303
|
+
return ZERO_MATRIX3;
|
|
4304
|
+
}
|
|
4305
|
+
function getIdentityMatrix() {
|
|
4306
|
+
if (!IDENTITY_MATRIX3) {
|
|
4307
|
+
IDENTITY_MATRIX3 = new Matrix3();
|
|
4308
|
+
Object.freeze(IDENTITY_MATRIX3);
|
|
4309
|
+
}
|
|
4310
|
+
return IDENTITY_MATRIX3;
|
|
4311
|
+
}
|
|
4312
|
+
var INDICES, IDENTITY_MATRIX, Matrix3, ZERO_MATRIX3, IDENTITY_MATRIX3;
|
|
4303
4313
|
var init_matrix3 = __esm({
|
|
4304
4314
|
"../../node_modules/@math.gl/core/dist/esm/classes/matrix3.js"() {
|
|
4305
4315
|
init_matrix();
|
|
@@ -4308,28 +4318,24 @@
|
|
|
4308
4318
|
init_mat3();
|
|
4309
4319
|
init_vec2();
|
|
4310
4320
|
init_vec3();
|
|
4311
|
-
|
|
4312
|
-
|
|
4313
|
-
|
|
4314
|
-
|
|
4315
|
-
|
|
4316
|
-
|
|
4317
|
-
|
|
4318
|
-
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
|
|
4322
|
-
|
|
4323
|
-
});
|
|
4324
|
-
constants2 = {};
|
|
4321
|
+
(function(INDICES2) {
|
|
4322
|
+
INDICES2[INDICES2["COL0ROW0"] = 0] = "COL0ROW0";
|
|
4323
|
+
INDICES2[INDICES2["COL0ROW1"] = 1] = "COL0ROW1";
|
|
4324
|
+
INDICES2[INDICES2["COL0ROW2"] = 2] = "COL0ROW2";
|
|
4325
|
+
INDICES2[INDICES2["COL1ROW0"] = 3] = "COL1ROW0";
|
|
4326
|
+
INDICES2[INDICES2["COL1ROW1"] = 4] = "COL1ROW1";
|
|
4327
|
+
INDICES2[INDICES2["COL1ROW2"] = 5] = "COL1ROW2";
|
|
4328
|
+
INDICES2[INDICES2["COL2ROW0"] = 6] = "COL2ROW0";
|
|
4329
|
+
INDICES2[INDICES2["COL2ROW1"] = 7] = "COL2ROW1";
|
|
4330
|
+
INDICES2[INDICES2["COL2ROW2"] = 8] = "COL2ROW2";
|
|
4331
|
+
})(INDICES || (INDICES = {}));
|
|
4332
|
+
IDENTITY_MATRIX = Object.freeze([1, 0, 0, 0, 1, 0, 0, 0, 1]);
|
|
4325
4333
|
Matrix3 = class extends Matrix {
|
|
4326
4334
|
static get IDENTITY() {
|
|
4327
|
-
|
|
4328
|
-
return constants2.IDENTITY;
|
|
4335
|
+
return getIdentityMatrix();
|
|
4329
4336
|
}
|
|
4330
4337
|
static get ZERO() {
|
|
4331
|
-
|
|
4332
|
-
return constants2.ZERO;
|
|
4338
|
+
return getZeroMatrix();
|
|
4333
4339
|
}
|
|
4334
4340
|
get ELEMENTS() {
|
|
4335
4341
|
return 9;
|
|
@@ -4340,10 +4346,12 @@
|
|
|
4340
4346
|
get INDICES() {
|
|
4341
4347
|
return INDICES;
|
|
4342
4348
|
}
|
|
4343
|
-
constructor(array) {
|
|
4349
|
+
constructor(array, ...args) {
|
|
4344
4350
|
super(-0, -0, -0, -0, -0, -0, -0, -0, -0);
|
|
4345
4351
|
if (arguments.length === 1 && Array.isArray(array)) {
|
|
4346
4352
|
this.copy(array);
|
|
4353
|
+
} else if (args.length > 0) {
|
|
4354
|
+
this.copy([array, ...args]);
|
|
4347
4355
|
} else {
|
|
4348
4356
|
this.identity();
|
|
4349
4357
|
}
|
|
@@ -4360,6 +4368,16 @@
|
|
|
4360
4368
|
this[8] = array[8];
|
|
4361
4369
|
return this.check();
|
|
4362
4370
|
}
|
|
4371
|
+
identity() {
|
|
4372
|
+
return this.copy(IDENTITY_MATRIX);
|
|
4373
|
+
}
|
|
4374
|
+
fromObject(object) {
|
|
4375
|
+
return this.check();
|
|
4376
|
+
}
|
|
4377
|
+
fromQuaternion(q) {
|
|
4378
|
+
fromQuat(this, q);
|
|
4379
|
+
return this.check();
|
|
4380
|
+
}
|
|
4363
4381
|
set(m00, m10, m20, m01, m11, m21, m02, m12, m22) {
|
|
4364
4382
|
this[0] = m00;
|
|
4365
4383
|
this[1] = m10;
|
|
@@ -4387,13 +4405,6 @@
|
|
|
4387
4405
|
determinant() {
|
|
4388
4406
|
return determinant(this);
|
|
4389
4407
|
}
|
|
4390
|
-
identity() {
|
|
4391
|
-
return this.copy(IDENTITY);
|
|
4392
|
-
}
|
|
4393
|
-
fromQuaternion(q) {
|
|
4394
|
-
fromQuat(this, q);
|
|
4395
|
-
return this.check();
|
|
4396
|
-
}
|
|
4397
4408
|
transpose() {
|
|
4398
4409
|
transpose(this, this);
|
|
4399
4410
|
return this.check();
|
|
@@ -4418,7 +4429,7 @@
|
|
|
4418
4429
|
if (Array.isArray(factor)) {
|
|
4419
4430
|
scale(this, this, factor);
|
|
4420
4431
|
} else {
|
|
4421
|
-
scale(this, this, [factor, factor
|
|
4432
|
+
scale(this, this, [factor, factor]);
|
|
4422
4433
|
}
|
|
4423
4434
|
return this.check();
|
|
4424
4435
|
}
|
|
@@ -4427,32 +4438,30 @@
|
|
|
4427
4438
|
return this.check();
|
|
4428
4439
|
}
|
|
4429
4440
|
transform(vector, result) {
|
|
4441
|
+
let out;
|
|
4430
4442
|
switch (vector.length) {
|
|
4431
4443
|
case 2:
|
|
4432
|
-
|
|
4444
|
+
out = transformMat3(result || [-0, -0], vector, this);
|
|
4433
4445
|
break;
|
|
4434
4446
|
case 3:
|
|
4435
|
-
|
|
4447
|
+
out = transformMat32(result || [-0, -0, -0], vector, this);
|
|
4436
4448
|
break;
|
|
4437
4449
|
case 4:
|
|
4438
|
-
|
|
4450
|
+
out = vec4_transformMat3(result || [-0, -0, -0, -0], vector, this);
|
|
4439
4451
|
break;
|
|
4440
4452
|
default:
|
|
4441
4453
|
throw new Error("Illegal vector");
|
|
4442
4454
|
}
|
|
4443
|
-
checkVector(
|
|
4444
|
-
return
|
|
4455
|
+
checkVector(out, vector.length);
|
|
4456
|
+
return out;
|
|
4445
4457
|
}
|
|
4446
4458
|
transformVector(vector, result) {
|
|
4447
|
-
deprecated("Matrix3.transformVector");
|
|
4448
4459
|
return this.transform(vector, result);
|
|
4449
4460
|
}
|
|
4450
4461
|
transformVector2(vector, result) {
|
|
4451
|
-
deprecated("Matrix3.transformVector");
|
|
4452
4462
|
return this.transform(vector, result);
|
|
4453
4463
|
}
|
|
4454
4464
|
transformVector3(vector, result) {
|
|
4455
|
-
deprecated("Matrix3.transformVector");
|
|
4456
4465
|
return this.transform(vector, result);
|
|
4457
4466
|
}
|
|
4458
4467
|
};
|
|
@@ -4460,21 +4469,10 @@
|
|
|
4460
4469
|
});
|
|
4461
4470
|
|
|
4462
4471
|
// ../../node_modules/@math.gl/core/dist/esm/index.js
|
|
4463
|
-
var globals3, global_3;
|
|
4464
4472
|
var init_esm = __esm({
|
|
4465
4473
|
"../../node_modules/@math.gl/core/dist/esm/index.js"() {
|
|
4466
|
-
init_common();
|
|
4467
4474
|
init_vector3();
|
|
4468
4475
|
init_matrix3();
|
|
4469
|
-
globals3 = {
|
|
4470
|
-
self: typeof self !== "undefined" && self,
|
|
4471
|
-
window: typeof window !== "undefined" && window,
|
|
4472
|
-
global: typeof global !== "undefined" && global
|
|
4473
|
-
};
|
|
4474
|
-
global_3 = globals3.global || globals3.self || globals3.window;
|
|
4475
|
-
global_3.mathgl = {
|
|
4476
|
-
config
|
|
4477
|
-
};
|
|
4478
4476
|
}
|
|
4479
4477
|
});
|
|
4480
4478
|
|
|
@@ -4725,7 +4723,6 @@
|
|
|
4725
4723
|
async function decode6(gltfData) {
|
|
4726
4724
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
4727
4725
|
const { json } = gltfScenegraph;
|
|
4728
|
-
gltfScenegraph.removeExtension(KHR_MATERIALS_UNLIT);
|
|
4729
4726
|
for (const material of json.materials || []) {
|
|
4730
4727
|
const extension = material.extensions && material.extensions.KHR_materials_unlit;
|
|
4731
4728
|
if (extension) {
|
|
@@ -4733,6 +4730,7 @@
|
|
|
4733
4730
|
}
|
|
4734
4731
|
gltfScenegraph.removeObjectExtension(material, KHR_MATERIALS_UNLIT);
|
|
4735
4732
|
}
|
|
4733
|
+
gltfScenegraph.removeExtension(KHR_MATERIALS_UNLIT);
|
|
4736
4734
|
}
|
|
4737
4735
|
function encode3(gltfData) {
|
|
4738
4736
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
@@ -4824,6 +4822,91 @@
|
|
|
4824
4822
|
}
|
|
4825
4823
|
});
|
|
4826
4824
|
|
|
4825
|
+
// src/lib/extensions/deprecated/EXT_feature_metadata.ts
|
|
4826
|
+
var EXT_feature_metadata_exports = {};
|
|
4827
|
+
__export(EXT_feature_metadata_exports, {
|
|
4828
|
+
decode: () => decode8,
|
|
4829
|
+
name: () => name9
|
|
4830
|
+
});
|
|
4831
|
+
async function decode8(gltfData) {
|
|
4832
|
+
const scenegraph = new GLTFScenegraph(gltfData);
|
|
4833
|
+
decodeExtFeatureMetadata(scenegraph);
|
|
4834
|
+
}
|
|
4835
|
+
function decodeExtFeatureMetadata(scenegraph) {
|
|
4836
|
+
const extension = scenegraph.getExtension(EXT_FEATURE_METADATA);
|
|
4837
|
+
const schemaClasses = extension?.schema?.classes;
|
|
4838
|
+
const featureTables = extension?.featureTables;
|
|
4839
|
+
const featureTextures = extension?.featureTextures;
|
|
4840
|
+
if (featureTextures) {
|
|
4841
|
+
console.warn('featureTextures is not yet supported in the "EXT_feature_metadata" extension.');
|
|
4842
|
+
}
|
|
4843
|
+
if (schemaClasses && featureTables) {
|
|
4844
|
+
for (const schemaName in schemaClasses) {
|
|
4845
|
+
const schemaClass = schemaClasses[schemaName];
|
|
4846
|
+
const featureTable = findFeatureTableByName(featureTables, schemaName);
|
|
4847
|
+
if (featureTable) {
|
|
4848
|
+
handleFeatureTableProperties(scenegraph, featureTable, schemaClass);
|
|
4849
|
+
}
|
|
4850
|
+
}
|
|
4851
|
+
}
|
|
4852
|
+
}
|
|
4853
|
+
function handleFeatureTableProperties(scenegraph, featureTable, schemaClass) {
|
|
4854
|
+
for (const propertyName in schemaClass.properties) {
|
|
4855
|
+
const schemaProperty = schemaClass.properties[propertyName];
|
|
4856
|
+
const featureTableProperty = featureTable?.properties?.[propertyName];
|
|
4857
|
+
const numberOfFeatures = featureTable.count;
|
|
4858
|
+
if (featureTableProperty) {
|
|
4859
|
+
const data = getPropertyDataFromBinarySource(scenegraph, schemaProperty, numberOfFeatures, featureTableProperty);
|
|
4860
|
+
featureTableProperty.data = data;
|
|
4861
|
+
}
|
|
4862
|
+
}
|
|
4863
|
+
}
|
|
4864
|
+
function getPropertyDataFromBinarySource(scenegraph, schemaProperty, numberOfFeatures, featureTableProperty) {
|
|
4865
|
+
const bufferView = featureTableProperty.bufferView;
|
|
4866
|
+
let data = scenegraph.getTypedArrayForBufferView(bufferView);
|
|
4867
|
+
switch (schemaProperty.type) {
|
|
4868
|
+
case "STRING": {
|
|
4869
|
+
const stringOffsetBufferView = featureTableProperty.stringOffsetBufferView;
|
|
4870
|
+
const offsetsData = scenegraph.getTypedArrayForBufferView(stringOffsetBufferView);
|
|
4871
|
+
data = getStringAttributes(data, offsetsData, numberOfFeatures);
|
|
4872
|
+
break;
|
|
4873
|
+
}
|
|
4874
|
+
default:
|
|
4875
|
+
}
|
|
4876
|
+
return data;
|
|
4877
|
+
}
|
|
4878
|
+
function findFeatureTableByName(featureTables, schemaClassName) {
|
|
4879
|
+
for (const featureTableName in featureTables) {
|
|
4880
|
+
const featureTable = featureTables[featureTableName];
|
|
4881
|
+
if (featureTable.class === schemaClassName) {
|
|
4882
|
+
return featureTable;
|
|
4883
|
+
}
|
|
4884
|
+
}
|
|
4885
|
+
return null;
|
|
4886
|
+
}
|
|
4887
|
+
function getStringAttributes(data, offsetsData, stringsCount) {
|
|
4888
|
+
const stringsArray = [];
|
|
4889
|
+
const textDecoder = new TextDecoder("utf8");
|
|
4890
|
+
let stringOffset = 0;
|
|
4891
|
+
const bytesPerStringSize = 4;
|
|
4892
|
+
for (let index = 0; index < stringsCount; index++) {
|
|
4893
|
+
const stringByteSize = offsetsData[(index + 1) * bytesPerStringSize] - offsetsData[index * bytesPerStringSize];
|
|
4894
|
+
const stringData = data.subarray(stringOffset, stringByteSize + stringOffset);
|
|
4895
|
+
const stringAttribute = textDecoder.decode(stringData);
|
|
4896
|
+
stringsArray.push(stringAttribute);
|
|
4897
|
+
stringOffset += stringByteSize;
|
|
4898
|
+
}
|
|
4899
|
+
return stringsArray;
|
|
4900
|
+
}
|
|
4901
|
+
var EXT_FEATURE_METADATA, name9;
|
|
4902
|
+
var init_EXT_feature_metadata = __esm({
|
|
4903
|
+
"src/lib/extensions/deprecated/EXT_feature_metadata.ts"() {
|
|
4904
|
+
init_gltf_scenegraph();
|
|
4905
|
+
EXT_FEATURE_METADATA = "EXT_feature_metadata";
|
|
4906
|
+
name9 = EXT_FEATURE_METADATA;
|
|
4907
|
+
}
|
|
4908
|
+
});
|
|
4909
|
+
|
|
4827
4910
|
// src/lib/api/gltf-extensions.ts
|
|
4828
4911
|
function preprocessExtensions(gltf, options = {}, context) {
|
|
4829
4912
|
const extensions = EXTENSIONS2.filter((extension) => useExtension(extension.name, options));
|
|
@@ -4853,6 +4936,7 @@
|
|
|
4853
4936
|
init_KHR_lights_punctual();
|
|
4854
4937
|
init_KHR_materials_unlit();
|
|
4855
4938
|
init_KHR_techniques_webgl();
|
|
4939
|
+
init_EXT_feature_metadata();
|
|
4856
4940
|
EXTENSIONS2 = [
|
|
4857
4941
|
EXT_meshopt_compression_exports,
|
|
4858
4942
|
EXT_texture_webp_exports,
|
|
@@ -4861,7 +4945,8 @@
|
|
|
4861
4945
|
KHR_lights_punctual_exports,
|
|
4862
4946
|
KHR_materials_unlit_exports,
|
|
4863
4947
|
KHR_techniques_webgl_exports,
|
|
4864
|
-
KHR_texture_transform_exports
|
|
4948
|
+
KHR_texture_transform_exports,
|
|
4949
|
+
EXT_feature_metadata_exports
|
|
4865
4950
|
];
|
|
4866
4951
|
}
|
|
4867
4952
|
});
|
|
@@ -5079,7 +5164,7 @@
|
|
|
5079
5164
|
metallicFactor: 1,
|
|
5080
5165
|
roughnessFactor: 1
|
|
5081
5166
|
};
|
|
5082
|
-
const textureId = material.values?.tex || material.values?.texture2d_0;
|
|
5167
|
+
const textureId = material.values?.tex || material.values?.texture2d_0 || material.values?.diffuseTex;
|
|
5083
5168
|
const textureIndex = json.textures.findIndex((texture) => texture.id === textureId);
|
|
5084
5169
|
if (textureIndex !== -1) {
|
|
5085
5170
|
material.pbrMetallicRoughness.baseColorTexture = { index: textureIndex };
|
|
@@ -5622,10 +5707,13 @@
|
|
|
5622
5707
|
async function loadImage(gltf, image, index, options, context) {
|
|
5623
5708
|
const { fetch: fetch2, parse: parse4 } = context;
|
|
5624
5709
|
let arrayBuffer;
|
|
5625
|
-
if (image.uri) {
|
|
5710
|
+
if (image.uri && !image.hasOwnProperty("bufferView")) {
|
|
5626
5711
|
const uri = resolveUrl(image.uri, options);
|
|
5627
5712
|
const response = await fetch2(uri);
|
|
5628
5713
|
arrayBuffer = await response.arrayBuffer();
|
|
5714
|
+
image.bufferView = {
|
|
5715
|
+
data: arrayBuffer
|
|
5716
|
+
};
|
|
5629
5717
|
}
|
|
5630
5718
|
if (Number.isFinite(image.bufferView)) {
|
|
5631
5719
|
const array = getTypedArrayForBufferView(gltf.json, gltf.buffers, image.bufferView);
|