From 2d8c588fbd0b992e3eb57f335c62ff2a07277b06 Mon Sep 17 00:00:00 2001 From: Xiao Gui <xgui3783@gmail.com> Date: Fri, 2 Jun 2023 13:28:38 +0200 Subject: [PATCH] fix: custom color map bypass selected region --- .../nehuba/layerCtrl.service/layerCtrl.service.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/viewerModule/nehuba/layerCtrl.service/layerCtrl.service.ts b/src/viewerModule/nehuba/layerCtrl.service/layerCtrl.service.ts index 5f1e17c0f..be87e8eee 100644 --- a/src/viewerModule/nehuba/layerCtrl.service/layerCtrl.service.ts +++ b/src/viewerModule/nehuba/layerCtrl.service/layerCtrl.service.ts @@ -54,6 +54,8 @@ export class NehubaLayerControlService implements OnDestroy{ const cmCustomLayers = layers.filter(l => l.clType === "customlayer/colormap") as atlasAppearance.const.ColorMapCustomLayer[] const cmBaseLayers = layers.filter(l => l.clType === "baselayer/colormap") as atlasAppearance.const.ColorMapCustomLayer[] + const usingCustomCM = cmCustomLayers.length > 0 + const useCm = (() => { /** * if custom layer exist, use the last custom layer @@ -79,7 +81,12 @@ export class NehubaLayerControlService implements OnDestroy{ for (const [ngId, labelRecord] of Object.entries(record)) { for (const [label, region] of Object.entries(labelRecord)) { if (!region.color) continue - const [ red, green, blue ] = selectedRegionNameSet.size === 0 || selectedRegionNameSet.has(region.name) + /** + * if custom color map is used, do *not* selectively paint selected region + * custom color map can choose to subscribe to selected regions, and update the color map accordingly, + * if they wish to respect the selected regions + */ + const [ red, green, blue ] = usingCustomCM || selectedRegionNameSet.size === 0 || selectedRegionNameSet.has(region.name) ? useCm.get(region) || [200, 200, 200] : [255, 255, 255] if (!returnVal[ngId]) { -- GitLab