From a70fdad0672e7dea144540ef3e7a9086fdda631e Mon Sep 17 00:00:00 2001 From: kovacsv Date: Sat, 24 May 2025 09:25:11 +0200 Subject: [PATCH 1/3] Update version. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 582943e..16daa6f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "online-3d-viewer", - "version": "0.16.0", + "version": "0.17.0", "description": "Online 3D Viewer", "license": "MIT", "type": "module", From 49e6b06280273244945daf0a0ca4361211a644d4 Mon Sep 17 00:00:00 2001 From: Viktor Kovacs Date: Sat, 6 Dec 2025 15:58:16 +0100 Subject: [PATCH 2/3] Fix error message handling in case of multiple loads. --- source/engine/viewer/embeddedviewer.js | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/source/engine/viewer/embeddedviewer.js b/source/engine/viewer/embeddedviewer.js index 92c8ad2..01bbd5e 100644 --- a/source/engine/viewer/embeddedviewer.js +++ b/source/engine/viewer/embeddedviewer.js @@ -31,6 +31,7 @@ export class EmbeddedViewer * @param {EnvironmentSettings} [parameters.environmentSettings] Environment settings. * @param {function} [parameters.onModelLoaded] Callback that is called when the model with all * of the textures is fully loaded. + * @param {function} [parameters.onModelLoadFailed] Callback that is called when the model load failed. */ constructor (parentElement, parameters) { @@ -69,6 +70,7 @@ export class EmbeddedViewer this.model = null; this.modelLoader = new ThreeModelLoader (); + this.progressDiv = null; window.addEventListener ('resize', () => { this.Resize (); }); @@ -120,26 +122,30 @@ export class EmbeddedViewer } this.model = null; - let progressDiv = null; + if (this.progressDiv !== null) { + this.parentElement.removeChild (this.progressDiv); + this.progressDiv = null; + } this.modelLoader.LoadModel (inputFiles, settings, { onLoadStart : () => { this.canvas.style.display = 'none'; - progressDiv = document.createElement ('div'); - progressDiv.innerHTML = Loc ('Loading model...'); - this.parentElement.appendChild (progressDiv); + this.progressDiv = document.createElement ('div'); + this.progressDiv.innerHTML = Loc ('Loading model...'); + this.parentElement.appendChild (this.progressDiv); }, onFileListProgress : (current, total) => { }, onFileLoadProgress : (current, total) => { }, onImportStart : () => { - progressDiv.innerHTML = Loc ('Importing model...'); + this.progressDiv.innerHTML = Loc ('Importing model...'); }, onVisualizationStart : () => { - progressDiv.innerHTML = Loc ('Visualizing model...'); + this.progressDiv.innerHTML = Loc ('Visualizing model...'); }, onModelFinished : (importResult, threeObject) => { - this.parentElement.removeChild (progressDiv); + this.parentElement.removeChild (this.progressDiv); + this.progressDiv = null; this.canvas.style.display = 'inherit'; this.viewer.SetMainObject (threeObject); let boundingSphere = this.viewer.GetBoundingSphere ((meshUserData) => { @@ -173,7 +179,10 @@ export class EmbeddedViewer if (importError.message !== null) { message += ' (' + importError.message + ')'; } - progressDiv.innerHTML = message; + this.progressDiv.innerHTML = message; + if (this.parameters.onModelLoadFailed) { + this.parameters.onModelLoadFailed (); + } } }); } From 9d1b463f7b68f8447b12b4beee2f8539d6738e7a Mon Sep 17 00:00:00 2001 From: Viktor Kovacs Date: Sat, 6 Dec 2025 16:08:41 +0100 Subject: [PATCH 3/3] Update documentation. --- docs/Class_EmbeddedViewer.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/Class_EmbeddedViewer.html b/docs/Class_EmbeddedViewer.html index 3d61cd6..15cf588 100644 --- a/docs/Class_EmbeddedViewer.html +++ b/docs/Class_EmbeddedViewer.html @@ -142,6 +142,14 @@
Callback that is called when the model with all of the textures is fully loaded.
+
+onModelLoadFailed +function +(optional) +
+
+
Callback that is called when the model load failed.
+

Methods