{"version":3,"file":"cubehelix.mjs","sources":["../../../../../../../../node_modules/chroma-js/src/generator/cubehelix.js"],"sourcesContent":["// cubehelix interpolation\n// based on D.A. Green \"A colour scheme for the display of astronomical intensity images\"\n// http://astron-soc.in/bulletin/11June/289392011.pdf\nimport { type, clip_rgb, TWOPI } from '../utils/index.js';\nimport chroma from '../chroma.js';\nconst { pow, sin, cos } = Math;\n\nexport default function (\n    start = 300,\n    rotations = -1.5,\n    hue = 1,\n    gamma = 1,\n    lightness = [0, 1]\n) {\n    let dh = 0,\n        dl;\n    if (type(lightness) === 'array') {\n        dl = lightness[1] - lightness[0];\n    } else {\n        dl = 0;\n        lightness = [lightness, lightness];\n    }\n    const f = function (fract) {\n        const a = TWOPI * ((start + 120) / 360 + rotations * fract);\n        const l = pow(lightness[0] + dl * fract, gamma);\n        const h = dh !== 0 ? hue[0] + fract * dh : hue;\n        const amp = (h * l * (1 - l)) / 2;\n        const cos_a = cos(a);\n        const sin_a = sin(a);\n        const r = l + amp * (-0.14861 * cos_a + 1.78277 * sin_a);\n        const g = l + amp * (-0.29227 * cos_a - 0.90649 * sin_a);\n        const b = l + amp * (+1.97294 * cos_a);\n        return chroma(clip_rgb([r * 255, g * 255, b * 255, 1]));\n    };\n    f.start = function (s) {\n        if (s == null) {\n            return start;\n        }\n        start = s;\n        return f;\n    };\n    f.rotations = function (r) {\n        if (r == null) {\n            return rotations;\n        }\n        rotations = r;\n        return f;\n    };\n    f.gamma = function (g) {\n        if (g == null) {\n            return gamma;\n        }\n        gamma = g;\n        return f;\n    };\n    f.hue = function (h) {\n        if (h == null) {\n            return hue;\n        }\n        hue = h;\n        if (type(hue) === 'array') {\n            dh = hue[1] - hue[0];\n            if (dh === 0) {\n                hue = hue[1];\n            }\n        } else {\n            dh = 0;\n        }\n        return f;\n    };\n    f.lightness = function (h) {\n        if (h == null) {\n            return lightness;\n        }\n        if (type(h) === 'array') {\n            lightness = h;\n            dl = h[1] - h[0];\n        } else {\n            lightness = [h, h];\n            dl = 0;\n        }\n        return f;\n    };\n    f.scale = () => chroma.scale(f);\n    f.hue(hue);\n    return f;\n}\n"],"names":["pow","sin","cos"],"mappings":"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","x_google_ignoreList":[0]}