diff --git a/diylc/diylc-core/src/org/diylc/components/AbstractCurvedComponent.java b/diylc/diylc-core/src/org/diylc/components/AbstractCurvedComponent.java index ef0c4d76..9d60ddee 100644 --- a/diylc/diylc-core/src/org/diylc/components/AbstractCurvedComponent.java +++ b/diylc/diylc-core/src/org/diylc/components/AbstractCurvedComponent.java @@ -322,7 +322,7 @@ public abstract class AbstractCurvedComponent extends AbstractTransparentComp // } } - enum PointCount { + public enum PointCount { TWO(2), THREE(3), FOUR(4), FIVE(5), SEVEN(7); private int count; diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index af1bcaf3..c735aab7 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 f09e90d1..b8846583 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/TwistedWire.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/TwistedWire.java @@ -158,6 +158,15 @@ public class TwistedWire extends AbstractCurvedComponent { this.firstLeadArea = null; this.secondLeadArea = null; } + + @Override + public void setPointCount(PointCount pointCount) { + super.setPointCount(pointCount); + + // invalidate cached areas + this.firstLeadArea = null; + this.secondLeadArea = null; + } @Override public Void getValue() { @@ -186,14 +195,17 @@ public class TwistedWire extends AbstractCurvedComponent { curves.add(new CubicCurve2D.Double(current.x, current.y, (current.x + coords[0]) / 2, (current.y + coords[1]) / 2, (current.x + coords[0]) / 2, (current.y + coords[1]) / 2, coords[0], coords[1])); + current.setLocation(coords[0], coords[1]); break; case PathIterator.SEG_QUADTO: curves.add(new CubicCurve2D.Double(current.x, current.y, coords[0], coords[1], coords[0], coords[1], coords[2], coords[3])); + current.setLocation(coords[2], coords[3]); break; case PathIterator.SEG_CUBICTO: curves.add(new CubicCurve2D.Double(current.x, current.y, coords[0], coords[1], coords[2], coords[3], coords[4], coords[5])); + current.setLocation(coords[4], coords[5]); break; } iterator.next(); diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index af1bcaf3..c735aab7 100644 Binary files a/diylc/diylc-swing/lib/diylc-core.jar and b/diylc/diylc-swing/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index ac6219e8..55c9cb7a 100644 Binary files a/diylc/diylc-swing/library/main.jar and b/diylc/diylc-swing/library/main.jar differ