OpenCut/apps/web/src/lib/masks/param-update.ts

27 lines
515 B
TypeScript

import { FEATHER_HANDLE_SCALE, MAX_FEATHER } from "@/lib/masks/feather";
export function computeFeatherUpdate({
startFeather,
deltaX,
deltaY,
directionX,
directionY,
}: {
startFeather: number;
deltaX: number;
deltaY: number;
directionX: number;
directionY: number;
}): { feather: number } {
const projection = deltaX * directionX + deltaY * directionY;
return {
feather: Math.max(
0,
Math.min(
MAX_FEATHER,
Math.round(startFeather + projection / FEATHER_HANDLE_SCALE),
),
),
};
}