From 77a18cb258f199a3b21051acb1d08c147421467e Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Mon, 5 Jan 2026 00:31:27 -0500 Subject: [PATCH] allow contour only op chains with shadow disabled --- src/kiri/mode/cam/op-shadow.js | 15 ++++++++++++++- src/kiri/mode/cam/slice.js | 6 +++++- 2 files changed, 19 insertions(+), 2 deletions(-) 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,