UNPKG

@techmely/utils

Version:

Collection of helpful JavaScript / TypeScript utils

56 lines (49 loc) 1.75 kB
/*! * @techmely/utils * Copyright(c) 2021-2024 Techmely <techmely.creation@gmail.com> * MIT Licensed */ "use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/getStrokeRadius.ts var getStrokeRadius_exports = {}; __export(getStrokeRadius_exports, { getStrokeRadius: () => getStrokeRadius }); module.exports = __toCommonJS(getStrokeRadius_exports); // src/clamp.ts function clamp(n, min, max) { return Math.min(max, Math.max(min, n)); } // src/lerp.ts function lerp(y1, y2, mu) { return y1 * (1 - mu) + y2 * mu; } // src/getStrokeRadius.ts function getStrokeRadius(size, thinning, easing, pressure = 0.5) { if (!thinning) { return size / 2; } const newPressure = clamp(easing(pressure), 0, 1); return (thinning < 0 ? lerp(size, size + size * clamp(thinning, -0.95, -0.05), newPressure) : lerp(size - size * clamp(thinning, 0.05, 0.95), size, newPressure)) / 2; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { getStrokeRadius });