diff --git a/src/viewport-three/viewport-host.ts b/src/viewport-three/viewport-host.ts index 37b99716..960d42f5 100644 --- a/src/viewport-three/viewport-host.ts +++ b/src/viewport-three/viewport-host.ts @@ -8678,28 +8678,31 @@ export class ViewportHost { private clearEntityMarkers() { for (const renderObjects of this.entityRenderObjects.values()) { this.entityGroup.remove(renderObjects.group); - - if (renderObjects.dispose !== undefined) { - renderObjects.dispose(); - continue; - } - - for (const mesh of renderObjects.meshes) { - mesh.geometry.dispose(); - - if (Array.isArray(mesh.material)) { - for (const material of mesh.material) { - material.dispose(); - } - } else { - mesh.material.dispose(); - } - } + this.disposeEntityRenderObjects(renderObjects); } this.entityRenderObjects.clear(); } + private disposeEntityRenderObjects(renderObjects: EntityRenderObjects) { + if (renderObjects.dispose !== undefined) { + renderObjects.dispose(); + return; + } + + for (const mesh of renderObjects.meshes) { + mesh.geometry.dispose(); + + if (Array.isArray(mesh.material)) { + for (const material of mesh.material) { + material.dispose(); + } + } else { + mesh.material.dispose(); + } + } + } + private clearModelInstances() { for (const renderGroup of this.modelRenderObjects.values()) { this.modelGroup.remove(renderGroup);