@babylonjs/loaders 9.26.1 → 9.27.0
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/SPLAT/gaussianSplattingStream.d.ts +79 -25
- package/SPLAT/gaussianSplattingStream.js +320 -95
- package/SPLAT/gaussianSplattingStream.js.map +1 -1
- package/glTF/2.0/Extensions/EXT_texture_avif.pure.js +1 -1
- package/glTF/2.0/Extensions/EXT_texture_avif.pure.js.map +1 -1
- package/glTF/2.0/Extensions/EXT_texture_webp.pure.js +1 -1
- package/glTF/2.0/Extensions/EXT_texture_webp.pure.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.d.ts +143 -3
- package/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.js +622 -99
- package/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphEventReferenceBlock.d.ts +47 -0
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphEventReferenceBlock.js +68 -0
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphEventReferenceBlock.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.d.ts +2 -2
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.js +1 -1
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphObjectReferenceBlock.d.ts +24 -0
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphObjectReferenceBlock.js +38 -0
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphObjectReferenceBlock.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphUnsupportedInteractivityBlock.d.ts +41 -0
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphUnsupportedInteractivityBlock.js +63 -0
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphUnsupportedInteractivityBlock.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_interactivity/index.d.ts +6 -0
- package/glTF/2.0/Extensions/KHR_interactivity/index.js +6 -0
- package/glTF/2.0/Extensions/KHR_interactivity/index.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphExporter.d.ts +243 -0
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphExporter.js +2335 -0
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphExporter.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphModel.d.ts +193 -0
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphModel.js +919 -0
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphModel.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.d.ts +30 -10
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.js +485 -54
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityHostResolver.d.ts +2 -1
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityHostResolver.js +7 -2
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityHostResolver.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityNodeState.d.ts +24 -0
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityNodeState.js +89 -0
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityNodeState.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_interactivity/pure.d.ts +6 -0
- package/glTF/2.0/Extensions/KHR_interactivity/pure.js +6 -0
- package/glTF/2.0/Extensions/KHR_interactivity/pure.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_interactivity.pure.d.ts +59 -1
- package/glTF/2.0/Extensions/KHR_interactivity.pure.js +129 -77
- package/glTF/2.0/Extensions/KHR_interactivity.pure.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_interactivity.types.d.ts +18 -1
- package/glTF/2.0/Extensions/KHR_interactivity.types.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_node_hoverability.pure.d.ts +2 -0
- package/glTF/2.0/Extensions/KHR_node_hoverability.pure.js +114 -56
- package/glTF/2.0/Extensions/KHR_node_hoverability.pure.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_node_selectability.pure.d.ts +2 -0
- package/glTF/2.0/Extensions/KHR_node_selectability.pure.js +80 -35
- package/glTF/2.0/Extensions/KHR_node_selectability.pure.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_texture_basisu.pure.js +1 -1
- package/glTF/2.0/Extensions/KHR_texture_basisu.pure.js.map +1 -1
- package/glTF/2.0/Extensions/interactivityRefPathToObjectConverter.js +3 -2
- package/glTF/2.0/Extensions/interactivityRefPathToObjectConverter.js.map +1 -1
- package/glTF/2.0/Extensions/objectModelMapping.d.ts +4 -2
- package/glTF/2.0/Extensions/objectModelMapping.js +33 -4
- package/glTF/2.0/Extensions/objectModelMapping.js.map +1 -1
- package/glTF/2.0/glTFLoader.pure.d.ts +3 -2
- package/glTF/2.0/glTFLoader.pure.js +50 -8
- package/glTF/2.0/glTFLoader.pure.js.map +1 -1
- package/glTF/2.0/glTFLoaderExtension.d.ts +2 -1
- package/glTF/2.0/glTFLoaderExtension.js.map +1 -1
- package/glTF/2.0/glTFLoaderInterfaces.d.ts +9 -0
- package/glTF/2.0/glTFLoaderInterfaces.js.map +1 -1
- package/package.json +3 -3
|
@@ -362,10 +362,11 @@ export declare class GLTFLoader implements IGLTFLoader {
|
|
|
362
362
|
* @internal
|
|
363
363
|
*/
|
|
364
364
|
_loadTextureAsync(context: string, texture: ITexture, assign?: (babylonTexture: BaseTexture) => void): Promise<BaseTexture>;
|
|
365
|
+
private _trackTexture;
|
|
365
366
|
/**
|
|
366
367
|
* @internal
|
|
367
368
|
*/
|
|
368
|
-
_createTextureAsync(context: string, sampler: ISampler, image: IImage, assign?: (babylonTexture: BaseTexture) => void, textureLoaderOptions?: unknown, useSRGBBuffer?: boolean): Promise<BaseTexture>;
|
|
369
|
+
_createTextureAsync(context: string, sampler: ISampler, image: IImage, assign?: (babylonTexture: BaseTexture) => void, textureLoaderOptions?: unknown, useSRGBBuffer?: boolean, sourceTexture?: ITexture): Promise<BaseTexture>;
|
|
369
370
|
private _loadSampler;
|
|
370
371
|
/**
|
|
371
372
|
* Loads a glTF image.
|
|
@@ -403,7 +404,7 @@ export declare class GLTFLoader implements IGLTFLoader {
|
|
|
403
404
|
private _forEachExtensions;
|
|
404
405
|
private _applyExtensions;
|
|
405
406
|
private _extensionsOnLoading;
|
|
406
|
-
private
|
|
407
|
+
private _extensionsOnReadyAsync;
|
|
407
408
|
private _extensionsLoadSceneAsync;
|
|
408
409
|
private _extensionsLoadNodeAsync;
|
|
409
410
|
private _extensionsLoadCameraAsync;
|
|
@@ -405,7 +405,7 @@ export class GLTFLoader {
|
|
|
405
405
|
if (this._parent.compileShadowGenerators) {
|
|
406
406
|
promises.push(this._compileShadowGeneratorsAsync());
|
|
407
407
|
}
|
|
408
|
-
const resultPromise = Promise.all(promises).then(() => {
|
|
408
|
+
const resultPromise = Promise.all(promises).then(async () => {
|
|
409
409
|
if (this._rootBabylonMesh && this._rootBabylonMesh !== this._parent.customRootNode) {
|
|
410
410
|
this._rootBabylonMesh.setEnabled(true);
|
|
411
411
|
}
|
|
@@ -422,7 +422,7 @@ export class GLTFLoader {
|
|
|
422
422
|
for (const adapter of Array.from(this._materialAdapters)) {
|
|
423
423
|
this._completePromises.push(adapter.finalizeAsync(this));
|
|
424
424
|
}
|
|
425
|
-
this.
|
|
425
|
+
await this._extensionsOnReadyAsync();
|
|
426
426
|
this._parent._setState(GLTFLoaderState.READY);
|
|
427
427
|
if (!this._skipStartAnimationStep) {
|
|
428
428
|
this._startAnimations();
|
|
@@ -2061,7 +2061,13 @@ export class GLTFLoader {
|
|
|
2061
2061
|
loadTextureInfoAsync(context, textureInfo, assign = () => { }) {
|
|
2062
2062
|
const extensionPromise = this._extensionsLoadTextureInfoAsync(context, textureInfo, assign);
|
|
2063
2063
|
if (extensionPromise) {
|
|
2064
|
-
return extensionPromise
|
|
2064
|
+
return extensionPromise.then((babylonTexture) => {
|
|
2065
|
+
const texture = this._gltf.textures?.[textureInfo.index];
|
|
2066
|
+
if (texture) {
|
|
2067
|
+
this._trackTexture(texture, babylonTexture);
|
|
2068
|
+
}
|
|
2069
|
+
return babylonTexture;
|
|
2070
|
+
});
|
|
2065
2071
|
}
|
|
2066
2072
|
this.logOpen(`${context}`);
|
|
2067
2073
|
if (textureInfo.texCoord >= 6) {
|
|
@@ -2082,21 +2088,49 @@ export class GLTFLoader {
|
|
|
2082
2088
|
* @internal
|
|
2083
2089
|
*/
|
|
2084
2090
|
_loadTextureAsync(context, texture, assign = () => { }) {
|
|
2085
|
-
const
|
|
2091
|
+
const trackAndAssign = (babylonTexture) => {
|
|
2092
|
+
this._trackTexture(texture, babylonTexture);
|
|
2093
|
+
assign(babylonTexture);
|
|
2094
|
+
};
|
|
2095
|
+
const extensionPromise = this._extensionsLoadTextureAsync(context, texture, trackAndAssign);
|
|
2086
2096
|
if (extensionPromise) {
|
|
2087
2097
|
return extensionPromise;
|
|
2088
2098
|
}
|
|
2089
2099
|
this.logOpen(`${context} ${texture.name || ""}`);
|
|
2090
2100
|
const sampler = texture.sampler == undefined ? GLTFLoader.DefaultSampler : ArrayItem.Get(`${context}/sampler`, this._gltf.samplers, texture.sampler);
|
|
2091
2101
|
const image = ArrayItem.Get(`${context}/source`, this._gltf.images, texture.source);
|
|
2092
|
-
const promise = this._createTextureAsync(context, sampler, image,
|
|
2102
|
+
const promise = this._createTextureAsync(context, sampler, image, trackAndAssign, undefined, !texture._textureInfo.nonColorData, texture);
|
|
2093
2103
|
this.logClose();
|
|
2094
2104
|
return promise;
|
|
2095
2105
|
}
|
|
2106
|
+
_trackTexture(texture, babylonTexture, imageIndex, samplerIndex) {
|
|
2107
|
+
texture._babylonTextures || (texture._babylonTextures = []);
|
|
2108
|
+
if (!texture._babylonTextures.includes(babylonTexture)) {
|
|
2109
|
+
texture._babylonTextures.push(babylonTexture);
|
|
2110
|
+
}
|
|
2111
|
+
texture._babylonTextureSources || (texture._babylonTextureSources = []);
|
|
2112
|
+
const existing = texture._babylonTextureSources.find((source) => source.babylonTexture === babylonTexture);
|
|
2113
|
+
const fallback = texture._babylonTextureSources[texture._babylonTextureSources.length - 1];
|
|
2114
|
+
const resolvedImageIndex = imageIndex ?? existing?.imageIndex ?? fallback?.imageIndex;
|
|
2115
|
+
if (resolvedImageIndex === undefined) {
|
|
2116
|
+
return;
|
|
2117
|
+
}
|
|
2118
|
+
if (existing) {
|
|
2119
|
+
existing.imageIndex = resolvedImageIndex;
|
|
2120
|
+
existing.samplerIndex = samplerIndex ?? existing.samplerIndex ?? fallback?.samplerIndex;
|
|
2121
|
+
}
|
|
2122
|
+
else {
|
|
2123
|
+
texture._babylonTextureSources.push({
|
|
2124
|
+
babylonTexture,
|
|
2125
|
+
imageIndex: resolvedImageIndex,
|
|
2126
|
+
samplerIndex: samplerIndex ?? fallback?.samplerIndex,
|
|
2127
|
+
});
|
|
2128
|
+
}
|
|
2129
|
+
}
|
|
2096
2130
|
/**
|
|
2097
2131
|
* @internal
|
|
2098
2132
|
*/
|
|
2099
|
-
_createTextureAsync(context, sampler, image, assign = () => { }, textureLoaderOptions, useSRGBBuffer) {
|
|
2133
|
+
_createTextureAsync(context, sampler, image, assign = () => { }, textureLoaderOptions, useSRGBBuffer, sourceTexture) {
|
|
2100
2134
|
const samplerData = this._loadSampler(`/samplers/${sampler.index}`, sampler);
|
|
2101
2135
|
const promises = new Array();
|
|
2102
2136
|
const deferred = new Deferred();
|
|
@@ -2120,6 +2154,9 @@ export class GLTFLoader {
|
|
|
2120
2154
|
useSRGBBuffer: !!useSRGBBuffer && this._parent.useSRGBBuffers,
|
|
2121
2155
|
};
|
|
2122
2156
|
const babylonTexture = new Texture(null, this._babylonScene, textureCreationOptions);
|
|
2157
|
+
if (sourceTexture) {
|
|
2158
|
+
this._trackTexture(sourceTexture, babylonTexture, image.index, sampler.index >= 0 ? sampler.index : undefined);
|
|
2159
|
+
}
|
|
2123
2160
|
babylonTexture._parentContainer = this._assetContainer;
|
|
2124
2161
|
this._babylonScene._blockEntityCollection = false;
|
|
2125
2162
|
promises.push(deferred.promise);
|
|
@@ -2424,8 +2461,13 @@ export class GLTFLoader {
|
|
|
2424
2461
|
_extensionsOnLoading() {
|
|
2425
2462
|
this._forEachExtensions((extension) => extension.onLoading && extension.onLoading());
|
|
2426
2463
|
}
|
|
2427
|
-
|
|
2428
|
-
|
|
2464
|
+
async _extensionsOnReadyAsync() {
|
|
2465
|
+
for (const extension of this._extensions) {
|
|
2466
|
+
if (extension.enabled && extension.onReady) {
|
|
2467
|
+
// eslint-disable-next-line no-await-in-loop -- extension order can define readiness dependencies
|
|
2468
|
+
await extension.onReady();
|
|
2469
|
+
}
|
|
2470
|
+
}
|
|
2429
2471
|
}
|
|
2430
2472
|
_extensionsLoadSceneAsync(context, scene) {
|
|
2431
2473
|
return this._applyExtensions(scene, "loadScene", (extension) => extension.loadSceneAsync && extension.loadSceneAsync(context, scene));
|