diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index c735aab7..8b2c7d5e 100644 Binary files a/diylc/diylc-library/lib/diylc-core.jar and b/diylc/diylc-library/lib/diylc-core.jar differ diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/TwistedWire.java b/diylc/diylc-library/src/org/diylc/components/connectivity/TwistedWire.java index 8e8b009c..0a0737b7 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/TwistedWire.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/TwistedWire.java @@ -234,6 +234,7 @@ public class TwistedWire extends AbstractCurvedComponent { current1.moveTo(polygon.get(0).getX1(), polygon.get(0).getY1()); current2.moveTo(polygon.get(0).getX1(), polygon.get(0).getY1()); + // create curved paths for each segment of the twisted pair for (int i = 0; i < polygon.size(); i++) { Line2D line = polygon.get(i); double centerX = (line.getX1() + line.getX2()) / 2; @@ -262,6 +263,7 @@ public class TwistedWire extends AbstractCurvedComponent { } } + // convert to Area for (Path2D p : firstCurves) { firstLeadArea.add(new Area(stroke.createStrokedShape(p))); } @@ -269,6 +271,7 @@ public class TwistedWire extends AbstractCurvedComponent { secondLeadArea.add(new Area(stroke.createStrokedShape(p))); } + // at overlapping points, decide which lead goes on top and clear the overlapping area from the lead below for (int i = 0; i < polygon.size(); i++) { Line2D line = polygon.get(i); Area pointRect1 = new Area(new Rectangle2D.Double(line.getX1() - rectSize / 2, line.getY1() - rectSize / 2, rectSize, rectSize)); @@ -294,6 +297,7 @@ public class TwistedWire extends AbstractCurvedComponent { } } + // splits a curve into a series of lines private List split(CubicCurve2D curve, double segmentLength) { Point2D p1 = curve.getP1(); Point2D p2 = curve.getP2(); @@ -316,6 +320,7 @@ public class TwistedWire extends AbstractCurvedComponent { return res; } + // calculates length of a curve, given the precision private double calculateLength(CubicCurve2D curve, double precision) { Point2D p1 = curve.getP1(); Point2D p2 = curve.getP2();