From cd7c0f75973c9dea0101c80c49a419338e378368 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Mon, 8 Dec 2025 17:35:21 -0500 Subject: [PATCH] fix shadow coplanar with bottom z --- src/kiri/core/widget.js | 2 ++ src/kiri/mode/cam/op-area.js | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/kiri/core/widget.js b/src/kiri/core/widget.js index 7cba6cb5..c7385295 100644 --- a/src/kiri/core/widget.js +++ b/src/kiri/core/widget.js @@ -913,6 +913,8 @@ class Widget { if (a.z < z && b.z < z && c.z < z) { // skip faces under threshold continue; + } else if (a.z === z && a.z === b.z && a.z === c.z) { + // skip faces coplanar with z (shadow looks up) } else if (a.z >= z && b.z >= z && c.z >= z) { found.push([a, b, c]); } else { diff --git a/src/kiri/mode/cam/op-area.js b/src/kiri/mode/cam/op-area.js index e078b5be..5820cdef 100644 --- a/src/kiri/mode/cam/op-area.js +++ b/src/kiri/mode/cam/op-area.js @@ -17,7 +17,7 @@ const clib = self.ClipperLib; const ctyp = clib.ClipType; const ptyp = clib.PolyType; const cfil = clib.PolyFillType; -const ts_off = 0.1; +const ts_off = 0.01; class OpArea extends CamOp { constructor(state, op) {