diff --git a/src/atlasComponents/connectivity/connectivityBrowser/connectivityBrowser.component.ts b/src/atlasComponents/connectivity/connectivityBrowser/connectivityBrowser.component.ts index af4f139d68610b4fd275c5e202866e941040b1d7..f7573cfb517e00266c8c02cee7cbd271dc30880b 100644 --- a/src/atlasComponents/connectivity/connectivityBrowser/connectivityBrowser.component.ts +++ b/src/atlasComponents/connectivity/connectivityBrowser/connectivityBrowser.component.ts @@ -73,6 +73,12 @@ export class ConnectivityBrowserComponent implements OnInit, AfterViewInit, OnDe type: 'SET_OVERWRITTEN_COLOR_MAP', payload: flag? CONNECTIVITY_NAME_PLATE : false, }) + + if (flag) { + this.addNewColorMap() + } else { + this.restoreDefaultColormap() + } } @Output() @@ -381,7 +387,7 @@ export class ConnectivityBrowserComponent implements OnInit, AfterViewInit, OnDe public addNewColorMap() { if (!this.defaultColorMap) { - this.defaultColorMap = new Map(getWindow().interactiveViewer.viewerHandle.getLayersSegmentColourMap()) + this.defaultColorMap = getWindow().interactiveViewer.viewerHandle.getLayersSegmentColourMap() } const existingMap: Map<string, Map<number, { red: number, green: number, blue: number }>> = (getWindow().interactiveViewer.viewerHandle.getLayersSegmentColourMap()) diff --git a/src/util/fn.ts b/src/util/fn.ts index d635978e7a4d9e2b4c6bbf2d475b0162b5b5eb60..db3ad47ce6e43a8065bef6acc0459be9a72d5d99 100644 --- a/src/util/fn.ts +++ b/src/util/fn.ts @@ -143,6 +143,14 @@ export class QuickHash { } } +// fsaverage uses threesurfer, which, whilst do not use ngId, uses 'left' and 'right' as keys +const fsAverageKeyVal = { + "minds/core/parcellationatlas/v1.0.0/94c1125b-b87e-45e4-901c-00daee7f2579-290": { + "left hemisphere": "left", + "right hemisphere": "right" + } +} + /** * in order to maintain backwards compat with url encoding of selected regions * TODO setup a sentry to catch if these are ever used. if not, retire the hard coding @@ -234,7 +242,10 @@ const BACKCOMAP_KEY_DICT = { "juelich/iav/atlas/v1.0.0/3": { "whole brain": "cortical layers" }, - } + }, + + // fsaverage + "minds/core/referencespace/v1.0.0/tmp-fsaverage": fsAverageKeyVal, } } diff --git a/src/viewerModule/threeSurfer/threeSurferGlue/threeSurfer.component.ts b/src/viewerModule/threeSurfer/threeSurferGlue/threeSurfer.component.ts index 47e58895e7c2260afae4cb3e0df91e3375ec1440..c720fb1a073c5432924cc527d8192c5ca376806b 100644 --- a/src/viewerModule/threeSurfer/threeSurferGlue/threeSurfer.component.ts +++ b/src/viewerModule/threeSurfer/threeSurferGlue/threeSurfer.component.ts @@ -68,6 +68,8 @@ function cameraNavsAreSimilar(c1: TCameraOrientation, c2: TCameraOrientation){ export class ThreeSurferGlueCmp implements IViewer<'threeSurfer'>, OnChanges, AfterViewInit, OnDestroy { + private loanedColorMap = new WeakSet() + @Input() selectedTemplate: any @@ -109,16 +111,22 @@ export class ThreeSurferGlueCmp implements IViewer<'threeSurfer'>, OnChanges, Af add3DLandmarks: nyi, loadLayer: nyi, applyLayersColourMap: (map: Map<string, Map<number, { red: number, green: number, blue: number }>>) => { - const applyCm = new Map() - for (const [hem, m] of map.entries()) { - const nMap = new Map() - applyCm.set(hem, nMap) - for (const [lbl, vals] of m.entries()) { - const { red, green, blue } = vals - nMap.set(lbl, [red/255, green/255, blue/255]) + if (this.loanedColorMap.has(map)) { + this.externalHemisphLblColorMap = null + } else { + + const applyCm = new Map() + for (const [hem, m] of map.entries()) { + const nMap = new Map() + applyCm.set(hem, nMap) + for (const [lbl, vals] of m.entries()) { + const { red, green, blue } = vals + nMap.set(lbl, [red/255, green/255, blue/255]) + } } + this.externalHemisphLblColorMap = applyCm } - this.externalHemisphLblColorMap = applyCm + this.applyColorMap() }, getLayersSegmentColourMap: () => { const map = this.getColormapCopy() @@ -134,6 +142,7 @@ export class ThreeSurferGlueCmp implements IViewer<'threeSurfer'>, OnChanges, Af }) } } + this.loanedColorMap.add(outmap) return outmap }, getNgHash: nyi,