@osbjs/osbjs
Version:
a minimalist osu! storyboarding framework
50 lines (49 loc) • 1.92 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.precise = exports.normalize = exports.interpolate = exports.lerp = exports.clamp = exports.radToDeg = exports.degToRad = void 0;
__exportStar(require("./Vector2"), exports);
__exportStar(require("./Vector3"), exports);
__exportStar(require("./Vector4"), exports);
__exportStar(require("./Quaternion"), exports);
__exportStar(require("./Matrix3"), exports);
__exportStar(require("./Matrix4"), exports);
__exportStar(require("./Easing"), exports);
__exportStar(require("./RandomNumbers"), exports);
function degToRad(degrees) {
return (degrees * Math.PI) / 180;
}
exports.degToRad = degToRad;
function radToDeg(radians) {
return (radians * 180) / Math.PI;
}
exports.radToDeg = radToDeg;
function clamp(value, min, max) {
return Math.max(min, Math.min(max, value));
}
exports.clamp = clamp;
function lerp(x, xMin, xMax, yMin, yMax) {
return yMin + (x - xMin) * ((yMax - yMin) / (xMax - xMin));
}
exports.lerp = lerp;
function interpolate(x, xMin, xMax, yMin, yMax) {
return lerp(x, xMin, xMax, yMin, yMax);
}
exports.interpolate = interpolate;
function normalize(x, max, min) {
return (x - min) / (max - min);
}
exports.normalize = normalize;
function precise(x, precision = 5) {
return Number(x.toPrecision(precision));
}
exports.precise = precise;