import {rgb as colorRgb} from "d3-color"; import basis from "./basis.js"; import basisClosed from "./basisClosed.js"; import nogamma, {gamma} from "./color.js"; export default (function rgbGamma(y) { var color = gamma(y); function rgb(start, end) { var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r), g = color(start.g, end.g), b = color(start.b, end.b), opacity = nogamma(start.opacity, end.opacity); return function(t) { start.r = r(t); start.g = g(t); start.b = b(t); start.opacity = opacity(t); return start + ""; }; } rgb.gamma = rgbGamma; return rgb; })(1); function rgbSpline(spline) { return function(colors) { var n = colors.length, r = new Array(n), g = new Array(n), b = new Array(n), i, color; for (i = 0; i < n; ++i) { color = colorRgb(colors[i]); r[i] = color.r || 0; g[i] = color.g || 0; b[i] = color.b || 0; } r = spline(r); g = spline(g); b = spline(b); color.opacity = 1; return function(t) { color.r = r(t); color.g = g(t); color.b = b(t); return color + ""; }; }; } export var rgbBasis = rgbSpline(basis); export var rgbBasisClosed = rgbSpline(basisClosed);