diff --git a/package.json b/package.json index 2e0dd3ea..a71a66c1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "grid-apps", - "version": "2.4.11D", + "version": "2.4.12D", "description": "grid.space 3d slice & modeling tools", "author": "Stewart Allen ", "license": "MIT", diff --git a/src/kiri.js b/src/kiri.js index 6e81157b..fb54dd5f 100644 --- a/src/kiri.js +++ b/src/kiri.js @@ -6,7 +6,7 @@ if (!self.kiri) { self.kiri = { - beta: 2411, + beta: 2412, driver: {}, // driver modules loader: [] // module loading: array of functions }; diff --git a/src/license.js b/src/license.js index abc43a8d..68889d4c 100644 --- a/src/license.js +++ b/src/license.js @@ -3,7 +3,7 @@ let terms = { COPYRIGHT: "Copyright (C) Stewart Allen - All Rights Reserved", LICENSE: "See the license.md file included with the source distribution", - VERSION: "2.4.D11" + VERSION: "2.4.D12" }; if (typeof(module) === 'object') { diff --git a/src/mode/cam/slice.js b/src/mode/cam/slice.js index 093523f7..c295b6b8 100644 --- a/src/mode/cam/slice.js +++ b/src/mode/cam/slice.js @@ -561,9 +561,15 @@ } // add shadow perimeter to terrain to catch outside moves off part - let shadowOff = POLY.offset(shadowTop.tops, minToolDiam / 2); + let tabpoly = tabs ? tabs.map(tab => tab.poly) : []; + let allpoly = POLY.union([...shadowTop.tops, ...tabpoly], 0, true); + let shadowOff = POLY.offset(allpoly, [minToolDiam/2,maxToolDiam/2], { count: 2, flat: true }); terrain.forEach(level => level.tops.appendAll(shadowOff)); + // let dslice = KIRI.newSlice(-1); + // dslice.output().setLayer("shadowOff", { line: 0xff0000 }).addPolys(shadowOff); + // sliceAll.push(dslice); + widget.terrain = terrain; widget.minToolDiam = minToolDiam; widget.maxToolDiam = maxToolDiam;