UNPKG

2.35 kBSource Map (JSON)View Raw
1{"version":3,"file":"hsv2rgb.js","sourceRoot":"../src/","sources":["utilities/color/hsv2rgb.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AAGzC,6EAA6E;AAC7E,SAAgB,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACrD,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACZ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAEZ,IAAI,GAAG,GAAa,EAAE,CAAC;IAEvB,IAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,IAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,IAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEhB,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;QACtB,KAAK,CAAC;YACJ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChB,MAAM;QAER,KAAK,CAAC;YACJ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChB,MAAM;QAER,KAAK,CAAC;YACJ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChB,MAAM;QAER,KAAK,CAAC;YACJ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChB,MAAM;QAER,KAAK,CAAC;YACJ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChB,MAAM;QAER,KAAK,CAAC;YACJ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChB,MAAM;KACT;IAED,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAa,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAa,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAa,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5C,CAAC;AACJ,CAAC;AA1CD,0BA0CC","sourcesContent":["import { MAX_COLOR_RGB } from './consts';\nimport type { IRGB } from './interfaces';\n\n/** Converts HSV components to an RGB color. Does not set the alpha value. */\nexport function hsv2rgb(h: number, s: number, v: number): IRGB {\n s = s / 100;\n v = v / 100;\n\n let rgb: number[] = [];\n\n const c = v * s;\n const hh = h / 60;\n const x = c * (1 - Math.abs((hh % 2) - 1));\n const m = v - c;\n\n switch (Math.floor(hh)) {\n case 0:\n rgb = [c, x, 0];\n break;\n\n case 1:\n rgb = [x, c, 0];\n break;\n\n case 2:\n rgb = [0, c, x];\n break;\n\n case 3:\n rgb = [0, x, c];\n break;\n\n case 4:\n rgb = [x, 0, c];\n break;\n\n case 5:\n rgb = [c, 0, x];\n break;\n }\n\n return {\n r: Math.round(MAX_COLOR_RGB * (rgb[0] + m)),\n g: Math.round(MAX_COLOR_RGB * (rgb[1] + m)),\n b: Math.round(MAX_COLOR_RGB * (rgb[2] + m)),\n };\n}\n"]}
\No newline at end of file