From 70b1240da5a959295f19acda9ae0669993d42047 Mon Sep 17 00:00:00 2001 From: Severin Ibarluzea Date: Fri, 21 Jun 2024 08:23:31 -0700 Subject: [PATCH] fix: port offset sometimes not connecting properly --- .../route-solvers/port-offset-wrapper.ts | 18 ++++++++++-------- .../bad-schematic-route-1.test.ts | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/lib/builder/trace-builder/route-solvers/port-offset-wrapper.ts b/src/lib/builder/trace-builder/route-solvers/port-offset-wrapper.ts index 15823aa..57f930a 100644 --- a/src/lib/builder/trace-builder/route-solvers/port-offset-wrapper.ts +++ b/src/lib/builder/trace-builder/route-solvers/port-offset-wrapper.ts @@ -34,14 +34,16 @@ export const portOffsetWrapper = const ot = offsetTerminals[i] // Find nearest point in the route to the offset terminal - const nearestPoint = edges.reduce( - (nearest, edge) => { - const dist = Math.hypot(edge.from.x - ot.x, edge.from.y - ot.y) - if (dist < nearest.dist) return { dist, point: edge.from } - return nearest - }, - { dist: Infinity, point: { x: 0, y: 0 } } - ) + const nearestPoint = edges + .flatMap((edge) => [edge.from, edge.to]) + .reduce( + (nearest, p) => { + const dist = Math.hypot(p.x - ot.x, p.y - ot.y) + if (dist < nearest.dist) return { dist, point: p } + return nearest + }, + { dist: Infinity, point: { x: 0, y: 0 } } + ) return { from: { x: t.x, y: t.y, ti: i }, diff --git a/tests/trace-builder/bad-schematic-route-1.test.ts b/tests/trace-builder/bad-schematic-route-1.test.ts index f451be3..cc47dbf 100644 --- a/tests/trace-builder/bad-schematic-route-1.test.ts +++ b/tests/trace-builder/bad-schematic-route-1.test.ts @@ -9,7 +9,7 @@ test("bad schematic route 1", async (t) => { rb.setProps({ resistance: 100, name: "R1", - rotation: "-90deg", + rotation: "90deg", schX: -2, schY: -2, })