From ae8c8ec98d1057745fbe1ef192b6378e7ad6551d Mon Sep 17 00:00:00 2001 From: Xiao Gui <xgui3783@gmail.com> Date: Wed, 5 Jul 2023 12:20:57 +0200 Subject: [PATCH] fix: screenshot in fsaverage --- docs/releases/v2.12.2.md | 5 +++++ mkdocs.yml | 1 + package.json | 2 +- src/ui/ui.module.ts | 16 +++++++++++++--- .../threeSurferGlue/threeSurfer.component.ts | 2 ++ 5 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 docs/releases/v2.12.2.md diff --git a/docs/releases/v2.12.2.md b/docs/releases/v2.12.2.md new file mode 100644 index 000000000..7cc249830 --- /dev/null +++ b/docs/releases/v2.12.2.md @@ -0,0 +1,5 @@ +# v2.12.2 + +## Bugfixes + +- fixes screenshot in fsaverage diff --git a/mkdocs.yml b/mkdocs.yml index 207b2580c..3b54fefc8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -33,6 +33,7 @@ nav: - Fetching datasets: 'advanced/datasets.md' - Display non-atlas volumes: 'advanced/otherVolumes.md' - Release notes: + - v2.12.2: 'releases/v2.12.2.md' - v2.12.1: 'releases/v2.12.1.md' - v2.12.0: 'releases/v2.12.0.md' - v2.11.4: 'releases/v2.11.4.md' diff --git a/package.json b/package.json index 5314a2daa..5746b8bb3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "siibra-explorer", - "version": "2.12.1", + "version": "2.12.2", "description": "siibra-explorer - explore brain atlases. Based on humanbrainproject/nehuba & google/neuroglancer. Built with angular", "scripts": { "lint": "eslint src --ext .ts", diff --git a/src/ui/ui.module.ts b/src/ui/ui.module.ts index 2e083c87b..98efd3854 100644 --- a/src/ui/ui.module.ts +++ b/src/ui/ui.module.ts @@ -40,11 +40,21 @@ import { HANDLE_SCREENSHOT_PROMISE, TypeHandleScrnShotPromise } from "../screens { provide: HANDLE_SCREENSHOT_PROMISE, useValue: ((param) => { - const canvas: HTMLCanvasElement = document.querySelector('#neuroglancer-container canvas') + const ngCanvas: HTMLCanvasElement = document.querySelector('#neuroglancer-container canvas') + const threeSurferCanvas: HTMLCanvasElement = document.querySelector('three-surfer-glue-cmp canvas') + + if (threeSurferCanvas) { + const tsViewer = window['tsViewer'] + tsViewer.renderer.render(tsViewer.scene, tsViewer.camera) + } + if (ngCanvas) { + window['viewer'].display.draw() + } + const canvas = ngCanvas || threeSurferCanvas if (!canvas) { - return Promise.reject(`element '#neuroglancer-container canvas' not found`) + return Promise.reject(`element '#neuroglancer-container canvas' or 'three-surfer-glue-cmp canvas' not found`) } - (window as any).viewer.display.draw() + if (!param) { return new Promise(rs => { canvas.toBlob(blob => { diff --git a/src/viewerModule/threeSurfer/threeSurferGlue/threeSurfer.component.ts b/src/viewerModule/threeSurfer/threeSurferGlue/threeSurfer.component.ts index 522d54c51..4af773b7b 100644 --- a/src/viewerModule/threeSurfer/threeSurferGlue/threeSurfer.component.ts +++ b/src/viewerModule/threeSurfer/threeSurferGlue/threeSurfer.component.ts @@ -824,11 +824,13 @@ export class ThreeSurferGlueCmp implements IViewer<'threeSurfer'>, AfterViewInit () => this.domEl.removeEventListener((window as any).ThreeSurfer.CUSTOM_EVENTNAME_UPDATED, customEvHandler) ) this.tsRef = new (window as any).ThreeSurfer(this.domEl, {highlightHovered: true}) + window['tsViewer'] = this.tsRef this.onDestroyCb.push( () => { this.tsRef.dispose() this.tsRef = null + window['tsViewer'] = null } ) this.tsRef.control.enablePan = false -- GitLab