From d3af71bc2271bc316e6f37600487957cdac7c1f7 Mon Sep 17 00:00:00 2001 From: casperlamboo Date: Tue, 4 Aug 2015 09:54:02 +0200 Subject: [PATCH] fixed https://github.com/Doodle3D/Doodle3D-Slicer/issues/12 fixed https://github.com/Doodle3D/Doodle3D-Slicer/issues/12 --- src/slice.js | 24 ++++++++++++++++++++++++ src/slicer.js | 2 ++ 2 files changed, 26 insertions(+) diff --git a/src/slice.js b/src/slice.js index 625dff3..cc6eb33 100644 --- a/src/slice.js +++ b/src/slice.js @@ -5,6 +5,30 @@ export default class { this.parts = []; } + removeSelfIntersect () { + for (var i = 0; i < this.parts.length; i ++) { + var part1 = this.parts[i].intersect; + + if (!part1.closed) { + continue; + } + + for (var j = i + 1; j < this.parts.length; j ++) { + var part2 = this.parts[j].intersect; + + if (!part2.closed) { + continue; + } + + if (part2.intersect(part1).length > 0) { + this.parts[i].intersect = part1.union(part2); + + this.parts.splice(j, 1); + } + } + } + } + optimizePaths (start) { if (this.brim !== undefined && this.brim.length > 0) { this.brim = this.brim.optimizePath(start); diff --git a/src/slicer.js b/src/slicer.js index 9baef42..869f7bd 100644 --- a/src/slicer.js +++ b/src/slicer.js @@ -353,6 +353,8 @@ export default class { } } + slice.removeSelfIntersect(); + slices.push(slice); }