From 812b7adb284de09419c21eb3b0a012a33aea412e Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Sat, 23 Mar 2019 22:44:09 +0100 Subject: [PATCH] remove newPoints and reuse points for backward compatibility --- diylc/diylc-library/lib/diylc-core.jar | Bin 277896 -> 277896 bytes .../diylc/components/Abstract3LegSymbol.java | 31 +++---- .../components/AbstractLeadedComponent.java | 86 +++++++++--------- .../passive/PotentiometerSymbol.java | 2 +- .../components/semiconductors/BJTSymbol.java | 2 +- .../components/semiconductors/JFETSymbol.java | 2 +- .../semiconductors/MOSFETSymbol.java | 2 +- diylc/diylc-swing/lib/diylc-core.jar | Bin 277896 -> 277896 bytes diylc/diylc-swing/library/main.jar | Bin 618595 -> 618494 bytes 9 files changed, 60 insertions(+), 65 deletions(-) diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 76ef488d54982f17e2065ad83eb0ed25f196594f..70a6bcb0d3a7aefc5f7bc1975f715ffed2471b43 100644 GIT binary patch delta 4893 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 Sbf@O-bT?JqsZN(3GVA{i;gt9Q delta 4893 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 { public static Color COLOR = Color.black; protected String value = ""; - protected Point[] controlPoints; - protected Point[] newControlPoints = new Point[] { new Point(0, 0), new Point(0, 0), new Point(0, 0), new Point(0, 0) }; + protected Point[] controlPoints = new Point[] { new Point(0, 0), new Point(0, 0), new Point(0, 0), new Point(0, 0) }; protected Color color = COLOR; protected SymbolFlipping flip = SymbolFlipping.NONE; protected Display display = Display.NAME; @@ -68,15 +67,15 @@ public abstract class Abstract3LegSymbol extends AbstractComponent { public Abstract3LegSymbol() { super(); - updateControlPoints(); + updateControlPoints(); + controlPoints[3] = getDefaultLabelPosition(controlPoints); } - public Point[] getNewControlPoints() { - if (controlPoints != null) { - newControlPoints = new Point[] { controlPoints[0], controlPoints[1], controlPoints[2], getDefaultLabelPosition(controlPoints) }; - controlPoints = null; + public Point[] getControlPoints() { + if (controlPoints.length == 3) { + controlPoints = new Point[] { controlPoints[0], controlPoints[1], controlPoints[2], getDefaultLabelPosition(controlPoints) }; } - return newControlPoints; + return controlPoints; } protected Point getDefaultLabelPosition(Point[] oldControlPoints) { @@ -111,7 +110,7 @@ public abstract class Abstract3LegSymbol extends AbstractComponent { AffineTransform old = g2d.getTransform(); - Point[] controlPoints = getNewControlPoints(); + Point[] controlPoints = getControlPoints(); if (this.flip == SymbolFlipping.Y) { g2d.translate(0, controlPoints[0].y); @@ -172,27 +171,27 @@ public abstract class Abstract3LegSymbol extends AbstractComponent { @Override public Point getControlPoint(int index) { - return getNewControlPoints()[index]; + return getControlPoints()[index]; } @Override public int getControlPointCount() { - return getNewControlPoints().length; + return getControlPoints().length; } protected int getLabelX(Rectangle2D shapeRect, Rectangle2D textRect, FontMetrics fontMetrics, boolean outlineMode) { int f = flip == SymbolFlipping.X ? -1 : 1; int d = flip == SymbolFlipping.X ? (int) PIN_SPACING.convertToPixels() / 2 : 0; - return getNewControlPoints()[0].x + f * (int) (PIN_SPACING.convertToPixels() * 1.5 + d); + return getControlPoints()[0].x + f * (int) (PIN_SPACING.convertToPixels() * 1.5 + d); } protected int getLabelY(Rectangle2D shapeRect, Rectangle2D textRect, FontMetrics fontMetrics, boolean outlineMode) { - return getNewControlPoints()[0].y; + return getControlPoints()[0].y; } protected void updateControlPoints() { int pinSpacing = (int) PIN_SPACING.convertToPixels(); - Point[] controlPoints = getNewControlPoints(); + Point[] controlPoints = getControlPoints(); int x = controlPoints[0].x; int y = controlPoints[0].y; @@ -254,7 +253,7 @@ public abstract class Abstract3LegSymbol extends AbstractComponent { @Override public void setControlPoint(Point point, int index) { - getNewControlPoints()[index].setLocation(point); + getControlPoints()[index].setLocation(point); // make sure we have a new drawing body = null; @@ -330,7 +329,7 @@ public abstract class Abstract3LegSymbol extends AbstractComponent { if (getOrientation() == Orientation.DEFAULT) return; - Point first = getNewControlPoints()[0]; + Point first = getControlPoints()[0]; double angle = Double.parseDouble(getOrientation().name().replace("_", "")); AffineTransform rotate = AffineTransform.getRotateInstance(Math.toRadians(angle), first.x, first.y); diff --git a/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java b/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java index 30f51840..5612c480 100644 --- a/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java +++ b/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java @@ -71,9 +71,7 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp protected Size length; protected Size width; - @Deprecated - protected Point[] points; - protected Point[] newPoints = new Point[] {new Point((int) (-DEFAULT_SIZE.convertToPixels() / 2), 0), + protected Point[] points = new Point[] {new Point((int) (-DEFAULT_SIZE.convertToPixels() / 2), 0), new Point((int) (DEFAULT_SIZE.convertToPixels() / 2), 0), new Point(0, 0)}; protected Color bodyColor = Color.white; protected Color borderColor = Color.black; @@ -97,25 +95,23 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp // This should never happen because Size supports cloning. } catch (NullPointerException e) { // This will happen if components do not have any shape. - } - if (newPoints != null) - newPoints[2] = calculateLabelPosition(newPoints[0], newPoints[1]); + } + points[2] = calculateLabelPosition(points[0], points[1]); } protected boolean IsCopperArea() { return false; } - protected Point[] getNewPoints() { + protected Point[] getPoints() { // convert old points to new - if (points != null) { - newPoints = new Point[] { points[0], points[1], calculateLabelPosition(points[0], points[1]) }; - points = null; + if (points.length == 2) { + points = new Point[] { points[0], points[1], calculateLabelPosition(points[0], points[1]) }; // to make standing components backward compatible and not show a label until the user switches the display to something else if (isStanding()) display = Display.NONE; } - return newPoints; + return points; } protected Point calculateLabelPosition(Point point1, Point point2) { @@ -129,16 +125,16 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp IDrawingObserver drawingObserver) { if (gamma != null) { // recalculate center position and theta, then adjust label point accordingly, while preserving alpha and p - double x = (getNewPoints()[1].x + getNewPoints()[0].x) / 2.0; - double y = (getNewPoints()[1].y + getNewPoints()[0].y) / 2.0; - double theta = Math.atan2(getNewPoints()[1].y - getNewPoints()[0].y, getNewPoints()[1].x - getNewPoints()[0].x); + double x = (getPoints()[1].x + getPoints()[0].x) / 2.0; + double y = (getPoints()[1].y + getPoints()[0].y) / 2.0; + double theta = Math.atan2(getPoints()[1].y - getPoints()[0].y, getPoints()[1].x - getPoints()[0].x); double beta = gamma - (Math.PI / 2 - theta); - getNewPoints()[2].setLocation(x + Math.cos(beta) * r, y + Math.sin(beta) * r); + getPoints()[2].setLocation(x + Math.cos(beta) * r, y + Math.sin(beta) * r); gamma = null; r = null; } - double distance = getNewPoints()[0].distance(getNewPoints()[1]); + double distance = getPoints()[0].distance(getPoints()[1]); Shape shape = getBodyShape(); // If there's no body, just draw the line connecting the ending points. if (shape == null) { @@ -150,15 +146,15 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp double width; double length; Rectangle shapeRect; - double theta = Math.atan2(getNewPoints()[1].y - getNewPoints()[0].y, getNewPoints()[1].x - getNewPoints()[0].x); + double theta = Math.atan2(getPoints()[1].y - getPoints()[0].y, getPoints()[1].x - getPoints()[0].x); if (isStanding()) { // When ending points are too close draw the component in standing // mode. width = length = getClosestOdd(this.width.convertToPixels()); Shape body = - new Ellipse2D.Double((getFlipStanding() ? getNewPoints()[1] : getNewPoints()[0]).x - width / 2, - (getFlipStanding() ? getNewPoints()[1] : getNewPoints()[0]).y - width / 2, width, width); + new Ellipse2D.Double((getFlipStanding() ? getPoints()[1] : getPoints()[0]).x - width / 2, + (getFlipStanding() ? getPoints()[1] : getPoints()[0]).y - width / 2, width, width); shapeRect = body.getBounds(); Composite oldComposite = g2d.getComposite(); if (alpha < MAX_ALPHA) { @@ -206,14 +202,14 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp Area leadArea = new Area(); - int endX = (int) (getNewPoints()[0].x + Math.cos(theta) * leadLength); - int endY = (int) (getNewPoints()[0].y + Math.sin(theta) * leadLength); - Line2D line = new Line2D.Double(getNewPoints()[0].x, getNewPoints()[0].y, endX, endY); + int endX = (int) (getPoints()[0].x + Math.cos(theta) * leadLength); + int endY = (int) (getPoints()[0].y + Math.sin(theta) * leadLength); + Line2D line = new Line2D.Double(getPoints()[0].x, getPoints()[0].y, endX, endY); leadArea.add(new Area(leadStroke.createStrokedShape(line))); - endX = (int) (getNewPoints()[1].x + Math.cos(theta - Math.PI) * leadLength); - endY = (int) (getNewPoints()[1].y + Math.sin(theta - Math.PI) * leadLength); - line = new Line2D.Double(getNewPoints()[1].x, getNewPoints()[1].y, endX, endY); + endX = (int) (getPoints()[1].x + Math.cos(theta - Math.PI) * leadLength); + endY = (int) (getPoints()[1].y + Math.sin(theta - Math.PI) * leadLength); + line = new Line2D.Double(getPoints()[1].x, getPoints()[1].y, endX, endY); leadArea.add(new Area(leadStroke.createStrokedShape(line))); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1f)); @@ -238,7 +234,7 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp width = getWidth().convertToPixels(); length = getLength().convertToPixels(); } - g2d.translate((getNewPoints()[0].x + getNewPoints()[1].x - length) / 2, (getNewPoints()[0].y + getNewPoints()[1].y - width) / 2); + g2d.translate((getPoints()[0].x + getPoints()[1].x - length) / 2, (getPoints()[0].y + getPoints()[1].y - width) / 2); g2d.rotate(theta, length / 2, width / 2); // Draw body. Composite oldComposite = g2d.getComposite(); @@ -331,7 +327,7 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp if (getMoveLabel()) { g2d.setTransform(oldTransform); - g2d.translate(getNewPoints()[2].x, getNewPoints()[2].y); + g2d.translate(getPoints()[2].x, getPoints()[2].y); if (getLabelOriantation() != LabelOriantation.Horizontal) { g2d.rotate(theta); } @@ -340,8 +336,8 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp } else { if (isStanding() || getLabelOriantation() == LabelOriantation.Horizontal) { g2d.setTransform(oldTransform); - double x = (getNewPoints()[0].x + getNewPoints()[1].x - length) / 2.0; - double y = (getNewPoints()[0].y + getNewPoints()[1].y - width) / 2.0; + double x = (getPoints()[0].x + getPoints()[1].x - length) / 2.0; + double y = (getPoints()[0].y + getPoints()[1].y - width) / 2.0; g2d.drawString(label, (int) (x + (length - textRect.getWidth()) / 2 + offset), (int)(y + calculateLabelYOffset(shapeRect, textRect, fontMetrics))); } else { @@ -363,17 +359,17 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp } protected boolean isStanding() { - return supportsStandingMode() && this.length.convertToPixels() > getNewPoints()[0].distance(getNewPoints()[1]); + return supportsStandingMode() && this.length.convertToPixels() > getPoints()[0].distance(getPoints()[1]); } private void drawLeads(Graphics2D g2d, double theta, double leadLength) { - double endX = getNewPoints()[0].x + Math.cos(theta) * leadLength; - double endY = getNewPoints()[0].y + Math.sin(theta) * leadLength; - g2d.draw(new Line2D.Double(getNewPoints()[0].x, getNewPoints()[0].y, endX, endY)); + double endX = getPoints()[0].x + Math.cos(theta) * leadLength; + double endY = getPoints()[0].y + Math.sin(theta) * leadLength; + g2d.draw(new Line2D.Double(getPoints()[0].x, getPoints()[0].y, endX, endY)); - endX = getNewPoints()[1].x + Math.cos(theta - Math.PI) * leadLength; - endY = getNewPoints()[1].y + Math.sin(theta - Math.PI) * leadLength; - g2d.draw(new Line2D.Double(getNewPoints()[1].x, getNewPoints()[1].y, endX, endY)); + endX = getPoints()[1].x + Math.cos(theta - Math.PI) * leadLength; + endY = getPoints()[1].y + Math.sin(theta - Math.PI) * leadLength; + g2d.draw(new Line2D.Double(getPoints()[1].x, getPoints()[1].y, endX, endY)); } private void drawLead(Graphics2D g2d, ComponentState componentState, IDrawingObserver observer, boolean isCopperArea) { @@ -382,7 +378,7 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp float thickness = getLeadThickness(); - Line2D line = new Line2D.Double(getNewPoints()[0].x, getNewPoints()[0].y, getNewPoints()[1].x, getNewPoints()[1].y); + Line2D line = new Line2D.Double(getPoints()[0].x, getPoints()[0].y, getPoints()[1].x, getPoints()[1].y); if (shouldShadeLeads()) { // for some reason the stroked line gets approx 1px thicker when converted to shape @@ -519,12 +515,12 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp @Override public int getControlPointCount() { - return getNewPoints().length; + return getPoints().length; } @Override public Point getControlPoint(int index) { - return (Point) getNewPoints()[index]; + return (Point) getPoints()[index]; } @Override @@ -547,12 +543,12 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp // when moving one of the ending points, try to retain the angle and distance from the center point to label point if (index < 2) { if (gamma == null) { - double x = (getNewPoints()[1].x + getNewPoints()[0].x) / 2.0; - double y = (getNewPoints()[1].y + getNewPoints()[0].y) / 2.0; - double theta = Math.atan2(getNewPoints()[1].y - getNewPoints()[0].y, getNewPoints()[1].x - getNewPoints()[0].x); - double beta = Math.atan2(getNewPoints()[2].y - y, getNewPoints()[2].x - x); + double x = (getPoints()[1].x + getPoints()[0].x) / 2.0; + double y = (getPoints()[1].y + getPoints()[0].y) / 2.0; + double theta = Math.atan2(getPoints()[1].y - getPoints()[0].y, getPoints()[1].x - getPoints()[0].x); + double beta = Math.atan2(getPoints()[2].y - y, getPoints()[2].x - x); gamma = beta + (Math.PI / 2 - theta); - r = getNewPoints()[2].distance(x, y); + r = getPoints()[2].distance(x, y); } else { // in case when we are copy pasting we don't want to recalculate 3rd point position as they will all move in unison // when we moved the first point, gamma and r were initialized, so now we are canceling gamma = null; @@ -560,7 +556,7 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp } } - getNewPoints()[index].setLocation(point); + getPoints()[index].setLocation(point); } @EditableProperty(name = "Color") diff --git a/diylc/diylc-library/src/org/diylc/components/passive/PotentiometerSymbol.java b/diylc/diylc-library/src/org/diylc/components/passive/PotentiometerSymbol.java index 389776d6..3804034c 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/PotentiometerSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/PotentiometerSymbol.java @@ -49,7 +49,7 @@ public class PotentiometerSymbol extends Abstract3LegSymbol { public Shape[] getBody() { Shape[] body = new Shape[3]; - Point[] controlPoints = getNewControlPoints(); + Point[] controlPoints = getControlPoints(); int x = controlPoints[0].x; int y = controlPoints[0].y; int pinSpacing = (int) PIN_SPACING.convertToPixels(); diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java index a7d5cf19..76af7c98 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java @@ -47,7 +47,7 @@ public class BJTSymbol extends Abstract3LegSymbol { public Shape[] getBody() { Shape[] body = new Shape[3]; - Point[] controlPoints = getNewControlPoints(); + Point[] controlPoints = getControlPoints(); int x = controlPoints[0].x; int y = controlPoints[0].y; int pinSpacing = (int) PIN_SPACING.convertToPixels(); diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java index 9ed9ae58..c7bb3f85 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java @@ -45,7 +45,7 @@ public class JFETSymbol extends Abstract3LegSymbol { public Shape[] getBody() { Shape[] body = new Shape[3]; - Point[] controlPoints = getNewControlPoints(); + Point[] controlPoints = getControlPoints(); int x = controlPoints[0].x; int y = controlPoints[0].y; int pinSpacing = (int) PIN_SPACING.convertToPixels(); diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java index c50b355b..9595fd4f 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java @@ -45,7 +45,7 @@ public class MOSFETSymbol extends Abstract3LegSymbol { public Shape[] getBody() { Shape[] body = new Shape[3]; - Point[] controlPoints = getNewControlPoints(); + Point[] controlPoints = getControlPoints(); int x = controlPoints[0].x; int y = controlPoints[0].y; int pinSpacing = (int) PIN_SPACING.convertToPixels(); diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 76ef488d54982f17e2065ad83eb0ed25f196594f..70a6bcb0d3a7aefc5f7bc1975f715ffed2471b43 100644 GIT binary patch delta 4893 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 Sbf@O-bT?JqsZN(3GVA{i;gt9Q delta 4893 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 delta 32824 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