export declare namespace MathTools { /** * @param n * @returns n! */ function Factor(n: number): number; function Lerp(start: number, target: number, alpha: number): number; /** * goes in the direction of the target with step, will never overshoot the target * * ```e.g start = 5, target = 6, step = 2 direction = 6 - 5 = 1 returns 5 + math.min(1, 2) = 6``` * * ```e.g start = 6, target = 4, step = 1 direction = 4 - 6 = -2 returns 6 - math.min(math.abs(-2), 1) = 5``` * * sugar for linear spring * ```ts * current = LerpWith(current, target, speed * dt) * ``` * * @param start * @param target * @param step * @returns */ function LerpWith(start: number, target: number, step: number): number; /**compares 2 numbers with epsilon precision */ function FuzzyEq(a: number, b: number, epsilon?: number): boolean; /**wraps angle to range [-pi, pi) * @see https://stackoverflow.com/questions/2320986/easy-way-to-keeping-angles-between-179-and-180-degrees */ function NormalizeAngle(alpha: number): number; /**@see https://stackoverflow.com/questions/1878907/how-can-i-find-the-smallest-difference-between-two-angles-around-a-point */ function GetShortestAngle(start: number, target: number): number; /**lerpes the angle with fixed step * angle [-pi, pi] */ function LerpAngleWith(start: number, target: number, step: number): number; /**maps the value from 1 range to other*/ function Map(value: number, input_min: number, input_max: number, output_min: number, output_max: number, clamp?: boolean): number; /**wraps number in range * 2, 2, 0, 2 => 2 * 0, 4, 0, 3 => 1 * 0 + 4 = 4 - (3 - 0) => 1 */ function WrapAdd(value: number, step: number, min_value: number, max_value: number): number; /** * * unit number [0, 1] * bias [-inf, 1]; * bias -1 -larger numbers are very frequent * bias 1 -smaller numbers are very frequent * bias power of the curve * gets bigger numbers that are less frequent *@see https://www.youtube.com/watch?v=lctXaT9pxA0&t=454s&ab_channel=SebastianLague */ function BiasFunction(unit_number: number, bias: number): number; function GetValueFromNumberSequence(number_sequence: NumberSequence, alpha: number): number; /** * * @param value * @returns whether the value is nan */ function IsNan(value: number): boolean; /** * * @param value * @returns 0 if value is nan */ function FixNumber(value: number): number; }