switch to HSV for speed coloring
This commit is contained in:
parent
66f36674bd
commit
a3fd62c079
1 changed files with 59 additions and 10 deletions
|
|
@ -239,7 +239,7 @@ var gs_kiri_print = exports;
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case 'CAM':
|
case 'CAM':
|
||||||
case 'FDM':
|
case 'FDM':
|
||||||
scope.renderMoves(true, 0x0088aa);
|
scope.renderMoves(true, 0x777777);
|
||||||
break;
|
break;
|
||||||
case 'LASER':
|
case 'LASER':
|
||||||
scope.renderMoves(false, 0x0088aa);
|
scope.renderMoves(false, 0x0088aa);
|
||||||
|
|
@ -247,6 +247,52 @@ var gs_kiri_print = exports;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// hsv values all = 0 to 1
|
||||||
|
function hsv2rgb(hsv) {
|
||||||
|
var seg = Math.floor(hsv.h * 6);
|
||||||
|
var rem = hsv.h - (seg * (1/6));
|
||||||
|
var out = {};
|
||||||
|
|
||||||
|
var p = hsv.v * (1.0 - (hsv.s) );
|
||||||
|
var q = hsv.v * (1.0 - (hsv.s * rem) );
|
||||||
|
var t = hsv.v * (1.0 - (hsv.s * (1.0 - rem)));
|
||||||
|
|
||||||
|
switch (seg) {
|
||||||
|
case 0:
|
||||||
|
out.r = hsv.v;
|
||||||
|
out.g = t;
|
||||||
|
out.b = p;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
out.r = q;
|
||||||
|
out.g = hsv.v;
|
||||||
|
out.b = p;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
out.r = p;
|
||||||
|
out.g = hsv.v;
|
||||||
|
out.b = t;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
out.r = p;
|
||||||
|
out.g = q;
|
||||||
|
out.b = hsv.v;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
out.r = t;
|
||||||
|
out.g = p;
|
||||||
|
out.b = hsv.v;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
out.r = hsv.v;
|
||||||
|
out.g = p;
|
||||||
|
out.b = q;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
PRO.renderMoves = function(showMoves, moveColor) {
|
PRO.renderMoves = function(showMoves, moveColor) {
|
||||||
var scope = this, last, view;
|
var scope = this, last, view;
|
||||||
// render layered output
|
// render layered output
|
||||||
|
|
@ -259,7 +305,7 @@ var gs_kiri_print = exports;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (out.emit > 0) {
|
if (out.emit > 0) {
|
||||||
var spd = out.speed || 3000;
|
var spd = out.speed || 4000;
|
||||||
var arr = print[spd] || [];
|
var arr = print[spd] || [];
|
||||||
print[spd] = arr;
|
print[spd] = arr;
|
||||||
arr.push(last);
|
arr.push(last);
|
||||||
|
|
@ -279,9 +325,12 @@ var gs_kiri_print = exports;
|
||||||
if (showMoves) view.lines(move, moveColor);
|
if (showMoves) view.lines(move, moveColor);
|
||||||
for (var speed in print) {
|
for (var speed in print) {
|
||||||
var sint = Math.min(6000, parseInt(speed));
|
var sint = Math.min(6000, parseInt(speed));
|
||||||
var red = Math.round((sint/6000) * 0xff);
|
var rgb = hsv2rgb({h:sint/6000, s:1, v:0.6});
|
||||||
var blue = 0xff - red;
|
view.lines(print[speed],
|
||||||
view.lines(print[speed], (red<<16) | (blue));
|
((rgb.r * 0xff) << 16) |
|
||||||
|
((rgb.g * 0xff) << 8) |
|
||||||
|
((rgb.b * 0xff) << 0)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
view.render();
|
view.render();
|
||||||
scope.lines += print.length;
|
scope.lines += print.length;
|
||||||
|
|
@ -320,13 +369,13 @@ var gs_kiri_print = exports;
|
||||||
* @param {number} [tool] tool
|
* @param {number} [tool] tool
|
||||||
*/
|
*/
|
||||||
function addOutput(array, point, emit, speed, tool) {
|
function addOutput(array, point, emit, speed, tool) {
|
||||||
// drop duplicates (usually intruced by bisections)
|
// drop duplicates (usually intruced by FDM bisections)
|
||||||
if (lastPoint && point.x == lastPoint.x && point.y == lastPoint.y && point.z == lastPoint.z && lastEmit == emit) {
|
if (lastPoint && point.x == lastPoint.x && point.y == lastPoint.y && point.z == lastPoint.z && lastEmit == emit) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (lastPoint && UTIL.round(point.x,4) == UTIL.round(lastPoint.x,4) && UTIL.round(point.y,4) == UTIL.round(lastPoint.y,4)) {
|
// if (lastPoint && UTIL.round(point.x,4) == UTIL.round(lastPoint.x,4) && UTIL.round(point.y,4) == UTIL.round(lastPoint.y,4)) {
|
||||||
// console.log(({dup:point, last:lastPoint}));
|
// console.log(({dup:point, last:lastPoint}));
|
||||||
}
|
// }
|
||||||
lastPoint = point;
|
lastPoint = point;
|
||||||
lastEmit = emit;
|
lastEmit = emit;
|
||||||
array.push(new Output(point, emit, speed, tool));
|
array.push(new Output(point, emit, speed, tool));
|
||||||
|
|
@ -366,7 +415,7 @@ var gs_kiri_print = exports;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* create 3d print output path for this slice
|
* FDM only. create 3d print output path for this slice
|
||||||
*
|
*
|
||||||
* @parma {Slice} slice
|
* @parma {Slice} slice
|
||||||
* @param {Point} startPoint start as close as possible to startPoint
|
* @param {Point} startPoint start as close as possible to startPoint
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue