/** * Color utility functions. * * @module engine/utils/color */ /** * Converts a hex color number to an [R, G, B] array * * @param {number} hex Color hex number * @param {number[]} [out=[]] Output * @return {number[]} An array representing the [R, G, B] of the color. */ module.exports.hex2rgb = function(hex, out) { out = out || []; out[0] = (hex >> 16 & 0xFF) / 255; out[1] = (hex >> 8 & 0xFF) / 255; out[2] = (hex & 0xFF) / 255; return out; }; /** * Converts a hex color number to a string. * * @param {number} hex Color hex number * @return {string} The color string. */ module.exports.hex2string = function(hex) { hex = hex.toString(16); hex = '000000'.substr(0, 6 - hex.length) + hex; return '#' + hex; }; /** * Converts a color as an [R, G, B] array to a hex number * * @param {number[]} rgb List of numbers representing a color. * @return {number} The color number in hex. */ module.exports.rgb2hex = function(rgb) { return ((rgb[0] * 255 << 16) + (rgb[1] * 255 << 8) + rgb[2] * 255); };