UNPKG

@cornerstonejs/core

Version:
35 lines (34 loc) 1.35 kB
import getSliceRange from './getSliceRange.js'; import getTargetVolumeAndSpacingInNormalDir from './getTargetVolumeAndSpacingInNormalDir.js'; function getImageSliceDataForVolumeViewport(viewport) { const camera = viewport.getCamera(); const { spacingInNormalDirection, imageVolume } = getTargetVolumeAndSpacingInNormalDir(viewport, camera); if (!imageVolume) { return; } const { viewPlaneNormal, focalPoint } = camera; const actorEntry = viewport .getActors() .find((a) => a.referencedId === imageVolume.volumeId || a.uid === imageVolume.volumeId); if (!actorEntry) { console.warn('No actor found for with actorUID of', imageVolume.volumeId); } const volumeActor = actorEntry.actor; const sliceRange = getSliceRange(volumeActor, viewPlaneNormal, focalPoint); const { min, max, current } = sliceRange; const numberOfSlices = Math.round((max - min) / spacingInNormalDirection) + 1; let imageIndex = ((current - min) / (max - min)) * numberOfSlices; imageIndex = Math.floor(imageIndex); if (imageIndex > numberOfSlices - 1) { imageIndex = numberOfSlices - 1; } else if (imageIndex < 0) { imageIndex = 0; } return { numberOfSlices, imageIndex, }; } export default getImageSliceDataForVolumeViewport;