diff --git a/src/mol-canvas3d/canvas3d.ts b/src/mol-canvas3d/canvas3d.ts index e815b7f3f907e939b830fd8361a8974a049eaf00..8324d44065765de47563331dd12b4f909328799e 100644 --- a/src/mol-canvas3d/canvas3d.ts +++ b/src/mol-canvas3d/canvas3d.ts @@ -299,11 +299,11 @@ namespace Canvas3D { repr.renderObjects.forEach(o => scene.add(o)) } reprRenderObjects.set(repr, newRO) - reprCount.next(reprRenderObjects.size) scene.update() if (debugHelper.isEnabled) debugHelper.update() isUpdating = false requestDraw(true) + reprCount.next(reprRenderObjects.size) } handleResize() @@ -327,11 +327,11 @@ namespace Canvas3D { isUpdating = true renderObjects.forEach(o => scene.remove(o)) reprRenderObjects.delete(repr) - reprCount.next(reprRenderObjects.size) scene.update() if (debugHelper.isEnabled) debugHelper.update() isUpdating = false requestDraw(true) + reprCount.next(reprRenderObjects.size) } }, update: () => scene.update(), diff --git a/src/mol-canvas3d/helper/bounding-sphere-helper.ts b/src/mol-canvas3d/helper/bounding-sphere-helper.ts index cf86f9073a9428ed4867468348fa111806113cbf..cb2c3d85ebccb3c690059f34107ac106869c2c63 100644 --- a/src/mol-canvas3d/helper/bounding-sphere-helper.ts +++ b/src/mol-canvas3d/helper/bounding-sphere-helper.ts @@ -45,6 +45,8 @@ export class BoundingSphereHelper { if (newSceneData) this.sceneData = newSceneData const oldRO = new Set<RenderObject>() + this.objectsData.forEach((_, ro) => oldRO.add(ro)) + this.instancesData.forEach((_, ro) => oldRO.add(ro)) this.parent.forEach((r, ro) => { const objectData = this.objectsData.get(ro) const newObjectData = updateBoundingSphereData(this.scene, r.boundingSphere, objectData, ColorNames.tomato) @@ -69,6 +71,11 @@ export class BoundingSphereHelper { this.scene.remove(objectData.renderObject) this.objectsData.delete(ro) } + const instanceData = this.instancesData.get(ro) + if (instanceData) { + this.scene.remove(instanceData.renderObject) + this.instancesData.delete(ro) + } }) this.scene.update()