diff --git a/src/mol-plugin/behavior/dynamic/representation.ts b/src/mol-plugin/behavior/dynamic/representation.ts index 451f9a0b08340a8ca434fa12eedee49af01803cd..de55868e977da7566d2d48a95042ac64caa57235 100644 --- a/src/mol-plugin/behavior/dynamic/representation.ts +++ b/src/mol-plugin/behavior/dynamic/representation.ts @@ -245,10 +245,10 @@ export namespace ColorRepresentation3D { if (parsed.length === 0) throw new Error('No query'); const query = transpileMolScript(parsed[0]); - return this.apply([{ query, color: params.color }]) + return this.applyMappings([{ query, color: params.color }]) } - private apply(colorMappings: ColorMappings): boolean { + private applyMappings(colorMappings: ColorMappings): boolean { if (!this.updateData() && ColorMappings.areEqual(colorMappings, this.currentColorMappings)) return false; this.currentColorMappings = colorMappings; if (!this.repr.data || !this.structure.data) return true; @@ -266,16 +266,19 @@ export namespace ColorRepresentation3D { const loci = StructureSelection.toLoci2(result) layers.push({ loci, color, alpha: 1 }) } - this.repr.data.setOverpaint(layers) + return this.applyLayers(layers) + } + private applyLayers(layers: Overpaint.Layers): boolean { + if (!this.repr.data) return true; + this.repr.data.setOverpaint(layers) this.ctx.canvas3d.add(this.repr.data); this.ctx.canvas3d.requestDraw(true); - return true; } unregister(): void { - this.apply([]) + this.applyLayers([{ loci: EveryLoci, color: ColorNames.black, alpha: 0 }]) // clear this.repr.cell = void 0; this.structure.cell = void 0; }