UNPKG

@cornerstonejs/core

Version:
29 lines (28 loc) 1.34 kB
import getSliceRange from '../../utilities/getSliceRange.js'; import getSpacingInNormalDirection from '../../utilities/getSpacingInNormalDirection.js'; import snapFocalPointToSlice from '../../utilities/snapFocalPointToSlice.js'; export function getPlanarVolumeSliceNavigationState(args) { const { actor, camera, imageVolume } = args; const { focalPoint, viewPlaneNormal } = camera; const sliceRange = getSliceRange(actor, viewPlaneNormal, focalPoint); const spacingInNormalDirection = getSpacingInNormalDirection(imageVolume, viewPlaneNormal); const steps = Math.round((sliceRange.max - sliceRange.min) / spacingInNormalDirection); const range = sliceRange.max - sliceRange.min; if (steps <= 0 || range === 0) { return { currentSliceIndex: 0, sliceRange, spacingInNormalDirection, }; } const fraction = (sliceRange.current - sliceRange.min) / range; return { currentSliceIndex: Math.round(fraction * steps), sliceRange, spacingInNormalDirection, }; } export function getPlanarVolumeSlicePoint(args) { const { camera, delta, sliceRange, spacingInNormalDirection } = args; return snapFocalPointToSlice(camera.focalPoint, camera.position, sliceRange, camera.viewPlaneNormal, spacingInNormalDirection, delta); }