UNPKG

@cornerstonejs/core

Version:
36 lines (35 loc) 1.43 kB
import clip from './clip.js'; import scroll from './scroll.js'; import getEnabledElement from '../getEnabledElement.js'; import StackViewport from '../RenderingEngine/StackViewport.js'; async function jumpToSlice(element, options = {}) { const { imageIndex, debounceLoading, volumeId } = options; const enabledElement = getEnabledElement(element); if (!enabledElement) { throw new Error('Element has been disabled'); } const { viewport } = enabledElement; const { imageIndex: currentImageIndex, numberOfSlices } = _getImageSliceData(viewport, debounceLoading); const imageIndexToJump = _getImageIndexToJump(numberOfSlices, imageIndex); const delta = imageIndexToJump - currentImageIndex; scroll(viewport, { delta, debounceLoading, volumeId }); } function _getImageSliceData(viewport, debounceLoading) { if (viewport instanceof StackViewport) { return { numberOfSlices: viewport.getImageIds().length, imageIndex: debounceLoading ? viewport.getTargetImageIdIndex() : viewport.getCurrentImageIdIndex(), }; } return { numberOfSlices: viewport.getNumberOfSlices(), imageIndex: viewport.getSliceIndex(), }; } function _getImageIndexToJump(numberOfSlices, imageIndex) { const lastSliceIndex = numberOfSlices - 1; return clip(imageIndex, 0, lastSliceIndex); } export { jumpToSlice };