From 69eb0356a910b56c4c36cc9ef2d058cebb2c7586 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Thu, 16 Sep 2021 10:39:04 -1000 Subject: [PATCH] only add non-empty loops. add simple to top on legacy/support path. fix invalid healed report --- src/geo/mesh.js | 10 ++++++++-- src/kiri/main.js | 2 +- src/kiri/slice.js | 1 + src/kiri/widget.js | 2 ++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/geo/mesh.js b/src/geo/mesh.js index 7b40e780..4469e6bd 100644 --- a/src/geo/mesh.js +++ b/src/geo/mesh.js @@ -214,7 +214,7 @@ } // cannot start on split if (line.adjacentUnused().length > 2) { - console.log('cannot start on a split'); + // console.log('cannot start on a split'); continue; } // line.used = true; @@ -253,7 +253,9 @@ loop.push(line); line.used = true; } - loops.push(loop); + if (loop.length) { + loops.push(loop); + } } // attempt to connect open loops @@ -288,9 +290,13 @@ } } + // console.log({loops}) + // store invalid loops for display / culling + this.shorts = loops.filter(l => l && l.length <= 2); // filter out null and short loops this.loops = loops = loops.filter(l => l && l.length > 2); + // console.log({loops}) // rotate/flatten to Z plane and use earcut to generate faces // because earcut emits point indexes, no need to un-rotate diff --git a/src/kiri/main.js b/src/kiri/main.js index 575c8af2..25a18c2a 100644 --- a/src/kiri/main.js +++ b/src/kiri/main.js @@ -870,7 +870,7 @@ console.log/** Copyright Stewart Allen -- All Rights Reserved */ setTimeout(() => { Promise.all(widgets.map(w => w.heal())).then(mod => { API.hide.alert(marker); - let healed = mod.map(m => m).length; + let healed = mod.filter(m => m).length; if (healed) { API.show.alert(`${healed} Object${healed ? 's':''} healed`); } else { diff --git a/src/kiri/slice.js b/src/kiri/slice.js index bf3749b3..4d85dbe7 100644 --- a/src/kiri/slice.js +++ b/src/kiri/slice.js @@ -184,6 +184,7 @@ // standard legacy polygon let top = new Top(poly); this.tops.push(top); + top.simple = poly; return top; } else { // frop top object passed back by slicePost() diff --git a/src/kiri/widget.js b/src/kiri/widget.js index b90aa0b9..048b6048 100644 --- a/src/kiri/widget.js +++ b/src/kiri/widget.js @@ -346,6 +346,8 @@ console.log/** Copyright Stewart Allen -- All Rights Reserved */ if (data.vertices) { this.loadVertices(data.vertices); this.modified = true; + } else { + this.modified = false; } resolve(this.modified); });