From 52fba8d952b28a1b25d33c2bb457852a6a14e720 Mon Sep 17 00:00:00 2001 From: Winnie Lin Date: Fri, 30 May 2025 13:02:24 -0700 Subject: [PATCH 1/3] wip pieces for integration test run --- dist/forge.module.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/dist/forge.module.js b/dist/forge.module.js index 196e5e7e..531dbc56 100644 --- a/dist/forge.module.js +++ b/dist/forge.module.js @@ -8288,7 +8288,7 @@ function WorkerWrapper(options) { try { objURL = blob && (self.URL || self.webkitURL).createObjectURL(blob); if (!objURL) throw ""; - const worker = new Worker(objURL, { + const worker = new window.Worker(objURL, { name: options == null ? void 0 : options.name }); worker.addEventListener("error", () => { @@ -8296,7 +8296,7 @@ function WorkerWrapper(options) { }); return worker; } catch (e) { - return new Worker( + return new window.Worker( "data:text/javascript;charset=utf-8," + encodeURIComponent(jsContent), { name: options == null ? void 0 : options.name @@ -9762,13 +9762,22 @@ function getShaders() { } return shaders; } +function hasSplatMeshInHierarchy(object) { + let found = false; + object.traverse((child) => { + if (child instanceof SplatMesh) { + found = true; + } + }); + return found; +} const MAX_ACCUMULATORS = 5; let hasSplatMesh = false; let hasForgeRenderer = false; let forgeRendererInstance; const sceneAdd = THREE.Scene.prototype.add; THREE.Scene.prototype.add = function(object) { - hasSplatMesh = hasSplatMesh || object instanceof SplatMesh; + hasSplatMesh = hasSplatMesh || hasSplatMeshInHierarchy(object); hasForgeRenderer = hasForgeRenderer || object instanceof ForgeRenderer; sceneAdd.call(this, object); return this; From 0bc0924f3a9113e7349e467f6b00f71c8454a638 Mon Sep 17 00:00:00 2001 From: Winnie Lin Date: Fri, 30 May 2025 14:34:30 -0700 Subject: [PATCH 2/3] move changes into src --- src/ForgeRenderer.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ForgeRenderer.ts b/src/ForgeRenderer.ts index 4c71cfe6..939175b2 100644 --- a/src/ForgeRenderer.ts +++ b/src/ForgeRenderer.ts @@ -43,9 +43,20 @@ let hasForgeRenderer = false; let forgeRendererInstance: ForgeRenderer; +// Helper function to check if a THREE.Object3D has a SplatMesh in its hierarchy +function hasSplatMeshInHierarchy(object: THREE.Object3D) { + let found = false; + object.traverse((child) => { + if (child instanceof SplatMesh) { + found = true; + } + }); + return found; +} + const sceneAdd = THREE.Scene.prototype.add; THREE.Scene.prototype.add = function (object) { - hasSplatMesh = hasSplatMesh || object instanceof SplatMesh; + hasSplatMesh = hasSplatMesh || hasSplatMeshInHierarchy(object); hasForgeRenderer = hasForgeRenderer || object instanceof ForgeRenderer; sceneAdd.call(this, object); return this; From 3f2b762161a309a3968ef7eb3c422235161104af Mon Sep 17 00:00:00 2001 From: Winnie Lin Date: Sat, 31 May 2025 10:58:08 -0700 Subject: [PATCH 3/3] revert dist changes --- dist/forge.module.js | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/dist/forge.module.js b/dist/forge.module.js index 531dbc56..196e5e7e 100644 --- a/dist/forge.module.js +++ b/dist/forge.module.js @@ -8288,7 +8288,7 @@ function WorkerWrapper(options) { try { objURL = blob && (self.URL || self.webkitURL).createObjectURL(blob); if (!objURL) throw ""; - const worker = new window.Worker(objURL, { + const worker = new Worker(objURL, { name: options == null ? void 0 : options.name }); worker.addEventListener("error", () => { @@ -8296,7 +8296,7 @@ function WorkerWrapper(options) { }); return worker; } catch (e) { - return new window.Worker( + return new Worker( "data:text/javascript;charset=utf-8," + encodeURIComponent(jsContent), { name: options == null ? void 0 : options.name @@ -9762,22 +9762,13 @@ function getShaders() { } return shaders; } -function hasSplatMeshInHierarchy(object) { - let found = false; - object.traverse((child) => { - if (child instanceof SplatMesh) { - found = true; - } - }); - return found; -} const MAX_ACCUMULATORS = 5; let hasSplatMesh = false; let hasForgeRenderer = false; let forgeRendererInstance; const sceneAdd = THREE.Scene.prototype.add; THREE.Scene.prototype.add = function(object) { - hasSplatMesh = hasSplatMesh || hasSplatMeshInHierarchy(object); + hasSplatMesh = hasSplatMesh || object instanceof SplatMesh; hasForgeRenderer = hasForgeRenderer || object instanceof ForgeRenderer; sceneAdd.call(this, object); return this;