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 6129bb84..6947e26c 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 29afe1d8..4fa80877 100644 --- a/diylc/diylc-core/src/main/resources/update.xml +++ b/diylc/diylc-core/src/main/resources/update.xml @@ -301,6 +301,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