From 3e5132225596473f894abebd5a3773a8b951e496 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Wed, 4 Dec 2024 19:03:20 -0500 Subject: [PATCH] move inverleave logic until the end to eliminate solid layer errors --- src/kiri-mode/fdm/slice.js | 92 +++++++++++++++++++------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/src/kiri-mode/fdm/slice.js b/src/kiri-mode/fdm/slice.js index 0eb4aefd..944a7517 100644 --- a/src/kiri-mode/fdm/slice.js +++ b/src/kiri-mode/fdm/slice.js @@ -387,52 +387,6 @@ FDM.slice = function(settings, widget, onupdate, ondone) { } }).reverse(); - if (isBrick) { - let indices = slices.map(s => s.index); - let first = indices[1]; - let last = indices[indices.length - 2]; - let nu = []; - for (let slice of slices) { - if (slice.index < first || slice.index > last) { - continue; - } - let nuSlice = slice.clone(); - nuSlice.z -= slice.height / 2; - if (slice.index === first) { - nuSlice.z = slice.z - slice.height / 4; - nuSlice.height = slice.height / 2; - } else { - nuSlice.height = slice.height; - } - nu.push(nuSlice); - let ti = 0; - for (let top of slice.tops) { - let nuTop = nuSlice.tops[ti++]; - nuTop.shells = []; - top.shells = top.shells.filter((s,i) => { - if (i % 2 === 0) { - return true; - } else { - nuTop.shells.push(s); - return false; - } - }); - } - if (slice.index === last) { - let cap = nuSlice.clone(); - cap.z += (slice.height * 0.75); - cap.height = (slice.height / 2); - nu.push(cap); - cap.tops.forEach((top, i) => { - top.shells = nuSlice.tops[i].shells.clone(); - }); - } - } - slices.appendAll(nu); - slices.sort((a,b) => a.z - b.z); - slices.forEach((s,i) => s.index = i); - } - // connect slices into linked list for island/bridge projections for (let i=1; i s.index); + let first = indices[1]; + let last = indices[indices.length - 2]; + let nu = []; + for (let slice of slices) { + if (slice.index < first || slice.index > last) { + continue; + } + let nuSlice = slice.clone(); + nuSlice.z -= slice.height / 2; + if (slice.index === first) { + nuSlice.z = slice.z - slice.height / 4; + nuSlice.height = slice.height / 2; + } else { + nuSlice.height = slice.height; + } + nu.push(nuSlice); + let ti = 0; + for (let top of slice.tops) { + let nuTop = nuSlice.tops[ti++]; + nuTop.shells = []; + top.shells = top.shells.filter((s,i) => { + if (i % 2 === 0) { + return true; + } else { + nuTop.shells.push(s); + return false; + } + }); + } + if (slice.index === last) { + let cap = nuSlice.clone(); + cap.z += (slice.height * 0.75); + cap.height = (slice.height / 2); + nu.push(cap); + cap.tops.forEach((top, i) => { + top.shells = nuSlice.tops[i].shells.clone(); + }); + } + } + slices.appendAll(nu); + slices.sort((a,b) => a.z - b.z); + slices.forEach((s,i) => s.index = i); + } + // render if not explicitly disabled if (render) { forSlices(0.9, 1.0, slice => {