UNPKG

@cornerstonejs/core

Version:
40 lines (39 loc) 1.53 kB
import getImageSliceDataForVolumeViewport from '../../utilities/getImageSliceDataForVolumeViewport.js'; import triggerEvent from '../../utilities/triggerEvent.js'; import { Events } from '../../enums/index.js'; import { getRenderingEngine } from '../getRenderingEngine.js'; const state = {}; export function resetVolumeNewImageState(viewportId) { if (state[viewportId] !== undefined) { delete state[viewportId]; } } function volumeNewImageEventDispatcher(cameraEvent) { const { renderingEngineId, viewportId } = cameraEvent.detail; const renderingEngine = getRenderingEngine(renderingEngineId); const viewport = renderingEngine.getViewport(viewportId); if (!('setVolumes' in viewport)) { throw new Error(`volumeNewImageEventDispatcher: viewport does not have setVolumes method`); } if (state[viewport.id] === undefined) { state[viewport.id] = 0; } const sliceData = getImageSliceDataForVolumeViewport(viewport); if (!sliceData) { console.warn(`volumeNewImageEventDispatcher: sliceData is undefined for viewport ${viewport.id}`); return; } const { numberOfSlices, imageIndex } = sliceData; if (state[viewport.id] === imageIndex) { return; } state[viewport.id] = imageIndex; const eventDetail = { imageIndex, viewportId, renderingEngineId, numberOfSlices, }; triggerEvent(viewport.element, Events.VOLUME_NEW_IMAGE, eventDetail); } export default volumeNewImageEventDispatcher;