UNPKG

@macrostrat/column-components

Version:

React rendering primitives for stratigraphic columns

1 lines 4.68 kB
{"version":3,"file":"delta-e.cjs","sources":["../../../../../../../../../.yarn/berry/cache/chroma-js-npm-3.2.0-d5c39f5077-10c0.zip/node_modules/chroma-js/src/utils/delta-e.js"],"sourcesContent":["import Color from '../Color.js';\nconst { sqrt, pow, min, max, atan2, abs, cos, sin, exp, PI } = Math;\n\nexport default function (a, b, Kl = 1, Kc = 1, Kh = 1) {\n // Delta E (CIE 2000)\n // see http://www.brucelindbloom.com/index.html?Eqn_DeltaE_CIE2000.html\n var rad2deg = function (rad) {\n return (360 * rad) / (2 * PI);\n };\n var deg2rad = function (deg) {\n return (2 * PI * deg) / 360;\n };\n a = new Color(a);\n b = new Color(b);\n const [L1, a1, b1] = Array.from(a.lab());\n const [L2, a2, b2] = Array.from(b.lab());\n const avgL = (L1 + L2) / 2;\n const C1 = sqrt(pow(a1, 2) + pow(b1, 2));\n const C2 = sqrt(pow(a2, 2) + pow(b2, 2));\n const avgC = (C1 + C2) / 2;\n const G = 0.5 * (1 - sqrt(pow(avgC, 7) / (pow(avgC, 7) + pow(25, 7))));\n const a1p = a1 * (1 + G);\n const a2p = a2 * (1 + G);\n const C1p = sqrt(pow(a1p, 2) + pow(b1, 2));\n const C2p = sqrt(pow(a2p, 2) + pow(b2, 2));\n const avgCp = (C1p + C2p) / 2;\n const arctan1 = rad2deg(atan2(b1, a1p));\n const arctan2 = rad2deg(atan2(b2, a2p));\n const h1p = arctan1 >= 0 ? arctan1 : arctan1 + 360;\n const h2p = arctan2 >= 0 ? arctan2 : arctan2 + 360;\n const avgHp =\n abs(h1p - h2p) > 180 ? (h1p + h2p + 360) / 2 : (h1p + h2p) / 2;\n const T =\n 1 -\n 0.17 * cos(deg2rad(avgHp - 30)) +\n 0.24 * cos(deg2rad(2 * avgHp)) +\n 0.32 * cos(deg2rad(3 * avgHp + 6)) -\n 0.2 * cos(deg2rad(4 * avgHp - 63));\n let deltaHp = h2p - h1p;\n deltaHp =\n abs(deltaHp) <= 180\n ? deltaHp\n : h2p <= h1p\n ? deltaHp + 360\n : deltaHp - 360;\n deltaHp = 2 * sqrt(C1p * C2p) * sin(deg2rad(deltaHp) / 2);\n const deltaL = L2 - L1;\n const deltaCp = C2p - C1p;\n const sl = 1 + (0.015 * pow(avgL - 50, 2)) / sqrt(20 + pow(avgL - 50, 2));\n const sc = 1 + 0.045 * avgCp;\n const sh = 1 + 0.015 * avgCp * T;\n const deltaTheta = 30 * exp(-pow((avgHp - 275) / 25, 2));\n const Rc = 2 * sqrt(pow(avgCp, 7) / (pow(avgCp, 7) + pow(25, 7)));\n const Rt = -Rc * sin(2 * deg2rad(deltaTheta));\n const result = sqrt(\n pow(deltaL / (Kl * sl), 2) +\n pow(deltaCp / (Kc * sc), 2) +\n pow(deltaHp / (Kh * sh), 2) +\n Rt * (deltaCp / (Kc * sc)) * (deltaHp / (Kh * sh))\n );\n return max(0, min(100, result));\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}