From be43ef559c47c2c46d88ef6cc4e0c5ee85f0e387 Mon Sep 17 00:00:00 2001 From: Bane Stojkovic Date: Sun, 18 May 2025 11:14:17 +0200 Subject: [PATCH] Improved trace proximity calculation to avoid showing false positives --- .../main/java/org/diylc/presenter/DrawingManager.java | 9 +++++++-- diylc/diylc-core/src/main/resources/update.xml | 4 ++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/diylc/diylc-core/src/main/java/org/diylc/presenter/DrawingManager.java b/diylc/diylc-core/src/main/java/org/diylc/presenter/DrawingManager.java index 6129bb84d..6947e26cc 100644 --- a/diylc/diylc-core/src/main/java/org/diylc/presenter/DrawingManager.java +++ b/diylc/diylc-core/src/main/java/org/diylc/presenter/DrawingManager.java @@ -885,8 +885,13 @@ public class DrawingManager { List continuityAreas = getContinuityAreas(); Stroke s = ObjectCache.getInstance().fetchBasicStroke(threshold - 1); // value eyeballed for // approx good results - List expanded = continuityAreas.parallelStream() - .map((a) -> new Area(s.createStrokedShape(a.getArea()))).collect(Collectors.toList()); + + List areas = new ArrayList<>(continuityAreas.stream().map(ContinuityArea::getArea).toList()); + AreaUtils.crunchAreas(areas, null); + + List expanded = areas.parallelStream() + .map((a) -> new Area(s.createStrokedShape(a))).toList(); + List intersections = new ArrayList(); for (int i = 0; i < expanded.size() - 1; i++) { for (int j = i + 1; j < expanded.size(); j++) { diff --git a/diylc/diylc-core/src/main/resources/update.xml b/diylc/diylc-core/src/main/resources/update.xml index 27eaccdcb..f7b93e80c 100644 --- a/diylc/diylc-core/src/main/resources/update.xml +++ b/diylc/diylc-core/src/main/resources/update.xml @@ -297,6 +297,10 @@ IMPROVEMENT Increased tolerance of sticky points on guitar pickup terminals in order to make it easier for leads to make proper contact and for the circuit analyzer to work + + IMPROVEMENT + Improved trace proximity calculation to avoid showing false positives + BUG_FIX If the internet connection is present, but unstable, the application starts but nothing can be clicked until the connection restores