mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-13 10:42:09 +10:00
Improved precision of rendering
This commit is contained in:
@@ -386,8 +386,8 @@ public class DrawingManager {
|
||||
g2dWrapper.setColor(CONTROL_POINT_COLOR);
|
||||
Point2D controlPoint = component.getControlPoint(i);
|
||||
int pointSize = CONTROL_POINT_SIZE - 2;
|
||||
g2dWrapper.fillOval((int) (controlPoint.getX() - pointSize / 2),
|
||||
(int) (controlPoint.getY() - pointSize / 2), pointSize, pointSize);
|
||||
g2dWrapper.fillOval((int) Math.round(controlPoint.getX() - pointSize / 2),
|
||||
(int) Math.round(controlPoint.getY() - pointSize / 2), pointSize, pointSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -403,11 +403,11 @@ public class DrawingManager {
|
||||
int pointSize = CONTROL_POINT_SIZE;
|
||||
|
||||
g2dWrapper.setColor(SELECTED_CONTROL_POINT_COLOR.darker());
|
||||
g2dWrapper.fillOval((int) (controlPoint.getX() - pointSize / 2),
|
||||
(int) (controlPoint.getY() - pointSize / 2), pointSize, pointSize);
|
||||
g2dWrapper.fillOval((int) Math.round(controlPoint.getX() - pointSize / 2),
|
||||
(int) Math.round(controlPoint.getY() - pointSize / 2), pointSize, pointSize);
|
||||
g2dWrapper.setColor(SELECTED_CONTROL_POINT_COLOR);
|
||||
g2dWrapper.fillOval((int) (controlPoint.getX() - CONTROL_POINT_SIZE / 2 + 1),
|
||||
(int) (controlPoint.getY() - CONTROL_POINT_SIZE / 2 + 1), CONTROL_POINT_SIZE - 2,
|
||||
g2dWrapper.fillOval((int) Math.round(controlPoint.getX() - CONTROL_POINT_SIZE / 2 + 1),
|
||||
(int) Math.round(controlPoint.getY() - CONTROL_POINT_SIZE / 2 + 1), CONTROL_POINT_SIZE - 2,
|
||||
CONTROL_POINT_SIZE - 2);
|
||||
}
|
||||
}
|
||||
@@ -437,12 +437,12 @@ public class DrawingManager {
|
||||
for (Point2D point : controlPointSlot) {
|
||||
if (point != null) {
|
||||
g2dWrapper.setColor(SELECTED_CONTROL_POINT_COLOR.darker());
|
||||
g2dWrapper.fillOval((int) (point.getX() - CONTROL_POINT_SIZE / 2),
|
||||
(int) (point.getY() - CONTROL_POINT_SIZE / 2), CONTROL_POINT_SIZE,
|
||||
g2dWrapper.fillOval((int) Math.round(point.getX() - CONTROL_POINT_SIZE / 2),
|
||||
(int) Math.round(point.getY() - CONTROL_POINT_SIZE / 2), CONTROL_POINT_SIZE,
|
||||
CONTROL_POINT_SIZE);
|
||||
g2dWrapper.setColor(SELECTED_CONTROL_POINT_COLOR);
|
||||
g2dWrapper.fillOval((int) (point.getX() - CONTROL_POINT_SIZE / 2 + 1),
|
||||
(int) (point.getY() - CONTROL_POINT_SIZE / 2 + 1), CONTROL_POINT_SIZE - 2,
|
||||
g2dWrapper.fillOval((int) Math.round(point.getX() - CONTROL_POINT_SIZE / 2 + 1),
|
||||
(int) Math.round(point.getY() - CONTROL_POINT_SIZE / 2 + 1), CONTROL_POINT_SIZE - 2,
|
||||
CONTROL_POINT_SIZE - 2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1289,8 +1289,8 @@ public class Presenter implements IPlugInPort {
|
||||
// If there's no selection, the only thing to do is update the
|
||||
// selection rectangle and refresh.
|
||||
Rectangle oldSelectionRect = selectionRect == null ? null : new Rectangle(selectionRect);
|
||||
this.selectionRect = Utils.createRectangle(new Point((int)scaledPoint.getX(), (int)scaledPoint.getY()),
|
||||
new Point((int)previousDragPoint.getX(), (int)previousDragPoint.getY()));
|
||||
this.selectionRect = Utils.createRectangle(new Point((int) Math.round(scaledPoint.getX()), (int) Math.round(scaledPoint.getY())),
|
||||
new Point((int) Math.round(previousDragPoint.getX()), (int) Math.round(previousDragPoint.getY())));
|
||||
if (selectionRect.equals(oldSelectionRect)) {
|
||||
return true;
|
||||
}
|
||||
@@ -1621,8 +1621,8 @@ public class Presenter implements IPlugInPort {
|
||||
// If there's no selection finalize selectionRect and see which
|
||||
// components intersect with it.
|
||||
if (scaledPoint != null && previousDragPoint != null) {
|
||||
this.selectionRect = Utils.createRectangle(new Point((int)scaledPoint.getX(), (int)scaledPoint.getY()),
|
||||
new Point((int)previousDragPoint.getX(), (int)previousDragPoint.getY()));;
|
||||
this.selectionRect = Utils.createRectangle(new Point((int) Math.round(scaledPoint.getX()), (int) Math.round(scaledPoint.getY())),
|
||||
new Point((int) Math.round(previousDragPoint.getX()), (int) Math.round(previousDragPoint.getY())));;
|
||||
}
|
||||
List<IDIYComponent<?>> newSelection = new ArrayList<IDIYComponent<?>>();
|
||||
if (operationMode != OperationMode.HIGHLIGHT_CONNECTED_AREAS)
|
||||
|
||||
@@ -32,6 +32,8 @@ import com.thoughtworks.xstream.converters.UnmarshallingContext;
|
||||
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
|
||||
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
|
||||
|
||||
import org.diylc.utils.MathUtils;
|
||||
|
||||
/**
|
||||
* Serializes {@link Area} objects by converting coordinates from pixels to inches, thus avoiding
|
||||
* the resolution to affect point placement.
|
||||
@@ -66,7 +68,7 @@ public class AreaConverter implements Converter {
|
||||
}
|
||||
for (int i = 0; i < n; i++) {
|
||||
writer.startNode("coordinate");
|
||||
writer.setValue(String.valueOf(coord[i]));
|
||||
writer.setValue(MathUtils.formatDouble(coord[i]));
|
||||
writer.endNode();
|
||||
}
|
||||
writer.endNode();
|
||||
@@ -87,7 +89,7 @@ public class AreaConverter implements Converter {
|
||||
List<java.lang.Double> values = new ArrayList<java.lang.Double>();
|
||||
while (reader.hasMoreChildren()) {
|
||||
reader.moveDown();
|
||||
values.add(java.lang.Double.parseDouble(reader.getValue()));
|
||||
values.add(MathUtils.parseDouble(reader.getValue()));
|
||||
reader.moveUp();
|
||||
}
|
||||
java.lang.Double[] coord = values.toArray(new java.lang.Double[0]);
|
||||
|
||||
@@ -30,6 +30,7 @@ import com.thoughtworks.xstream.io.HierarchicalStreamReader;
|
||||
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
|
||||
|
||||
import org.diylc.utils.Constants;
|
||||
import org.diylc.utils.MathUtils;
|
||||
|
||||
/**
|
||||
* Serializes {@link Point2D} objects by converting coordinates from pixels to inches, thus avoiding
|
||||
@@ -42,26 +43,27 @@ public class PointConverter implements Converter {
|
||||
@Override
|
||||
public void marshal(Object object, HierarchicalStreamWriter writer, MarshallingContext context) {
|
||||
Point2D point = (Point2D) object;
|
||||
writer.addAttribute("x", Double.toString(1d * point.getX() / Constants.PIXELS_PER_INCH));
|
||||
writer.addAttribute("y", Double.toString(1d * point.getY() / Constants.PIXELS_PER_INCH));
|
||||
writer.addAttribute("x", MathUtils.formatDouble(1d * point.getX() / Constants.PIXELS_PER_INCH));
|
||||
writer.addAttribute("y", MathUtils.formatDouble(1d * point.getY() / Constants.PIXELS_PER_INCH));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
|
||||
double x;
|
||||
double y;
|
||||
if (reader.hasMoreChildren()) {
|
||||
reader.moveDown();
|
||||
x = Double.parseDouble(reader.getValue());
|
||||
x = MathUtils.parseDouble(reader.getValue());
|
||||
reader.moveUp();
|
||||
reader.moveDown();
|
||||
y = Double.parseDouble(reader.getValue());
|
||||
y = MathUtils.parseDouble(reader.getValue());
|
||||
reader.moveUp();
|
||||
return new Point2D.Double(x, y);
|
||||
} else {
|
||||
x = Double.parseDouble(reader.getAttribute("x"));
|
||||
y = Double.parseDouble(reader.getAttribute("y"));
|
||||
return new Point2D.Double(x * Constants.PIXELS_PER_INCH, y * Constants.PIXELS_PER_INCH);
|
||||
x = MathUtils.round(Double.parseDouble(reader.getAttribute("x")) * Constants.PIXELS_PER_INCH);
|
||||
y = MathUtils.round(Double.parseDouble(reader.getAttribute("y")) * Constants.PIXELS_PER_INCH);
|
||||
return new Point2D.Double(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
|
||||
DIY Layout Creator (DIYLC).
|
||||
Copyright (c) 2009-2025 held jointly by the individual authors.
|
||||
|
||||
This file is part of DIYLC.
|
||||
|
||||
DIYLC is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
DIYLC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with DIYLC. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
*/
|
||||
package org.diylc.utils;
|
||||
|
||||
public class MathUtils {
|
||||
|
||||
public static String formatDouble(double value) {
|
||||
return Double.toString(Math.round(value * 1e8) / 1e8);
|
||||
}
|
||||
|
||||
public static Double round(double value) {
|
||||
return Math.round(value * 1e8) / 1e8;
|
||||
}
|
||||
|
||||
public static double parseDouble(String str) {
|
||||
return Math.round(Double.parseDouble(str) * 1e8) / 1e8;
|
||||
}
|
||||
}
|
||||
@@ -397,6 +397,10 @@
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>Detect the style of a treble bleed based on the topology and component values (e.g. Fender, DiMarzio, Kinman, etc)</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>IMPROVEMENT</changeType>
|
||||
<description>Improved precision of rendering, in some cases there was a sub-pixel misalignment between the lines that should meet exactly</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>BUG_FIX</changeType>
|
||||
<description>Tone capacitor mistaken for treble bleed when connected to the input lug of the volume pot</description>
|
||||
|
||||
@@ -158,7 +158,7 @@ public class MockDIYComponent extends AbstractComponent<Capacitance> {
|
||||
public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, Project project,
|
||||
IDrawingObserver drawingObserver) {
|
||||
g2d.setColor(componentState.equals(ComponentState.SELECTED) ? color : color.darker());
|
||||
g2d.fillRect((int)leftTopCorner.getX(), (int)leftTopCorner.getY(), 200, 50);
|
||||
g2d.fillRect((int) Math.round(leftTopCorner.getX()), (int) Math.round(leftTopCorner.getY()), 200, 50);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -90,7 +90,7 @@ public abstract class AbstractBoard extends AbstractTransparentComponent<String>
|
||||
|
||||
Composite oldComposite = applyAlpha(g2d, componentState);
|
||||
g2d.setColor(boardColor);
|
||||
g2d.fillRect((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(finalSecondPoint.getX() - firstPoint.getX()), (int)(finalSecondPoint.getY() - firstPoint.getY()));
|
||||
g2d.fillRect((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(finalSecondPoint.getX() - firstPoint.getX()), (int)(finalSecondPoint.getY() - firstPoint.getY()));
|
||||
g2d.setComposite(oldComposite);
|
||||
|
||||
// Do not track any changes that follow because the whole board has been
|
||||
@@ -98,7 +98,7 @@ public abstract class AbstractBoard extends AbstractTransparentComponent<String>
|
||||
drawingObserver.stopTracking();
|
||||
g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: borderColor);
|
||||
g2d.drawRect((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(finalSecondPoint.getX() - firstPoint.getX()), (int)(finalSecondPoint.getY() - firstPoint.getY()));
|
||||
g2d.drawRect((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(finalSecondPoint.getX() - firstPoint.getX()), (int)(finalSecondPoint.getY() - firstPoint.getY()));
|
||||
}
|
||||
|
||||
protected Point2D getFinalSecondPoint() {
|
||||
@@ -178,7 +178,7 @@ public abstract class AbstractBoard extends AbstractTransparentComponent<String>
|
||||
HorizontalAlignment.CENTER, VerticalAlignment.BOTTOM);
|
||||
if (getCoordinateDisplay() == CoordinateDisplay.Both_Sides) {
|
||||
StringUtils.drawCenteredText(g2d, label,
|
||||
x, (int) (finalSecondPoint.getY() - COORDINATE_FONT_SIZE),
|
||||
x, (int) Math.round(finalSecondPoint.getY() - COORDINATE_FONT_SIZE),
|
||||
HorizontalAlignment.CENTER, VerticalAlignment.BOTTOM);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,9 +73,9 @@ public class BlankBoard extends AbstractBoard {
|
||||
Composite oldComposite = applyAlpha(g2d, componentState);
|
||||
g2d.setColor(boardColor);
|
||||
if (getType() == Type.SQUARE)
|
||||
g2d.fillRect((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(finalSecondPoint.getX() - firstPoint.getX()), (int)(finalSecondPoint.getY() - firstPoint.getY()));
|
||||
g2d.fillRect((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(finalSecondPoint.getX() - firstPoint.getX()), (int)(finalSecondPoint.getY() - firstPoint.getY()));
|
||||
else
|
||||
g2d.fillOval((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(finalSecondPoint.getX() - firstPoint.getX()), (int)(finalSecondPoint.getY() - firstPoint.getY()));
|
||||
g2d.fillOval((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(finalSecondPoint.getX() - firstPoint.getX()), (int)(finalSecondPoint.getY() - firstPoint.getY()));
|
||||
g2d.setComposite(oldComposite);
|
||||
// }
|
||||
// Do not track any changes that follow because the whole board has been
|
||||
@@ -84,9 +84,9 @@ public class BlankBoard extends AbstractBoard {
|
||||
g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: borderColor);
|
||||
if (getType() == Type.SQUARE)
|
||||
g2d.drawRect((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(finalSecondPoint.getX() - firstPoint.getX()), (int)(finalSecondPoint.getY() - firstPoint.getY()));
|
||||
g2d.drawRect((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(finalSecondPoint.getX() - firstPoint.getX()), (int)(finalSecondPoint.getY() - firstPoint.getY()));
|
||||
else
|
||||
g2d.drawOval((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(finalSecondPoint.getX() - firstPoint.getX()), (int)(finalSecondPoint.getY() - firstPoint.getY()));
|
||||
g2d.drawOval((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(finalSecondPoint.getX() - firstPoint.getX()), (int)(finalSecondPoint.getY() - firstPoint.getY()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -122,15 +122,15 @@ public class Breadboard extends AbstractProtoBoard {
|
||||
|
||||
// draw lines
|
||||
g2d.setColor(PLUS_COLOR);
|
||||
g2d.drawLine((int) (point.getX() + spacing), (int) (point.getY() + spacing), (int) (point.getX() + spacing),
|
||||
(int) (point.getY() + holeCount * spacing));
|
||||
g2d.drawLine((int) (point.getX() + 19 * spacing), (int) (point.getY() + spacing), (int) (point.getX() + 19 * spacing),
|
||||
(int) (point.getY() + holeCount * spacing));
|
||||
g2d.drawLine((int) Math.round(point.getX() + spacing), (int) Math.round(point.getY() + spacing), (int) Math.round(point.getX() + spacing),
|
||||
(int) Math.round(point.getY() + holeCount * spacing));
|
||||
g2d.drawLine((int) Math.round(point.getX() + 19 * spacing), (int) Math.round(point.getY() + spacing), (int) Math.round(point.getX() + 19 * spacing),
|
||||
(int) Math.round(point.getY() + holeCount * spacing));
|
||||
g2d.setColor(MINUS_COLOR);
|
||||
g2d.drawLine((int) (point.getX() + 4 * spacing), (int) (point.getY() + spacing), (int) (point.getX() + 4 * spacing),
|
||||
(int) (point.getY() + holeCount * spacing));
|
||||
g2d.drawLine((int) (point.getX() + 22 * spacing), (int) (point.getY() + spacing), (int) (point.getX() + 22 * spacing),
|
||||
(int) (point.getY() + holeCount * spacing));
|
||||
g2d.drawLine((int) Math.round(point.getX() + 4 * spacing), (int) Math.round(point.getY() + spacing), (int) Math.round(point.getX() + 4 * spacing),
|
||||
(int) Math.round(point.getY() + holeCount * spacing));
|
||||
g2d.drawLine((int) Math.round(point.getX() + 22 * spacing), (int) Math.round(point.getY() + spacing), (int) Math.round(point.getX() + 22 * spacing),
|
||||
(int) Math.round(point.getY() + holeCount * spacing));
|
||||
|
||||
int holeSize = getClosestOdd(HOLE_SIZE.convertToPixels());
|
||||
int holeArc = (int) HOLE_ARC.convertToPixels();
|
||||
@@ -146,9 +146,9 @@ public class Breadboard extends AbstractProtoBoard {
|
||||
g2d.setColor(COORDINATE_COLOR);
|
||||
int coordinateX;
|
||||
if (section == 0) {
|
||||
coordinateX = (int) (point.getX() + offset + 5.5 * spacing);
|
||||
coordinateX = (int) Math.round(point.getX() + offset + 5.5 * spacing);
|
||||
} else {
|
||||
coordinateX = (int) (point.getX() + offset + 10.5 * spacing);
|
||||
coordinateX = (int) Math.round(point.getX() + offset + 10.5 * spacing);
|
||||
}
|
||||
StringUtils.drawCenteredText(g2d, String.valueOf(y + 1), coordinateX, (int) (point.getY() + (y + 1) * spacing),
|
||||
section == 0 ? HorizontalAlignment.RIGHT : HorizontalAlignment.LEFT, VerticalAlignment.CENTER);
|
||||
@@ -163,9 +163,9 @@ public class Breadboard extends AbstractProtoBoard {
|
||||
// Draw horizontal labels
|
||||
if (y == 0) {
|
||||
g2d.setColor(COORDINATE_COLOR);
|
||||
StringUtils.drawCenteredText(g2d, new String(new byte[] {(byte) (a + x + 5 * section)}), holeX, (int) (point.getY() + COORDINATE_FONT_SIZE),
|
||||
StringUtils.drawCenteredText(g2d, new String(new byte[] {(byte) (a + x + 5 * section)}), holeX, (int) Math.round(point.getY() + COORDINATE_FONT_SIZE),
|
||||
HorizontalAlignment.CENTER, VerticalAlignment.TOP);
|
||||
StringUtils.drawCenteredText(g2d, new String(new byte[] {(byte) (a + x + 5 * section)}), holeX, (int) (point.getY()
|
||||
StringUtils.drawCenteredText(g2d, new String(new byte[] {(byte) (a + x + 5 * section)}), holeX, (int) Math.round(point.getY()
|
||||
+ spacing * 31 - COORDINATE_FONT_SIZE / 2), HorizontalAlignment.CENTER, VerticalAlignment.TOP);
|
||||
}
|
||||
}
|
||||
@@ -218,15 +218,15 @@ public class Breadboard extends AbstractProtoBoard {
|
||||
g2d.setColor(COORDINATE_COLOR);
|
||||
int coordinateX;
|
||||
if (section == 0) {
|
||||
coordinateX = (int) (point.getX() + offset + 5.5 * spacing);
|
||||
coordinateX = (int) Math.round(point.getX() + offset + 5.5 * spacing);
|
||||
} else {
|
||||
coordinateX = (int) (point.getX() + offset + 10.5 * spacing);
|
||||
coordinateX = (int) Math.round(point.getX() + offset + 10.5 * spacing);
|
||||
}
|
||||
StringUtils.drawCenteredText(g2d, String.valueOf(y + 1), coordinateX, (int) (point.getY() + (y + 1) * spacing),
|
||||
section == 0 ? HorizontalAlignment.RIGHT : HorizontalAlignment.LEFT, VerticalAlignment.CENTER);
|
||||
// for (int x = 0; x < 5; x++) {
|
||||
int holeX1 = (int) (point.getX() + offset + 6 * spacing);
|
||||
int holeX2 = (int) (point.getX() + offset + 10 * spacing);
|
||||
int holeX1 = (int) Math.round(point.getX() + offset + 6 * spacing);
|
||||
int holeX2 = (int) Math.round(point.getX() + offset + 10 * spacing);
|
||||
int holeY = (int) (point.getY() + (y + 1) * spacing);
|
||||
g2d.setColor(HOLE_COLOR);
|
||||
g2d.fillRoundRect(holeX1 - holeSize / 2, holeY - holeSize / 2, holeSize + holeX2 - holeX1, holeSize, holeArc, holeArc);
|
||||
|
||||
+2
-2
@@ -329,9 +329,9 @@ public class EurorackStripboard extends AbstractProtoBoard {
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(padSize / 4));
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (Point2D[] trace : potTraces) {
|
||||
int padX1 = (int) (x0 + trace[0].getX() * spacing);
|
||||
int padX1 = (int) Math.round(x0 + trace[0].getX() * spacing);
|
||||
int padY1 = (int) (y0 + (trace[0].getY() + 8 * i) * spacing);
|
||||
int padX2 = (int) (x0 + trace[1].getX() * spacing);
|
||||
int padX2 = (int) Math.round(x0 + trace[1].getX() * spacing);
|
||||
int padY2 = (int) (y0 + (trace[1].getY() + 8 * i) * spacing);
|
||||
g2d.drawLine(padX1, padY1, padX2, padY2);
|
||||
}
|
||||
|
||||
@@ -225,12 +225,12 @@ public class ProtoBoard extends AbstractProtoBoard {
|
||||
g2d.setColor(traceColor);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(padSize / 4));
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.drawLine((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 0.5) * spacing), (int) (point.getY() + 1 * spacing),
|
||||
(int) (point.getX() + (1 + SEGMENTS_SUM[3] + 0.5) * spacing), (int) (point.getY() + 3.5 * spacing));
|
||||
g2d.drawLine((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 1.5) * spacing + miniPadSize / 2), (int) (point.getY() + 1 * spacing),
|
||||
(int) (point.getX() + (1 + SEGMENTS_SUM[3] + 1.5) * spacing + miniPadSize / 2), (int) (point.getY() + 3.5 * spacing));
|
||||
g2d.drawLine((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 2.5) * spacing), (int) (point.getY() + 1 * spacing),
|
||||
(int) (point.getX() + (1 + SEGMENTS_SUM[3] + 2.5) * spacing), (int) (point.getY() + 3.5 * spacing));
|
||||
g2d.drawLine((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 0.5) * spacing), (int) Math.round(point.getY() + 1 * spacing),
|
||||
(int) (point.getX() + (1 + SEGMENTS_SUM[3] + 0.5) * spacing), (int) Math.round(point.getY() + 3.5 * spacing));
|
||||
g2d.drawLine((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 1.5) * spacing + miniPadSize / 2), (int) Math.round(point.getY() + 1 * spacing),
|
||||
(int) (point.getX() + (1 + SEGMENTS_SUM[3] + 1.5) * spacing + miniPadSize / 2), (int) Math.round(point.getY() + 3.5 * spacing));
|
||||
g2d.drawLine((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 2.5) * spacing), (int) Math.round(point.getY() + 1 * spacing),
|
||||
(int) (point.getX() + (1 + SEGMENTS_SUM[3] + 2.5) * spacing), (int) Math.round(point.getY() + 3.5 * spacing));
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
|
||||
@@ -335,12 +335,12 @@ public class ProtoBoard extends AbstractProtoBoard {
|
||||
g2d.setColor(SEPARATOR_COLOR);
|
||||
g2d.draw(new Rectangle2D.Double(point.getX() + width - 5.5 * spacing, point.getY() + 2, 5 * spacing, 2 * spacing));
|
||||
|
||||
g2d.drawLine((int) (point.getX() + width - 5.5 * spacing), (int) (point.getY() + 2 * spacing) + 8,
|
||||
(int) (point.getX() + width - 5.5 * spacing), (int) (point.getY() + 3.5 * spacing));
|
||||
g2d.drawLine((int) (point.getX() + width - 4.5 * spacing), (int) (point.getY() + 2 * spacing + 8),
|
||||
(int) (point.getX() + width - 4.5 * spacing), (int) (point.getY() + 3.5 * spacing));
|
||||
g2d.drawLine((int) (point.getX() + width - 1.5 * spacing), (int) (point.getY() + 2 * spacing + 8),
|
||||
(int) (point.getX() + width - 1.5 * spacing), (int) (point.getY() + 3.5 * spacing));
|
||||
g2d.drawLine((int) Math.round(point.getX() + width - 5.5 * spacing), (int) Math.round(point.getY() + 2 * spacing) + 8,
|
||||
(int) Math.round(point.getX() + width - 5.5 * spacing), (int) Math.round(point.getY() + 3.5 * spacing));
|
||||
g2d.drawLine((int) Math.round(point.getX() + width - 4.5 * spacing), (int) Math.round(point.getY() + 2 * spacing + 8),
|
||||
(int) Math.round(point.getX() + width - 4.5 * spacing), (int) Math.round(point.getY() + 3.5 * spacing));
|
||||
g2d.drawLine((int) Math.round(point.getX() + width - 1.5 * spacing), (int) Math.round(point.getY() + 2 * spacing + 8),
|
||||
(int) Math.round(point.getX() + width - 1.5 * spacing), (int) Math.round(point.getY() + 3.5 * spacing));
|
||||
|
||||
g2d.setColor(traceColor);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(padSize / 4));
|
||||
@@ -348,8 +348,8 @@ public class ProtoBoard extends AbstractProtoBoard {
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
|
||||
// Draw two horizontal traces in the top-right section
|
||||
g2d.drawLine((int) (point.getX() + width - 4 * spacing), (int) (point.getY() + 0.5 * spacing), (int) (point.getX() + width - (2) * spacing), (int) (point.getY() + 0.5 * spacing));
|
||||
g2d.drawLine((int) (point.getX() + width - 4 * spacing), (int) (point.getY() + 1.5 * spacing), (int) (point.getX() + width - (2) * spacing), (int) (point.getY() + 1.5 * spacing));
|
||||
g2d.drawLine((int) Math.round(point.getX() + width - 4 * spacing), (int) Math.round(point.getY() + 0.5 * spacing), (int) (point.getX() + width - (2) * spacing), (int) Math.round(point.getY() + 0.5 * spacing));
|
||||
g2d.drawLine((int) Math.round(point.getX() + width - 4 * spacing), (int) Math.round(point.getY() + 1.5 * spacing), (int) (point.getX() + width - (2) * spacing), (int) Math.round(point.getY() + 1.5 * spacing));
|
||||
|
||||
// Draw top-right pads
|
||||
for (int x = 0; x < 6; x++) {
|
||||
@@ -357,7 +357,7 @@ public class ProtoBoard extends AbstractProtoBoard {
|
||||
|
||||
g2d.setColor(traceColor);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(padSize / 4));
|
||||
g2d.drawLine(padX, (int) (point.getY() + 0.5 * spacing), padX, (int) (point.getY() + 3 * spacing));
|
||||
g2d.drawLine(padX, (int) Math.round(point.getY() + 0.5 * spacing), padX, (int) Math.round(point.getY() + 3 * spacing));
|
||||
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
|
||||
|
||||
@@ -433,22 +433,22 @@ public class ProtoBoard extends AbstractProtoBoard {
|
||||
g2d.setColor(textColor);
|
||||
|
||||
// Draw top labels
|
||||
StringUtils.drawCenteredText(g2d, "+5V", (int) (point.getX() + (1 + SEGMENTS_SUM[3] - 0.3) * spacing), (int) (point.getY() + 1 * spacing) + 1,
|
||||
StringUtils.drawCenteredText(g2d, "+5V", (int) (point.getX() + (1 + SEGMENTS_SUM[3] - 0.3) * spacing), (int) Math.round(point.getY() + 1 * spacing) + 1,
|
||||
HorizontalAlignment.RIGHT, VerticalAlignment.CENTER);
|
||||
StringUtils.drawCenteredText(g2d, "+12V", (int) (point.getX() + (1 + SEGMENTS_SUM[3] - 0.3) * spacing), (int) (point.getY() + 1.5 * spacing) + 1,
|
||||
StringUtils.drawCenteredText(g2d, "+12V", (int) (point.getX() + (1 + SEGMENTS_SUM[3] - 0.3) * spacing), (int) Math.round(point.getY() + 1.5 * spacing) + 1,
|
||||
HorizontalAlignment.RIGHT, VerticalAlignment.CENTER);
|
||||
StringUtils.drawCenteredText(g2d, "GND", (int) (point.getX() + (1 + SEGMENTS_SUM[3] - 0.3) * spacing), (int) (point.getY() + 2 * spacing) + 1,
|
||||
StringUtils.drawCenteredText(g2d, "GND", (int) (point.getX() + (1 + SEGMENTS_SUM[3] - 0.3) * spacing), (int) Math.round(point.getY() + 2 * spacing) + 1,
|
||||
HorizontalAlignment.RIGHT, VerticalAlignment.CENTER);
|
||||
StringUtils.drawCenteredText(g2d, "-12V", (int) (point.getX() + (1 + SEGMENTS_SUM[3] - 0.3) * spacing), (int) (point.getY() + 2.5 * spacing) + 1,
|
||||
StringUtils.drawCenteredText(g2d, "-12V", (int) (point.getX() + (1 + SEGMENTS_SUM[3] - 0.3) * spacing), (int) Math.round(point.getY() + 2.5 * spacing) + 1,
|
||||
HorizontalAlignment.RIGHT, VerticalAlignment.CENTER);
|
||||
|
||||
// Draw top-right labels
|
||||
int labelY = (int) (point.getY() + 3.8 * spacing) + 1;
|
||||
StringUtils.drawCenteredText(g2d, "+5V", (int) (point.getX() + width - 6 * spacing), labelY, HorizontalAlignment.CENTER, VerticalAlignment.TOP);
|
||||
StringUtils.drawCenteredText(g2d, "+", (int) (point.getX() + width - 5 * spacing) - 6, labelY, HorizontalAlignment.CENTER, VerticalAlignment.TOP);
|
||||
StringUtils.drawCenteredText(g2d, " 12V", (int) (point.getX() + width - 5 * spacing) + 2, labelY, HorizontalAlignment.CENTER, VerticalAlignment.TOP);
|
||||
StringUtils.drawCenteredText(g2d, "GND", (int) (point.getX() + width - 3 * spacing), labelY, HorizontalAlignment.CENTER, VerticalAlignment.TOP);
|
||||
StringUtils.drawCenteredText(g2d, "-12V", (int) (point.getX() + width - 1 * spacing), labelY, HorizontalAlignment.CENTER, VerticalAlignment.TOP);
|
||||
int labelY = (int) Math.round(point.getY() + 3.8 * spacing) + 1;
|
||||
StringUtils.drawCenteredText(g2d, "+5V", (int) Math.round(point.getX() + width - 6 * spacing), labelY, HorizontalAlignment.CENTER, VerticalAlignment.TOP);
|
||||
StringUtils.drawCenteredText(g2d, "+", (int) Math.round(point.getX() + width - 5 * spacing) - 6, labelY, HorizontalAlignment.CENTER, VerticalAlignment.TOP);
|
||||
StringUtils.drawCenteredText(g2d, " 12V", (int) Math.round(point.getX() + width - 5 * spacing) + 2, labelY, HorizontalAlignment.CENTER, VerticalAlignment.TOP);
|
||||
StringUtils.drawCenteredText(g2d, "GND", (int) Math.round(point.getX() + width - 3 * spacing), labelY, HorizontalAlignment.CENTER, VerticalAlignment.TOP);
|
||||
StringUtils.drawCenteredText(g2d, "-12V", (int) Math.round(point.getX() + width - 1 * spacing), labelY, HorizontalAlignment.CENTER, VerticalAlignment.TOP);
|
||||
|
||||
// Draw vertical labels
|
||||
byte A = "A".getBytes()[0];
|
||||
@@ -460,14 +460,14 @@ public class ProtoBoard extends AbstractProtoBoard {
|
||||
label = new String(new byte[] {(byte) (a + y - 26)});
|
||||
else
|
||||
label = new String(new byte[] {(byte) (A + y)});
|
||||
StringUtils.drawCenteredText(g2d, label, (int) (point.getX() + spacing * 0.35), padY, HorizontalAlignment.CENTER, VerticalAlignment.CENTER);
|
||||
StringUtils.drawCenteredText(g2d, label, (int) (point.getX() + width - spacing * 0.35), padY, HorizontalAlignment.CENTER, VerticalAlignment.CENTER);
|
||||
StringUtils.drawCenteredText(g2d, label, (int) Math.round(point.getX() + spacing * 0.35), padY, HorizontalAlignment.CENTER, VerticalAlignment.CENTER);
|
||||
StringUtils.drawCenteredText(g2d, label, (int) Math.round(point.getX() + width - spacing * 0.35), padY, HorizontalAlignment.CENTER, VerticalAlignment.CENTER);
|
||||
}
|
||||
|
||||
g2d.setColor(textColor);
|
||||
g2d.setFont(LABEL_FONT.deriveFont(COORDINATE_FONT_SIZE + 2));
|
||||
|
||||
StringUtils.drawCenteredText(g2d, "P-0+o by:\nKristian Bl�sol 2019", (int) (point.getX() + width * 0.70d), (int) (point.getY() + (yOffset + ROW_COUNT + 0.9) * spacing),
|
||||
StringUtils.drawCenteredText(g2d, "P-0+o by:\nKristian Bl�sol 2019", (int) Math.round(point.getX() + width * 0.70d), (int) (point.getY() + (yOffset + ROW_COUNT + 0.9) * spacing),
|
||||
HorizontalAlignment.LEFT, VerticalAlignment.TOP);
|
||||
|
||||
// draw central mini pads
|
||||
|
||||
@@ -150,14 +150,14 @@ public class ProtoBoard780 extends AbstractProtoBoard {
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(padSize - 2f));
|
||||
|
||||
g2d.setColor(traceColor);
|
||||
int padX = (int) (point.getX() + width / 2 - 7 * spacing + i * spacing);
|
||||
int padX = (int) Math.round(point.getX() + width / 2 - 7 * spacing + i * spacing);
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.drawLine(padX, (int) (point.getY() + offsetY), padX,
|
||||
(int) (point.getY() + spacing + offsetY));
|
||||
g2d.drawLine(padX, (int) Math.round(point.getY() + offsetY), padX,
|
||||
(int) Math.round(point.getY() + spacing + offsetY));
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
|
||||
for (int j = 0; j < 2; j++) {
|
||||
int padY = (int) (point.getY() + spacing * j + offsetY);
|
||||
int padY = (int) Math.round(point.getY() + spacing * j + offsetY);
|
||||
|
||||
g2d.setColor(padColor);
|
||||
|
||||
@@ -180,8 +180,8 @@ public class ProtoBoard780 extends AbstractProtoBoard {
|
||||
g2d.setColor(textColor);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
int x = i == 0 ? 1 : i * 5;
|
||||
int padX = (int) (point.getX() + width / 2 - 8 * spacing + x * spacing);
|
||||
int padY = (int) (point.getY() + spacing * 2);
|
||||
int padX = (int) Math.round(point.getX() + width / 2 - 8 * spacing + x * spacing);
|
||||
int padY = (int) Math.round(point.getY() + spacing * 2);
|
||||
|
||||
// // flip the coordinates for MPJA
|
||||
// if (type == ProtoBoard780Type.MPJA) {
|
||||
@@ -201,38 +201,38 @@ public class ProtoBoard780 extends AbstractProtoBoard {
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(padSize - 2f));
|
||||
|
||||
// the outer bus
|
||||
g2d.drawLine((int) (point.getX() + width / 2 - 13 * spacing),
|
||||
(int) (point.getY() - 2 * spacing + offsetY),
|
||||
(int) (point.getX() + width / 2 + 13 * spacing),
|
||||
(int) (point.getY() - 2 * spacing + offsetY));
|
||||
g2d.drawLine((int) (point.getX() + width / 2 - 13 * spacing),
|
||||
(int) (point.getY() - 2 * spacing + offsetY),
|
||||
(int) (point.getX() + width / 2 - 13 * spacing),
|
||||
g2d.drawLine((int) Math.round(point.getX() + width / 2 - 13 * spacing),
|
||||
(int) Math.round(point.getY() - 2 * spacing + offsetY),
|
||||
(int) Math.round(point.getX() + width / 2 + 13 * spacing),
|
||||
(int) Math.round(point.getY() - 2 * spacing + offsetY));
|
||||
g2d.drawLine((int) Math.round(point.getX() + width / 2 - 13 * spacing),
|
||||
(int) Math.round(point.getY() - 2 * spacing + offsetY),
|
||||
(int) Math.round(point.getX() + width / 2 - 13 * spacing),
|
||||
(int) (point.getY() + (29 + (type == ProtoBoard780Type.RS ? 2 : 0)) * spacing + offsetY));
|
||||
g2d.drawLine((int) (point.getX() + width / 2 + 13 * spacing),
|
||||
(int) (point.getY() - 2 * spacing + offsetY),
|
||||
(int) (point.getX() + width / 2 + 13 * spacing),
|
||||
g2d.drawLine((int) Math.round(point.getX() + width / 2 + 13 * spacing),
|
||||
(int) Math.round(point.getY() - 2 * spacing + offsetY),
|
||||
(int) Math.round(point.getX() + width / 2 + 13 * spacing),
|
||||
(int) (point.getY() + (29 + (type == ProtoBoard780Type.RS ? 2 : 0)) * spacing + offsetY));
|
||||
|
||||
// horizontal long traces
|
||||
g2d.drawLine((int) (point.getX() + width / 2 - 12 * spacing), (int) (point.getY() + offsetY),
|
||||
(int) (point.getX() + width / 2 + 12 * spacing), (int) (point.getY() + offsetY));
|
||||
g2d.drawLine((int) (point.getX() + width / 2 - 12 * spacing),
|
||||
(int) (point.getY() + spacing * 29 + offsetY),
|
||||
(int) (point.getX() + width / 2 + 12 * spacing),
|
||||
(int) (point.getY() + spacing * 29 + offsetY));
|
||||
g2d.drawLine((int) Math.round(point.getX() + width / 2 - 12 * spacing), (int) Math.round(point.getY() + offsetY),
|
||||
(int) Math.round(point.getX() + width / 2 + 12 * spacing), (int) Math.round(point.getY() + offsetY));
|
||||
g2d.drawLine((int) Math.round(point.getX() + width / 2 - 12 * spacing),
|
||||
(int) Math.round(point.getY() + spacing * 29 + offsetY),
|
||||
(int) Math.round(point.getX() + width / 2 + 12 * spacing),
|
||||
(int) Math.round(point.getY() + spacing * 29 + offsetY));
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
int padX = (int) (point.getX() + width / 2 - 12 * spacing + (i * 5 + 1) * spacing);
|
||||
|
||||
// vertical traces
|
||||
g2d.drawLine((int) (padX - spacing), (int) (point.getY() + offsetY), (int) (padX - spacing),
|
||||
(int) (point.getY() + spacing * 28 + offsetY));
|
||||
g2d.drawLine((int) (padX + 3 * spacing), (int) (point.getY() + spacing + offsetY),
|
||||
(int) (padX + 3 * spacing), (int) (point.getY() + spacing * 29 + offsetY));
|
||||
g2d.drawLine((int) (padX - spacing), (int) Math.round(point.getY() + offsetY), (int) (padX - spacing),
|
||||
(int) Math.round(point.getY() + spacing * 28 + offsetY));
|
||||
g2d.drawLine((int) (padX + 3 * spacing), (int) Math.round(point.getY() + spacing + offsetY),
|
||||
(int) (padX + 3 * spacing), (int) Math.round(point.getY() + spacing * 29 + offsetY));
|
||||
|
||||
for (int j = 1; j < 29; j++) {
|
||||
int padY = (int) (point.getY() + spacing * j + offsetY);
|
||||
int padY = (int) Math.round(point.getY() + spacing * j + offsetY);
|
||||
|
||||
// 3-pad traces
|
||||
g2d.drawLine(padX, padY, (int) (padX + 2 * spacing), padY);
|
||||
@@ -245,14 +245,14 @@ public class ProtoBoard780 extends AbstractProtoBoard {
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(padSize - 2f));
|
||||
|
||||
g2d.setColor(padColor);
|
||||
int padX = (int) (point.getX() + width / 2 - 12 * spacing + i * spacing);
|
||||
int padX = (int) Math.round(point.getX() + width / 2 - 12 * spacing + i * spacing);
|
||||
// drawingObserver.startTrackingContinuityArea(true);
|
||||
// g2d.drawLine(padX, (int)(point.getY() + offsetY), padX, (int)(point.getY() + spacing +
|
||||
// g2d.drawLine(padX, (int) Math.round(point.getY() + offsetY), padX, (int) Math.round(point.getY() + spacing +
|
||||
// offsetY));
|
||||
// drawingObserver.stopTrackingContinuityArea();
|
||||
|
||||
for (int j = 0; j < 30; j++) {
|
||||
int padY = (int) (point.getY() + spacing * j + offsetY);
|
||||
int padY = (int) Math.round(point.getY() + spacing * j + offsetY);
|
||||
|
||||
g2d.setColor(padColor);
|
||||
|
||||
@@ -277,8 +277,8 @@ public class ProtoBoard780 extends AbstractProtoBoard {
|
||||
// horizontal coordinates
|
||||
for (int i = 0; i < 6; i++) {
|
||||
int x = i == 0 ? 1 : i * 5;
|
||||
int padX = (int) (point.getX() + width / 2 - 13 * spacing + x * spacing);
|
||||
int padY = (int) (point.getY() - spacing + offsetY);
|
||||
int padX = (int) Math.round(point.getX() + width / 2 - 13 * spacing + x * spacing);
|
||||
int padY = (int) Math.round(point.getY() - spacing + offsetY);
|
||||
|
||||
String label = String.valueOf((char) ('A' + i));
|
||||
|
||||
@@ -293,7 +293,7 @@ public class ProtoBoard780 extends AbstractProtoBoard {
|
||||
for (int i = 0; i < 7; i++) {
|
||||
int y = i == 0 ? 1 : i * 5;
|
||||
|
||||
int padX = (int) (point.getX() + width / 2 - 14 * spacing);
|
||||
int padX = (int) Math.round(point.getX() + width / 2 - 14 * spacing);
|
||||
int padY = (int) (point.getY() + spacing * (y - 1) + offsetY);
|
||||
|
||||
StringUtils.drawCenteredText(g2d, Integer.toString(y), padX, padY, HorizontalAlignment.LEFT,
|
||||
@@ -302,8 +302,8 @@ public class ProtoBoard780 extends AbstractProtoBoard {
|
||||
|
||||
// model name
|
||||
g2d.setFont(LABEL_FONT.deriveFont(COORDINATE_FONT_SIZE * 1.8f));
|
||||
int x = (int) (point.getX() + width / 2);
|
||||
int y = (int) (point.getY() + length - spacing * 1.5);
|
||||
int x = (int) Math.round(point.getX() + width / 2);
|
||||
int y = (int) Math.round(point.getY() + length - spacing * 1.5);
|
||||
StringUtils.drawCenteredText(g2d,
|
||||
type == ProtoBoard780Type.RS ? "Radio Shack 276-168B" : "MPJA.COM 33304 PB", x, y,
|
||||
HorizontalAlignment.CENTER, VerticalAlignment.CENTER);
|
||||
@@ -315,32 +315,32 @@ public class ProtoBoard780 extends AbstractProtoBoard {
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
|
||||
g2d.setColor(HOLE_COLOR);
|
||||
|
||||
g2d.fillOval((int) (point.getX() + width / 2) - dx - mountingHoleSize / 2,
|
||||
g2d.fillOval((int) Math.round(point.getX() + width / 2) - dx - mountingHoleSize / 2,
|
||||
holeY - mountingHoleSize / 2, mountingHoleSize, mountingHoleSize);
|
||||
g2d.fillOval((int) (point.getX() + width / 2) + dx - mountingHoleSize / 2,
|
||||
g2d.fillOval((int) Math.round(point.getX() + width / 2) + dx - mountingHoleSize / 2,
|
||||
holeY - mountingHoleSize / 2, mountingHoleSize, mountingHoleSize);
|
||||
|
||||
g2d.setColor(finalBorderColor);
|
||||
|
||||
g2d.drawOval((int) (point.getX() + width / 2) - dx - mountingHoleSize / 2,
|
||||
g2d.drawOval((int) Math.round(point.getX() + width / 2) - dx - mountingHoleSize / 2,
|
||||
holeY - mountingHoleSize / 2, mountingHoleSize, mountingHoleSize);
|
||||
g2d.drawOval((int) (point.getX() + width / 2) + dx - mountingHoleSize / 2,
|
||||
g2d.drawOval((int) Math.round(point.getX() + width / 2) + dx - mountingHoleSize / 2,
|
||||
holeY - mountingHoleSize / 2, mountingHoleSize, mountingHoleSize);
|
||||
|
||||
holeY = (int) (point.getY() + length - spacing);
|
||||
holeY = (int) Math.round(point.getY() + length - spacing);
|
||||
|
||||
g2d.setColor(HOLE_COLOR);
|
||||
|
||||
g2d.fillOval((int) (point.getX() + width / 2) - dx - mountingHoleSize / 2,
|
||||
g2d.fillOval((int) Math.round(point.getX() + width / 2) - dx - mountingHoleSize / 2,
|
||||
holeY - mountingHoleSize / 2, mountingHoleSize, mountingHoleSize);
|
||||
g2d.fillOval((int) (point.getX() + width / 2) + dx - mountingHoleSize / 2,
|
||||
g2d.fillOval((int) Math.round(point.getX() + width / 2) + dx - mountingHoleSize / 2,
|
||||
holeY - mountingHoleSize / 2, mountingHoleSize, mountingHoleSize);
|
||||
|
||||
g2d.setColor(finalBorderColor);
|
||||
|
||||
g2d.drawOval((int) (point.getX() + width / 2) - dx - mountingHoleSize / 2,
|
||||
g2d.drawOval((int) Math.round(point.getX() + width / 2) - dx - mountingHoleSize / 2,
|
||||
holeY - mountingHoleSize / 2, mountingHoleSize, mountingHoleSize);
|
||||
g2d.drawOval((int) (point.getX() + width / 2) + dx - mountingHoleSize / 2,
|
||||
g2d.drawOval((int) Math.round(point.getX() + width / 2) + dx - mountingHoleSize / 2,
|
||||
holeY - mountingHoleSize / 2, mountingHoleSize, mountingHoleSize);
|
||||
}
|
||||
|
||||
|
||||
@@ -73,10 +73,10 @@ public class VeroBoard extends AbstractVeroBoard implements ILayeredComponent {
|
||||
y += spacing;
|
||||
g2d.setColor(stripColor);
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.fillRect((int)(x + spacing / 2), (int)(y - stripSize / 2), (int)(finalSecondPoint.getX() - spacing - x), stripSize);
|
||||
g2d.fillRect((int)(x + spacing / 2), (int)(y - stripSize / 2), (int) Math.round(finalSecondPoint.getX() - spacing - x), stripSize);
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
g2d.setColor(stripColor.darker());
|
||||
g2d.drawRect((int)(x + spacing / 2), (int)(y - stripSize / 2), (int)(finalSecondPoint.getX() - spacing - x), stripSize);
|
||||
g2d.drawRect((int)(x + spacing / 2), (int)(y - stripSize / 2), (int) Math.round(finalSecondPoint.getX() - spacing - x), stripSize);
|
||||
while (x < finalSecondPoint.getX() - spacing - holeSize) {
|
||||
x += spacing;
|
||||
g2d.setColor(Constants.CANVAS_COLOR);
|
||||
@@ -91,10 +91,10 @@ public class VeroBoard extends AbstractVeroBoard implements ILayeredComponent {
|
||||
y = firstPoint.getY();
|
||||
g2d.setColor(stripColor);
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.fillRect((int)(x - stripSize / 2), (int)(y + spacing / 2), stripSize, (int)(finalSecondPoint.getY() - spacing - y));
|
||||
g2d.fillRect((int)(x - stripSize / 2), (int)(y + spacing / 2), stripSize, (int) Math.round(finalSecondPoint.getY() - spacing - y));
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
g2d.setColor(stripColor.darker());
|
||||
g2d.drawRect((int)(x - stripSize / 2), (int)(y + spacing / 2), stripSize, (int)(finalSecondPoint.getY() - spacing - y));
|
||||
g2d.drawRect((int)(x - stripSize / 2), (int)(y + spacing / 2), stripSize, (int) Math.round(finalSecondPoint.getY() - spacing - y));
|
||||
while (y < finalSecondPoint.getY() - spacing - holeSize) {
|
||||
y += spacing;
|
||||
g2d.setColor(Constants.CANVAS_COLOR);
|
||||
|
||||
@@ -62,11 +62,11 @@ public class ChassisPanel extends AbstractShape {
|
||||
Composite oldComposite = applyAlpha(g2d, componentState);
|
||||
g2d.setColor(color);
|
||||
if (radius == 0) {
|
||||
g2d.fillRect((int) firstPoint.getX(), (int) firstPoint.getY(),
|
||||
g2d.fillRect((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()),
|
||||
(int) (secondPoint.getX() - firstPoint.getX()),
|
||||
(int) (secondPoint.getY() - firstPoint.getY()));
|
||||
} else {
|
||||
g2d.fillRoundRect((int) firstPoint.getX(), (int) firstPoint.getY(),
|
||||
g2d.fillRoundRect((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()),
|
||||
(int) (secondPoint.getX() - firstPoint.getX()),
|
||||
(int) (secondPoint.getY() - firstPoint.getY()), radius, radius);
|
||||
}
|
||||
@@ -78,11 +78,11 @@ public class ChassisPanel extends AbstractShape {
|
||||
g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: borderColor);
|
||||
if (radius == 0) {
|
||||
g2d.drawRect((int) (firstPoint.getX()), (int) (firstPoint.getY()),
|
||||
g2d.drawRect((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()),
|
||||
(int) (secondPoint.getX() - firstPoint.getX()),
|
||||
(int) (secondPoint.getY() - firstPoint.getY()));
|
||||
} else {
|
||||
g2d.drawRoundRect((int) (firstPoint.getX()), (int) (firstPoint.getY()),
|
||||
g2d.drawRoundRect((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()),
|
||||
(int) (secondPoint.getX() - firstPoint.getX()),
|
||||
(int) (secondPoint.getY() - firstPoint.getY()), radius, radius);
|
||||
}
|
||||
|
||||
+2
-2
@@ -50,7 +50,7 @@ public class EllipticalCutout extends AbstractShape {
|
||||
if (componentState != ComponentState.DRAGGING) {
|
||||
Composite oldComposite = applyAlpha(g2d, componentState);
|
||||
g2d.setColor(color);
|
||||
g2d.fillOval((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()));
|
||||
g2d.fillOval((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()));
|
||||
g2d.setComposite(oldComposite);
|
||||
}
|
||||
// Do not track any changes that follow because the whole oval has been
|
||||
@@ -58,7 +58,7 @@ public class EllipticalCutout extends AbstractShape {
|
||||
drawingObserver.stopTracking();
|
||||
g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: borderColor);
|
||||
g2d.drawOval((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()));
|
||||
g2d.drawOval((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -56,7 +56,7 @@ public class RectangularCutout extends AbstractShape {
|
||||
if (componentState != ComponentState.DRAGGING) {
|
||||
Composite oldComposite = applyAlpha(g2d, componentState);
|
||||
g2d.setColor(color);
|
||||
g2d.fillRoundRect((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()), radius,
|
||||
g2d.fillRoundRect((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()), radius,
|
||||
radius);
|
||||
g2d.setComposite(oldComposite);
|
||||
}
|
||||
@@ -65,7 +65,7 @@ public class RectangularCutout extends AbstractShape {
|
||||
drawingObserver.stopTracking();
|
||||
g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: borderColor);
|
||||
g2d.drawRoundRect((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()), radius,
|
||||
g2d.drawRoundRect((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()), radius,
|
||||
radius);
|
||||
}
|
||||
|
||||
|
||||
@@ -67,9 +67,9 @@ public class CutLine extends AbstractTransparentComponent<Void> {
|
||||
Composite oldComposite = applyAlpha(g2d);
|
||||
|
||||
if (getOrientation() == OrientationHV.HORIZONTAL)
|
||||
g2d.drawLine((int)point.getX(), (int)point.getY(), (int)point.getX() + l, (int)point.getY());
|
||||
g2d.drawLine((int) Math.round(point.getX()), (int) Math.round(point.getY()), (int) Math.round(point.getX()) + l, (int) Math.round(point.getY()));
|
||||
else
|
||||
g2d.drawLine((int)point.getX(), (int)point.getY(), (int)point.getX(), (int)point.getY() + l);
|
||||
g2d.drawLine((int) Math.round(point.getX()), (int) Math.round(point.getY()), (int) Math.round(point.getX()), (int) Math.round(point.getY()) + l);
|
||||
|
||||
g2d.setComposite(oldComposite);
|
||||
}
|
||||
|
||||
@@ -77,16 +77,16 @@ public class Eyelet extends AbstractTransparentComponent<String> {
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1f));
|
||||
g2d.setColor(color);
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.fillOval((int)(point.getX() - diameter / 2), (int)(point.getY() - diameter / 2), diameter, diameter);
|
||||
g2d.fillOval((int) Math.round(point.getX() - diameter / 2), (int) Math.round(point.getY() - diameter / 2), diameter, diameter);
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: color.darker());
|
||||
g2d.drawOval((int)(point.getX() - diameter / 2), (int)(point.getY() - diameter / 2), diameter, diameter);
|
||||
g2d.drawOval((int) Math.round(point.getX() - diameter / 2), (int) Math.round(point.getY() - diameter / 2), diameter, diameter);
|
||||
g2d.setColor(Constants.CANVAS_COLOR);
|
||||
g2d.fillOval((int)(point.getX() - holeDiameter / 2), (int)(point.getY() - holeDiameter / 2), holeDiameter, holeDiameter);
|
||||
g2d.fillOval((int) Math.round(point.getX() - holeDiameter / 2), (int) Math.round(point.getY() - holeDiameter / 2), holeDiameter, holeDiameter);
|
||||
g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: color.darker());
|
||||
g2d.drawOval((int)(point.getX() - holeDiameter / 2), (int)(point.getY() - holeDiameter / 2), holeDiameter, holeDiameter);
|
||||
g2d.drawOval((int) Math.round(point.getX() - holeDiameter / 2), (int) Math.round(point.getY() - holeDiameter / 2), holeDiameter, holeDiameter);
|
||||
|
||||
g2d.setComposite(oldComposite);
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@ public class Line extends AbstractLeadedComponent<Void> {
|
||||
interpolate(endPoint, startPoint, getArrowSize().convertToPixels() * 0.9 / distance, endPoint);
|
||||
}
|
||||
|
||||
g2d.drawLine((int)startPoint.getX(), (int)startPoint.getY(), (int)endPoint.getX(), (int)endPoint.getY());
|
||||
g2d.drawLine((int) Math.round(startPoint.getX()), (int) Math.round(startPoint.getY()), (int) Math.round(endPoint.getX()), (int) Math.round(endPoint.getY()));
|
||||
}
|
||||
|
||||
private void interpolate(Point2D p1, Point2D p2, double t, Point2D p) {
|
||||
|
||||
+1
-1
@@ -82,7 +82,7 @@ public class MultimeterProbe extends AbstractTransparentComponent<Color> {
|
||||
g2d.setColor(Constants.TRANSPARENT_COLOR);
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
double sensitivity = SENSITIVITY.convertToPixels();
|
||||
g2d.fillOval((int) (point.getX() - sensitivity), (int) (point.getY() - sensitivity),
|
||||
g2d.fillOval((int) Math.round(point.getX() - sensitivity), (int) Math.round(point.getY() - sensitivity),
|
||||
(int) (sensitivity * 2), (int) (sensitivity * 2));
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
|
||||
|
||||
+2
-2
@@ -240,14 +240,14 @@ public class PCBTerminalBlock extends AbstractTransparentComponent<PCBTerminalBl
|
||||
if (outlineMode) {
|
||||
// g2d.setColor(Constants.TRANSPARENT_COLOR);
|
||||
// drawingObserver.startTrackingContinuityArea(true);
|
||||
// g2d.fillRect((int)(p.getX() - lugWidth / 2), (int)(p.getY() - lugHeight / 2), lugWidth,
|
||||
// g2d.fillRect((int) Math.round(p.getX() - lugWidth / 2), (int) Math.round(p.getY() - lugHeight / 2), lugWidth,
|
||||
// lugHeight);
|
||||
// drawingObserver.stopTrackingContinuityArea();
|
||||
|
||||
g2d.setColor(theme.getOutlineColor());
|
||||
} else {
|
||||
g2d.setColor(CIRCLE_COLOR);
|
||||
g2d.fillOval((int) (p.getX() - circleDiameter / 2), (int) (p.getY() - circleDiameter / 2),
|
||||
g2d.fillOval((int) Math.round(p.getX() - circleDiameter / 2), (int) Math.round(p.getY() - circleDiameter / 2),
|
||||
circleDiameter, circleDiameter);
|
||||
|
||||
g2d.setColor(CIRCLE_COLOR.darker());
|
||||
|
||||
@@ -89,22 +89,22 @@ public class TraceCut extends AbstractTransparentComponent<Void> implements ILay
|
||||
: getBoardColor());
|
||||
drawingObserver.startTrackingContinuityArea(false);
|
||||
if (getOrientation() == OrientationHV.VERTICAL)
|
||||
g2d.fillRect((int)(point.getX() - holeSpacing / 2 - cutWidth / 2), (int)(point.getY() - size / 2 - 1), cutWidth, size + 2);
|
||||
g2d.fillRect((int) Math.round(point.getX() - holeSpacing / 2 - cutWidth / 2), (int) Math.round(point.getY() - size / 2 - 1), cutWidth, size + 2);
|
||||
else
|
||||
g2d.fillRect((int)(point.getX() - size / 2 - 1), (int)(point.getY() - holeSpacing / 2 - cutWidth / 2), size + 2, cutWidth);
|
||||
g2d.fillRect((int) Math.round(point.getX() - size / 2 - 1), (int) Math.round(point.getY() - holeSpacing / 2 - cutWidth / 2), size + 2, cutWidth);
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
} else {
|
||||
g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: getBoardColor());
|
||||
drawingObserver.startTrackingContinuityArea(false);
|
||||
g2d.fillRoundRect((int)(point.getX() - size / 2), (int)(point.getY() - size / 2), size, size, size, size);
|
||||
g2d.fillRoundRect((int) Math.round(point.getX() - size / 2), (int) Math.round(point.getY() - size / 2), size, size, size, size);
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
|
||||
g2d.setColor(Constants.CANVAS_COLOR);
|
||||
int holeSize = getClosestOdd((int) HOLE_SIZE.convertToPixels());
|
||||
g2d.fillOval((int)(point.getX() - holeSize / 2), (int)(point.getY() - holeSize / 2), holeSize, holeSize);
|
||||
g2d.fillOval((int) Math.round(point.getX() - holeSize / 2), (int) Math.round(point.getY() - holeSize / 2), holeSize, holeSize);
|
||||
g2d.setColor(getBoardColor().darker());
|
||||
g2d.drawOval((int)(point.getX() - holeSize / 2), (int)(point.getY() - holeSize / 2), holeSize, holeSize);
|
||||
g2d.drawOval((int) Math.round(point.getX() - holeSize / 2), (int) Math.round(point.getY() - holeSize / 2), holeSize, holeSize);
|
||||
}
|
||||
g2d.setComposite(oldComposite);
|
||||
}
|
||||
|
||||
@@ -73,16 +73,16 @@ public class Turret extends AbstractTransparentComponent<String> {
|
||||
g2d.setColor(color);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchZoomableStroke(1f));
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.fillOval((int)(point.getX() - diameter / 2), (int)(point.getY() - diameter / 2), diameter, diameter);
|
||||
g2d.fillOval((int) Math.round(point.getX() - diameter / 2), (int) Math.round(point.getY() - diameter / 2), diameter, diameter);
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: color.darker());
|
||||
g2d.drawOval((int)(point.getX() - diameter / 2), (int)(point.getY() - diameter / 2), diameter, diameter);
|
||||
g2d.drawOval((int) Math.round(point.getX() - diameter / 2), (int) Math.round(point.getY() - diameter / 2), diameter, diameter);
|
||||
g2d.setColor(Constants.CANVAS_COLOR);
|
||||
g2d.fillOval((int)(point.getX() - holeDiameter / 2), (int)(point.getY() - holeDiameter / 2), holeDiameter, holeDiameter);
|
||||
g2d.fillOval((int) Math.round(point.getX() - holeDiameter / 2), (int) Math.round(point.getY() - holeDiameter / 2), holeDiameter, holeDiameter);
|
||||
g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: color.darker());
|
||||
g2d.drawOval((int)(point.getX() - holeDiameter / 2), (int)(point.getY() - holeDiameter / 2), holeDiameter, holeDiameter);
|
||||
g2d.drawOval((int) Math.round(point.getX() - holeDiameter / 2), (int) Math.round(point.getY() - holeDiameter / 2), holeDiameter, holeDiameter);
|
||||
g2d.setComposite(oldComposite);
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -338,10 +338,10 @@ public class DIPSwitch extends AbstractTransparentComponent<String> implements I
|
||||
int pinHeight = getClosestOdd(pinSize
|
||||
/ (getOrientation() == Orientation.DEFAULT || getOrientation() == Orientation._180 ? 1f
|
||||
: 2f));
|
||||
g2d.fillRect((int) (point.getX() - pinWidth / 2), (int) (point.getY() - pinHeight / 2),
|
||||
g2d.fillRect((int) Math.round(point.getX() - pinWidth / 2), (int) Math.round(point.getY() - pinHeight / 2),
|
||||
pinWidth, pinHeight);
|
||||
g2d.setColor(PIN_BORDER_COLOR);
|
||||
g2d.drawRect((int) (point.getX() - pinWidth / 2), (int) (point.getY() - pinHeight / 2),
|
||||
g2d.drawRect((int) Math.round(point.getX() - pinWidth / 2), (int) Math.round(point.getY() - pinHeight / 2),
|
||||
pinWidth, pinHeight);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -213,10 +213,10 @@ public class FuseHolderPanel extends AbstractMultiPartComponent<String> {
|
||||
for (Point2D p : controlPoints) {
|
||||
if (outlineMode) {
|
||||
g2d.setColor(theme.getOutlineColor());
|
||||
g2d.drawRect((int)(p.getX() - lugWidth / 2), (int)(p.getY() - lugHeight / 2), lugWidth, lugHeight);
|
||||
g2d.drawRect((int) Math.round(p.getX() - lugWidth / 2), (int) Math.round(p.getY() - lugHeight / 2), lugWidth, lugHeight);
|
||||
} else {
|
||||
g2d.setColor(METAL_COLOR);
|
||||
g2d.fillRect((int)(p.getX() - lugWidth / 2), (int)(p.getY() - lugHeight / 2), lugWidth, lugHeight);
|
||||
g2d.fillRect((int) Math.round(p.getX() - lugWidth / 2), (int) Math.round(p.getY() - lugHeight / 2), lugWidth, lugHeight);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -236,10 +236,10 @@ public class IECSocket extends AbstractMultiPartComponent<String> {
|
||||
for (Point2D p : controlPoints) {
|
||||
if (outlineMode) {
|
||||
g2d.setColor(theme.getOutlineColor());
|
||||
g2d.drawRect((int)(p.getX() - lugWidth / 2), (int)(p.getY() - lugHeight / 2), lugWidth, lugHeight);
|
||||
g2d.drawRect((int) Math.round(p.getX() - lugWidth / 2), (int) Math.round(p.getY() - lugHeight / 2), lugWidth, lugHeight);
|
||||
} else {
|
||||
g2d.setColor(METAL_COLOR);
|
||||
g2d.fillRect((int)(p.getX() - lugWidth / 2), (int)(p.getY() - lugHeight / 2), lugWidth, lugHeight);
|
||||
g2d.fillRect((int) Math.round(p.getX() - lugWidth / 2), (int) Math.round(p.getY() - lugHeight / 2), lugWidth, lugHeight);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -302,7 +302,7 @@ public class IECSocket extends AbstractMultiPartComponent<String> {
|
||||
|
||||
Point2D[] cutoutPoints = new Point2D[] {
|
||||
new Point2D.Double(firstPoint.getX(), firstPoint.getY() + vSpacing / 2 - cutoutWidth / 2),
|
||||
new Point2D.Double(firstPoint.getX() + cutoutLength / 2 - cutoutSlant, (int) (firstPoint.getY() + vSpacing / 2 - cutoutWidth / 2)),
|
||||
new Point2D.Double(firstPoint.getX() + cutoutLength / 2 - cutoutSlant, (int) Math.round(firstPoint.getY() + vSpacing / 2 - cutoutWidth / 2)),
|
||||
new Point2D.Double(firstPoint.getX() + cutoutLength / 2, firstPoint.getY() + vSpacing / 2 - cutoutWidth / 2 + cutoutSlant),
|
||||
new Point2D.Double(firstPoint.getX() + cutoutLength / 2, firstPoint.getY() + vSpacing / 2 + cutoutWidth / 2),
|
||||
new Point2D.Double(firstPoint.getX() - cutoutLength / 2, firstPoint.getY() + vSpacing / 2 + cutoutWidth / 2),
|
||||
|
||||
+2
-2
@@ -311,10 +311,10 @@ public class MiniRelay extends AbstractLabeledComponent<String> implements IGerb
|
||||
for (Point2D point : controlPoints) {
|
||||
if (!outlineMode) {
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.fillOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
}
|
||||
g2d.setColor(outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR);
|
||||
g2d.drawOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.drawOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
}
|
||||
|
||||
Color finalBorderColor;
|
||||
|
||||
+5
-5
@@ -317,21 +317,21 @@ public class MiniToggleSwitch extends AbstractTransparentComponent<ToggleSwitchT
|
||||
if (outlineMode) {
|
||||
// g2d.setColor(Constants.TRANSPARENT_COLOR);
|
||||
// drawingObserver.startTrackingContinuityArea(true);
|
||||
// g2d.fillRect((int)(p.getX() - lugWidth / 2), (int)(p.getY() - lugHeight / 2), lugWidth, lugHeight);
|
||||
// g2d.fillRect((int) Math.round(p.getX() - lugWidth / 2), (int) Math.round(p.getY() - lugHeight / 2), lugWidth, lugHeight);
|
||||
// drawingObserver.stopTrackingContinuityArea();
|
||||
|
||||
g2d.setColor(theme.getOutlineColor());
|
||||
g2d.drawRect((int)(p.getX() - lugWidth / 2d), (int)(p.getY() - lugHeight / 2d), lugWidth, lugHeight);
|
||||
g2d.drawRect((int) Math.round(p.getX() - lugWidth / 2d), (int) Math.round(p.getY() - lugHeight / 2d), lugWidth, lugHeight);
|
||||
} else {
|
||||
g2d.setColor(getTerminalPadColor().darker());
|
||||
|
||||
g2d.drawOval((int)(p.getX() - circleDiameter / 2d), (int)(p.getY() - circleDiameter / 2d), circleDiameter, circleDiameter);
|
||||
g2d.drawOval((int) Math.round(p.getX() - circleDiameter / 2d), (int) Math.round(p.getY() - circleDiameter / 2d), circleDiameter, circleDiameter);
|
||||
|
||||
g2d.setColor(getTerminalPadColor());
|
||||
g2d.fillOval((int)(p.getX() - circleDiameter / 2d), (int)(p.getY() - circleDiameter / 2d), circleDiameter, circleDiameter);
|
||||
g2d.fillOval((int) Math.round(p.getX() - circleDiameter / 2d), (int) Math.round(p.getY() - circleDiameter / 2d), circleDiameter, circleDiameter);
|
||||
g2d.setColor(getTerminalColor());
|
||||
// drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.fillRect((int)(p.getX() - lugWidth / 2d), (int)(p.getY() - lugHeight / 2d), lugWidth, lugHeight);
|
||||
g2d.fillRect((int) Math.round(p.getX() - lugWidth / 2d), (int) Math.round(p.getY() - lugHeight / 2d), lugWidth, lugHeight);
|
||||
// drawingObserver.stopTrackingContinuityArea();
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -168,7 +168,7 @@ public class OpenJack1_4 extends AbstractMultiPartComponent<OpenJackType> {
|
||||
int springLength = (int) SPRING_LENGTH.convertToPixels();
|
||||
int holeToEdge = (int) HOLE_TO_EDGE.convertToPixels();
|
||||
double centerY = controlPoints[0].getY() + springLength - holeToEdge;
|
||||
Point2D tipLabel = new Point2D.Double(controlPoints[0].getX(), (int) (controlPoints[0].getY() + holeToEdge * 1.25));
|
||||
Point2D tipLabel = new Point2D.Double(controlPoints[0].getX(), (int) Math.round(controlPoints[0].getY() + holeToEdge * 1.25));
|
||||
AffineTransform ringTransform = AffineTransform.getRotateInstance(getValue() == OpenJackType.SWITCHED ? SWITCH_THETA : RING_THETA, controlPoints[0].getX(), centerY);
|
||||
AffineTransform sleeveTransform = AffineTransform.getRotateInstance(getValue() == OpenJackType.SWITCHED ? SLEEVE_SWITCHED_THETA : SLEEVE_THETA, controlPoints[0].getX(), centerY);
|
||||
Point2D ringOrSwitchLabel = new Point2D.Double(0, 0);
|
||||
|
||||
+1
-1
@@ -161,7 +161,7 @@ public class OpenJack1_8 extends AbstractMultiPartComponent<OpenJackType> {
|
||||
int springLength = (int) SPRING_LENGTH.convertToPixels();
|
||||
int holeToEdge = (int) HOLE_TO_EDGE.convertToPixels();
|
||||
double centerY = controlPoints[0].getY() + springLength - holeToEdge;
|
||||
Point2D tipLabel = new Point2D.Double(controlPoints[0].getX(), (int) (controlPoints[0].getY() + holeToEdge * 1.25));
|
||||
Point2D tipLabel = new Point2D.Double(controlPoints[0].getX(), (int) Math.round(controlPoints[0].getY() + holeToEdge * 1.25));
|
||||
AffineTransform ringTransform = AffineTransform.getRotateInstance(getValue() == OpenJackType.SWITCHED ? SWITCH_THETA : RING_THETA, controlPoints[0].getX(), centerY);
|
||||
AffineTransform sleeveTransform = AffineTransform.getRotateInstance(getValue() == OpenJackType.SWITCHED ? SLEEVE_SWITCHED_THETA : SLEEVE_THETA, controlPoints[0].getX(), centerY);
|
||||
Point2D ringOrSwitchLabel = new Point2D.Double(0, 0);
|
||||
|
||||
+2
-2
@@ -239,10 +239,10 @@ public class PinHeader extends AbstractTransparentComponent<Void> {
|
||||
for (Point2D point : controlPoints) {
|
||||
if (!outlineMode) {
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillRect((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.fillRect((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
}
|
||||
g2d.setColor(outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR);
|
||||
g2d.drawRect((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.drawRect((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
}
|
||||
|
||||
Color finalBorderColor;
|
||||
|
||||
+3
-3
@@ -284,14 +284,14 @@ public class SlideSwitch extends AbstractTransparentComponent<SlideSwitchType> i
|
||||
Point2D p = controlPoints[i];
|
||||
if (outlineMode) {
|
||||
g2d.setColor(theme.getOutlineColor());
|
||||
g2d.drawRect((int) (p.getX() - lugWidth / 2d), (int) (p.getY() - lugHeight / 2d), lugWidth,
|
||||
g2d.drawRect((int) Math.round(p.getX() - lugWidth / 2d), (int) Math.round(p.getY() - lugHeight / 2d), lugWidth,
|
||||
lugHeight);
|
||||
} else {
|
||||
g2d.setColor(TERMINAL_COLOR);
|
||||
g2d.fillRect((int) (p.getX() - lugWidth / 2d), (int) (p.getY() - lugHeight / 2d), lugWidth,
|
||||
g2d.fillRect((int) Math.round(p.getX() - lugWidth / 2d), (int) Math.round(p.getY() - lugHeight / 2d), lugWidth,
|
||||
lugHeight);
|
||||
g2d.setColor(TERMINAL_COLOR.darker());
|
||||
g2d.drawRect((int) (p.getX() - lugWidth / 2d), (int) (p.getY() - lugHeight / 2d), lugWidth,
|
||||
g2d.drawRect((int) Math.round(p.getX() - lugWidth / 2d), (int) Math.round(p.getY() - lugHeight / 2d), lugWidth,
|
||||
lugHeight);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -134,7 +134,7 @@ public class SwitchLatchingSymbol
|
||||
Math.atan2(endPoint.getY() - startPoint.getY(), endPoint.getX() - startPoint.getX());
|
||||
int startAngle = (int) Math.toDegrees(-latchAngle) - ARC_ANGLE / 2;
|
||||
|
||||
g2d.drawArc((int) (startPoint.getX() - d), (int) (startPoint.getY() - d), (int) (d * 2),
|
||||
g2d.drawArc((int) Math.round(startPoint.getX() - d), (int) Math.round(startPoint.getY() - d), (int) (d * 2),
|
||||
(int) (d * 2), startAngle, ARC_ANGLE);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -188,9 +188,9 @@ public class TactileMicroSwitch extends AbstractLabeledComponent<String> impleme
|
||||
throw new RuntimeException("Unexpected orientation: " + orientation);
|
||||
}
|
||||
controlPoints[i] =
|
||||
new Point2D.Double((int) (firstPoint.getX() + dx1), (int) (firstPoint.getY() + dy1));
|
||||
new Point2D.Double((int) Math.round(firstPoint.getX() + dx1), (int) Math.round(firstPoint.getY() + dy1));
|
||||
controlPoints[i + PIN_COUNT / 2] =
|
||||
new Point2D.Double((int) (firstPoint.getX() + dx2), (int) (firstPoint.getY() + dy2));
|
||||
new Point2D.Double((int) Math.round(firstPoint.getX() + dx2), (int) Math.round(firstPoint.getY() + dy2));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -369,7 +369,7 @@ public class ThonkJack3_5 extends AbstractTransparentComponent<String> {
|
||||
rotation.transform(textCenter, textCenter);
|
||||
}
|
||||
|
||||
int drawX = (int) (textCenter.getX() - textWidth / 2);
|
||||
int drawX = (int) Math.round(textCenter.getX() - textWidth / 2);
|
||||
int drawY = (int) (textCenter.getY() - textHeight / 2 + fontMetrics.getAscent());
|
||||
|
||||
g2d.drawString(label, drawX, drawY);
|
||||
|
||||
@@ -187,16 +187,16 @@ public class S1Switch extends AbstractTransparentComponent<Void> implements ISwi
|
||||
Point2D p = controlPoints[i];
|
||||
if (outlineMode) {
|
||||
g2d.setColor(theme.getOutlineColor());
|
||||
g2d.drawOval((int)(p.getX() - padDiameter / 2), (int)(p.getY() - padDiameter / 2), padDiameter, padDiameter);
|
||||
g2d.drawOval((int) Math.round(p.getX() - padDiameter / 2), (int) Math.round(p.getY() - padDiameter / 2), padDiameter, padDiameter);
|
||||
} else {
|
||||
g2d.setColor(PAD_COLOR);
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.fillOval((int)(p.getX() - padDiameter / 2), (int)(p.getY() - padDiameter / 2), padDiameter, padDiameter);
|
||||
g2d.fillOval((int) Math.round(p.getX() - padDiameter / 2), (int) Math.round(p.getY() - padDiameter / 2), padDiameter, padDiameter);
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
g2d.setColor(PAD_COLOR.darker());
|
||||
g2d.drawOval((int)(p.getX() - padDiameter / 2), (int)(p.getY() - padDiameter / 2), padDiameter, padDiameter);
|
||||
g2d.drawOval((int) Math.round(p.getX() - padDiameter / 2), (int) Math.round(p.getY() - padDiameter / 2), padDiameter, padDiameter);
|
||||
g2d.setColor(HOLE_COLOR);
|
||||
g2d.fillOval((int)(p.getX() - holeDiameter / 2), (int)(p.getY() - holeDiameter / 2), holeDiameter, holeDiameter);
|
||||
g2d.fillOval((int) Math.round(p.getX() - holeDiameter / 2), (int) Math.round(p.getY() - holeDiameter / 2), holeDiameter, holeDiameter);
|
||||
}
|
||||
|
||||
if (!showMarkers || i % 3 == 2) {
|
||||
@@ -213,8 +213,8 @@ public class S1Switch extends AbstractTransparentComponent<Void> implements ISwi
|
||||
Stroke stroke = g2d.getStroke();
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2f));
|
||||
g2d.setColor(LINE_COLOR);
|
||||
g2d.drawLine((int)(p.getX() - padDiameter / 3), (int)(p.getY() + dy * padDiameter * 4 / 5),
|
||||
(int)(p.getX() + padDiameter / 3), (int)(p.getY() + dy * padDiameter * 4 / 5));
|
||||
g2d.drawLine((int) Math.round(p.getX() - padDiameter / 3), (int) Math.round(p.getY() + dy * padDiameter * 4 / 5),
|
||||
(int) Math.round(p.getX() + padDiameter / 3), (int) Math.round(p.getY() + dy * padDiameter * 4 / 5));
|
||||
g2d.setStroke(stroke);
|
||||
}
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ public class BOM extends AbstractComponent<Void> {
|
||||
int columnWidth = (int) size.convertToPixels() / columnCount;
|
||||
int entriesPerColumn = (int) Math.ceil(1.d * bom.size() / columnCount);
|
||||
if (entriesPerColumn == 0) {
|
||||
g2d.drawString(DEFAULT_TEXT, (int)point.getX(), (int)point.getY());
|
||||
g2d.drawString(DEFAULT_TEXT, (int) Math.round(point.getX()), (int) Math.round(point.getY()));
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < bom.size(); i++) {
|
||||
@@ -129,8 +129,8 @@ public class BOM extends AbstractComponent<Void> {
|
||||
}
|
||||
int columnIndex = i / entriesPerColumn;
|
||||
int rowIndex = i % entriesPerColumn;
|
||||
int x = (int)(point.getX() + columnIndex * columnWidth);
|
||||
int y = (int)(point.getY() + rowIndex * maxHeight);
|
||||
int x = (int) Math.round(point.getX() + columnIndex * columnWidth);
|
||||
int y = (int) Math.round(point.getY() + rowIndex * maxHeight);
|
||||
g2d.drawString(entry.getName(), x, y);
|
||||
x += maxNameWidth + SPACING.convertToPixels();
|
||||
g2d.drawString(valueStr, x, y);
|
||||
|
||||
@@ -161,7 +161,7 @@ public class Image extends AbstractTransparentComponent<Void> {
|
||||
|
||||
@Override
|
||||
public void drawIcon(Graphics2D g2d, int width, int height) {
|
||||
g2d.drawImage(ICON.getImage(), (int)point.getX(), (int)point.getY(), null);
|
||||
g2d.drawImage(ICON.getImage(), (int) Math.round(point.getX()), (int) Math.round(point.getY()), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -75,7 +75,7 @@ public class Loadline extends AbstractBoard {
|
||||
Composite oldComposite = applyAlpha(g2d, componentState);
|
||||
g2d.setColor(boardColor);
|
||||
|
||||
g2d.fillRect((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(finalSecondPoint.getX() - firstPoint.getX()),
|
||||
g2d.fillRect((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(finalSecondPoint.getX() - firstPoint.getX()),
|
||||
(int)(finalSecondPoint.getY() - firstPoint.getY()));
|
||||
|
||||
g2d.setComposite(oldComposite);
|
||||
@@ -88,7 +88,7 @@ public class Loadline extends AbstractBoard {
|
||||
? SELECTION_COLOR
|
||||
: borderColor);
|
||||
|
||||
g2d.drawRect((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(finalSecondPoint.getX() - firstPoint.getX()),
|
||||
g2d.drawRect((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(finalSecondPoint.getX() - firstPoint.getX()),
|
||||
(int)(finalSecondPoint.getY() - firstPoint.getY()));
|
||||
|
||||
}
|
||||
|
||||
+4
-4
@@ -212,8 +212,8 @@ public class AudioTransformer extends AbstractMultiPartComponent<String> impleme
|
||||
body = new Area[2];
|
||||
double leadSpacing = this.leadSpacing.convertToPixels();
|
||||
double windingSpacing = this.windingSpacing.convertToPixels();
|
||||
double centerX = (int) (controlPoints[0].getX() + windingSpacing / 2);
|
||||
double centerY = (int) (controlPoints[0].getY() + leadSpacing);
|
||||
double centerX = (int) Math.round(controlPoints[0].getX() + windingSpacing / 2);
|
||||
double centerY = (int) Math.round(controlPoints[0].getY() + leadSpacing);
|
||||
int coreWidth = getClosestOdd(this.coreWidth.convertToPixels());
|
||||
int coreThickness = getClosestOdd(this.coreThickness.convertToPixels());
|
||||
int coilWidth = getClosestOdd(this.coilWidth.convertToPixels());
|
||||
@@ -271,9 +271,9 @@ public class AudioTransformer extends AbstractMultiPartComponent<String> impleme
|
||||
int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2;
|
||||
for (Point2D point : controlPoints) {
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.fillOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.setColor(PIN_BORDER_COLOR);
|
||||
g2d.drawOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.drawOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
}
|
||||
}
|
||||
Composite oldComposite = applyAlpha(g2d, componentState);
|
||||
|
||||
@@ -176,7 +176,7 @@ public class BoxTrimmer extends AbstractTransparentComponent<Resistance> {
|
||||
// Draw pins
|
||||
g2d.setColor(outlineMode ? theme.getOutlineColor() : PIN_COLOR);
|
||||
for (Point2D p : controlPoints) {
|
||||
g2d.fillOval((int) p.getX() - 2, (int) p.getY() - 2, 4, 4);
|
||||
g2d.fillOval((int) Math.round(p.getX()) - 2, (int) Math.round(p.getY()) - 2, 4, 4);
|
||||
}
|
||||
|
||||
// Draw label - position outside body for readability
|
||||
|
||||
+1
-1
@@ -425,7 +425,7 @@ public class MiniaturePotentiometer extends AbstractPotentiometer {
|
||||
int x = (panelWidth - textWidth) / 2;
|
||||
int y = (panelHeight - textHeight) / 2 + fontMetrics.getAscent();
|
||||
|
||||
g2d.drawString(label, (int) (bodyRect.getX() + x), (int) (bodyRect.getY() + y));
|
||||
g2d.drawString(label, (int) Math.round(bodyRect.getX() + x), (int) Math.round(bodyRect.getY() + y));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -381,10 +381,10 @@ public class MultiSectionCapacitor extends AbstractLabeledComponent<Capacitance[
|
||||
for (Point2D point : controlPoints) {
|
||||
if (!outlineMode) {
|
||||
g2d.setColor(pinColor);
|
||||
g2d.fillOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.fillOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
}
|
||||
g2d.setColor(outlineMode ? theme.getOutlineColor() : pinColor.darker());
|
||||
g2d.drawOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.drawOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
}
|
||||
|
||||
// Draw label.
|
||||
|
||||
+2
-2
@@ -345,7 +345,7 @@ public class PotentiometerPanel extends AbstractPotentiometer implements ILayere
|
||||
int x = (panelWidth - textWidth) / 2;
|
||||
int y = panelHeight / 2 - textHeight + fontMetrics.getAscent();
|
||||
|
||||
g2d.drawString(getName(), (int) (bodyRect.getX() + x), (int) (bodyRect.getY() + y));
|
||||
g2d.drawString(getName(), (int) Math.round(bodyRect.getX() + x), (int) Math.round(bodyRect.getY() + y));
|
||||
|
||||
// Draw value.
|
||||
rect = fontMetrics.getStringBounds(getValueForDisplay(), g2d);
|
||||
@@ -356,7 +356,7 @@ public class PotentiometerPanel extends AbstractPotentiometer implements ILayere
|
||||
x = (panelWidth - textWidth) / 2;
|
||||
y = panelHeight / 2 + fontMetrics.getAscent();
|
||||
|
||||
g2d.drawString(getValueForDisplay(), (int) (bodyRect.getX() + x), (int) (bodyRect.getY() + y));
|
||||
g2d.drawString(getValueForDisplay(), (int) Math.round(bodyRect.getX() + x), (int) Math.round(bodyRect.getY() + y));
|
||||
|
||||
// Draw markers if enabled.
|
||||
if (getShowMarkers()) {
|
||||
|
||||
+1
-1
@@ -141,7 +141,7 @@ public class PotentiometerSymbol extends Abstract3LegSymbol {
|
||||
// return controlPoints[1].x - pinSpacing / 2 - (int) textRect.getWidth();
|
||||
// if (controlPoints[0].y > controlPoints[1].y && controlPoints[0].y > controlPoints[2].y)
|
||||
// return controlPoints[0].x - (int) (textRect.getWidth() / 2);
|
||||
// return 2 * ((int) (shapeRect.getWidth() - textRect.getWidth()) / 2 + (int) shapeRect.getX());
|
||||
// return 2 * ((int) (shapeRect.getWidth() - textRect.getWidth()) / 2 + (int) Math.round(shapeRect.getX()));
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
|
||||
+3
-3
@@ -405,10 +405,10 @@ public class TrimmerPotentiometer extends AbstractPotentiometer {
|
||||
for (Point2D point : controlPoints) {
|
||||
if (!outlineMode) {
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.fillOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
}
|
||||
g2d.setColor(outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR);
|
||||
g2d.drawOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.drawOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
}
|
||||
|
||||
// Draw label.
|
||||
@@ -451,7 +451,7 @@ public class TrimmerPotentiometer extends AbstractPotentiometer {
|
||||
int x = (panelWidth - textWidth) / 2;
|
||||
int y = (panelHeight - textHeight) / 2 + fontMetrics.getAscent();
|
||||
|
||||
g2d.drawString(label, (int) (bodyRect.getX() + x), (int) (bodyRect.getY() + y));
|
||||
g2d.drawString(label, (int) Math.round(bodyRect.getX() + x), (int) Math.round(bodyRect.getY() + y));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -237,9 +237,9 @@ public class DIL_IC extends AbstractLabeledComponent<String> implements IGerberC
|
||||
throw new RuntimeException("Unexpected orientation: " + orientation);
|
||||
}
|
||||
controlPoints[i] =
|
||||
new Point2D.Double((int) (firstPoint.getX() + dx1), (int) (firstPoint.getY() + dy1));
|
||||
new Point2D.Double((int) Math.round(firstPoint.getX() + dx1), (int) Math.round(firstPoint.getY() + dy1));
|
||||
controlPoints[i + pinCount.getValue() / 2] =
|
||||
new Point2D.Double((int) (firstPoint.getX() + dx2), (int) (firstPoint.getY() + dy2));
|
||||
new Point2D.Double((int) Math.round(firstPoint.getX() + dx2), (int) Math.round(firstPoint.getY() + dy2));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -431,10 +431,10 @@ public class DIL_IC extends AbstractLabeledComponent<String> implements IGerberC
|
||||
Point2D point = controlPoints[i];
|
||||
|
||||
// determine points relative to rotation
|
||||
int textX1 = (int) (point.getX() - 2 * pinSize);
|
||||
int textY1 = (int) (point.getY() + pinSize / 2);
|
||||
int textX2 = (int) (point.getX() + pinSize);
|
||||
int textY2 = (int) (point.getY() + pinSize / 2);
|
||||
int textX1 = (int) Math.round(point.getX() - 2 * pinSize);
|
||||
int textY1 = (int) Math.round(point.getY() + pinSize / 2);
|
||||
int textX2 = (int) Math.round(point.getX() + pinSize);
|
||||
int textY2 = (int) Math.round(point.getY() + pinSize / 2);
|
||||
if (orientation == Orientation._90) {
|
||||
textX2 = textX2 - pinSize - pinSize / 2;
|
||||
textY2 = textY2 + pinSize;
|
||||
|
||||
+2
-2
@@ -202,7 +202,7 @@ public class MultiwattIC extends AbstractTransparentComponent<String> implements
|
||||
default:
|
||||
throw new RuntimeException("Unexpected orientation: " + orientation);
|
||||
}
|
||||
controlPoints[i] = new Point2D.Double((int) (firstPoint.getX() + dx1), (int) (firstPoint.getY() + dy1));
|
||||
controlPoints[i] = new Point2D.Double((int) Math.round(firstPoint.getX() + dx1), (int) Math.round(firstPoint.getY() + dy1));
|
||||
}
|
||||
|
||||
// Right side pins (second row, staggered - offset by half pin spacing)
|
||||
@@ -227,7 +227,7 @@ public class MultiwattIC extends AbstractTransparentComponent<String> implements
|
||||
default:
|
||||
throw new RuntimeException("Unexpected orientation: " + orientation);
|
||||
}
|
||||
controlPoints[i + pinsLeft] = new Point2D.Double((int) (firstPoint.getX() + dx2), (int) (firstPoint.getY() + dy2));
|
||||
controlPoints[i + pinsLeft] = new Point2D.Double((int) Math.round(firstPoint.getX() + dx2), (int) Math.round(firstPoint.getY() + dy2));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -216,7 +216,7 @@ public class SIL_IC extends AbstractTransparentComponent<String> implements IGer
|
||||
default:
|
||||
throw new RuntimeException("Unexpected orientation: " + orientation);
|
||||
}
|
||||
controlPoints[i] = new Point2D.Double((int) (firstPoint.getX() + dx1), (int) (firstPoint.getY() + dy1));
|
||||
controlPoints[i] = new Point2D.Double((int) Math.round(firstPoint.getX() + dx1), (int) Math.round(firstPoint.getY() + dy1));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -293,9 +293,9 @@ public class SIL_IC extends AbstractTransparentComponent<String> implements IGer
|
||||
int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2;
|
||||
for (Point2D point : controlPoints) {
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.fillOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.setColor(PIN_BORDER_COLOR);
|
||||
g2d.drawOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.drawOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -236,10 +236,10 @@ public class TransistorTO3 extends AbstractLabeledComponent<String> {
|
||||
for (Point2D point : controlPoints) {
|
||||
if (!outlineMode) {
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.fillOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
}
|
||||
g2d.setColor(outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR);
|
||||
g2d.drawOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.drawOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
}
|
||||
|
||||
Area mainArea = getBody()[0];
|
||||
|
||||
@@ -49,7 +49,7 @@ public class Ellipse extends AbstractShapeWithDimensions {
|
||||
|
||||
Composite oldComposite = applyAlpha(g2d, componentState);
|
||||
g2d.setColor(color);
|
||||
g2d.fillOval((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()));
|
||||
g2d.fillOval((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()));
|
||||
g2d.setComposite(oldComposite);
|
||||
|
||||
// Do not track any changes that follow because the whole oval has been
|
||||
@@ -57,7 +57,7 @@ public class Ellipse extends AbstractShapeWithDimensions {
|
||||
drawingObserver.stopTracking();
|
||||
g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: borderColor);
|
||||
g2d.drawOval((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()));
|
||||
g2d.drawOval((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -55,7 +55,7 @@ public class Rectangle extends AbstractShapeWithDimensions {
|
||||
|
||||
Composite oldComposite = applyAlpha(g2d, componentState);
|
||||
g2d.setColor(color);
|
||||
g2d.fillRoundRect((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()), radius,
|
||||
g2d.fillRoundRect((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()), radius,
|
||||
radius);
|
||||
g2d.setComposite(oldComposite);
|
||||
|
||||
@@ -64,7 +64,7 @@ public class Rectangle extends AbstractShapeWithDimensions {
|
||||
drawingObserver.stopTracking();
|
||||
g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: borderColor);
|
||||
g2d.drawRoundRect((int)firstPoint.getX(), (int)firstPoint.getY(), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()), radius,
|
||||
g2d.drawRoundRect((int) Math.round(firstPoint.getX()), (int) Math.round(firstPoint.getY()), (int)(secondPoint.getX() - firstPoint.getX()), (int)(secondPoint.getY() - firstPoint.getY()), radius,
|
||||
radius);
|
||||
}
|
||||
|
||||
|
||||
@@ -158,11 +158,11 @@ public class TapeMeasure extends AbstractLeadedComponent<String> {
|
||||
int legLength = (int) (getPoints()[0].distance(getPoints()[1]) - strWidth) / 2 - 6;
|
||||
|
||||
// draw legs around the enter text
|
||||
g2d.drawLine((int)startPoint.getX(), (int)startPoint.getY(),
|
||||
g2d.drawLine((int) Math.round(startPoint.getX()), (int) Math.round(startPoint.getY()),
|
||||
(int)Math.round(startPoint.getX() + Math.cos(theta) * legLength),
|
||||
(int)Math.round(startPoint.getY() + Math.sin(theta) * legLength));
|
||||
|
||||
g2d.drawLine((int)endPoint.getX(), (int)endPoint.getY(),
|
||||
g2d.drawLine((int) Math.round(endPoint.getX()), (int) Math.round(endPoint.getY()),
|
||||
(int)Math.round(endPoint.getX() - Math.cos(theta) * legLength),
|
||||
(int)Math.round(endPoint.getY() - Math.sin(theta) * legLength));
|
||||
|
||||
|
||||
@@ -365,43 +365,43 @@ public class SubminiTube extends AbstractLabeledComponent<String> {
|
||||
case DEFAULT:
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||
g2d.setColor(finalPinBorderColor);
|
||||
g2d.drawLine((int)point.getX(), (int)point.getY(), (int)(point.getX() - leadLength - leadThickness / 2), (int)(startY + increment * i));
|
||||
g2d.drawLine((int) Math.round(point.getX()), (int) Math.round(point.getY()), (int) Math.round(point.getX() - leadLength - leadThickness / 2), (int)(startY + increment * i));
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||
g2d.setColor(finalPinColor);
|
||||
g2d.drawLine((int)point.getX(), (int)point.getY(), (int)(point.getX() - leadLength - leadThickness / 2), (int)(startY + increment * i));
|
||||
g2d.drawLine((int) Math.round(point.getX()), (int) Math.round(point.getY()), (int) Math.round(point.getX() - leadLength - leadThickness / 2), (int)(startY + increment * i));
|
||||
break;
|
||||
case _90:
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||
g2d.setColor(finalPinBorderColor);
|
||||
g2d.drawLine((int)point.getX(), (int)point.getY(), (int)(startX + increment * i), (int)(point.getY() - leadLength));
|
||||
g2d.drawLine((int) Math.round(point.getX()), (int) Math.round(point.getY()), (int)(startX + increment * i), (int) Math.round(point.getY() - leadLength));
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||
g2d.setColor(finalPinColor);
|
||||
g2d.drawLine((int)point.getX(), (int)point.getY(), (int)(startX + increment * i), (int)(point.getY() - leadLength));
|
||||
g2d.drawLine((int) Math.round(point.getX()), (int) Math.round(point.getY()), (int)(startX + increment * i), (int) Math.round(point.getY() - leadLength));
|
||||
break;
|
||||
case _180:
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||
g2d.setColor(finalPinBorderColor);
|
||||
g2d.drawLine((int)point.getX(), (int)point.getY(), (int)(point.getX() + leadLength - leadThickness / 2), (int)(startY + increment * i));
|
||||
g2d.drawLine((int) Math.round(point.getX()), (int) Math.round(point.getY()), (int) Math.round(point.getX() + leadLength - leadThickness / 2), (int)(startY + increment * i));
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||
g2d.setColor(finalPinColor);
|
||||
g2d.drawLine((int)point.getX(), (int)point.getY(), (int)(point.getX() + leadLength - leadThickness / 2), (int)(startY + increment * i));
|
||||
g2d.drawLine((int) Math.round(point.getX()), (int) Math.round(point.getY()), (int) Math.round(point.getX() + leadLength - leadThickness / 2), (int)(startY + increment * i));
|
||||
break;
|
||||
case _270:
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||
g2d.setColor(finalPinBorderColor);
|
||||
g2d.drawLine((int)point.getX(), (int)point.getY(), (int)(startX + increment * i), (int)(point.getY() + leadLength - leadThickness / 2));
|
||||
g2d.drawLine((int) Math.round(point.getX()), (int) Math.round(point.getY()), (int)(startX + increment * i), (int) Math.round(point.getY() + leadLength - leadThickness / 2));
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||
g2d.setColor(finalPinColor);
|
||||
g2d.drawLine((int)point.getX(), (int)point.getY(), (int)(startX + increment * i), (int)(point.getY() + leadLength - leadThickness / 2));
|
||||
g2d.drawLine((int) Math.round(point.getX()), (int) Math.round(point.getY()), (int)(startX + increment * i), (int) Math.round(point.getY() + leadLength - leadThickness / 2));
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (getTopLead()) {
|
||||
Point2D point = controlPoints[controlPoints.length - 1];
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.fillOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.setColor(outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR);
|
||||
g2d.drawOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.drawOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
}
|
||||
} else {
|
||||
if (!outlineMode) {
|
||||
@@ -409,9 +409,9 @@ public class SubminiTube extends AbstractLabeledComponent<String> {
|
||||
: 0; i < controlPoints.length; i++) {
|
||||
Point2D point = controlPoints[i];
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.fillOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.setColor(outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR);
|
||||
g2d.drawOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
g2d.drawOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,8 +122,8 @@ public class FlexibleLeadsEditor implements IProjectEditor {
|
||||
double dy = offsetY.convertToPixels() * (i - 1);
|
||||
|
||||
// calculate lead position
|
||||
Point2D p1 = new Point2D.Double((int)(p0.getX() + dx / 2), (int)(p0.getY() + dy / 2));
|
||||
Point2D p2 = new Point2D.Double((int)(p0.getX() + dx), (int)(p0.getY() + dy));
|
||||
Point2D p1 = new Point2D.Double((int) Math.round(p0.getX() + dx / 2), (int) Math.round(p0.getY() + dy / 2));
|
||||
Point2D p2 = new Point2D.Double((int) Math.round(p0.getX() + dx), (int) Math.round(p0.getY() + dy));
|
||||
|
||||
if (c.getOrientation() != Orientation.DEFAULT) {
|
||||
AffineTransform tx = AffineTransform.getRotateInstance(c.getOrientation().toRadians(), p0.getX(), p0.getY());
|
||||
@@ -182,7 +182,7 @@ public class FlexibleLeadsEditor implements IProjectEditor {
|
||||
HookupWire w = new HookupWire();
|
||||
getInstantiationManager().fillWithDefaultProperties(w, null);
|
||||
for (int j = 0; j < w.getControlPointCount(); j++) {
|
||||
Point2D p = new Point2D.Double((int)(p0.getX() + dx * j), (int)(p0.getY() + dy * j));
|
||||
Point2D p = new Point2D.Double((int) Math.round(p0.getX() + dx * j), (int) Math.round(p0.getY() + dy * j));
|
||||
if (tx != null)
|
||||
tx.transform(p, p);
|
||||
w.setControlPoint(p, j);
|
||||
@@ -213,7 +213,7 @@ public class FlexibleLeadsEditor implements IProjectEditor {
|
||||
HookupWire w = new HookupWire();
|
||||
getInstantiationManager().fillWithDefaultProperties(w, null);
|
||||
for (int j = 0; j < w.getControlPointCount(); j++) {
|
||||
Point2D pw = new Point2D.Double((int)(p.getX() + dx * j), (int)(p.getY() + dy * j));
|
||||
Point2D pw = new Point2D.Double((int) Math.round(p.getX() + dx * j), (int) Math.round(p.getY() + dy * j));
|
||||
w.setControlPoint(pw, j);
|
||||
}
|
||||
newSelection.add(w);
|
||||
@@ -248,7 +248,7 @@ public class FlexibleLeadsEditor implements IProjectEditor {
|
||||
w.setValue(AWG._24);
|
||||
getInstantiationManager().fillWithDefaultProperties(w, null);
|
||||
for (int j = 0; j < w.getControlPointCount(); j++) {
|
||||
Point2D p = new Point2D.Double((int)(p0.getX() + dx * j), (int)(p0.getY() + dy * j));
|
||||
Point2D p = new Point2D.Double((int) Math.round(p0.getX() + dx * j), (int) Math.round(p0.getY() + dy * j));
|
||||
if (tx != null)
|
||||
tx.transform(p, p);
|
||||
w.setControlPoint(p, j);
|
||||
|
||||
@@ -444,10 +444,10 @@ public class CanvasPlugin implements IPlugIn{
|
||||
// center to cursor
|
||||
int relativeX = (int) (mousePosBefore.getX() + locationBefore.getX());
|
||||
int relativeY = (int) (mousePosBefore.getY() + locationBefore.getY());
|
||||
Point desiredPos = new Point((int) (1d * mousePosBefore.getX() / oldZoom * newZoom),
|
||||
(int) (1d * mousePosBefore.getY() / oldZoom * newZoom));
|
||||
int newHorizontalPos = (int) (desiredPos.getX() - relativeX);
|
||||
int newVerticalPos = (int) (desiredPos.getY() - relativeY);
|
||||
Point desiredPos = new Point((int) Math.round(1d * mousePosBefore.getX() / oldZoom * newZoom),
|
||||
(int) Math.round(1d * mousePosBefore.getY() / oldZoom * newZoom));
|
||||
int newHorizontalPos = (int) Math.round(desiredPos.getX() - relativeX);
|
||||
int newVerticalPos = (int) Math.round(desiredPos.getY() - relativeY);
|
||||
horizontal.setValue(newHorizontalPos < 0 ? 0 : newHorizontalPos);
|
||||
vertical.setValue(newVerticalPos < 0 ? 0 : newVerticalPos);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user