@loaders.gl/gltf 4.2.0-alpha.4 → 4.2.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/dist.dev.js +1056 -524
- package/dist/dist.min.js +9 -0
- package/dist/glb-loader.d.ts +2 -2
- package/dist/glb-loader.d.ts.map +1 -1
- package/dist/glb-loader.js +22 -21
- package/dist/glb-writer.d.ts +2 -2
- package/dist/glb-writer.d.ts.map +1 -1
- package/dist/glb-writer.js +27 -24
- package/dist/gltf-loader.d.ts +3 -3
- package/dist/gltf-loader.d.ts.map +1 -1
- package/dist/gltf-loader.js +31 -36
- package/dist/gltf-writer.js +24 -26
- package/dist/index.cjs +138 -330
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +17 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/lib/api/gltf-extensions.d.ts +2 -2
- package/dist/lib/api/gltf-extensions.d.ts.map +1 -1
- package/dist/lib/api/gltf-extensions.js +45 -22
- package/dist/lib/api/gltf-scenegraph.d.ts +2 -2
- package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -1
- package/dist/lib/api/gltf-scenegraph.js +565 -438
- package/dist/lib/api/normalize-gltf-v1.js +249 -181
- package/dist/lib/api/post-process-gltf.d.ts +3 -3
- package/dist/lib/api/post-process-gltf.d.ts.map +1 -1
- package/dist/lib/api/post-process-gltf.js +378 -340
- package/dist/lib/encoders/encode-glb.js +62 -48
- package/dist/lib/encoders/encode-gltf.js +24 -10
- package/dist/lib/extensions/EXT_mesh_features.d.ts +2 -2
- package/dist/lib/extensions/EXT_mesh_features.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_mesh_features.js +55 -33
- package/dist/lib/extensions/EXT_meshopt_compression.d.ts +2 -2
- package/dist/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_meshopt_compression.js +27 -31
- package/dist/lib/extensions/EXT_structural_metadata.d.ts +2 -2
- package/dist/lib/extensions/EXT_structural_metadata.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_structural_metadata.js +434 -230
- package/dist/lib/extensions/EXT_texture_webp.d.ts +2 -2
- package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_texture_webp.js +24 -17
- package/dist/lib/extensions/KHR_binary_gltf.d.ts +1 -1
- package/dist/lib/extensions/KHR_binary_gltf.d.ts.map +1 -1
- package/dist/lib/extensions/KHR_binary_gltf.js +29 -15
- package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts +2 -2
- package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -1
- package/dist/lib/extensions/KHR_draco_mesh_compression.js +110 -87
- package/dist/lib/extensions/KHR_texture_basisu.d.ts +2 -2
- package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -1
- package/dist/lib/extensions/KHR_texture_basisu.js +19 -12
- package/dist/lib/extensions/KHR_texture_transform.d.ts +2 -2
- package/dist/lib/extensions/KHR_texture_transform.d.ts.map +1 -1
- package/dist/lib/extensions/KHR_texture_transform.js +188 -156
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts +2 -2
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -1
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.js +263 -143
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts +1 -1
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts.map +1 -1
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.js +44 -32
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts +1 -1
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts.map +1 -1
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +30 -24
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts +1 -1
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -1
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +65 -52
- package/dist/lib/extensions/utils/3d-tiles-utils.d.ts +2 -2
- package/dist/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -1
- package/dist/lib/extensions/utils/3d-tiles-utils.js +298 -181
- package/dist/lib/gltf-utils/get-typed-array.d.ts +1 -1
- package/dist/lib/gltf-utils/get-typed-array.d.ts.map +1 -1
- package/dist/lib/gltf-utils/get-typed-array.js +54 -42
- package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts +1 -1
- package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts.map +1 -1
- package/dist/lib/gltf-utils/gltf-attribute-utils.js +58 -52
- package/dist/lib/gltf-utils/gltf-constants.js +27 -27
- package/dist/lib/gltf-utils/gltf-utils.d.ts +1 -1
- package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -1
- package/dist/lib/gltf-utils/gltf-utils.js +67 -60
- package/dist/lib/gltf-utils/resolve-url.js +12 -10
- 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 +132 -89
- package/dist/lib/parsers/parse-gltf.d.ts +3 -3
- package/dist/lib/parsers/parse-gltf.d.ts.map +1 -1
- package/dist/lib/parsers/parse-gltf.js +155 -126
- package/dist/lib/types/glb-types.js +0 -1
- package/dist/lib/types/gltf-ext-feature-metadata-schema.d.ts +1 -1
- package/dist/lib/types/gltf-ext-feature-metadata-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-ext-feature-metadata-schema.js +0 -1
- package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts +1 -1
- package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-ext-mesh-features-schema.js +0 -1
- package/dist/lib/types/gltf-ext-structural-metadata-schema.d.ts +1 -1
- package/dist/lib/types/gltf-ext-structural-metadata-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-ext-structural-metadata-schema.js +0 -1
- package/dist/lib/types/gltf-json-schema.js +2 -1
- package/dist/lib/types/gltf-postprocessed-schema.js +2 -1
- package/dist/lib/types/gltf-types.d.ts +3 -3
- package/dist/lib/types/gltf-types.d.ts.map +1 -1
- package/dist/lib/types/gltf-types.js +1 -1
- package/dist/lib/utils/assert.js +6 -4
- package/dist/lib/utils/version.js +4 -2
- package/dist/meshopt/meshopt-decoder.js +86 -67
- package/dist/webp/webp.js +28 -19
- package/package.json +13 -8
- package/src/lib/extensions/KHR_texture_transform.ts +18 -24
- 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_mesh_features.js.map +0 -1
- package/dist/lib/extensions/EXT_meshopt_compression.js.map +0 -1
- package/dist/lib/extensions/EXT_structural_metadata.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/KHR_texture_transform.js.map +0 -1
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.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/extensions/utils/3d-tiles-utils.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-ext-feature-metadata-schema.js.map +0 -1
- package/dist/lib/types/gltf-ext-mesh-features-schema.js.map +0 -1
- package/dist/lib/types/gltf-ext-structural-metadata-schema.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/meshopt/meshopt-encoder.ts.disabled +0 -409
- package/dist/webp/webp.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -17,9 +17,9 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
|
|
20
|
-
//
|
|
21
|
-
var
|
|
22
|
-
__export(
|
|
20
|
+
// dist/index.js
|
|
21
|
+
var dist_exports = {};
|
|
22
|
+
__export(dist_exports, {
|
|
23
23
|
EXT_FEATURE_METADATA: () => name3,
|
|
24
24
|
EXT_MESH_FEATURES: () => name,
|
|
25
25
|
EXT_STRUCTURAL_METADATA: () => name2,
|
|
@@ -31,27 +31,27 @@ __export(src_exports, {
|
|
|
31
31
|
_getMemoryUsageGLTF: () => getMemoryUsageGLTF,
|
|
32
32
|
postProcessGLTF: () => postProcessGLTF
|
|
33
33
|
});
|
|
34
|
-
module.exports = __toCommonJS(
|
|
34
|
+
module.exports = __toCommonJS(dist_exports);
|
|
35
35
|
|
|
36
|
-
//
|
|
36
|
+
// dist/lib/extensions/EXT_mesh_features.js
|
|
37
37
|
var EXT_mesh_features_exports = {};
|
|
38
38
|
__export(EXT_mesh_features_exports, {
|
|
39
39
|
decode: () => decode,
|
|
40
40
|
name: () => name
|
|
41
41
|
});
|
|
42
42
|
|
|
43
|
-
//
|
|
43
|
+
// dist/lib/api/gltf-scenegraph.js
|
|
44
44
|
var import_images = require("@loaders.gl/images");
|
|
45
45
|
var import_loader_utils = require("@loaders.gl/loader-utils");
|
|
46
46
|
|
|
47
|
-
//
|
|
47
|
+
// dist/lib/utils/assert.js
|
|
48
48
|
function assert(condition, message) {
|
|
49
49
|
if (!condition) {
|
|
50
50
|
throw new Error(message || "assert failed: gltf");
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
//
|
|
54
|
+
// dist/lib/gltf-utils/gltf-constants.js
|
|
55
55
|
var COMPONENTS = {
|
|
56
56
|
SCALAR: 1,
|
|
57
57
|
VEC2: 2,
|
|
@@ -76,7 +76,7 @@ var BYTES = {
|
|
|
76
76
|
// FLOAT
|
|
77
77
|
};
|
|
78
78
|
|
|
79
|
-
//
|
|
79
|
+
// dist/lib/gltf-utils/gltf-utils.js
|
|
80
80
|
var MIPMAP_FACTOR = 1.33;
|
|
81
81
|
var TYPES = ["SCALAR", "VEC2", "VEC3", "VEC4"];
|
|
82
82
|
var ARRAY_CONSTRUCTOR_TO_WEBGL_CONSTANT = [
|
|
@@ -88,9 +88,7 @@ var ARRAY_CONSTRUCTOR_TO_WEBGL_CONSTANT = [
|
|
|
88
88
|
[Float32Array, 5126],
|
|
89
89
|
[Float64Array, 5130]
|
|
90
90
|
];
|
|
91
|
-
var ARRAY_TO_COMPONENT_TYPE = new Map(
|
|
92
|
-
ARRAY_CONSTRUCTOR_TO_WEBGL_CONSTANT
|
|
93
|
-
);
|
|
91
|
+
var ARRAY_TO_COMPONENT_TYPE = new Map(ARRAY_CONSTRUCTOR_TO_WEBGL_CONSTANT);
|
|
94
92
|
var ATTRIBUTE_TYPE_TO_COMPONENTS = {
|
|
95
93
|
SCALAR: 1,
|
|
96
94
|
VEC2: 2,
|
|
@@ -152,7 +150,7 @@ function getMemoryUsageGLTF(gltf) {
|
|
|
152
150
|
return bufferMemory + Math.ceil(4 * pixelCount * MIPMAP_FACTOR);
|
|
153
151
|
}
|
|
154
152
|
|
|
155
|
-
//
|
|
153
|
+
// dist/lib/gltf-utils/get-typed-array.js
|
|
156
154
|
function getTypedArrayForBufferView(json, buffers, bufferViewIndex) {
|
|
157
155
|
const bufferView = json.bufferViews[bufferViewIndex];
|
|
158
156
|
assert(bufferView);
|
|
@@ -183,17 +181,13 @@ function getTypedArrayForAccessor(json, buffers, accessor) {
|
|
|
183
181
|
}
|
|
184
182
|
const result = new ArrayType(length);
|
|
185
183
|
for (let i = 0; i < gltfAccessor.count; i++) {
|
|
186
|
-
const values = new ArrayType(
|
|
187
|
-
arrayBuffer,
|
|
188
|
-
byteOffset + i * elementAddressScale,
|
|
189
|
-
numberOfComponentsInElement
|
|
190
|
-
);
|
|
184
|
+
const values = new ArrayType(arrayBuffer, byteOffset + i * elementAddressScale, numberOfComponentsInElement);
|
|
191
185
|
result.set(values, i * numberOfComponentsInElement);
|
|
192
186
|
}
|
|
193
187
|
return result;
|
|
194
188
|
}
|
|
195
189
|
|
|
196
|
-
//
|
|
190
|
+
// dist/lib/api/gltf-scenegraph.js
|
|
197
191
|
function makeDefaultGLTFJson() {
|
|
198
192
|
return {
|
|
199
193
|
asset: {
|
|
@@ -207,6 +201,10 @@ function makeDefaultGLTFJson() {
|
|
|
207
201
|
};
|
|
208
202
|
}
|
|
209
203
|
var GLTFScenegraph = class {
|
|
204
|
+
// internal
|
|
205
|
+
gltf;
|
|
206
|
+
sourceBuffers;
|
|
207
|
+
byteLength;
|
|
210
208
|
// TODO - why is this not GLTFWithBuffers - what happens to images?
|
|
211
209
|
constructor(gltf) {
|
|
212
210
|
this.gltf = {
|
|
@@ -716,7 +714,7 @@ var GLTFScenegraph = class {
|
|
|
716
714
|
}
|
|
717
715
|
};
|
|
718
716
|
|
|
719
|
-
//
|
|
717
|
+
// dist/lib/extensions/utils/3d-tiles-utils.js
|
|
720
718
|
var import_images2 = require("@loaders.gl/images");
|
|
721
719
|
function emod(n) {
|
|
722
720
|
return (n % 1 + 1) % 1;
|
|
@@ -807,13 +805,7 @@ function getPrimitiveTextureData(scenegraph, textureInfo, primitive) {
|
|
|
807
805
|
if (parsedImage && typeof parsedImage.width !== "undefined") {
|
|
808
806
|
const textureData = [];
|
|
809
807
|
for (let index = 0; index < textureCoordinates.length; index += 2) {
|
|
810
|
-
const value = getImageValueByCoordinates(
|
|
811
|
-
parsedImage,
|
|
812
|
-
mimeType,
|
|
813
|
-
textureCoordinates,
|
|
814
|
-
index,
|
|
815
|
-
textureInfo.channels
|
|
816
|
-
);
|
|
808
|
+
const value = getImageValueByCoordinates(parsedImage, mimeType, textureCoordinates, index, textureInfo.channels);
|
|
817
809
|
textureData.push(value);
|
|
818
810
|
}
|
|
819
811
|
return textureData;
|
|
@@ -928,7 +920,7 @@ function getPropertyDataString(numberOfElements, valuesDataBytes, arrayOffsets,
|
|
|
928
920
|
return [];
|
|
929
921
|
}
|
|
930
922
|
|
|
931
|
-
//
|
|
923
|
+
// dist/lib/extensions/EXT_mesh_features.js
|
|
932
924
|
var EXT_MESH_FEATURES_NAME = "EXT_mesh_features";
|
|
933
925
|
var name = EXT_MESH_FEATURES_NAME;
|
|
934
926
|
async function decode(gltfData, options) {
|
|
@@ -971,7 +963,7 @@ function processMeshPrimitiveFeatures(scenegraph, primitive, options) {
|
|
|
971
963
|
}
|
|
972
964
|
}
|
|
973
965
|
|
|
974
|
-
//
|
|
966
|
+
// dist/lib/extensions/EXT_structural_metadata.js
|
|
975
967
|
var EXT_structural_metadata_exports = {};
|
|
976
968
|
__export(EXT_structural_metadata_exports, {
|
|
977
969
|
decode: () => decode2,
|
|
@@ -988,9 +980,7 @@ function decodeExtStructuralMetadata(scenegraph, options) {
|
|
|
988
980
|
if (!((_a = options.gltf) == null ? void 0 : _a.loadBuffers)) {
|
|
989
981
|
return;
|
|
990
982
|
}
|
|
991
|
-
const extension = scenegraph.getExtension(
|
|
992
|
-
EXT_STRUCTURAL_METADATA_NAME
|
|
993
|
-
);
|
|
983
|
+
const extension = scenegraph.getExtension(EXT_STRUCTURAL_METADATA_NAME);
|
|
994
984
|
if (!extension) {
|
|
995
985
|
return;
|
|
996
986
|
}
|
|
@@ -1068,21 +1058,11 @@ function processPrimitivePropertyTexture(scenegraph, propertyTexture, primitive,
|
|
|
1068
1058
|
textureInfoTopLevel.data = [];
|
|
1069
1059
|
}
|
|
1070
1060
|
const featureTextureTable = textureInfoTopLevel.data;
|
|
1071
|
-
const propertyData = getPrimitiveTextureData(
|
|
1072
|
-
scenegraph,
|
|
1073
|
-
textureInfoTopLevel,
|
|
1074
|
-
primitive
|
|
1075
|
-
);
|
|
1061
|
+
const propertyData = getPrimitiveTextureData(scenegraph, textureInfoTopLevel, primitive);
|
|
1076
1062
|
if (propertyData === null) {
|
|
1077
1063
|
continue;
|
|
1078
1064
|
}
|
|
1079
|
-
primitivePropertyDataToAttributes(
|
|
1080
|
-
scenegraph,
|
|
1081
|
-
attributeName,
|
|
1082
|
-
propertyData,
|
|
1083
|
-
featureTextureTable,
|
|
1084
|
-
primitive
|
|
1085
|
-
);
|
|
1065
|
+
primitivePropertyDataToAttributes(scenegraph, attributeName, propertyData, featureTextureTable, primitive);
|
|
1086
1066
|
textureInfoTopLevel.data = featureTextureTable;
|
|
1087
1067
|
extension.dataAttributeNames.push(attributeName);
|
|
1088
1068
|
}
|
|
@@ -1091,22 +1071,14 @@ function processPropertyTable(scenegraph, schema, propertyTable) {
|
|
|
1091
1071
|
var _a, _b;
|
|
1092
1072
|
const schemaClass = (_a = schema.classes) == null ? void 0 : _a[propertyTable.class];
|
|
1093
1073
|
if (!schemaClass) {
|
|
1094
|
-
throw new Error(
|
|
1095
|
-
`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${propertyTable.class}`
|
|
1096
|
-
);
|
|
1074
|
+
throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${propertyTable.class}`);
|
|
1097
1075
|
}
|
|
1098
1076
|
const numberOfElements = propertyTable.count;
|
|
1099
1077
|
for (const propertyName in schemaClass.properties) {
|
|
1100
1078
|
const classProperty = schemaClass.properties[propertyName];
|
|
1101
1079
|
const propertyTableProperty = (_b = propertyTable.properties) == null ? void 0 : _b[propertyName];
|
|
1102
1080
|
if (propertyTableProperty) {
|
|
1103
|
-
const data = getPropertyDataFromBinarySource(
|
|
1104
|
-
scenegraph,
|
|
1105
|
-
schema,
|
|
1106
|
-
classProperty,
|
|
1107
|
-
numberOfElements,
|
|
1108
|
-
propertyTableProperty
|
|
1109
|
-
);
|
|
1081
|
+
const data = getPropertyDataFromBinarySource(scenegraph, schema, classProperty, numberOfElements, propertyTableProperty);
|
|
1110
1082
|
propertyTableProperty.data = data;
|
|
1111
1083
|
}
|
|
1112
1084
|
}
|
|
@@ -1115,17 +1087,8 @@ function getPropertyDataFromBinarySource(scenegraph, schema, classProperty, numb
|
|
|
1115
1087
|
let data = [];
|
|
1116
1088
|
const valuesBufferView = propertyTableProperty.values;
|
|
1117
1089
|
const valuesDataBytes = scenegraph.getTypedArrayForBufferView(valuesBufferView);
|
|
1118
|
-
const arrayOffsets = getArrayOffsetsForProperty(
|
|
1119
|
-
|
|
1120
|
-
classProperty,
|
|
1121
|
-
propertyTableProperty,
|
|
1122
|
-
numberOfElements
|
|
1123
|
-
);
|
|
1124
|
-
const stringOffsets = getStringOffsetsForProperty(
|
|
1125
|
-
scenegraph,
|
|
1126
|
-
propertyTableProperty,
|
|
1127
|
-
numberOfElements
|
|
1128
|
-
);
|
|
1090
|
+
const arrayOffsets = getArrayOffsetsForProperty(scenegraph, classProperty, propertyTableProperty, numberOfElements);
|
|
1091
|
+
const stringOffsets = getStringOffsetsForProperty(scenegraph, propertyTableProperty, numberOfElements);
|
|
1129
1092
|
switch (classProperty.type) {
|
|
1130
1093
|
case "SCALAR":
|
|
1131
1094
|
case "VEC2":
|
|
@@ -1145,13 +1108,7 @@ function getPropertyDataFromBinarySource(scenegraph, schema, classProperty, numb
|
|
|
1145
1108
|
break;
|
|
1146
1109
|
}
|
|
1147
1110
|
case "ENUM": {
|
|
1148
|
-
data = getPropertyDataENUM(
|
|
1149
|
-
schema,
|
|
1150
|
-
classProperty,
|
|
1151
|
-
numberOfElements,
|
|
1152
|
-
valuesDataBytes,
|
|
1153
|
-
arrayOffsets
|
|
1154
|
-
);
|
|
1111
|
+
data = getPropertyDataENUM(schema, classProperty, numberOfElements, valuesDataBytes, arrayOffsets);
|
|
1155
1112
|
break;
|
|
1156
1113
|
}
|
|
1157
1114
|
default:
|
|
@@ -1164,23 +1121,13 @@ function getArrayOffsetsForProperty(scenegraph, classProperty, propertyTableProp
|
|
|
1164
1121
|
// If `count` is NOT defined, it's a VARIABLE-length array
|
|
1165
1122
|
typeof classProperty.count === "undefined" && // `arrayOffsets` is an index of the buffer view containing offsets for variable-length arrays.
|
|
1166
1123
|
typeof propertyTableProperty.arrayOffsets !== "undefined") {
|
|
1167
|
-
return getOffsetsForProperty(
|
|
1168
|
-
scenegraph,
|
|
1169
|
-
propertyTableProperty.arrayOffsets,
|
|
1170
|
-
propertyTableProperty.arrayOffsetType || "UINT32",
|
|
1171
|
-
numberOfElements
|
|
1172
|
-
);
|
|
1124
|
+
return getOffsetsForProperty(scenegraph, propertyTableProperty.arrayOffsets, propertyTableProperty.arrayOffsetType || "UINT32", numberOfElements);
|
|
1173
1125
|
}
|
|
1174
1126
|
return null;
|
|
1175
1127
|
}
|
|
1176
1128
|
function getStringOffsetsForProperty(scenegraph, propertyTableProperty, numberOfElements) {
|
|
1177
1129
|
if (typeof propertyTableProperty.stringOffsets !== "undefined") {
|
|
1178
|
-
return getOffsetsForProperty(
|
|
1179
|
-
scenegraph,
|
|
1180
|
-
propertyTableProperty.stringOffsets,
|
|
1181
|
-
propertyTableProperty.stringOffsetType || "UINT32",
|
|
1182
|
-
numberOfElements
|
|
1183
|
-
);
|
|
1130
|
+
return getOffsetsForProperty(scenegraph, propertyTableProperty.stringOffsets, propertyTableProperty.stringOffsetType || "UINT32", numberOfElements);
|
|
1184
1131
|
}
|
|
1185
1132
|
return null;
|
|
1186
1133
|
}
|
|
@@ -1203,13 +1150,7 @@ function getPropertyDataNumeric(classProperty, numberOfElements, valuesDataBytes
|
|
|
1203
1150
|
}
|
|
1204
1151
|
if (isArray) {
|
|
1205
1152
|
if (arrayOffsets) {
|
|
1206
|
-
return parseVariableLengthArrayNumeric(
|
|
1207
|
-
valuesData,
|
|
1208
|
-
numberOfElements,
|
|
1209
|
-
arrayOffsets,
|
|
1210
|
-
valuesDataBytes.length,
|
|
1211
|
-
elementSize
|
|
1212
|
-
);
|
|
1153
|
+
return parseVariableLengthArrayNumeric(valuesData, numberOfElements, arrayOffsets, valuesDataBytes.length, elementSize);
|
|
1213
1154
|
}
|
|
1214
1155
|
if (arrayCount) {
|
|
1215
1156
|
return parseFixedLengthArrayNumeric(valuesData, numberOfElements, arrayCount);
|
|
@@ -1222,25 +1163,16 @@ function getPropertyDataENUM(schema, classProperty, numberOfElements, valuesData
|
|
|
1222
1163
|
var _a;
|
|
1223
1164
|
const enumType = classProperty.enumType;
|
|
1224
1165
|
if (!enumType) {
|
|
1225
|
-
throw new Error(
|
|
1226
|
-
"Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM"
|
|
1227
|
-
);
|
|
1166
|
+
throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");
|
|
1228
1167
|
}
|
|
1229
1168
|
const enumEntry = (_a = schema.enums) == null ? void 0 : _a[enumType];
|
|
1230
1169
|
if (!enumEntry) {
|
|
1231
|
-
throw new Error(
|
|
1232
|
-
`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${enumType}`
|
|
1233
|
-
);
|
|
1170
|
+
throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${enumType}`);
|
|
1234
1171
|
}
|
|
1235
1172
|
const enumValueType = enumEntry.valueType || "UINT16";
|
|
1236
1173
|
const elementSize = getArrayElementByteSize(classProperty.type, enumValueType);
|
|
1237
1174
|
const elementCount = valuesDataBytes.byteLength / elementSize;
|
|
1238
|
-
let valuesData = convertRawBufferToMetadataArray(
|
|
1239
|
-
valuesDataBytes,
|
|
1240
|
-
classProperty.type,
|
|
1241
|
-
enumValueType,
|
|
1242
|
-
elementCount
|
|
1243
|
-
);
|
|
1175
|
+
let valuesData = convertRawBufferToMetadataArray(valuesDataBytes, classProperty.type, enumValueType, elementCount);
|
|
1244
1176
|
if (!valuesData) {
|
|
1245
1177
|
valuesData = valuesDataBytes;
|
|
1246
1178
|
}
|
|
@@ -1264,14 +1196,7 @@ function getPropertyDataENUM(schema, classProperty, numberOfElements, valuesData
|
|
|
1264
1196
|
return getEnumsArray(valuesData, 0, numberOfElements, enumEntry);
|
|
1265
1197
|
}
|
|
1266
1198
|
function parseVariableLengthArrayENUM(params) {
|
|
1267
|
-
const {
|
|
1268
|
-
valuesData,
|
|
1269
|
-
numberOfElements,
|
|
1270
|
-
arrayOffsets,
|
|
1271
|
-
valuesDataBytesLength,
|
|
1272
|
-
elementSize,
|
|
1273
|
-
enumEntry
|
|
1274
|
-
} = params;
|
|
1199
|
+
const { valuesData, numberOfElements, arrayOffsets, valuesDataBytesLength, elementSize, enumEntry } = params;
|
|
1275
1200
|
const attributeValueArray = [];
|
|
1276
1201
|
for (let index = 0; index < numberOfElements; index++) {
|
|
1277
1202
|
const arrayOffset = arrayOffsets[index];
|
|
@@ -1321,7 +1246,7 @@ function getEnumByValue(enumEntry, value) {
|
|
|
1321
1246
|
return null;
|
|
1322
1247
|
}
|
|
1323
1248
|
|
|
1324
|
-
//
|
|
1249
|
+
// dist/lib/extensions/deprecated/EXT_feature_metadata.js
|
|
1325
1250
|
var EXT_feature_metadata_exports = {};
|
|
1326
1251
|
__export(EXT_feature_metadata_exports, {
|
|
1327
1252
|
decode: () => decode3,
|
|
@@ -1405,22 +1330,14 @@ function processPropertyTable2(scenegraph, schema, propertyTable) {
|
|
|
1405
1330
|
}
|
|
1406
1331
|
const schemaClass = (_a = schema.classes) == null ? void 0 : _a[propertyTable.class];
|
|
1407
1332
|
if (!schemaClass) {
|
|
1408
|
-
throw new Error(
|
|
1409
|
-
`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${propertyTable.class}`
|
|
1410
|
-
);
|
|
1333
|
+
throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${propertyTable.class}`);
|
|
1411
1334
|
}
|
|
1412
1335
|
const numberOfElements = propertyTable.count;
|
|
1413
1336
|
for (const propertyName in schemaClass.properties) {
|
|
1414
1337
|
const classProperty = schemaClass.properties[propertyName];
|
|
1415
1338
|
const propertyTableProperty = (_b = propertyTable.properties) == null ? void 0 : _b[propertyName];
|
|
1416
1339
|
if (propertyTableProperty) {
|
|
1417
|
-
const data = getPropertyDataFromBinarySource2(
|
|
1418
|
-
scenegraph,
|
|
1419
|
-
schema,
|
|
1420
|
-
classProperty,
|
|
1421
|
-
numberOfElements,
|
|
1422
|
-
propertyTableProperty
|
|
1423
|
-
);
|
|
1340
|
+
const data = getPropertyDataFromBinarySource2(scenegraph, schema, classProperty, numberOfElements, propertyTableProperty);
|
|
1424
1341
|
propertyTableProperty.data = data;
|
|
1425
1342
|
}
|
|
1426
1343
|
}
|
|
@@ -1440,18 +1357,8 @@ function getPropertyDataFromBinarySource2(scenegraph, schema, classProperty, num
|
|
|
1440
1357
|
let data = [];
|
|
1441
1358
|
const bufferView = featureTableProperty.bufferView;
|
|
1442
1359
|
const dataArray = scenegraph.getTypedArrayForBufferView(bufferView);
|
|
1443
|
-
const arrayOffsets = getArrayOffsetsForProperty2(
|
|
1444
|
-
|
|
1445
|
-
classProperty,
|
|
1446
|
-
featureTableProperty,
|
|
1447
|
-
numberOfFeatures
|
|
1448
|
-
);
|
|
1449
|
-
const stringOffsets = getStringOffsetsForProperty2(
|
|
1450
|
-
scenegraph,
|
|
1451
|
-
classProperty,
|
|
1452
|
-
featureTableProperty,
|
|
1453
|
-
numberOfFeatures
|
|
1454
|
-
);
|
|
1360
|
+
const arrayOffsets = getArrayOffsetsForProperty2(scenegraph, classProperty, featureTableProperty, numberOfFeatures);
|
|
1361
|
+
const stringOffsets = getStringOffsetsForProperty2(scenegraph, classProperty, featureTableProperty, numberOfFeatures);
|
|
1455
1362
|
if (classProperty.type === "STRING" || classProperty.componentType === "STRING") {
|
|
1456
1363
|
data = getPropertyDataString(numberOfFeatures, dataArray, arrayOffsets, stringOffsets);
|
|
1457
1364
|
} else if (isNumericProperty(classProperty)) {
|
|
@@ -1507,21 +1414,10 @@ function getPropertyDataNumeric2(classProperty, numberOfElements, valuesDataByte
|
|
|
1507
1414
|
const componentType = classProperty.componentType || classProperty.type;
|
|
1508
1415
|
const elementSize = getArrayElementByteSize(attributeType, componentType);
|
|
1509
1416
|
const elementCount = valuesDataBytes.byteLength / elementSize;
|
|
1510
|
-
const valuesData = convertRawBufferToMetadataArray(
|
|
1511
|
-
valuesDataBytes,
|
|
1512
|
-
attributeType,
|
|
1513
|
-
componentType,
|
|
1514
|
-
elementCount
|
|
1515
|
-
);
|
|
1417
|
+
const valuesData = convertRawBufferToMetadataArray(valuesDataBytes, attributeType, componentType, elementCount);
|
|
1516
1418
|
if (isArray) {
|
|
1517
1419
|
if (arrayOffsets) {
|
|
1518
|
-
return parseVariableLengthArrayNumeric(
|
|
1519
|
-
valuesData,
|
|
1520
|
-
numberOfElements,
|
|
1521
|
-
arrayOffsets,
|
|
1522
|
-
valuesDataBytes.length,
|
|
1523
|
-
elementSize
|
|
1524
|
-
);
|
|
1420
|
+
return parseVariableLengthArrayNumeric(valuesData, numberOfElements, arrayOffsets, valuesDataBytes.length, elementSize);
|
|
1525
1421
|
}
|
|
1526
1422
|
if (arrayCount) {
|
|
1527
1423
|
return parseFixedLengthArrayNumeric(valuesData, numberOfElements, arrayCount);
|
|
@@ -1538,13 +1434,7 @@ function getPropertyDataFromTexture(scenegraph, featureTextureProperty, attribut
|
|
|
1538
1434
|
const featureTextureTable = [];
|
|
1539
1435
|
for (const mesh of json.meshes) {
|
|
1540
1436
|
for (const primitive of mesh.primitives) {
|
|
1541
|
-
processPrimitiveTextures(
|
|
1542
|
-
scenegraph,
|
|
1543
|
-
attributeName,
|
|
1544
|
-
featureTextureProperty,
|
|
1545
|
-
featureTextureTable,
|
|
1546
|
-
primitive
|
|
1547
|
-
);
|
|
1437
|
+
processPrimitiveTextures(scenegraph, attributeName, featureTextureProperty, featureTextureTable, primitive);
|
|
1548
1438
|
}
|
|
1549
1439
|
}
|
|
1550
1440
|
return featureTextureTable;
|
|
@@ -1554,32 +1444,22 @@ function processPrimitiveTextures(scenegraph, attributeName, featureTexturePrope
|
|
|
1554
1444
|
channels: featureTextureProperty.channels,
|
|
1555
1445
|
...featureTextureProperty.texture
|
|
1556
1446
|
};
|
|
1557
|
-
const propertyData = getPrimitiveTextureData(
|
|
1558
|
-
scenegraph,
|
|
1559
|
-
textureInfoTopLevel,
|
|
1560
|
-
primitive
|
|
1561
|
-
);
|
|
1447
|
+
const propertyData = getPrimitiveTextureData(scenegraph, textureInfoTopLevel, primitive);
|
|
1562
1448
|
if (!propertyData) {
|
|
1563
1449
|
return;
|
|
1564
1450
|
}
|
|
1565
|
-
primitivePropertyDataToAttributes(
|
|
1566
|
-
scenegraph,
|
|
1567
|
-
attributeName,
|
|
1568
|
-
propertyData,
|
|
1569
|
-
featureTextureTable,
|
|
1570
|
-
primitive
|
|
1571
|
-
);
|
|
1451
|
+
primitivePropertyDataToAttributes(scenegraph, attributeName, propertyData, featureTextureTable, primitive);
|
|
1572
1452
|
}
|
|
1573
1453
|
|
|
1574
|
-
//
|
|
1575
|
-
var VERSION =
|
|
1454
|
+
// dist/lib/utils/version.js
|
|
1455
|
+
var VERSION = true ? "4.2.0-alpha.5" : "latest";
|
|
1576
1456
|
|
|
1577
|
-
//
|
|
1457
|
+
// dist/lib/parsers/parse-gltf.js
|
|
1578
1458
|
var import_loader_utils4 = require("@loaders.gl/loader-utils");
|
|
1579
1459
|
var import_images4 = require("@loaders.gl/images");
|
|
1580
1460
|
var import_textures = require("@loaders.gl/textures");
|
|
1581
1461
|
|
|
1582
|
-
//
|
|
1462
|
+
// dist/lib/parsers/parse-glb.js
|
|
1583
1463
|
var import_loader_utils2 = require("@loaders.gl/loader-utils");
|
|
1584
1464
|
var LITTLE_ENDIAN = true;
|
|
1585
1465
|
var MAGIC_glTF = 1735152710;
|
|
@@ -1690,7 +1570,7 @@ function parseBINChunk(glb, dataView, byteOffset, chunkLength) {
|
|
|
1690
1570
|
return (0, import_loader_utils2.padToNBytes)(chunkLength, 4);
|
|
1691
1571
|
}
|
|
1692
1572
|
|
|
1693
|
-
//
|
|
1573
|
+
// dist/lib/gltf-utils/resolve-url.js
|
|
1694
1574
|
function resolveUrl(url, options) {
|
|
1695
1575
|
const absolute = url.startsWith("data:") || url.startsWith("http:") || url.startsWith("https:");
|
|
1696
1576
|
if (absolute) {
|
|
@@ -1703,14 +1583,14 @@ function resolveUrl(url, options) {
|
|
|
1703
1583
|
return baseUrl.substr(0, baseUrl.lastIndexOf("/") + 1) + url;
|
|
1704
1584
|
}
|
|
1705
1585
|
|
|
1706
|
-
//
|
|
1586
|
+
// dist/lib/extensions/EXT_meshopt_compression.js
|
|
1707
1587
|
var EXT_meshopt_compression_exports = {};
|
|
1708
1588
|
__export(EXT_meshopt_compression_exports, {
|
|
1709
1589
|
decode: () => decode5,
|
|
1710
1590
|
name: () => name4
|
|
1711
1591
|
});
|
|
1712
1592
|
|
|
1713
|
-
//
|
|
1593
|
+
// dist/meshopt/meshopt-decoder.js
|
|
1714
1594
|
var wasm_base = "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";
|
|
1715
1595
|
var wasm_simd = "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";
|
|
1716
1596
|
var detector = new Uint8Array([
|
|
@@ -1852,15 +1732,7 @@ var DECODERS = {
|
|
|
1852
1732
|
};
|
|
1853
1733
|
async function meshoptDecodeGltfBuffer(target, count, size, source, mode, filter = "NONE") {
|
|
1854
1734
|
const instance = await loadWasmInstance();
|
|
1855
|
-
decode4(
|
|
1856
|
-
instance,
|
|
1857
|
-
instance.exports[DECODERS[mode]],
|
|
1858
|
-
target,
|
|
1859
|
-
count,
|
|
1860
|
-
size,
|
|
1861
|
-
source,
|
|
1862
|
-
instance.exports[FILTERS[filter || "NONE"]]
|
|
1863
|
-
);
|
|
1735
|
+
decode4(instance, instance.exports[DECODERS[mode]], target, count, size, source, instance.exports[FILTERS[filter || "NONE"]]);
|
|
1864
1736
|
}
|
|
1865
1737
|
var wasmPromise;
|
|
1866
1738
|
async function loadWasmInstance() {
|
|
@@ -1909,7 +1781,7 @@ function decode4(instance, fun, target, count, size, source, filter) {
|
|
|
1909
1781
|
}
|
|
1910
1782
|
}
|
|
1911
1783
|
|
|
1912
|
-
//
|
|
1784
|
+
// dist/lib/extensions/EXT_meshopt_compression.js
|
|
1913
1785
|
var EXT_MESHOPT_COMPRESSION = "EXT_meshopt_compression";
|
|
1914
1786
|
var name4 = EXT_MESHOPT_COMPRESSION;
|
|
1915
1787
|
async function decode5(gltfData, options) {
|
|
@@ -1926,33 +1798,18 @@ async function decode5(gltfData, options) {
|
|
|
1926
1798
|
scenegraph.removeExtension(EXT_MESHOPT_COMPRESSION);
|
|
1927
1799
|
}
|
|
1928
1800
|
async function decodeMeshoptBufferView(scenegraph, bufferView) {
|
|
1929
|
-
const meshoptExtension = scenegraph.getObjectExtension(
|
|
1930
|
-
bufferView,
|
|
1931
|
-
EXT_MESHOPT_COMPRESSION
|
|
1932
|
-
);
|
|
1801
|
+
const meshoptExtension = scenegraph.getObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);
|
|
1933
1802
|
if (meshoptExtension) {
|
|
1934
|
-
const {
|
|
1935
|
-
byteOffset = 0,
|
|
1936
|
-
byteLength = 0,
|
|
1937
|
-
byteStride,
|
|
1938
|
-
count,
|
|
1939
|
-
mode,
|
|
1940
|
-
filter = "NONE",
|
|
1941
|
-
buffer: bufferIndex
|
|
1942
|
-
} = meshoptExtension;
|
|
1803
|
+
const { byteOffset = 0, byteLength = 0, byteStride, count, mode, filter = "NONE", buffer: bufferIndex } = meshoptExtension;
|
|
1943
1804
|
const buffer = scenegraph.gltf.buffers[bufferIndex];
|
|
1944
1805
|
const source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);
|
|
1945
|
-
const result = new Uint8Array(
|
|
1946
|
-
scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer,
|
|
1947
|
-
bufferView.byteOffset,
|
|
1948
|
-
bufferView.byteLength
|
|
1949
|
-
);
|
|
1806
|
+
const result = new Uint8Array(scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer, bufferView.byteOffset, bufferView.byteLength);
|
|
1950
1807
|
await meshoptDecodeGltfBuffer(result, count, byteStride, source, mode, filter);
|
|
1951
1808
|
scenegraph.removeObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);
|
|
1952
1809
|
}
|
|
1953
1810
|
}
|
|
1954
1811
|
|
|
1955
|
-
//
|
|
1812
|
+
// dist/lib/extensions/EXT_texture_webp.js
|
|
1956
1813
|
var EXT_texture_webp_exports = {};
|
|
1957
1814
|
__export(EXT_texture_webp_exports, {
|
|
1958
1815
|
name: () => name5,
|
|
@@ -1971,10 +1828,7 @@ function preprocess(gltfData, options) {
|
|
|
1971
1828
|
}
|
|
1972
1829
|
const { json } = scenegraph;
|
|
1973
1830
|
for (const texture of json.textures || []) {
|
|
1974
|
-
const extension = scenegraph.getObjectExtension(
|
|
1975
|
-
texture,
|
|
1976
|
-
EXT_TEXTURE_WEBP
|
|
1977
|
-
);
|
|
1831
|
+
const extension = scenegraph.getObjectExtension(texture, EXT_TEXTURE_WEBP);
|
|
1978
1832
|
if (extension) {
|
|
1979
1833
|
texture.source = extension.source;
|
|
1980
1834
|
}
|
|
@@ -1983,7 +1837,7 @@ function preprocess(gltfData, options) {
|
|
|
1983
1837
|
scenegraph.removeExtension(EXT_TEXTURE_WEBP);
|
|
1984
1838
|
}
|
|
1985
1839
|
|
|
1986
|
-
//
|
|
1840
|
+
// dist/lib/extensions/KHR_texture_basisu.js
|
|
1987
1841
|
var KHR_texture_basisu_exports = {};
|
|
1988
1842
|
__export(KHR_texture_basisu_exports, {
|
|
1989
1843
|
name: () => name6,
|
|
@@ -1995,10 +1849,7 @@ function preprocess2(gltfData, options) {
|
|
|
1995
1849
|
const scene = new GLTFScenegraph(gltfData);
|
|
1996
1850
|
const { json } = scene;
|
|
1997
1851
|
for (const texture of json.textures || []) {
|
|
1998
|
-
const extension = scene.getObjectExtension(
|
|
1999
|
-
texture,
|
|
2000
|
-
KHR_TEXTURE_BASISU
|
|
2001
|
-
);
|
|
1852
|
+
const extension = scene.getObjectExtension(texture, KHR_TEXTURE_BASISU);
|
|
2002
1853
|
if (extension) {
|
|
2003
1854
|
texture.source = extension.source;
|
|
2004
1855
|
scene.removeObjectExtension(texture, KHR_TEXTURE_BASISU);
|
|
@@ -2007,7 +1858,7 @@ function preprocess2(gltfData, options) {
|
|
|
2007
1858
|
scene.removeExtension(KHR_TEXTURE_BASISU);
|
|
2008
1859
|
}
|
|
2009
1860
|
|
|
2010
|
-
//
|
|
1861
|
+
// dist/lib/extensions/KHR_draco_mesh_compression.js
|
|
2011
1862
|
var KHR_draco_mesh_compression_exports = {};
|
|
2012
1863
|
__export(KHR_draco_mesh_compression_exports, {
|
|
2013
1864
|
decode: () => decode6,
|
|
@@ -2018,7 +1869,7 @@ __export(KHR_draco_mesh_compression_exports, {
|
|
|
2018
1869
|
var import_loader_utils3 = require("@loaders.gl/loader-utils");
|
|
2019
1870
|
var import_draco = require("@loaders.gl/draco");
|
|
2020
1871
|
|
|
2021
|
-
//
|
|
1872
|
+
// dist/lib/gltf-utils/gltf-attribute-utils.js
|
|
2022
1873
|
function getGLTFAccessors(attributes) {
|
|
2023
1874
|
const accessors = {};
|
|
2024
1875
|
for (const name12 in attributes) {
|
|
@@ -2077,7 +1928,7 @@ function toTypedArray(array, ArrayType, convertTypedArrays = false) {
|
|
|
2077
1928
|
return array;
|
|
2078
1929
|
}
|
|
2079
1930
|
|
|
2080
|
-
//
|
|
1931
|
+
// dist/lib/extensions/KHR_draco_mesh_compression.js
|
|
2081
1932
|
var KHR_DRACO_MESH_COMPRESSION = "KHR_draco_mesh_compression";
|
|
2082
1933
|
var name7 = KHR_DRACO_MESH_COMPRESSION;
|
|
2083
1934
|
function preprocess3(gltfData, options, context) {
|
|
@@ -2110,10 +1961,7 @@ function encode(gltfData, options = {}) {
|
|
|
2110
1961
|
}
|
|
2111
1962
|
}
|
|
2112
1963
|
async function decompressPrimitive(scenegraph, primitive, options, context) {
|
|
2113
|
-
const dracoExtension = scenegraph.getObjectExtension(
|
|
2114
|
-
primitive,
|
|
2115
|
-
KHR_DRACO_MESH_COMPRESSION
|
|
2116
|
-
);
|
|
1964
|
+
const dracoExtension = scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION);
|
|
2117
1965
|
if (!dracoExtension) {
|
|
2118
1966
|
return;
|
|
2119
1967
|
}
|
|
@@ -2181,22 +2029,22 @@ function* makeMeshPrimitiveIterator(scenegraph) {
|
|
|
2181
2029
|
}
|
|
2182
2030
|
}
|
|
2183
2031
|
|
|
2184
|
-
//
|
|
2032
|
+
// dist/lib/extensions/KHR_texture_transform.js
|
|
2185
2033
|
var KHR_texture_transform_exports = {};
|
|
2186
2034
|
__export(KHR_texture_transform_exports, {
|
|
2187
2035
|
decode: () => decode7,
|
|
2188
2036
|
name: () => name8
|
|
2189
2037
|
});
|
|
2190
2038
|
var import_core = require("@math.gl/core");
|
|
2191
|
-
var
|
|
2192
|
-
var name8 =
|
|
2039
|
+
var KHR_TEXTURE_TRANSFORM = "KHR_texture_transform";
|
|
2040
|
+
var name8 = KHR_TEXTURE_TRANSFORM;
|
|
2193
2041
|
var scratchVector = new import_core.Vector3();
|
|
2194
2042
|
var scratchRotationMatrix = new import_core.Matrix3();
|
|
2195
2043
|
var scratchScaleMatrix = new import_core.Matrix3();
|
|
2196
2044
|
async function decode7(gltfData, options) {
|
|
2197
2045
|
var _a;
|
|
2198
2046
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
2199
|
-
const hasExtension = gltfScenegraph.hasExtension(
|
|
2047
|
+
const hasExtension = gltfScenegraph.hasExtension(KHR_TEXTURE_TRANSFORM);
|
|
2200
2048
|
if (!hasExtension || !((_a = options.gltf) == null ? void 0 : _a.loadBuffers)) {
|
|
2201
2049
|
return;
|
|
2202
2050
|
}
|
|
@@ -2206,28 +2054,20 @@ async function decode7(gltfData, options) {
|
|
|
2206
2054
|
}
|
|
2207
2055
|
}
|
|
2208
2056
|
function transformTexCoords(materialIndex, gltfData) {
|
|
2209
|
-
var _a, _b, _c;
|
|
2210
|
-
const processedTexCoords = [];
|
|
2057
|
+
var _a, _b, _c, _d;
|
|
2211
2058
|
const material = (_a = gltfData.json.materials) == null ? void 0 : _a[materialIndex];
|
|
2212
|
-
const
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
const
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
const occlusionTexture = material == null ? void 0 : material.occlusionTexture;
|
|
2225
|
-
if (occlusionTexture) {
|
|
2226
|
-
transformPrimitives(gltfData, materialIndex, occlusionTexture, processedTexCoords);
|
|
2227
|
-
}
|
|
2228
|
-
const metallicRoughnessTexture = (_c = material == null ? void 0 : material.pbrMetallicRoughness) == null ? void 0 : _c.metallicRoughnessTexture;
|
|
2229
|
-
if (metallicRoughnessTexture) {
|
|
2230
|
-
transformPrimitives(gltfData, materialIndex, metallicRoughnessTexture, processedTexCoords);
|
|
2059
|
+
const materialTextures = [
|
|
2060
|
+
(_b = material == null ? void 0 : material.pbrMetallicRoughness) == null ? void 0 : _b.baseColorTexture,
|
|
2061
|
+
material == null ? void 0 : material.emissiveTexture,
|
|
2062
|
+
material == null ? void 0 : material.normalTexture,
|
|
2063
|
+
material == null ? void 0 : material.occlusionTexture,
|
|
2064
|
+
(_c = material == null ? void 0 : material.pbrMetallicRoughness) == null ? void 0 : _c.metallicRoughnessTexture
|
|
2065
|
+
];
|
|
2066
|
+
const processedTexCoords = [];
|
|
2067
|
+
for (const textureInfo of materialTextures) {
|
|
2068
|
+
if (textureInfo && ((_d = textureInfo == null ? void 0 : textureInfo.extensions) == null ? void 0 : _d[KHR_TEXTURE_TRANSFORM])) {
|
|
2069
|
+
transformPrimitives(gltfData, materialIndex, textureInfo, processedTexCoords);
|
|
2070
|
+
}
|
|
2231
2071
|
}
|
|
2232
2072
|
}
|
|
2233
2073
|
function transformPrimitives(gltfData, materialIndex, texture, processedTexCoords) {
|
|
@@ -2247,12 +2087,10 @@ function transformPrimitives(gltfData, materialIndex, texture, processedTexCoord
|
|
|
2247
2087
|
}
|
|
2248
2088
|
function getTransformParameters(texture, processedTexCoords) {
|
|
2249
2089
|
var _a;
|
|
2250
|
-
const textureInfo = (_a = texture.extensions) == null ? void 0 : _a[
|
|
2090
|
+
const textureInfo = (_a = texture.extensions) == null ? void 0 : _a[KHR_TEXTURE_TRANSFORM];
|
|
2251
2091
|
const { texCoord: originalTexCoord = 0 } = texture;
|
|
2252
2092
|
const { texCoord = originalTexCoord } = textureInfo;
|
|
2253
|
-
const isProcessed = processedTexCoords.findIndex(
|
|
2254
|
-
([original, newTexCoord]) => original === originalTexCoord && newTexCoord === texCoord
|
|
2255
|
-
) !== -1;
|
|
2093
|
+
const isProcessed = processedTexCoords.findIndex(([original, newTexCoord]) => original === originalTexCoord && newTexCoord === texCoord) !== -1;
|
|
2256
2094
|
if (!isProcessed) {
|
|
2257
2095
|
const matrix = makeTransformationMatrix(textureInfo);
|
|
2258
2096
|
if (originalTexCoord !== texCoord) {
|
|
@@ -2337,22 +2175,12 @@ function createAttribute(newTexCoord, originalAccessor, primitive, gltfData, new
|
|
|
2337
2175
|
function makeTransformationMatrix(extensionData) {
|
|
2338
2176
|
const { offset = [0, 0], rotation = 0, scale = [1, 1] } = extensionData;
|
|
2339
2177
|
const translationMatrix = new import_core.Matrix3().set(1, 0, 0, 0, 1, 0, offset[0], offset[1], 1);
|
|
2340
|
-
const rotationMatrix = scratchRotationMatrix.set(
|
|
2341
|
-
Math.cos(rotation),
|
|
2342
|
-
Math.sin(rotation),
|
|
2343
|
-
0,
|
|
2344
|
-
-Math.sin(rotation),
|
|
2345
|
-
Math.cos(rotation),
|
|
2346
|
-
0,
|
|
2347
|
-
0,
|
|
2348
|
-
0,
|
|
2349
|
-
1
|
|
2350
|
-
);
|
|
2178
|
+
const rotationMatrix = scratchRotationMatrix.set(Math.cos(rotation), Math.sin(rotation), 0, -Math.sin(rotation), Math.cos(rotation), 0, 0, 0, 1);
|
|
2351
2179
|
const scaleMatrix = scratchScaleMatrix.set(scale[0], 0, 0, 0, scale[1], 0, 0, 0, 1);
|
|
2352
2180
|
return translationMatrix.multiplyRight(rotationMatrix).multiplyRight(scaleMatrix);
|
|
2353
2181
|
}
|
|
2354
2182
|
|
|
2355
|
-
//
|
|
2183
|
+
// dist/lib/extensions/deprecated/KHR_lights_punctual.js
|
|
2356
2184
|
var KHR_lights_punctual_exports = {};
|
|
2357
2185
|
__export(KHR_lights_punctual_exports, {
|
|
2358
2186
|
decode: () => decode8,
|
|
@@ -2395,7 +2223,7 @@ async function encode2(gltfData) {
|
|
|
2395
2223
|
}
|
|
2396
2224
|
}
|
|
2397
2225
|
|
|
2398
|
-
//
|
|
2226
|
+
// dist/lib/extensions/deprecated/KHR_materials_unlit.js
|
|
2399
2227
|
var KHR_materials_unlit_exports = {};
|
|
2400
2228
|
__export(KHR_materials_unlit_exports, {
|
|
2401
2229
|
decode: () => decode9,
|
|
@@ -2430,7 +2258,7 @@ function encode3(gltfData) {
|
|
|
2430
2258
|
}
|
|
2431
2259
|
}
|
|
2432
2260
|
|
|
2433
|
-
//
|
|
2261
|
+
// dist/lib/extensions/deprecated/KHR_techniques_webgl.js
|
|
2434
2262
|
var KHR_techniques_webgl_exports = {};
|
|
2435
2263
|
__export(KHR_techniques_webgl_exports, {
|
|
2436
2264
|
decode: () => decode10,
|
|
@@ -2468,9 +2296,7 @@ function resolveTechniques(techniquesExtension, gltfScenegraph) {
|
|
|
2468
2296
|
const textDecoder = new TextDecoder();
|
|
2469
2297
|
shaders.forEach((shader) => {
|
|
2470
2298
|
if (Number.isFinite(shader.bufferView)) {
|
|
2471
|
-
shader.code = textDecoder.decode(
|
|
2472
|
-
gltfScenegraph.getTypedArrayForBufferView(shader.bufferView)
|
|
2473
|
-
);
|
|
2299
|
+
shader.code = textDecoder.decode(gltfScenegraph.getTypedArrayForBufferView(shader.bufferView));
|
|
2474
2300
|
} else {
|
|
2475
2301
|
throw new Error("KHR_techniques_webgl: no shader code");
|
|
2476
2302
|
}
|
|
@@ -2499,7 +2325,7 @@ function resolveValues(technique, gltfScenegraph) {
|
|
|
2499
2325
|
return values;
|
|
2500
2326
|
}
|
|
2501
2327
|
|
|
2502
|
-
//
|
|
2328
|
+
// dist/lib/api/gltf-extensions.js
|
|
2503
2329
|
var EXTENSIONS = [
|
|
2504
2330
|
// 1.0
|
|
2505
2331
|
// KHR_binary_gltf is handled separately - must be processed before other parsing starts
|
|
@@ -2539,16 +2365,13 @@ function useExtension(extensionName, options) {
|
|
|
2539
2365
|
return !exclude;
|
|
2540
2366
|
}
|
|
2541
2367
|
|
|
2542
|
-
//
|
|
2368
|
+
// dist/lib/extensions/KHR_binary_gltf.js
|
|
2543
2369
|
var KHR_BINARY_GLTF = "KHR_binary_glTF";
|
|
2544
2370
|
function preprocess4(gltfData) {
|
|
2545
2371
|
const gltfScenegraph = new GLTFScenegraph(gltfData);
|
|
2546
2372
|
const { json } = gltfScenegraph;
|
|
2547
2373
|
for (const image of json.images || []) {
|
|
2548
|
-
const extension = gltfScenegraph.getObjectExtension(
|
|
2549
|
-
image,
|
|
2550
|
-
KHR_BINARY_GLTF
|
|
2551
|
-
);
|
|
2374
|
+
const extension = gltfScenegraph.getObjectExtension(image, KHR_BINARY_GLTF);
|
|
2552
2375
|
if (extension) {
|
|
2553
2376
|
Object.assign(image, extension);
|
|
2554
2377
|
}
|
|
@@ -2560,7 +2383,7 @@ function preprocess4(gltfData) {
|
|
|
2560
2383
|
gltfScenegraph.removeExtension(KHR_BINARY_GLTF);
|
|
2561
2384
|
}
|
|
2562
2385
|
|
|
2563
|
-
//
|
|
2386
|
+
// dist/lib/api/normalize-gltf-v1.js
|
|
2564
2387
|
var GLTF_ARRAYS = {
|
|
2565
2388
|
accessors: "accessor",
|
|
2566
2389
|
animations: "animation",
|
|
@@ -2590,22 +2413,21 @@ var GLTF_KEYS = {
|
|
|
2590
2413
|
texture: "textures"
|
|
2591
2414
|
};
|
|
2592
2415
|
var GLTFV1Normalizer = class {
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
}
|
|
2416
|
+
idToIndexMap = {
|
|
2417
|
+
animations: {},
|
|
2418
|
+
accessors: {},
|
|
2419
|
+
buffers: {},
|
|
2420
|
+
bufferViews: {},
|
|
2421
|
+
images: {},
|
|
2422
|
+
materials: {},
|
|
2423
|
+
meshes: {},
|
|
2424
|
+
nodes: {},
|
|
2425
|
+
samplers: {},
|
|
2426
|
+
scenes: {},
|
|
2427
|
+
skins: {},
|
|
2428
|
+
textures: {}
|
|
2429
|
+
};
|
|
2430
|
+
json;
|
|
2609
2431
|
// constructor() {}
|
|
2610
2432
|
/**
|
|
2611
2433
|
* Convert (normalize) glTF < 2.0 to glTF 2.0
|
|
@@ -2774,7 +2596,7 @@ function normalizeGLTFV1(gltf, options = {}) {
|
|
|
2774
2596
|
return new GLTFV1Normalizer().normalize(gltf, options);
|
|
2775
2597
|
}
|
|
2776
2598
|
|
|
2777
|
-
//
|
|
2599
|
+
// dist/lib/parsers/parse-gltf.js
|
|
2778
2600
|
async function parseGLTF(gltf, arrayBufferOrString, byteOffset = 0, options, context) {
|
|
2779
2601
|
var _a, _b, _c;
|
|
2780
2602
|
parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);
|
|
@@ -2882,16 +2704,11 @@ async function loadImage(gltf, image, index, options, context) {
|
|
|
2882
2704
|
arrayBuffer = (0, import_loader_utils4.sliceArrayBuffer)(array.buffer, array.byteOffset, array.byteLength);
|
|
2883
2705
|
}
|
|
2884
2706
|
assert(arrayBuffer, "glTF image has no data");
|
|
2885
|
-
let parsedImage = await (0, import_loader_utils4.parseFromContext)(
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
{
|
|
2889
|
-
|
|
2890
|
-
mimeType: image.mimeType,
|
|
2891
|
-
basis: options.basis || { format: (0, import_textures.selectSupportedBasisFormat)() }
|
|
2892
|
-
},
|
|
2893
|
-
context
|
|
2894
|
-
);
|
|
2707
|
+
let parsedImage = await (0, import_loader_utils4.parseFromContext)(arrayBuffer, [import_images4.ImageLoader, import_textures.BasisLoader], {
|
|
2708
|
+
...options,
|
|
2709
|
+
mimeType: image.mimeType,
|
|
2710
|
+
basis: options.basis || { format: (0, import_textures.selectSupportedBasisFormat)() }
|
|
2711
|
+
}, context);
|
|
2895
2712
|
if (parsedImage && parsedImage[0]) {
|
|
2896
2713
|
parsedImage = {
|
|
2897
2714
|
compressed: true,
|
|
@@ -2906,7 +2723,7 @@ async function loadImage(gltf, image, index, options, context) {
|
|
|
2906
2723
|
gltf.images[index] = parsedImage;
|
|
2907
2724
|
}
|
|
2908
2725
|
|
|
2909
|
-
//
|
|
2726
|
+
// dist/gltf-loader.js
|
|
2910
2727
|
var GLTFLoader = {
|
|
2911
2728
|
name: "glTF",
|
|
2912
2729
|
id: "gltf",
|
|
@@ -2942,7 +2759,7 @@ async function parse(arrayBuffer, options = {}, context) {
|
|
|
2942
2759
|
return await parseGLTF(gltf, arrayBuffer, byteOffset, options, context);
|
|
2943
2760
|
}
|
|
2944
2761
|
|
|
2945
|
-
//
|
|
2762
|
+
// dist/lib/encoders/encode-glb.js
|
|
2946
2763
|
var import_loader_utils5 = require("@loaders.gl/loader-utils");
|
|
2947
2764
|
var MAGIC_glTF2 = 1179937895;
|
|
2948
2765
|
var MAGIC_JSON = 1313821514;
|
|
@@ -2990,7 +2807,7 @@ function encodeGLBSync(glb, dataView, byteOffset = 0, options = {}) {
|
|
|
2990
2807
|
return byteOffset;
|
|
2991
2808
|
}
|
|
2992
2809
|
|
|
2993
|
-
//
|
|
2810
|
+
// dist/lib/encoders/encode-gltf.js
|
|
2994
2811
|
function encodeGLTFSync(gltf, arrayBuffer, byteOffset, options) {
|
|
2995
2812
|
convertBuffersToBase64(gltf);
|
|
2996
2813
|
return encodeGLBSync(gltf, arrayBuffer, byteOffset, options);
|
|
@@ -3001,7 +2818,7 @@ function convertBuffersToBase64(gltf, { firstBuffer = 0 } = {}) {
|
|
|
3001
2818
|
}
|
|
3002
2819
|
}
|
|
3003
2820
|
|
|
3004
|
-
//
|
|
2821
|
+
// dist/gltf-writer.js
|
|
3005
2822
|
var GLTFWriter = {
|
|
3006
2823
|
name: "glTF",
|
|
3007
2824
|
id: "gltf",
|
|
@@ -3027,7 +2844,7 @@ function encodeSync(gltf, options = {}) {
|
|
|
3027
2844
|
return arrayBuffer;
|
|
3028
2845
|
}
|
|
3029
2846
|
|
|
3030
|
-
//
|
|
2847
|
+
// dist/glb-loader.js
|
|
3031
2848
|
var GLBLoader = {
|
|
3032
2849
|
name: "GLB",
|
|
3033
2850
|
id: "glb",
|
|
@@ -3055,7 +2872,7 @@ function parseSync(arrayBuffer, options) {
|
|
|
3055
2872
|
return glb;
|
|
3056
2873
|
}
|
|
3057
2874
|
|
|
3058
|
-
//
|
|
2875
|
+
// dist/glb-writer.js
|
|
3059
2876
|
var GLBWriter = {
|
|
3060
2877
|
name: "GLB",
|
|
3061
2878
|
id: "glb",
|
|
@@ -3079,7 +2896,7 @@ function encodeSync2(glb, options) {
|
|
|
3079
2896
|
return arrayBuffer;
|
|
3080
2897
|
}
|
|
3081
2898
|
|
|
3082
|
-
//
|
|
2899
|
+
// dist/lib/api/post-process-gltf.js
|
|
3083
2900
|
var COMPONENTS2 = {
|
|
3084
2901
|
SCALAR: 1,
|
|
3085
2902
|
VEC2: 2,
|
|
@@ -3139,11 +2956,13 @@ function getSizeFromAccessorType(type) {
|
|
|
3139
2956
|
return COMPONENTS2[type];
|
|
3140
2957
|
}
|
|
3141
2958
|
var GLTFPostProcessor = class {
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
2959
|
+
baseUri = "";
|
|
2960
|
+
// @ts-expect-error
|
|
2961
|
+
jsonUnprocessed;
|
|
2962
|
+
// @ts-expect-error
|
|
2963
|
+
json;
|
|
2964
|
+
buffers = [];
|
|
2965
|
+
images = [];
|
|
3147
2966
|
postProcess(gltf, options = {}) {
|
|
3148
2967
|
const { json, buffers = [], images = [] } = gltf;
|
|
3149
2968
|
const { baseUri = "" } = gltf;
|
|
@@ -3268,15 +3087,12 @@ var GLTFPostProcessor = class {
|
|
|
3268
3087
|
node.skin = this.getSkin(gltfNode.skin);
|
|
3269
3088
|
}
|
|
3270
3089
|
if (gltfNode.meshes !== void 0 && gltfNode.meshes.length) {
|
|
3271
|
-
node.mesh = gltfNode.meshes.reduce(
|
|
3272
|
-
(
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
},
|
|
3278
|
-
{ primitives: [] }
|
|
3279
|
-
);
|
|
3090
|
+
node.mesh = gltfNode.meshes.reduce((accum, meshIndex) => {
|
|
3091
|
+
const mesh = this.getMesh(meshIndex);
|
|
3092
|
+
accum.id = mesh.id;
|
|
3093
|
+
accum.primitives = accum.primitives.concat(mesh.primitives);
|
|
3094
|
+
return accum;
|
|
3095
|
+
}, { primitives: [] });
|
|
3280
3096
|
}
|
|
3281
3097
|
return node;
|
|
3282
3098
|
}
|
|
@@ -3382,13 +3198,7 @@ var GLTFPostProcessor = class {
|
|
|
3382
3198
|
const byteOffset = (accessor.bufferView.byteOffset || 0) + (accessor.byteOffset || 0) + buffer.byteOffset;
|
|
3383
3199
|
let cutBuffer = buffer.arrayBuffer.slice(byteOffset, byteOffset + byteLength);
|
|
3384
3200
|
if (accessor.bufferView.byteStride) {
|
|
3385
|
-
cutBuffer = this._getValueFromInterleavedBuffer(
|
|
3386
|
-
buffer,
|
|
3387
|
-
byteOffset,
|
|
3388
|
-
accessor.bufferView.byteStride,
|
|
3389
|
-
accessor.bytesPerElement,
|
|
3390
|
-
accessor.count
|
|
3391
|
-
);
|
|
3201
|
+
cutBuffer = this._getValueFromInterleavedBuffer(buffer, byteOffset, accessor.bufferView.byteStride, accessor.bytesPerElement, accessor.count);
|
|
3392
3202
|
}
|
|
3393
3203
|
accessor.value = new ArrayType(cutBuffer);
|
|
3394
3204
|
}
|
|
@@ -3408,10 +3218,7 @@ var GLTFPostProcessor = class {
|
|
|
3408
3218
|
const result = new Uint8Array(count * bytesPerElement);
|
|
3409
3219
|
for (let i = 0; i < count; i++) {
|
|
3410
3220
|
const elementOffset = byteOffset + i * byteStride;
|
|
3411
|
-
result.set(
|
|
3412
|
-
new Uint8Array(buffer.arrayBuffer.slice(elementOffset, elementOffset + bytesPerElement)),
|
|
3413
|
-
i * bytesPerElement
|
|
3414
|
-
);
|
|
3221
|
+
result.set(new Uint8Array(buffer.arrayBuffer.slice(elementOffset, elementOffset + bytesPerElement)), i * bytesPerElement);
|
|
3415
3222
|
}
|
|
3416
3223
|
return result.buffer;
|
|
3417
3224
|
}
|
|
@@ -3489,3 +3296,4 @@ var GLTFPostProcessor = class {
|
|
|
3489
3296
|
function postProcessGLTF(gltf, options) {
|
|
3490
3297
|
return new GLTFPostProcessor().postProcess(gltf, options);
|
|
3491
3298
|
}
|
|
3299
|
+
//# sourceMappingURL=index.cjs.map
|