@cornerstonejs/core
Version:
Cornerstone3D Core
31 lines (30 loc) • 1.22 kB
JavaScript
import { getRenderingEngines, getRenderingEngine, } from '../RenderingEngine/getRenderingEngine.js';
import { viewportSupportsVolumeActors, } from './viewportCapabilities.js';
function getVolumeViewportsContainingSameVolumes(targetViewport, renderingEngineId) {
let renderingEngines;
if (renderingEngineId) {
renderingEngines = [getRenderingEngine(renderingEngineId)];
}
else {
renderingEngines = getRenderingEngines();
}
const sameVolumesViewports = [];
renderingEngines.forEach((renderingEngine) => {
const targetActors = targetViewport.getActors();
const viewports = renderingEngine
.getViewports()
.filter(viewportSupportsVolumeActors);
for (const vp of viewports) {
const vpActors = vp.getActors();
if (vpActors.length !== targetActors.length) {
continue;
}
const sameVolumes = targetActors.every(({ uid }) => vpActors.find((vpActor) => uid === vpActor.uid));
if (sameVolumes) {
sameVolumesViewports.push(vp);
}
}
});
return sameVolumesViewports;
}
export default getVolumeViewportsContainingSameVolumes;