@cornerstonejs/core
Version:
Cornerstone3D Core
23 lines (22 loc) • 919 B
JavaScript
import getVolumeSliceRangeInfo from './getVolumeSliceRangeInfo.js';
function getVolumeViewportScrollInfo(viewport, volumeId, useSlabThickness = false) {
const { sliceRange, spacingInNormalDirection, camera } = getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness);
const { min, max, current } = sliceRange;
const range = max - min;
const numScrollSteps = range === 0 ? 0 : Math.round(range / spacingInNormalDirection);
const fraction = range === 0 ? 0 : (current - min) / range;
const floatingStepNumber = fraction * numScrollSteps;
const currentStepIndex = Number.isFinite(floatingStepNumber)
? Math.round(floatingStepNumber)
: 0;
return {
numScrollSteps,
currentStepIndex,
sliceRangeInfo: {
sliceRange,
spacingInNormalDirection,
camera,
},
};
}
export default getVolumeViewportScrollInfo;