UNPKG

@haiku/player

Version:

Haiku Player is a JavaScript library for building user interfaces

35 lines 1.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var math_1 = require("./math"); var constants_1 = require("./constants"); var bezier = function (n1, n2, t) { return 3 * n1 * (1 - t) * (1 - t) * t + 3 * n2 * (1 - t) * t * t + t * t * t; }; exports.cubicBezier = function (p0, p1, p2, p3) { if (p0 < 0 || p0 > 1 || p2 < 0 || p2 > 1) { return function (x) { return x; }; } return function (x) { if (x === 0 || x === 1) { return x; } var start = 0; var end = 1; var limit = 19; do { var mid = (start + end) * .5; var xEst = bezier(p0, p2, mid); if (math_1.abs(x - xEst) < constants_1.epsilon) { return bezier(p1, p3, mid); } if (xEst < x) { start = mid; } else { end = mid; } } while (--limit); return x; }; }; //# sourceMappingURL=cubicBezier.js.map