diff --git a/src/util.ts b/src/util.ts index d292a5e2470c9e2370c21a46cc88fba844668b68..44d9279d10fbdce187d6b9b52a37ec65d869fa73 100644 --- a/src/util.ts +++ b/src/util.ts @@ -142,3 +142,18 @@ export function secondsToDurationString(seconds: number): string { const s = Math.round(seconds % 60) return `${h ? h + 'h ' : ''}${m ? m + 'min ' : ''}${s ? s + 's' : ''}` } + +export function clamp(value: number, min: number, max: number): number { + return Math.min(Math.max(value, min), max) +} + +export function mapToDomain( + value: number, + inputDomain: [number, number], + outputDomain: [number, number], +) { + const [x1, y1] = inputDomain + const [x2, y2] = outputDomain + value = clamp(value, x1, y1) + return ((value - x1) * (y2 - x2)) / (y1 - x1) + x2 +}