@cornerstonejs/core
Version:
Cornerstone3D Core
55 lines (54 loc) • 2.2 kB
JavaScript
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';
}