experimental extension of ease-down
This commit is contained in:
parent
2fa1bccca8
commit
90c5db97eb
2 changed files with 29 additions and 9 deletions
|
|
@ -311,8 +311,10 @@
|
|||
let { polyEmit, poly2polyEmit, depthRoughPath } = ops;
|
||||
let { camOut, newLayer, printPoint } = ops;
|
||||
let { settings, widget } = state;
|
||||
let { process } = settings;
|
||||
let { process, controller } = settings;
|
||||
|
||||
let danger = controller.danger;
|
||||
let easeDown = process.camEaseDown;
|
||||
let cutdir = process.camConventional;
|
||||
let depthFirst = process.camDepthFirst;
|
||||
let depthData = [];
|
||||
|
|
@ -372,7 +374,9 @@
|
|||
// return POLY.nest(level.filter(poly => poly.depth === 0));
|
||||
return POLY.nest(level.filter(poly => poly.depth === 0).clone());
|
||||
});
|
||||
printPoint = depthRoughPath(printPoint, 0, depthData, tops, polyEmit);
|
||||
// experimental start of ease down
|
||||
let ease = danger && op.down && easeDown ? op.down : 0;
|
||||
printPoint = depthRoughPath(printPoint, 0, depthData, tops, polyEmit, false, ease);
|
||||
// printPoint = depthRoughPath(printPoint, 0, depthData, tops, (poly, index, count, start) => {
|
||||
// console.log({z: poly.getZ(), i: poly.id, index, poly});
|
||||
// return polyEmit(poly, index, count, start);
|
||||
|
|
@ -542,8 +546,10 @@
|
|||
let { polyEmit, poly2polyEmit, depthOutlinePath } = ops;
|
||||
let { camOut, newLayer, printPoint } = ops;
|
||||
let { settings, widget } = state;
|
||||
let { process } = settings;
|
||||
let { process, controller } = settings;
|
||||
|
||||
let danger = controller.danger;
|
||||
let easeDown = process.camEaseDown;
|
||||
let toolDiam = this.toolDiam;
|
||||
let cutdir = process.camConventional;
|
||||
let depthFirst = process.camDepthFirst;
|
||||
|
|
@ -592,8 +598,10 @@
|
|||
printPoint = flatLevels[0]
|
||||
.sort((a,b) => { return a.area() - b.area() })[0]
|
||||
.average();
|
||||
printPoint = depthOutlinePath(printPoint, 0, flatLevels, toolDiam, polyEmit, false);
|
||||
printPoint = depthOutlinePath(printPoint, 0, flatLevels, toolDiam, polyEmit, true);
|
||||
// experimental start of ease down
|
||||
let ease = danger && op.down && easeDown ? op.down : 0;
|
||||
printPoint = depthOutlinePath(printPoint, 0, flatLevels, toolDiam, polyEmit, false, ease);
|
||||
printPoint = depthOutlinePath(printPoint, 0, flatLevels, toolDiam, polyEmit, true, ease);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -414,7 +414,7 @@
|
|||
return last;
|
||||
}
|
||||
|
||||
function depthRoughPath(start, depth, levels, tops, emitter, fit) {
|
||||
function depthRoughPath(start, depth, levels, tops, emitter, fit, ease) {
|
||||
let level = levels[depth];
|
||||
if (!level) {
|
||||
return start;
|
||||
|
|
@ -424,13 +424,19 @@
|
|||
fitted.filter(top => !top.level_emit).forEach(top => {
|
||||
top.level_emit = true;
|
||||
let inside = level.filter(poly => poly.isInside(top));
|
||||
if (ease) {
|
||||
start.z += ease;
|
||||
}
|
||||
start = poly2polyEmit(inside, start, emitter, { mark: "emark", perm: true });
|
||||
start = depthRoughPath(start, depth + 1, levels, tops, emitter, top);
|
||||
if (ease) {
|
||||
start.z += ease;
|
||||
}
|
||||
start = depthRoughPath(start, depth + 1, levels, tops, emitter, top, ease);
|
||||
});
|
||||
return start;
|
||||
}
|
||||
|
||||
function depthOutlinePath(start, depth, levels, radius, emitter, clr) {
|
||||
function depthOutlinePath(start, depth, levels, radius, emitter, clr, ease) {
|
||||
let bottm = depth < levels.length - 1 ? levels[levels.length - 1] : null;
|
||||
let above = levels[depth-1];
|
||||
let level = levels[depth];
|
||||
|
|
@ -458,8 +464,14 @@
|
|||
// omit polys that match bottom level polys unless level above is cleared
|
||||
start = poly2polyEmit(level, start, (poly, index, count, fromPoint) => {
|
||||
poly.level_emit = true;
|
||||
if (ease) {
|
||||
fromPoint.z += ease;
|
||||
}
|
||||
fromPoint = polyEmit(poly, index, count, fromPoint);
|
||||
fromPoint = depthOutlinePath(fromPoint, depth + 1, levels, radius, emitter, clr);
|
||||
if (ease) {
|
||||
fromPoint.z += ease;
|
||||
}
|
||||
fromPoint = depthOutlinePath(fromPoint, depth + 1, levels, radius, emitter, clr, ease);
|
||||
return fromPoint;
|
||||
}, {weight: true});
|
||||
return start;
|
||||
|
|
|
|||
Loading…
Reference in a new issue