export const PRECISION = 10e-5; export const clamp = (value: number, min: number, max: number) => { return Math.min(Math.max(value, min), max); }; export const round = ( value: number, precision: number, func: "round" | "floor" | "ceil" = "round", ) => { const multiplier = Math.pow(10, precision); return Math[func]((value + Number.EPSILON) * multiplier) / multiplier; }; export const roundToStep = ( value: number, step: number, func: "round" | "floor" | "ceil" = "round", ): number => { const factor = 1 / step; return Math[func](value * factor) / factor; }; export const average = (a: number, b: number) => (a + b) / 2; export const isFiniteNumber = (value: any): value is number => { return typeof value === "number" && Number.isFinite(value); };