@cornerstonejs/core
Version:
Cornerstone3D Core
29 lines (28 loc) • 1.34 kB
JavaScript
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);
}