From 1c10db5656746b76bdfd2524052bc8056d8f137b Mon Sep 17 00:00:00 2001 From: midlik Date: Fri, 27 Mar 2026 10:36:14 +0000 Subject: [PATCH] VolumeStreaming - avoid re-download on node update (#1804) --- .../behavior/dynamic/volume-streaming/transformers.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/mol-plugin/behavior/dynamic/volume-streaming/transformers.ts b/src/mol-plugin/behavior/dynamic/volume-streaming/transformers.ts index 80ac2056f..9ee445d7c 100644 --- a/src/mol-plugin/behavior/dynamic/volume-streaming/transformers.ts +++ b/src/mol-plugin/behavior/dynamic/volume-streaming/transformers.ts @@ -18,6 +18,7 @@ import { VolumeRepresentationRegistry } from '../../../../mol-repr/volume/regist import { StateAction, StateObject, StateTransformer } from '../../../../mol-state'; import { RuntimeContext, Task } from '../../../../mol-task'; import { Theme } from '../../../../mol-theme/theme'; +import { deepEqual } from '../../../../mol-util'; import { ParamDefinition as PD } from '../../../../mol-util/param-definition'; import { urlCombine } from '../../../../mol-util/url'; import { PluginConfig } from '../../../config'; @@ -216,7 +217,11 @@ const CreateVolumeStreamingInfo = PluginStateTransform.BuiltIn({ defaultChannelParams: params.defaultChannelParams, }; return new VolumeServerInfo(data, { label: 'Volume Server', description: `${entries.map(e => e.dataId).join(', ')}` }); - }) + }), + update({ a, b, oldParams, newParams }) { + if (a.data === b.data.structure && deepEqual(oldParams, newParams)) return StateTransformer.UpdateResult.Unchanged; + return StateTransformer.UpdateResult.Recreate; + }, }); export { CreateVolumeStreamingBehavior };