From 6c957f1e84eda9e13ab936abc620c6d688c8fd72 Mon Sep 17 00:00:00 2001 From: Alexander Rose <alex.rose@rcsb.org> Date: Fri, 8 Mar 2019 11:19:26 -0800 Subject: [PATCH] fix ExplodeStructureRepresentation3D to use root structure --- .../state/transforms/representation.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/mol-plugin/state/transforms/representation.ts b/src/mol-plugin/state/transforms/representation.ts index 3272ccf42..d13614ea4 100644 --- a/src/mol-plugin/state/transforms/representation.ts +++ b/src/mol-plugin/state/transforms/representation.ts @@ -278,23 +278,24 @@ const ExplodeStructureRepresentation3D = PluginStateTransform.BuiltIn({ canAutoUpdate() { return true; }, - apply({ a, params }) { + apply({ a, params, spine }) { + const rootStructure = spine.getRootOfType(SO.Molecule.Structure)!.data; const structure = a.data.source.data; - const unitTransforms = new StructureUnitTransforms(structure); + const unitTransforms = new StructureUnitTransforms(rootStructure); explodeStructure(structure, unitTransforms, params.t); return new SO.Molecule.Structure.Representation3DState({ state: { unitTransforms }, - initialState: { unitTransforms: new StructureUnitTransforms(structure) }, - info: structure, + initialState: { unitTransforms: new StructureUnitTransforms(rootStructure) }, + info: rootStructure, source: a }, { label: `Explode T = ${params.t.toFixed(2)}` }); }, - update({ a, b, newParams, oldParams }) { - const structure = b.data.info as Structure; - if (a.data.source.data !== structure) return StateTransformer.UpdateResult.Recreate; + update({ a, b, newParams, oldParams, spine }) { + const rootStructure = spine.getRootOfType(SO.Molecule.Structure)!.data; + if (b.data.info !== rootStructure) return StateTransformer.UpdateResult.Recreate; if (oldParams.t === newParams.t) return StateTransformer.UpdateResult.Unchanged; const unitTransforms = b.data.state.unitTransforms!; - explodeStructure(structure, unitTransforms, newParams.t); + explodeStructure(rootStructure, unitTransforms, newParams.t); b.label = `Explode T = ${newParams.t.toFixed(2)}`; b.data.source = a; return StateTransformer.UpdateResult.Updated; -- GitLab