fix(rotate): Use new MPR rotate in react-vtkjs-viewport 0.1.2 (#964)
This commit is contained in:
parent
c8667fb2d6
commit
8503cbce4e
@ -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",
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
14
yarn.lock
14
yarn.lock
@ -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"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user