1 /*global one*/ 2 one.include('js:one/color.js'); 3 4 one.include('js:one/color-parse.js'); 5 one.include('js:one/color/RGB.js'); 6 7 /** 8 * @constructor 9 */ 10 one.color.Interpolator = function (startColor, endColor, minValue, maxValue) { 11 startColor = one.color.parse(startColor).toRGB(); 12 endColor = one.color.parse(endColor).toRGB(); 13 if (maxValue === minValue) { 14 return function () { 15 return startColor; 16 }; 17 } 18 var deltaR = endColor.r - startColor.r, 19 deltaG = endColor.g - startColor.g, 20 deltaB = endColor.b - startColor.b; 21 return function (value) { 22 var intensity = (value - minValue) / (maxValue - minValue); 23 return new one.color.RGB(startColor.r + deltaR * intensity, startColor.g + deltaG * intensity, startColor.b + deltaB * intensity); 24 }; 25 }; 26