diff --git a/src/kiri/mode/cam/op-shadow.js b/src/kiri/mode/cam/op-shadow.js index e0289a11..a72b72d6 100644 --- a/src/kiri/mode/cam/op-shadow.js +++ b/src/kiri/mode/cam/op-shadow.js @@ -41,9 +41,22 @@ class OpShadow extends CamOp { } if (skipTerrain) { + let { stock } = settings; + let { center } = stock; + console.log("skipping terrain generation"); - shadowBase = [ newPolygon() ]; + shadowBase = [ newPolygon().centerRectangle(center, stock.x, stock.y) ]; tzindex = [ ]; + + state.shadow = { + base: shadowBase, // computed shadow union at base of part + holes: [], + skip: skipTerrain, + slices: [], // legacy / transitional + stack: [], // stack of shadow slices + }; + + return; } // distributed pre-fill shadow layer cache diff --git a/src/kiri/mode/cam/slice.js b/src/kiri/mode/cam/slice.js index 0b10a804..d06d2e10 100644 --- a/src/kiri/mode/cam/slice.js +++ b/src/kiri/mode/cam/slice.js @@ -150,6 +150,10 @@ export async function cam_slice(settings, widget, onupdate, ondone) { onupdate(null,null,msg); } + function shadowAt(z) { + return widget.shadowAt(z); + } + if (unsafe) { console.log("disabling overhang safeties"); } @@ -202,7 +206,7 @@ export async function cam_slice(settings, widget, onupdate, ondone) { setAxisIndex, setToolDiam, settings, - shadowAt(z) { return widget.shadowAt(z) }, + shadowAt, slicer, stock, tabs,