diff options
Diffstat (limited to 'apps/web/src/masks/param-update.ts')
| -rw-r--r-- | apps/web/src/masks/param-update.ts | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/apps/web/src/masks/param-update.ts b/apps/web/src/masks/param-update.ts new file mode 100644 index 00000000..e5c7f5b7 --- /dev/null +++ b/apps/web/src/masks/param-update.ts @@ -0,0 +1,26 @@ +import { FEATHER_HANDLE_SCALE, MAX_FEATHER } from "@/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), + ), + ), + }; +} |
