prevent re-emitting tops during recursion. only wide expand outer polys

This commit is contained in:
Stewart Allen 2020-11-06 07:26:58 -05:00
commit 0027a919a3
2 changed files with 5 additions and 2 deletions

View file

@ -439,7 +439,8 @@
}
let ltops = tops[depth];
let fitted = fit ? ltops.filter(poly => poly.isInside(fit)) : ltops;
fitted.forEach(top => {
fitted.filter(top => !top.level_emit).forEach(top => {
top.level_emit = true;
let inside = level.filter(poly => poly.isInside(top));
start = poly2polyEmit(inside, start, emitter);
start = polyLevelEmitter(start, depth + 1, levels, tops, emitter, top);

View file

@ -264,7 +264,9 @@
} else {
if (procOutlineWide) {
offset.slice().forEach(op => {
POLY.expand([op], outlineToolDiam * 0.5, slice.z, offset, 1);
// clone removes inners but the real solution is
// to limit expanded shells to through holes
POLY.expand([op.clone()], outlineToolDiam * 0.5, slice.z, offset, 1);
});
}
}