From 4a0a000ef98f8d7eda7b787f49f2f4f04b62a06e Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Fri, 12 Mar 2021 14:44:05 -0500 Subject: [PATCH] fix shell depth cues used for extrusion speed --- src/geo/polygons.js | 10 ++++++++++ src/mode/fdm/slice.js | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/geo/polygons.js b/src/geo/polygons.js index e6b389cb..39aac8cf 100644 --- a/src/geo/polygons.js +++ b/src/geo/polygons.js @@ -550,6 +550,7 @@ let total = count; let layers = []; let ref = polys; + let depth = 0; while (count-- > 0 && ref && ref.length) { let off = offset(ref, -dist, {z}); let mid = offset(off, dist / 2, {z}); @@ -563,6 +564,15 @@ subtract(ref, cmp, gap, null, z); } layers.push({idx: total-count, off, mid, gap}); + // fixup depth cues + for (let m of mid) { + m.depth = depth++; + if (m.inner) { + for (let mi of m.inner) { + mi.depth = m.depth; + } + } + } ref = off; } return layers; diff --git a/src/mode/fdm/slice.js b/src/mode/fdm/slice.js index ef96d4d0..b918b8f9 100644 --- a/src/mode/fdm/slice.js +++ b/src/mode/fdm/slice.js @@ -609,6 +609,11 @@ if (p.fill_off) { p.fill_off.forEach(pi => pi.depth = i); } + if (p.inner) { + for (let pi of p.inner) { + pi.depth = p.depth; + } + } top.shells.push(p); }); last = polys; @@ -643,6 +648,11 @@ // use negative offset for inners pi.depth = -(count - countNow); }); + if (p.inner) { + for (let pi of p.inner) { + pi.depth = p.depth; + } + } }); }); }