@loaders.gl/gltf 4.0.0-alpha.23 → 4.0.0-alpha.25
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 +378 -241
- package/dist/es5/index.js +12 -0
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/api/gltf-extensions.js +1 -1
- package/dist/es5/lib/api/gltf-extensions.js.map +1 -1
- package/dist/es5/lib/extensions/EXT_mesh_features.js +13 -25
- package/dist/es5/lib/extensions/EXT_mesh_features.js.map +1 -1
- package/dist/es5/lib/extensions/EXT_structural_metadata.js +152 -106
- package/dist/es5/lib/extensions/EXT_structural_metadata.js.map +1 -1
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +64 -16
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
- package/dist/es5/lib/extensions/{data-processing.js → utils/3d-tiles-utils.js} +51 -24
- package/dist/es5/lib/extensions/utils/3d-tiles-utils.js.map +1 -0
- package/dist/es5/lib/gltf-utils/gltf-utils.js +29 -0
- package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -1
- package/dist/es5/lib/types/gltf-ext-feature-metadata-schema.js +2 -0
- package/dist/es5/lib/types/gltf-ext-feature-metadata-schema.js.map +1 -0
- package/dist/es5/lib/types/gltf-ext-mesh-features-schema.js.map +1 -1
- package/dist/es5/lib/types/gltf-ext-structural-metadata-schema.js.map +1 -1
- package/dist/es5/lib/types/gltf-json-schema.js.map +1 -1
- package/dist/es5/lib/types/gltf-types.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/api/gltf-extensions.js +1 -1
- package/dist/esm/lib/api/gltf-extensions.js.map +1 -1
- package/dist/esm/lib/extensions/EXT_mesh_features.js +13 -25
- package/dist/esm/lib/extensions/EXT_mesh_features.js.map +1 -1
- package/dist/esm/lib/extensions/EXT_structural_metadata.js +127 -89
- package/dist/esm/lib/extensions/EXT_structural_metadata.js.map +1 -1
- package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js +64 -17
- package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
- package/dist/esm/lib/extensions/{data-processing.js → utils/3d-tiles-utils.js} +50 -24
- package/dist/esm/lib/extensions/utils/3d-tiles-utils.js.map +1 -0
- package/dist/esm/lib/gltf-utils/gltf-utils.js +30 -0
- package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -1
- package/dist/esm/lib/types/gltf-ext-feature-metadata-schema.js +2 -0
- package/dist/esm/lib/types/gltf-ext-feature-metadata-schema.js.map +1 -0
- package/dist/esm/lib/types/gltf-ext-mesh-features-schema.js.map +1 -1
- package/dist/esm/lib/types/gltf-ext-structural-metadata-schema.js.map +1 -1
- package/dist/esm/lib/types/gltf-json-schema.js.map +1 -1
- package/dist/esm/lib/types/gltf-types.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_mesh_features.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_structural_metadata.d.ts +12 -4
- package/dist/lib/extensions/EXT_structural_metadata.d.ts.map +1 -1
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts +9 -0
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -1
- package/dist/lib/extensions/utils/3d-tiles-utils.d.ts +52 -0
- package/dist/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -0
- package/dist/lib/gltf-utils/gltf-utils.d.ts +2 -0
- package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -1
- package/dist/lib/types/gltf-ext-feature-metadata-schema.d.ts +421 -0
- package/dist/lib/types/gltf-ext-feature-metadata-schema.d.ts.map +1 -0
- package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts +4 -6
- package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-ext-structural-metadata-schema.d.ts +48 -29
- package/dist/lib/types/gltf-ext-structural-metadata-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-json-schema.d.ts +1 -420
- package/dist/lib/types/gltf-json-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-types.d.ts +3 -0
- package/dist/lib/types/gltf-types.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/index.ts +10 -5
- package/src/lib/api/gltf-extensions.ts +1 -1
- package/src/lib/extensions/EXT_mesh_features.ts +18 -44
- package/src/lib/extensions/EXT_structural_metadata.ts +364 -217
- package/src/lib/extensions/deprecated/EXT_feature_metadata.ts +193 -30
- package/src/lib/extensions/{data-processing.ts → utils/3d-tiles-utils.ts} +128 -56
- package/src/lib/gltf-utils/gltf-utils.ts +38 -0
- package/src/lib/types/gltf-ext-feature-metadata-schema.ts +470 -0
- package/src/lib/types/gltf-ext-mesh-features-schema.ts +4 -6
- package/src/lib/types/gltf-ext-structural-metadata-schema.ts +52 -31
- package/src/lib/types/gltf-json-schema.ts +1 -468
- package/src/lib/types/gltf-types.ts +4 -0
- package/dist/bundle.js +0 -5
- package/dist/es5/lib/extensions/data-processing.js.map +0 -1
- package/dist/esm/lib/extensions/data-processing.js.map +0 -1
- package/dist/glb-loader.js +0 -34
- package/dist/glb-writer.js +0 -35
- package/dist/gltf-loader.js +0 -50
- package/dist/gltf-writer.js +0 -32
- package/dist/index.js +0 -34
- package/dist/lib/api/gltf-extensions.js +0 -88
- package/dist/lib/api/gltf-scenegraph.js +0 -580
- package/dist/lib/api/normalize-gltf-v1.js +0 -299
- package/dist/lib/api/post-process-gltf.js +0 -433
- package/dist/lib/encoders/encode-glb.js +0 -72
- package/dist/lib/encoders/encode-gltf.js +0 -32
- package/dist/lib/extensions/EXT_mesh_features.js +0 -89
- package/dist/lib/extensions/EXT_meshopt_compression.js +0 -41
- package/dist/lib/extensions/EXT_structural_metadata.js +0 -504
- package/dist/lib/extensions/EXT_texture_webp.js +0 -36
- package/dist/lib/extensions/KHR_binary_gltf.js +0 -39
- package/dist/lib/extensions/KHR_draco_mesh_compression.js +0 -137
- package/dist/lib/extensions/KHR_texture_basisu.js +0 -29
- package/dist/lib/extensions/KHR_texture_transform.js +0 -227
- package/dist/lib/extensions/data-processing.d.ts +0 -34
- package/dist/lib/extensions/data-processing.d.ts.map +0 -1
- package/dist/lib/extensions/data-processing.js +0 -212
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.js +0 -282
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.js +0 -59
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +0 -44
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +0 -79
- package/dist/lib/gltf-utils/get-typed-array.js +0 -41
- package/dist/lib/gltf-utils/gltf-attribute-utils.js +0 -73
- package/dist/lib/gltf-utils/gltf-constants.js +0 -43
- package/dist/lib/gltf-utils/gltf-utils.js +0 -90
- package/dist/lib/gltf-utils/resolve-url.js +0 -18
- package/dist/lib/parsers/parse-glb.js +0 -166
- package/dist/lib/parsers/parse-gltf.js +0 -185
- package/dist/lib/types/glb-types.js +0 -2
- package/dist/lib/types/gltf-ext-mesh-features-schema.js +0 -2
- package/dist/lib/types/gltf-ext-structural-metadata-schema.js +0 -2
- package/dist/lib/types/gltf-json-schema.js +0 -4
- package/dist/lib/types/gltf-postprocessed-schema.js +0 -4
- package/dist/lib/types/gltf-types.js +0 -3
- package/dist/lib/utils/assert.js +0 -12
- package/dist/lib/utils/version.js +0 -7
- package/dist/meshopt/meshopt-decoder.js +0 -118
- package/dist/webp/webp.js +0 -38
package/dist/glb-writer.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// loaders.gl, MIT license
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports._TypecheckGLBLoader = exports.GLBWriter = void 0;
|
|
5
|
-
const encode_glb_1 = require("./lib/encoders/encode-glb");
|
|
6
|
-
const version_1 = require("./lib/utils/version");
|
|
7
|
-
/**
|
|
8
|
-
* GLB exporter
|
|
9
|
-
* GLB is the binary container format for GLTF
|
|
10
|
-
*/
|
|
11
|
-
exports.GLBWriter = {
|
|
12
|
-
name: 'GLB',
|
|
13
|
-
id: 'glb',
|
|
14
|
-
module: 'gltf',
|
|
15
|
-
version: version_1.VERSION,
|
|
16
|
-
extensions: ['glb'],
|
|
17
|
-
mimeTypes: ['model/gltf-binary'],
|
|
18
|
-
binary: true,
|
|
19
|
-
encodeSync,
|
|
20
|
-
options: {
|
|
21
|
-
glb: {}
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
function encodeSync(glb, options) {
|
|
25
|
-
const { byteOffset = 0 } = options;
|
|
26
|
-
// Calculate length and allocate buffer
|
|
27
|
-
const byteLength = (0, encode_glb_1.encodeGLBSync)(glb, null, byteOffset, options);
|
|
28
|
-
const arrayBuffer = new ArrayBuffer(byteLength);
|
|
29
|
-
// Encode into buffer
|
|
30
|
-
const dataView = new DataView(arrayBuffer);
|
|
31
|
-
(0, encode_glb_1.encodeGLBSync)(glb, dataView, byteOffset, options);
|
|
32
|
-
return arrayBuffer;
|
|
33
|
-
}
|
|
34
|
-
// TYPE TESTS - TODO find a better way than exporting junk
|
|
35
|
-
exports._TypecheckGLBLoader = exports.GLBWriter;
|
package/dist/gltf-loader.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parse = exports.GLTFLoader = void 0;
|
|
4
|
-
const version_1 = require("./lib/utils/version");
|
|
5
|
-
const parse_gltf_1 = require("./lib/parsers/parse-gltf");
|
|
6
|
-
/**
|
|
7
|
-
* GLTF loader
|
|
8
|
-
*/
|
|
9
|
-
exports.GLTFLoader = {
|
|
10
|
-
name: 'glTF',
|
|
11
|
-
id: 'gltf',
|
|
12
|
-
module: 'gltf',
|
|
13
|
-
version: version_1.VERSION,
|
|
14
|
-
extensions: ['gltf', 'glb'],
|
|
15
|
-
mimeTypes: ['model/gltf+json', 'model/gltf-binary'],
|
|
16
|
-
text: true,
|
|
17
|
-
binary: true,
|
|
18
|
-
tests: ['glTF'],
|
|
19
|
-
parse,
|
|
20
|
-
options: {
|
|
21
|
-
gltf: {
|
|
22
|
-
normalize: true,
|
|
23
|
-
loadBuffers: true,
|
|
24
|
-
loadImages: true,
|
|
25
|
-
decompressMeshes: true // Decompress Draco encoded meshes
|
|
26
|
-
},
|
|
27
|
-
// common?
|
|
28
|
-
log: console // eslint-disable-line
|
|
29
|
-
},
|
|
30
|
-
deprecatedOptions: {
|
|
31
|
-
fetchImages: 'gltf.loadImages',
|
|
32
|
-
createImages: 'gltf.loadImages',
|
|
33
|
-
decompress: 'gltf.decompressMeshes',
|
|
34
|
-
postProcess: 'gltf.postProcess',
|
|
35
|
-
gltf: {
|
|
36
|
-
decompress: 'gltf.decompressMeshes',
|
|
37
|
-
postProcess: 'removed in v4'
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
async function parse(arrayBuffer, options = {}, context) {
|
|
42
|
-
// Apps can call the parse method directly, we so apply default options here
|
|
43
|
-
options = { ...exports.GLTFLoader.options, ...options };
|
|
44
|
-
// @ts-ignore
|
|
45
|
-
options.gltf = { ...exports.GLTFLoader.options.gltf, ...options.gltf };
|
|
46
|
-
const { byteOffset = 0 } = options;
|
|
47
|
-
const gltf = {};
|
|
48
|
-
return await (0, parse_gltf_1.parseGLTF)(gltf, arrayBuffer, byteOffset, options, context);
|
|
49
|
-
}
|
|
50
|
-
exports.parse = parse;
|
package/dist/gltf-writer.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports._TypecheckGLBLoader = exports.GLTFWriter = void 0;
|
|
4
|
-
const version_1 = require("./lib/utils/version");
|
|
5
|
-
const encode_gltf_1 = require("./lib/encoders/encode-gltf");
|
|
6
|
-
/**
|
|
7
|
-
* GLTF exporter
|
|
8
|
-
*/
|
|
9
|
-
exports.GLTFWriter = {
|
|
10
|
-
name: 'glTF',
|
|
11
|
-
id: 'gltf',
|
|
12
|
-
module: 'gltf',
|
|
13
|
-
version: version_1.VERSION,
|
|
14
|
-
extensions: ['glb'],
|
|
15
|
-
mimeTypes: ['model/gltf-binary'],
|
|
16
|
-
binary: true,
|
|
17
|
-
encodeSync,
|
|
18
|
-
options: {
|
|
19
|
-
gltf: {}
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
function encodeSync(gltf, options = {}) {
|
|
23
|
-
const { byteOffset = 0 } = options;
|
|
24
|
-
// Calculate length, then create arraybuffer and encode
|
|
25
|
-
const byteLength = (0, encode_gltf_1.encodeGLTFSync)(gltf, null, byteOffset, options);
|
|
26
|
-
const arrayBuffer = new ArrayBuffer(byteLength);
|
|
27
|
-
const dataView = new DataView(arrayBuffer);
|
|
28
|
-
(0, encode_gltf_1.encodeGLTFSync)(gltf, dataView, byteOffset, options);
|
|
29
|
-
return arrayBuffer;
|
|
30
|
-
}
|
|
31
|
-
// TYPE TESTS - TODO find a better way than exporting junk
|
|
32
|
-
exports._TypecheckGLBLoader = exports.GLTFWriter;
|
package/dist/index.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports._getMemoryUsageGLTF = exports.postProcessGLTF = exports.GLTFScenegraph = exports.GLBWriter = exports.GLBLoader = exports.GLTFWriter = exports.GLTFLoader = exports.EXT_FEATURE_METADATA = exports.EXT_STRUCTURAL_METADATA = exports.EXT_MESH_FEATURES = void 0;
|
|
4
|
-
var EXT_mesh_features_1 = require("./lib/extensions/EXT_mesh_features");
|
|
5
|
-
Object.defineProperty(exports, "EXT_MESH_FEATURES", { enumerable: true, get: function () { return EXT_mesh_features_1.name; } });
|
|
6
|
-
var EXT_structural_metadata_1 = require("./lib/extensions/EXT_structural_metadata");
|
|
7
|
-
Object.defineProperty(exports, "EXT_STRUCTURAL_METADATA", { enumerable: true, get: function () { return EXT_structural_metadata_1.name; } });
|
|
8
|
-
var EXT_feature_metadata_1 = require("./lib/extensions/deprecated/EXT_feature_metadata");
|
|
9
|
-
Object.defineProperty(exports, "EXT_FEATURE_METADATA", { enumerable: true, get: function () { return EXT_feature_metadata_1.name; } });
|
|
10
|
-
// glTF loader/writer definition objects
|
|
11
|
-
var gltf_loader_1 = require("./gltf-loader");
|
|
12
|
-
Object.defineProperty(exports, "GLTFLoader", { enumerable: true, get: function () { return gltf_loader_1.GLTFLoader; } });
|
|
13
|
-
var gltf_writer_1 = require("./gltf-writer");
|
|
14
|
-
Object.defineProperty(exports, "GLTFWriter", { enumerable: true, get: function () { return gltf_writer_1.GLTFWriter; } });
|
|
15
|
-
// GLB Loader & Writer (for custom formats that want to leverage the GLB binary "envelope")
|
|
16
|
-
var glb_loader_1 = require("./glb-loader");
|
|
17
|
-
Object.defineProperty(exports, "GLBLoader", { enumerable: true, get: function () { return glb_loader_1.GLBLoader; } });
|
|
18
|
-
var glb_writer_1 = require("./glb-writer");
|
|
19
|
-
Object.defineProperty(exports, "GLBWriter", { enumerable: true, get: function () { return glb_writer_1.GLBWriter; } });
|
|
20
|
-
// glTF Data Access Helper Class
|
|
21
|
-
var gltf_scenegraph_1 = require("./lib/api/gltf-scenegraph");
|
|
22
|
-
Object.defineProperty(exports, "GLTFScenegraph", { enumerable: true, get: function () { return gltf_scenegraph_1.GLTFScenegraph; } });
|
|
23
|
-
var post_process_gltf_1 = require("./lib/api/post-process-gltf");
|
|
24
|
-
Object.defineProperty(exports, "postProcessGLTF", { enumerable: true, get: function () { return post_process_gltf_1.postProcessGLTF; } });
|
|
25
|
-
var gltf_utils_1 = require("./lib/gltf-utils/gltf-utils");
|
|
26
|
-
Object.defineProperty(exports, "_getMemoryUsageGLTF", { enumerable: true, get: function () { return gltf_utils_1.getMemoryUsageGLTF; } });
|
|
27
|
-
/** @deprecated */
|
|
28
|
-
// export type {GLTFMesh as Mesh} from './lib/types/gltf-json-schema';
|
|
29
|
-
/** @deprecated */
|
|
30
|
-
// export type {GLTFNodePostprocessed as Node} from './lib/types/gltf-postprocessed-schema';
|
|
31
|
-
/** @deprecated */
|
|
32
|
-
// export type {GLTFAccessorPostprocessed as Accessor} from './lib/types/gltf-postprocessed-schema';
|
|
33
|
-
// /** @deprecated */
|
|
34
|
-
// export type {GLTFImagePostprocessed as Image} from './lib/types/gltf-postprocessed-schema';
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.decodeExtensions = exports.preprocessExtensions = exports.EXTENSIONS = void 0;
|
|
27
|
-
// GLTF 1.0 extensions (decode only)
|
|
28
|
-
// import * as KHR_binary_gltf from './KHR_draco_mesh_compression';
|
|
29
|
-
// GLTF 2.0 Vendor extensions
|
|
30
|
-
const EXT_mesh_features = __importStar(require("../extensions/EXT_mesh_features"));
|
|
31
|
-
const EXT_structural_metadata = __importStar(require("../extensions/EXT_structural_metadata"));
|
|
32
|
-
// GLTF 2.0 Khronos extensions (decode/encode)
|
|
33
|
-
const EXT_meshopt_compression = __importStar(require("../extensions/EXT_meshopt_compression"));
|
|
34
|
-
const EXT_texture_webp = __importStar(require("../extensions/EXT_texture_webp"));
|
|
35
|
-
const KHR_texture_basisu = __importStar(require("../extensions/KHR_texture_basisu"));
|
|
36
|
-
const KHR_draco_mesh_compression = __importStar(require("../extensions/KHR_draco_mesh_compression"));
|
|
37
|
-
const KHR_texture_transform = __importStar(require("../extensions/KHR_texture_transform"));
|
|
38
|
-
// Deprecated. These should be handled by rendering library (e.g. luma.gl), not the loader.
|
|
39
|
-
const KHR_lights_punctual = __importStar(require("../extensions/deprecated/KHR_lights_punctual"));
|
|
40
|
-
const KHR_materials_unlit = __importStar(require("../extensions/deprecated/KHR_materials_unlit"));
|
|
41
|
-
const KHR_techniques_webgl = __importStar(require("../extensions/deprecated/KHR_techniques_webgl"));
|
|
42
|
-
const EXT_feature_metadata = __importStar(require("../extensions/deprecated/EXT_feature_metadata"));
|
|
43
|
-
/**
|
|
44
|
-
* List of extensions processed by the GLTFLoader
|
|
45
|
-
* Note that may extensions can only be handled on the rendering stage and are left out here
|
|
46
|
-
* These are just extensions that can be handled fully or partially during loading.
|
|
47
|
-
*/
|
|
48
|
-
exports.EXTENSIONS = [
|
|
49
|
-
// 1.0
|
|
50
|
-
// KHR_binary_gltf is handled separately - must be processed before other parsing starts
|
|
51
|
-
// KHR_binary_gltf,
|
|
52
|
-
// 2.0
|
|
53
|
-
EXT_mesh_features,
|
|
54
|
-
EXT_structural_metadata,
|
|
55
|
-
EXT_meshopt_compression,
|
|
56
|
-
EXT_texture_webp,
|
|
57
|
-
// Basisu should come after webp, we want basisu to be preferred if both are provided
|
|
58
|
-
KHR_texture_basisu,
|
|
59
|
-
KHR_draco_mesh_compression,
|
|
60
|
-
KHR_lights_punctual,
|
|
61
|
-
KHR_materials_unlit,
|
|
62
|
-
KHR_techniques_webgl,
|
|
63
|
-
KHR_texture_transform,
|
|
64
|
-
EXT_feature_metadata
|
|
65
|
-
];
|
|
66
|
-
/** Call before any resource loading starts */
|
|
67
|
-
function preprocessExtensions(gltf, options = {}, context) {
|
|
68
|
-
const extensions = exports.EXTENSIONS.filter((extension) => useExtension(extension.name, options));
|
|
69
|
-
for (const extension of extensions) {
|
|
70
|
-
extension.preprocess?.(gltf, options, context);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
exports.preprocessExtensions = preprocessExtensions;
|
|
74
|
-
/** Call after resource loading */
|
|
75
|
-
async function decodeExtensions(gltf, options = {}, context) {
|
|
76
|
-
const extensions = exports.EXTENSIONS.filter((extension) => useExtension(extension.name, options));
|
|
77
|
-
for (const extension of extensions) {
|
|
78
|
-
// Note: We decode async extensions sequentially, this might not be necessary
|
|
79
|
-
// Currently we only have Draco, but when we add Basis we may revisit
|
|
80
|
-
await extension.decode?.(gltf, options, context);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
exports.decodeExtensions = decodeExtensions;
|
|
84
|
-
function useExtension(extensionName, options) {
|
|
85
|
-
const excludes = options?.gltf?.excludeExtensions || {};
|
|
86
|
-
const exclude = extensionName in excludes && !excludes[extensionName];
|
|
87
|
-
return !exclude;
|
|
88
|
-
}
|