@cornerstonejs/core
Version:
Cornerstone3D Core
36 lines (35 loc) • 1.02 kB
JavaScript
export const MIN_PLANAR_SCALE = 0.001;
const PLANAR_SCALE_MODES = new Set([
'fit',
'fitAspect',
'fitWidth',
'fitHeight',
'absolute',
]);
function normalizeScaleValue(value) {
return typeof value === 'number' && Number.isFinite(value)
? Math.max(value, MIN_PLANAR_SCALE)
: 1;
}
export function normalizePlanarScale(scale) {
if (Array.isArray(scale)) {
return [normalizeScaleValue(scale[0]), normalizeScaleValue(scale[1])];
}
const scalarScale = normalizeScaleValue(scale);
return [scalarScale, scalarScale];
}
export function clonePlanarScale(scale) {
return normalizePlanarScale(scale);
}
export function getPlanarScaleZoom(scale) {
return normalizePlanarScale(scale)[1];
}
export function normalizePlanarScaleMode(scaleMode) {
return PLANAR_SCALE_MODES.has(scaleMode || '')
? scaleMode
: 'fit';
}
export function getPlanarScaleRatio(scale) {
const [scaleX, scaleY] = normalizePlanarScale(scale);
return scaleX / scaleY;
}