diff --git a/extensions/vtk/package.json b/extensions/vtk/package.json index 6d036d00d..b1c04a15f 100644 --- a/extensions/vtk/package.json +++ b/extensions/vtk/package.json @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.5.5", - "react-vtkjs-viewport": "0.1.0" + "react-vtkjs-viewport": "0.1.2" }, "devDependencies": { "@ohif/core": "^1.0.1", diff --git a/extensions/vtk/src/commandsModule.js b/extensions/vtk/src/commandsModule.js index d57156712..dd6a3bcf2 100644 --- a/extensions/vtk/src/commandsModule.js +++ b/extensions/vtk/src/commandsModule.js @@ -2,6 +2,7 @@ import { vtkInteractorStyleMPRCrosshairs, vtkInteractorStyleMPRWindowLevel, vtkInteractorStyleMPRSlice, + vtkInteractorStyleMPRRotate, vtkSVGCrosshairsWidget, vtkSVGWidgetManager, } from 'react-vtkjs-viewport'; @@ -99,7 +100,7 @@ function _setView(api, sliceNormal, viewUp) { const camera = renderer.getActiveCamera(); const istyle = renderWindow.getInteractor().getInteractorStyle(); istyle.setSliceNormal(...sliceNormal); - camera.setViewUp(...viewUp); + istyle.setViewUp(...viewUp); renderWindow.render(); } @@ -110,9 +111,9 @@ function switchMPRInteractors(api, istyle) { const camera = renderer.getActiveCamera(); const currentIStyle = renderWindow.getInteractor().getInteractorStyle(); - let currentNormal; - if (currentIStyle.getSliceNormal && istyle.getSliceNormal) { - currentNormal = currentIStyle.getSliceNormal(); + let currentViewport; + if (currentIStyle.getViewport && istyle.getViewport) { + currentViewport = currentIStyle.getViewport(); } let currentSlabThickness; @@ -126,11 +127,11 @@ function switchMPRInteractors(api, istyle) { // TODO: Not sure why this is required the second time this function is called istyle.setInteractor(renderWindow.getInteractor()); - if (istyle.getVolumeMapper() !== api.volumes[0]) { - if (currentNormal) { - istyle.setSliceNormal(currentNormal); - } + if (currentViewport) { + istyle.setViewport(currentViewport); + } + if (istyle.getVolumeMapper() !== api.volumes[0]) { if (currentSlabThickness) { istyle.setSlabThickness(currentSlabThickness); } @@ -163,7 +164,7 @@ const actions = { }, enableRotateTool: () => { apis.forEach(api => { - const istyle = vtkInteractorStyleMPRSlice.newInstance(); + const istyle = vtkInteractorStyleMPRRotate.newInstance(); switchMPRInteractors(api, istyle); }); @@ -303,18 +304,18 @@ const actions = { case 0: //Axial istyle.setSliceNormal(0, 0, 1); - camera.setViewUp(0, -1, 0); + istyle.setViewUp(0, -1, 0); break; case 1: // sagittal istyle.setSliceNormal(1, 0, 0); - camera.setViewUp(0, 0, 1); + istyle.setViewUp(0, 0, 1); break; case 2: // Coronal istyle.setSliceNormal(0, 1, 0); - camera.setViewUp(0, 0, 1); + istyle.setViewUp(0, 0, 1); break; } diff --git a/yarn.lock b/yarn.lock index c2f5e6238..7095b3ea5 100644 --- a/yarn.lock +++ b/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" 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: version "1.0.0" 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" prop-types "^15.6.2" -react-vtkjs-viewport@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/react-vtkjs-viewport/-/react-vtkjs-viewport-0.1.0.tgz#a00b114b635ff95a82ae1227d70c248e4cafddf4" - integrity sha512-0gnRfntpV6ZBNvZOHzjHapFeJajO8nfkSvO5SNUu41bkyXxqYcJwZvb3EWbd04V1RnA0AnKRoR/KL+I09Os7gg== +react-vtkjs-viewport@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/react-vtkjs-viewport/-/react-vtkjs-viewport-0.1.2.tgz#087af73b1c46627c5079d25ab1b0d3866cb7b06b" + integrity sha512-1UejtY8i6LhK2FXouD7so2VRYbdjo7w80VUQ6EesyurBAZYAYW3ppvAlBjtvMlJhYZn13wwE3gTFAbrHPVPjDw== dependencies: date-fns "^2.2.1" + gl-matrix "^3.1.0" react-with-direction@1.3.0: version "1.3.0"