UNPKG

@cornerstonejs/core

Version:
55 lines (54 loc) 2.2 kB
function viewportHasMethod(viewport, method) { return (typeof viewport?.[method] === 'function'); } export function viewportSupportsImageSlices(viewport) { return (viewportHasMethod(viewport, 'getCurrentImageId') && viewportHasMethod(viewport, 'getCurrentImageIdIndex') && viewportHasMethod(viewport, 'getImageIds') && viewportHasMethod(viewport, 'hasImageURI')); } export function viewportSupportsStackCompatibility(viewport) { return (viewportSupportsImageSlices(viewport) && viewportHasMethod(viewport, 'setStack')); } export function viewportSupportsStackCalibration(viewport) { return (viewportSupportsImageSlices(viewport) && viewportHasMethod(viewport, 'calibrateSpacing')); } export function viewportSupportsVolumeCompatibility(viewport) { return (viewportHasMethod(viewport, 'addVolumes') && viewportHasMethod(viewport, 'setVolumes')); } export function viewportSupportsVolumeId(viewport) { return viewportHasMethod(viewport, 'hasVolumeId'); } export function viewportSupportsVolumeURI(viewport) { return viewportHasMethod(viewport, 'hasVolumeURI'); } export function viewportSupportsVolumeActors(viewport) { return (viewportSupportsVolumeId(viewport) && viewportHasMethod(viewport, 'getActors')); } export function isGenericViewport(viewport) { return (viewportHasMethod(viewport, 'setDisplaySets') && viewportHasMethod(viewport, 'setDisplaySetPresentation') && viewportHasMethod(viewport, 'setViewState')); } export function viewportSupportsDisplaySetPresentation(viewport) { return (isGenericViewport(viewport) && viewportHasMethod(viewport, 'getSourceDataId') && viewportHasMethod(viewport, 'getDefaultVOIRange')); } export function getViewportContentMode(viewport) { return viewportHasMethod(viewport, 'getCurrentMode') ? viewport.getCurrentMode() : undefined; } export function viewportIsInVolumeMode(viewport) { const mode = getViewportContentMode(viewport); return mode === 'volume' || mode === 'volume3d'; } export function viewportIsInStackMode(viewport) { return getViewportContentMode(viewport) === 'stack'; }