pluggable color scales. fix contour cam
This commit is contained in:
parent
b576588529
commit
0eabb0a2f2
2 changed files with 37 additions and 6 deletions
|
|
@ -46,6 +46,7 @@
|
||||||
PRO.extrudePerMM = extrudePerMM;
|
PRO.extrudePerMM = extrudePerMM;
|
||||||
PRO.constReplace = constReplace;
|
PRO.constReplace = constReplace;
|
||||||
PRO.poly2polyEmit = poly2polyEmit;
|
PRO.poly2polyEmit = poly2polyEmit;
|
||||||
|
PRO.tip2tipEmit = tip2tipEmit;
|
||||||
PRO.addPrintPoints = addPrintPoints;
|
PRO.addPrintPoints = addPrintPoints;
|
||||||
|
|
||||||
PRO.parseSVG = function(code, offset) {
|
PRO.parseSVG = function(code, offset) {
|
||||||
|
|
|
||||||
|
|
@ -508,14 +508,27 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// hsv values all = 0 to 1
|
// hsv values all = 0 to 1
|
||||||
function hsv2rgb(hsv) {
|
function hsv2rgb(hsv, mode) {
|
||||||
const { h, s, v } = hsv;
|
const { h, s, v } = hsv;
|
||||||
const ss = 1 / 5;
|
const div = {linear: 5, pastel: 3}[mode] || 5;
|
||||||
|
const ss = 1 / div;
|
||||||
const seg = Math.floor(h / ss);
|
const seg = Math.floor(h / ss);
|
||||||
const rem = h - (seg * ss);
|
const rem = h - (seg * ss);
|
||||||
const inc = (rem / ss);
|
const inc = (rem / ss);
|
||||||
const dec = (1 - inc);
|
const dec = (1 - inc);
|
||||||
const rgb = {r: 0, g: 0, b: 0};
|
const rgb = {r: 0, g: 0, b: 0};
|
||||||
|
switch (div) {
|
||||||
|
case 3: color3(rgb, inc, seg); break;
|
||||||
|
case 5: color5(rgb, inc, seg); break;
|
||||||
|
}
|
||||||
|
rgb.r = ((rgb.r * 255 * v) & 0xff) << 16;
|
||||||
|
rgb.g = ((rgb.g * 255 * v) & 0xff) << 8;
|
||||||
|
rgb.b = ((rgb.b * 255 * v) & 0xff);
|
||||||
|
return rgb.r | rgb.g | rgb.b;
|
||||||
|
}
|
||||||
|
|
||||||
|
function color5(rgb, inc, seg) {
|
||||||
|
const dec = 1 - inc;
|
||||||
switch (seg) {
|
switch (seg) {
|
||||||
case 0:
|
case 0:
|
||||||
rgb.r = 1;
|
rgb.r = 1;
|
||||||
|
|
@ -543,10 +556,27 @@
|
||||||
rgb.b = dec;
|
rgb.b = dec;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
rgb.r = ((rgb.r * 255 * v) & 0xff) << 16;
|
}
|
||||||
rgb.g = ((rgb.g * 255 * v) & 0xff) << 8;
|
|
||||||
rgb.b = ((rgb.b * 255 * v) & 0xff);
|
function color3(rgb, inc, seg) {
|
||||||
return rgb.r | rgb.g | rgb.b;
|
const dec = 1 - inc;
|
||||||
|
switch (seg) {
|
||||||
|
case 0:
|
||||||
|
rgb.r = dec;
|
||||||
|
rgb.g = inc;
|
||||||
|
rgb.b = 0;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
rgb.r = 0;
|
||||||
|
rgb.g = dec;
|
||||||
|
rgb.b = inc;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
rgb.r = inc/2;
|
||||||
|
rgb.g = 0;
|
||||||
|
rgb.b = dec/2 + 0.5;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue