/* exported makeColor */ function makeColor({r=0, g=0, b=0, a=255}) { const color = {}; color.r = r; color.g = g; color.b = b; color.a = a; color.fromRgbaArray = function({rgbaArray}) { color.r = rgbaArray[0]; color.g = rgbaArray[1]; color.b = rgbaArray[2]; color.a = rgbaArray[3]; return color; } color.toRgbaArray = function() { return [color.r, color.g, color.b, color.a]; } color.fromRgbaString = function({rgbaString}) { color.r = rgbaString.split(',')[0].split('(')[1]; color.g = rgbaString.split(',')[1]; color.b = rgbaString.split(',')[2]; color.a = rgbaString.split(',')[3].split(')')[0]; return color; } color.toRgbaString = function() { return `rgba(${color.r},${color.g},${color.b},${color.a})`; } color.fromRgbString = function(rgbString) { color.r = rgbString.split(',')[0].split('(')[1]; color.g = rgbString.split(',')[1]; color.b = rgbString.split(',')[2].split(')')[0]; color.a = 255; return color; } color.toRgbString = function() { return `rgb(${color.r},${color.g},${color.b})`; } color.matchRgbArray = function({rgbArray, tolerance = 2}) { const color1RgbArray = color.toRgbArray(); const color2RgbArray = rgbArray; return Math.abs(color1RgbArray[0] - color2RgbArray[0]) <= tolerance && Math.abs(color1RgbArray[1] - color2RgbArray[1]) <= tolerance && Math.abs(color1RgbArray[2] - color2RgbArray[2]) <= tolerance; } color.matchColor = function({color}) { return color.matchRgbArray({rgbArray: color.toRgbArray()}); } color.mixxRgbArray = function({rgbArray, t}) { const color1RgbArray = color.toRgbArray(); const color2RgbArray = rgbArray; var color3RgbArray; if (color.matchRgbArray({rgbArray: color2RgbArray})) { color3RgbArray = color2RgbArray; } else { color3RgbArray = mixbox.lerp(color1RgbArray, color2RgbArray, t); } return color.fromRgbArray(color3RgbArray); } color.mixxColor = function({color, t}) { color.mixxRgbArray({rgbArray: color.toRgbArray(), t}); } }