@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
1 lines • 5.48 kB
Source Map (JSON)
{"version":3,"file":"average.cjs","sources":["../../../../../../../../../.yarn/berry/cache/chroma-js-npm-3.2.0-d5c39f5077-10c0.zip/node_modules/chroma-js/src/generator/average.js"],"sourcesContent":["import Color from '../Color.js';\nimport { clip_rgb } from '../utils/index.js';\n\nconst { pow, sqrt, PI, cos, sin, atan2 } = Math;\n\nexport default (colors, mode = 'lrgb', weights = null) => {\n const l = colors.length;\n if (!weights) weights = Array.from(new Array(l)).map(() => 1);\n // normalize weights\n const k =\n l /\n weights.reduce(function (a, b) {\n return a + b;\n });\n weights.forEach((w, i) => {\n weights[i] *= k;\n });\n // convert colors to Color objects\n colors = colors.map((c) => new Color(c));\n if (mode === 'lrgb') {\n return _average_lrgb(colors, weights);\n }\n const first = colors.shift();\n const xyz = first.get(mode);\n const cnt = [];\n let dx = 0;\n let dy = 0;\n // initial color\n for (let i = 0; i < xyz.length; i++) {\n xyz[i] = (xyz[i] || 0) * weights[0];\n cnt.push(isNaN(xyz[i]) ? 0 : weights[0]);\n if (mode.charAt(i) === 'h' && !isNaN(xyz[i])) {\n const A = (xyz[i] / 180) * PI;\n dx += cos(A) * weights[0];\n dy += sin(A) * weights[0];\n }\n }\n\n let alpha = first.alpha() * weights[0];\n colors.forEach((c, ci) => {\n const xyz2 = c.get(mode);\n alpha += c.alpha() * weights[ci + 1];\n for (let i = 0; i < xyz.length; i++) {\n if (!isNaN(xyz2[i])) {\n cnt[i] += weights[ci + 1];\n if (mode.charAt(i) === 'h') {\n const A = (xyz2[i] / 180) * PI;\n dx += cos(A) * weights[ci + 1];\n dy += sin(A) * weights[ci + 1];\n } else {\n xyz[i] += xyz2[i] * weights[ci + 1];\n }\n }\n }\n });\n\n for (let i = 0; i < xyz.length; i++) {\n if (mode.charAt(i) === 'h') {\n let A = (atan2(dy / cnt[i], dx / cnt[i]) / PI) * 180;\n while (A < 0) A += 360;\n while (A >= 360) A -= 360;\n xyz[i] = A;\n } else {\n xyz[i] = xyz[i] / cnt[i];\n }\n }\n alpha /= l;\n return new Color(xyz, mode).alpha(alpha > 0.99999 ? 1 : alpha, true);\n};\n\nconst _average_lrgb = (colors, weights) => {\n const l = colors.length;\n const xyz = [0, 0, 0, 0];\n for (let i = 0; i < colors.length; i++) {\n const col = colors[i];\n const f = weights[i] / l;\n const rgb = col._rgb;\n xyz[0] += pow(rgb[0], 2) * f;\n xyz[1] += pow(rgb[1], 2) * f;\n xyz[2] += pow(rgb[2], 2) * f;\n xyz[3] += rgb[3] * f;\n }\n xyz[0] = sqrt(xyz[0]);\n xyz[1] = sqrt(xyz[1]);\n xyz[2] = sqrt(xyz[2]);\n if (xyz[3] > 0.9999999) xyz[3] = 1;\n return new Color(clip_rgb(xyz));\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}