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 | import { getRenderingEngine, Types } from '@cornerstonejs/core';
import { Synchronizer } from '../../store';
/**
* Synchronizer callback to synchronize the camera. Synchronization
*
* targetViewport.options.syncZoom set to false to not sync the zoom
* targetViewport.options.syncPan set to false to not sync the pan
* @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, different
* from sourceViewport
*/
export default function zoomPanSyncCallback(
synchronizerInstance: Synchronizer,
sourceViewport: Types.IViewportId,
targetViewport: Types.IViewportId
): void {
const renderingEngine = getRenderingEngine(targetViewport.renderingEngineId);
if (!renderingEngine) {
throw new Error(
`No RenderingEngine for Id: ${targetViewport.renderingEngineId}`
);
}
const options = synchronizerInstance.getOptions(targetViewport.viewportId);
const tViewport = renderingEngine.getViewport(targetViewport.viewportId);
const sViewport = renderingEngine.getViewport(sourceViewport.viewportId);
if (options?.syncZoom !== false) {
const srcZoom = sViewport.getZoom();
// Do the zoom first, as the pan is relative to the zoom level
tViewport.setZoom(srcZoom);
}
if (options?.syncPan !== false) {
const srcPan = sViewport.getPan();
tViewport.setPan(srcPan);
}
tViewport.render();
}
|