fix(rotate): Use new MPR rotate in react-vtkjs-viewport 0.1.2 (#964)

This commit is contained in:
Zaid Safadi 2019-10-01 16:21:31 -04:00 committed by Erik Ziegler
parent c8667fb2d6
commit 8503cbce4e
3 changed files with 24 additions and 17 deletions

View File

@ -48,7 +48,7 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.5.5", "@babel/runtime": "^7.5.5",
"react-vtkjs-viewport": "0.1.0" "react-vtkjs-viewport": "0.1.2"
}, },
"devDependencies": { "devDependencies": {
"@ohif/core": "^1.0.1", "@ohif/core": "^1.0.1",

View File

@ -2,6 +2,7 @@ import {
vtkInteractorStyleMPRCrosshairs, vtkInteractorStyleMPRCrosshairs,
vtkInteractorStyleMPRWindowLevel, vtkInteractorStyleMPRWindowLevel,
vtkInteractorStyleMPRSlice, vtkInteractorStyleMPRSlice,
vtkInteractorStyleMPRRotate,
vtkSVGCrosshairsWidget, vtkSVGCrosshairsWidget,
vtkSVGWidgetManager, vtkSVGWidgetManager,
} from 'react-vtkjs-viewport'; } from 'react-vtkjs-viewport';
@ -99,7 +100,7 @@ function _setView(api, sliceNormal, viewUp) {
const camera = renderer.getActiveCamera(); const camera = renderer.getActiveCamera();
const istyle = renderWindow.getInteractor().getInteractorStyle(); const istyle = renderWindow.getInteractor().getInteractorStyle();
istyle.setSliceNormal(...sliceNormal); istyle.setSliceNormal(...sliceNormal);
camera.setViewUp(...viewUp); istyle.setViewUp(...viewUp);
renderWindow.render(); renderWindow.render();
} }
@ -110,9 +111,9 @@ function switchMPRInteractors(api, istyle) {
const camera = renderer.getActiveCamera(); const camera = renderer.getActiveCamera();
const currentIStyle = renderWindow.getInteractor().getInteractorStyle(); const currentIStyle = renderWindow.getInteractor().getInteractorStyle();
let currentNormal; let currentViewport;
if (currentIStyle.getSliceNormal && istyle.getSliceNormal) { if (currentIStyle.getViewport && istyle.getViewport) {
currentNormal = currentIStyle.getSliceNormal(); currentViewport = currentIStyle.getViewport();
} }
let currentSlabThickness; let currentSlabThickness;
@ -126,11 +127,11 @@ function switchMPRInteractors(api, istyle) {
// TODO: Not sure why this is required the second time this function is called // TODO: Not sure why this is required the second time this function is called
istyle.setInteractor(renderWindow.getInteractor()); istyle.setInteractor(renderWindow.getInteractor());
if (istyle.getVolumeMapper() !== api.volumes[0]) { if (currentViewport) {
if (currentNormal) { istyle.setViewport(currentViewport);
istyle.setSliceNormal(currentNormal); }
}
if (istyle.getVolumeMapper() !== api.volumes[0]) {
if (currentSlabThickness) { if (currentSlabThickness) {
istyle.setSlabThickness(currentSlabThickness); istyle.setSlabThickness(currentSlabThickness);
} }
@ -163,7 +164,7 @@ const actions = {
}, },
enableRotateTool: () => { enableRotateTool: () => {
apis.forEach(api => { apis.forEach(api => {
const istyle = vtkInteractorStyleMPRSlice.newInstance(); const istyle = vtkInteractorStyleMPRRotate.newInstance();
switchMPRInteractors(api, istyle); switchMPRInteractors(api, istyle);
}); });
@ -303,18 +304,18 @@ const actions = {
case 0: case 0:
//Axial //Axial
istyle.setSliceNormal(0, 0, 1); istyle.setSliceNormal(0, 0, 1);
camera.setViewUp(0, -1, 0); istyle.setViewUp(0, -1, 0);
break; break;
case 1: case 1:
// sagittal // sagittal
istyle.setSliceNormal(1, 0, 0); istyle.setSliceNormal(1, 0, 0);
camera.setViewUp(0, 0, 1); istyle.setViewUp(0, 0, 1);
break; break;
case 2: case 2:
// Coronal // Coronal
istyle.setSliceNormal(0, 1, 0); istyle.setSliceNormal(0, 1, 0);
camera.setViewUp(0, 0, 1); istyle.setViewUp(0, 0, 1);
break; break;
} }

View File

@ -8273,6 +8273,11 @@ gl-matrix@3.0.0:
resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-3.0.0.tgz#888301ac7650e148c3865370e13ec66d08a8381f" resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-3.0.0.tgz#888301ac7650e148c3865370e13ec66d08a8381f"
integrity sha512-PD4mVH/C/Zs64kOozeFnKY8ybhgwxXXQYGWdB4h68krAHknWJgk9uKOn6z8YElh5//vs++90pb6csrTIDWnexA== integrity sha512-PD4mVH/C/Zs64kOozeFnKY8ybhgwxXXQYGWdB4h68krAHknWJgk9uKOn6z8YElh5//vs++90pb6csrTIDWnexA==
gl-matrix@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-3.1.0.tgz#f5b2de17d8fed95a79e5025b10cded0ab9ccbed0"
integrity sha512-526NA+3EA+ztAQi0IZpSWiM0fyQXIp7IbRvfJ4wS/TjjQD0uv0fVybXwwqqSOlq33UckivI0yMDlVtboWm3k7A==
gl-preserve-state@^1.0.0: gl-preserve-state@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/gl-preserve-state/-/gl-preserve-state-1.0.0.tgz#4ef710d62873f1470ed015c6546c37dacddd4198" resolved "https://registry.yarnpkg.com/gl-preserve-state/-/gl-preserve-state-1.0.0.tgz#4ef710d62873f1470ed015c6546c37dacddd4198"
@ -14954,12 +14959,13 @@ react-transition-group@^4.1.1:
loose-envify "^1.4.0" loose-envify "^1.4.0"
prop-types "^15.6.2" prop-types "^15.6.2"
react-vtkjs-viewport@0.1.0: react-vtkjs-viewport@0.1.2:
version "0.1.0" version "0.1.2"
resolved "https://registry.yarnpkg.com/react-vtkjs-viewport/-/react-vtkjs-viewport-0.1.0.tgz#a00b114b635ff95a82ae1227d70c248e4cafddf4" resolved "https://registry.yarnpkg.com/react-vtkjs-viewport/-/react-vtkjs-viewport-0.1.2.tgz#087af73b1c46627c5079d25ab1b0d3866cb7b06b"
integrity sha512-0gnRfntpV6ZBNvZOHzjHapFeJajO8nfkSvO5SNUu41bkyXxqYcJwZvb3EWbd04V1RnA0AnKRoR/KL+I09Os7gg== integrity sha512-1UejtY8i6LhK2FXouD7so2VRYbdjo7w80VUQ6EesyurBAZYAYW3ppvAlBjtvMlJhYZn13wwE3gTFAbrHPVPjDw==
dependencies: dependencies:
date-fns "^2.2.1" date-fns "^2.2.1"
gl-matrix "^3.1.0"
react-with-direction@1.3.0: react-with-direction@1.3.0:
version "1.3.0" version "1.3.0"