Source

Utils.js

/**
 * @method normalizedRandom
 */
export const normalizedRandom = function () {
  return Math.random() * 2 - 1;
};

/**
 * @method clamp
 * @param {number} value
 * @param {number} min
 * @param {number} max
 */
export const clamp = function (value, min, max) {
  return Math.max(min, Math.min(value, max));
}
/**
 * @method random
 */
export const random = function (rand, min, max) {
  //one param
  if (arguments.length === 1) {
    return Math.random() * arguments[0];
  } else if (arguments.length == 2) {
    //min and max
    max = min;
    min = rand;
    rand = Math.random;
  }
  if (!min && !max) {
    return Math.random();
  } else if (!max) {
    //if only one is provided, then thats actually the max
    max = min;
    return rand() * max;
  }
  return rand() * (max - min) + min;
};
/**
 * @method lerp
 * @param {number} a
 * @param {number} b
 * @param {number} p
 */
export const lerp = function (a, b, p) {
  return (b - a) * p + a;
}

/**
 * Convert from degrees to radians.
 * @method radians
 * @param {number} degrees
 */
export const radians = function(degrees) {
  return degrees * Math.PI / 180;
}

/**
 * Convert from radians to degrees.
 * @method degrees
 * @param {number} radians
 */
export const degrees = function(radians) {
	return radians * 180 / Math.PI;
}