From 79ccaeffd9ed72b15a4a6f52a3f55b7e42e44eaf Mon Sep 17 00:00:00 2001 From: boluo Date: Sun, 11 May 2025 19:39:35 +0800 Subject: [PATCH 1/2] fix(border painter): improve fill validation for edge.cuts with (fill: no) in kicad_pcb --- src/viewers/board/painter.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/viewers/board/painter.ts b/src/viewers/board/painter.ts index 20f36d86..2488f289 100644 --- a/src/viewers/board/painter.ts +++ b/src/viewers/board/painter.ts @@ -39,6 +39,10 @@ abstract class BoardItemPainter extends ItemPainter { get filter_net(): number | null { return (this.view_painter as BoardPainter).filter_net; } + + protected isFillValid(fill: string ): boolean { + return Boolean(fill && fill !== "none" && fill !== "no"); + } } class LinePainter extends BoardItemPainter { @@ -77,7 +81,7 @@ class RectPainter extends BoardItemPainter { this.gfx.line(new Polyline(points, r.width, color)); - if (r.fill && r.fill != "none") { + if (this.isFillValid(r.fill)) { this.gfx.polygon(new Polygon(points, color)); } } @@ -104,7 +108,7 @@ class PolyPainter extends BoardItemPainter { this.gfx.line(new Polyline([...p.pts, p.pts[0]!], p.width, color)); } - if (p.fill && p.fill != "none") { + if (this.isFillValid(p.fill)) { this.gfx.polygon(new Polygon(p.pts, color)); } } @@ -147,7 +151,7 @@ class CirclePainter extends BoardItemPainter { c.width, ); - if (c.fill && c.fill != "none") { + if (this.isFillValid(c.fill)) { this.gfx.circle( new Circle(arc.center, arc.radius + (c.width ?? 0), color), ); From 42474e1d19c8a9bec45b71f6455c6ea652a0282e Mon Sep 17 00:00:00 2001 From: boluo Date: Tue, 10 Jun 2025 11:02:39 +0800 Subject: [PATCH 2/2] fix: lint error --- src/viewers/board/painter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/viewers/board/painter.ts b/src/viewers/board/painter.ts index 2488f289..b3e4c0b4 100644 --- a/src/viewers/board/painter.ts +++ b/src/viewers/board/painter.ts @@ -40,7 +40,7 @@ abstract class BoardItemPainter extends ItemPainter { return (this.view_painter as BoardPainter).filter_net; } - protected isFillValid(fill: string ): boolean { + protected isFillValid(fill: string): boolean { return Boolean(fill && fill !== "none" && fill !== "no"); } }