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(); } |