From af2195798f4acbc986db7d64b4c684848041af58 Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Wed, 9 Jan 2019 15:52:30 +0100 Subject: [PATCH] Render resistor color bands properly when zommed in --- .../src/org/diylc/common/ObjectCache.java | 10 +++ .../src/org/diylc/common/ZoomableStroke.java | 57 ++++++++++++++++++ .../src/org/diylc/presenter/G2DWrapper.java | 3 +- diylc/diylc-library/lib/diylc-core.jar | Bin 249704 -> 250178 bytes .../diylc/components/passive/Resistor.java | 4 +- diylc/diylc-swing/lib/diylc-core.jar | Bin 249704 -> 250178 bytes diylc/diylc-swing/library/main.jar | Bin 475731 -> 475733 bytes diylc/diylc-swing/update.xml | 4 ++ 8 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 diylc/diylc-core/src/org/diylc/common/ZoomableStroke.java diff --git a/diylc/diylc-core/src/org/diylc/common/ObjectCache.java b/diylc/diylc-core/src/org/diylc/common/ObjectCache.java index f6a67504..7b29facf 100644 --- a/diylc/diylc-core/src/org/diylc/common/ObjectCache.java +++ b/diylc/diylc-core/src/org/diylc/common/ObjectCache.java @@ -43,6 +43,7 @@ public class ObjectCache { private ObjectCache() {} private Map basicStrokeMap = new HashMap(); + private Map zoomableStrokeMap = new HashMap(); private Map dashStrokeMap = new HashMap(); public Stroke fetchBasicStroke(float width) { @@ -53,6 +54,15 @@ public class ObjectCache { basicStrokeMap.put(width, stroke); return stroke; } + + public Stroke fetchZoomableStroke(float width) { + if (zoomableStrokeMap.containsKey(width)) { + return zoomableStrokeMap.get(width); + } + Stroke stroke = new ZoomableStroke(width, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND); + zoomableStrokeMap.put(width, stroke); + return stroke; + } public Stroke fetchStroke(float width, float[] dash, float phase) { String key = width + "|" + Arrays.toString(dash) + "|" + phase; diff --git a/diylc/diylc-core/src/org/diylc/common/ZoomableStroke.java b/diylc/diylc-core/src/org/diylc/common/ZoomableStroke.java new file mode 100644 index 00000000..383498fe --- /dev/null +++ b/diylc/diylc-core/src/org/diylc/common/ZoomableStroke.java @@ -0,0 +1,57 @@ +/* + + DIY Layout Creator (DIYLC). + Copyright (c) 2009-2018 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 . + +*/ +package org.diylc.common; + +import java.awt.BasicStroke; + +/*** + * {@link BasicStroke} that will always be zoomed in when rendered. + * + * @author Branislav Stojkovic + */ +public class ZoomableStroke extends BasicStroke { + + public ZoomableStroke() { + // TODO Auto-generated constructor stub + } + + public ZoomableStroke(float width) { + super(width); + // TODO Auto-generated constructor stub + } + + public ZoomableStroke(float width, int cap, int join) { + super(width, cap, join); + // TODO Auto-generated constructor stub + } + + public ZoomableStroke(float width, int cap, int join, float miterlimit) { + super(width, cap, join, miterlimit); + // TODO Auto-generated constructor stub + } + + public ZoomableStroke(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase) { + super(width, cap, join, miterlimit, dash, dash_phase); + // TODO Auto-generated constructor stub + } + +} diff --git a/diylc/diylc-core/src/org/diylc/presenter/G2DWrapper.java b/diylc/diylc-core/src/org/diylc/presenter/G2DWrapper.java index 09eaf0b2..2500123f 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/G2DWrapper.java +++ b/diylc/diylc-core/src/org/diylc/presenter/G2DWrapper.java @@ -55,6 +55,7 @@ import java.util.List; import java.util.Map; import org.diylc.common.ObjectCache; +import org.diylc.common.ZoomableStroke; import org.diylc.core.IDrawingObserver; /** @@ -406,7 +407,7 @@ class G2DWrapper extends Graphics2D implements IDrawingObserver { if (this.zoom > 1 && s instanceof BasicStroke) { BasicStroke bs = (BasicStroke) s; // make thin lines even thinner to compensate for zoom factor - if (bs.getLineWidth() <= 2) + if (bs.getLineWidth() <= 2 && !(s instanceof ZoomableStroke)) s = ObjectCache.getInstance().fetchStroke((float) (bs.getLineWidth() / zoom), bs.getDashArray(), bs.getDashPhase()); } canvasGraphics.setStroke(s); diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index f7b0cf935f8d2ea37d94a99ecf2f8dc39a0d03eb..8e1a4bd9e593e682795d9c539cd7d3d532ffb378 100644 GIT binary patch delta 14926 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 TMfDZ@7idaF)er$PO!fZ&(wm4e delta 14149 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 { if (getShape() == ResistorShape.Standard) { int x = width + FIRST_BAND; Color[] bands = value.getColorCode(colorCode); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); + g2d.setStroke(ObjectCache.getInstance().fetchZoomableStroke(2)); for (int i = 0; i < bands.length; i++) { g2d.setColor(bands[i]); g2d.drawLine(x, width / 10 + 2, x, width * 8 / 10 + 1); @@ -189,7 +189,7 @@ public class Resistor extends AbstractLeadedComponent { int x = -FIRST_BAND; int height = getClosestOdd(getWidth().convertToPixels()); Color[] bands = value.getColorCode(colorCode); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); + g2d.setStroke(ObjectCache.getInstance().fetchZoomableStroke(2)); for (int i = 0; i < bands.length; i++) { g2d.setColor(bands[i]); g2d.drawLine(x, 1, x, height - 1); diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index f7b0cf935f8d2ea37d94a99ecf2f8dc39a0d03eb..8e1a4bd9e593e682795d9c539cd7d3d532ffb378 100644 GIT binary patch delta 14926 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 TMfDZ@7idaF)er$PO!fZ&(wm4e delta 14149 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 ujUd?RU|W!<_NEW_FEATURE "P-Bass Pickup" added + + IMPROVEMENT + Render resistor color bands properly when zommed in + https://github.com/bancika/diy-layout-creator/releases