From a665bfcf426bccef17db79e8819d9b6a71979913 Mon Sep 17 00:00:00 2001 From: bancika Date: Wed, 8 Apr 2020 11:34:32 +0200 Subject: [PATCH] add caching to guitar pickups --- .../components/guitar/AbstractGuitarPickup.java | 14 ++++++++++++++ .../diylc/components/guitar/HumbuckerPickup.java | 2 +- .../diylc/components/guitar/JazzBassPickup.java | 2 +- .../org/diylc/components/guitar/LeverSwitch.java | 8 ++++---- .../src/org/diylc/components/guitar/P90Pickup.java | 2 +- .../org/diylc/components/guitar/PBassPickup.java | 2 +- .../diylc/components/guitar/SingleCoilPickup.java | 2 +- diylc/diylc-swing/DIYLCStarter.launch | 2 +- 8 files changed, 24 insertions(+), 10 deletions(-) diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/AbstractGuitarPickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/AbstractGuitarPickup.java index 6788a781..b1087501 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/AbstractGuitarPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/AbstractGuitarPickup.java @@ -24,6 +24,8 @@ import java.awt.Point; import java.awt.Rectangle; import java.awt.Shape; import java.awt.geom.AffineTransform; +import java.awt.geom.Area; +import java.awt.geom.Rectangle2D; import org.diylc.appframework.miscutils.ConfigurationManager; import org.diylc.awt.StringUtils; @@ -250,6 +252,18 @@ public abstract class AbstractGuitarPickup extends AbstractTransparentComponent< .setLocation(points[0].x + 3 * dx * pointSpacing, points[0].y + 3 * dy * pointSpacing); } + @Override + public Rectangle2D getCachingBounds() { + Area area = new Area(); + Shape[] body = getBody(); + int margin = 20; + for (Shape a : body) + if (a != null) + area.add(new Area(a)); + Rectangle2D bounds = area.getBounds2D(); + return new Rectangle2D.Double(bounds.getX() - margin, bounds.getY() - margin, bounds.getWidth() + 2 * margin, bounds.getHeight() + 2 * margin); + } + public enum Polarity { North, South, Humbucking; } diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java index ba1e0a3d..600acafe 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java @@ -51,7 +51,7 @@ import org.diylc.utils.Constants; @ComponentDescriptor(name = "Humbucker Pickup", category = "Guitar", author = "Branislav Stojkovic", description = "Double-coil humbucker guitar pickup (PAF, Mini Humbuckers, Filtertrons)", zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "PKP", autoEdit = false, - keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Guitar Wiring Diagram") + keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Guitar Wiring Diagram", enableCache = true) public class HumbuckerPickup extends AbstractGuitarPickup { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/JazzBassPickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/JazzBassPickup.java index 65d41e16..2056b92c 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/JazzBassPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/JazzBassPickup.java @@ -52,7 +52,7 @@ import org.diylc.utils.Constants; @ComponentDescriptor(name = "Jazz Bass Pickup", category = "Guitar", author = "Branislav Stojkovic", description = "Single coil pickup for Jazz Bass and similar guitars", zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "PKP", autoEdit = false, - keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Guitar Wiring Diagram") + keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Guitar Wiring Diagram", enableCache = true) public class JazzBassPickup extends AbstractSingleOrHumbuckerPickup { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java b/diylc/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java index fb4c7532..d30c730d 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java @@ -145,10 +145,10 @@ public class LeverSwitch extends AbstractTransparentComponent implements g2d.setColor(COMMON_LUG_COLOR.darker()); g2d.draw(body[3]); - g2d.setColor(Color.black); - for(int i = 0; i < getControlPointCount(); i++) { - g2d.drawString(i + "", controlPoints[i].x, controlPoints[i].y); - } +// g2d.setColor(Color.black); +// for(int i = 0; i < getControlPointCount(); i++) { +// g2d.drawString(i + "", controlPoints[i].x, controlPoints[i].y); +// } } @SuppressWarnings("incomplete-switch") diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/P90Pickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/P90Pickup.java index 69d0a6a6..e26cfbea 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/P90Pickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/P90Pickup.java @@ -54,7 +54,7 @@ import org.diylc.utils.Constants; @ComponentDescriptor(name = "P-90 Single Coil Pickup", category = "Guitar", author = "Branislav Stojkovic", description = "Single coil P-90 guitar pickup, both \"dog ear\" and \"soap bar\"", zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "PKP", autoEdit = false, - keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Guitar Wiring Diagram") + keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Guitar Wiring Diagram", enableCache = true) public class P90Pickup extends AbstractSingleOrHumbuckerPickup { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/PBassPickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/PBassPickup.java index c3a524f7..8986c498 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/PBassPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/PBassPickup.java @@ -52,7 +52,7 @@ import org.diylc.utils.Constants; @ComponentDescriptor(name = "P- Bass Pickup", category = "Guitar", author = "Branislav Stojkovic", description = "Split-coil pickup for P-Bass and similar guitars", zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "PKP", autoEdit = false, - keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Guitar Wiring Diagram") + keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Guitar Wiring Diagram", enableCache = true) public class PBassPickup extends AbstractSingleOrHumbuckerPickup { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java index 28199bde..777145d5 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java @@ -54,7 +54,7 @@ import org.diylc.utils.Constants; @ComponentDescriptor(name = "Single Coil Pickup", category = "Guitar", author = "Branislav Stojkovic", description = "Single coil guitar pickup, both Strat and Tele style", zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "PKP", autoEdit = false, - keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Guitar Wiring Diagram") + keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Guitar Wiring Diagram", enableCache = true) public class SingleCoilPickup extends AbstractSingleOrHumbuckerPickup { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-swing/DIYLCStarter.launch b/diylc/diylc-swing/DIYLCStarter.launch index b38acedd..71b0b502 100644 --- a/diylc/diylc-swing/DIYLCStarter.launch +++ b/diylc/diylc-swing/DIYLCStarter.launch @@ -12,5 +12,5 @@ - +