UNPKG

2.83 kBSource Map (JSON)View Raw
1{"version":3,"names":[],"mappings":"","sources":["extended-math.js"],"sourcesContent":["(function(global, factory) {\n\ttypeof exports === \"object\" && typeof module !== \"undefined\" ? module.exports = factory() :\n\ttypeof define === \"function\" && define.amd ? define(factory) :\n\t(global.extendedMath = factory());\n} (this, function() {\n\n\t\"use strict\";\n\n\tvar extendedMath = { };\n\n\tfunction isInvalidNumber(value) {\n\t\treturn typeof value !== \"number\" || isNaN(value) || value === -Infinity || value === Infinity;\n\t}\n\n\tObject.defineProperty(extendedMath, \"HalfPI\", {\n\t\tvalue: 1.57079632679489661923,\n\t\tenumerable: true\n\t});\n\n\tObject.defineProperty(extendedMath, \"QuarterPI\", {\n\t\tvalue: 0.78539816339744830962,\n\t\tenumerable: true\n\t});\n\n\tObject.defineProperty(extendedMath, \"TwoPI\", {\n\t\tvalue: 6.28318530717958647693,\n\t\tenumerable: true\n\t});\n\n\textendedMath.clamp = function clamp(value, min, max) {\n\t\treturn isInvalidNumber(value) || isInvalidNumber(min) || isInvalidNumber(max) ? NaN : value < min ? min : value > max ? max : value;\n\t};\n\n\textendedMath.difference = function difference(a, b) {\n\t\treturn isInvalidNumber(a) || isInvalidNumber(b) ? NaN : Math.abs(b - a);\n\t};\n\n\textendedMath.radiansToDegrees = function radiansToDegrees(value) {\n\t\treturn isInvalidNumber(value) ? NaN : value * (180 / Math.PI);\n\t};\n\n\textendedMath.degreesToRadians = function degreesToRadians(value) {\n\t\treturn isInvalidNumber(value) ? NaN : value * (Math.PI / 180);\n\t};\n\n\textendedMath.compareAnglesDegrees = function compareAnglesDegrees(a, b) {\n\t\tif(isInvalidNumber(a) || isInvalidNumber(b)) {\n\t\t\treturn NaN;\n\t\t}\n\n\t\tif(a === b) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar c = a % 360;\n\t\tvar d = b % 360;\n\n\t\tif(c < 0) {\n\t\t\tc += 360;\n\t\t}\n\n\t\tif(d < 0) {\n\t\t\td += 360;\n\t\t}\n\n\t\tif(c === d) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn Math.cos(extendedMath.degreesToRadians(a - b) + (Math.PI / 2)) < 0 ? -1 : 1;\n\t};\n\n\textendedMath.compareAnglesRadians = function compareAnglesRadians(a, b) {\n\t\treturn isInvalidNumber(a) || isInvalidNumber(b) ? NaN : extendedMath.compareAnglesDegrees(extendedMath.radiansToDegrees(a), extendedMath.radiansToDegrees(b));\n\t};\n\n\textendedMath.lerp = function lerp(a, b, amount) {\n\t\tif(isInvalidNumber(a) || isInvalidNumber(b) || isInvalidNumber(amount)) {\n\t\t\treturn NaN;\n\t\t}\n\n\t\tif(amount === 0) {\n\t\t\treturn a;\n\t\t}\n\t\telse if(amount === 1) {\n\t\t\treturn b;\n\t\t}\n\n\t\treturn a + ((b - a) * amount);\n\t};\n\n\textendedMath.normalize = function normalize(value, min, max) {\n\t\treturn isInvalidNumber(value) || isInvalidNumber(min) || isInvalidNumber(max) ? NaN : (value - min) / (max - min);\n\t};\n\n\treturn extendedMath;\n\n}));\n"],"file":"extended-math.js"}
\No newline at end of file