Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | 2x 2x 2x 2x 2x 2x 2x 2x 1x 2x 2x 2x 2x 2x | import {
BaseVolumeViewport,
getRenderingEngine,
StackViewport,
Types,
} from '@cornerstonejs/core';
/**
* Synchronizer callback to synchronize the voi of volumeActors of identical volumes
* in different viewports.
*
* @param synchronizerInstance - The Instance of the Synchronizer
* @param sourceViewport - The list of IDs defining the source viewport.
* @param targetViewport - The list of IDs defining the target viewport.
* @param modifiedEvent - The COLORMAP_MODIFIED or VOI_MODIFIED event.
* @param options - Options for the synchronizer.
*/
export default function voiSyncCallback(
synchronizerInstance,
sourceViewport: Types.IViewportId,
targetViewport: Types.IViewportId,
modifiedEvent: any,
options?: any
): void {
const eventDetail = modifiedEvent.detail;
const { volumeId, range, invertStateChanged, invert, colormap } = eventDetail;
const renderingEngine = getRenderingEngine(targetViewport.renderingEngineId);
Iif (!renderingEngine) {
throw new Error(
`Rendering Engine does not exist: ${targetViewport.renderingEngineId}`
);
}
const tViewport = renderingEngine.getViewport(targetViewport.viewportId);
const tProperties:
| Types.VolumeViewportProperties
| Types.StackViewportProperties = {
voiRange: range,
};
Iif (options?.syncInvertState && invertStateChanged) {
tProperties.invert = invert;
}
if (options?.syncColormap && colormap) {
tProperties.colormap = colormap;
}
if (tViewport instanceof BaseVolumeViewport) {
const isFusion = tViewport._actors && tViewport._actors.size > 1;
Iif (isFusion) {
tViewport.setProperties(tProperties, volumeId);
} else {
tViewport.setProperties(tProperties);
}
} else Eif (tViewport instanceof StackViewport) {
tViewport.setProperties(tProperties);
} else {
throw new Error('Viewport type not supported.');
}
tViewport.render();
}
|