From 1cfb30f35e5c226f6c27ae0f86bf4e586c738f57 Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Sat, 16 Feb 2019 09:14:49 +0100 Subject: [PATCH] pickup graph improvements --- .../src/org/diylc/presenter/Presenter.java | 20 ++-- diylc/diylc-library/lib/diylc-core.jar | Bin 255771 -> 255675 bytes .../components/guitar/HumbuckerPickup.java | 4 +- .../components/guitar/SingleCoilPickup.java | 100 +++++++++++++----- diylc/diylc-swing/lib/diylc-core.jar | Bin 255771 -> 255675 bytes diylc/diylc-swing/library/main.jar | Bin 595500 -> 596875 bytes 6 files changed, 87 insertions(+), 37 deletions(-) diff --git a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java index ea7d4655..53096004 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java @@ -2784,16 +2784,16 @@ public class Presenter implements IPlugInPort { private Graph constructGraph(List nodes, List connections, List continuityAreas) { Graph graph = new Graph(); - StringBuilder sb = new StringBuilder(); - sb.append("Nodes:").append("\n"); - for (Node n : nodes) { - sb.append(n.toString()).append("\n"); - } - sb.append("Connections:").append("\n"); - for (Line2D n : connections) { - sb.append(n.getP1()).append(":").append(n.getP2()).append("\n"); - } - LOG.debug(sb.toString()); +// StringBuilder sb = new StringBuilder(); +// sb.append("Nodes:").append("\n"); +// for (Node n : nodes) { +// sb.append(n.toString()).append("\n"); +// } +// sb.append("Connections:").append("\n"); +// for (Line2D n : connections) { +// sb.append(n.getP1()).append(":").append(n.getP2()).append("\n"); +// } +// LOG.debug(sb.toString()); double t = DrawingManager.CONTROL_POINT_SIZE; for (int i = 0; i < nodes.size() - 1; i++) diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index afba58acf5df0ce4a6e6b7e6e4231be2f323dc5c..310870fa89bdc3915ff48673ea28dc83753e63f8 100644 GIT binary patch delta 8858 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 JINET@{{f0U4-5bR delta 8939 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 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 c0b6df1c..8ad1ed29 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java @@ -628,11 +628,11 @@ public class HumbuckerPickup extends AbstractTransparentComponent { case 0: return"North Start"; case 1: - return "North End"; + return "North Finish"; case 2: return "South Start"; case 3: - return "South End"; + return "South Finish"; } return null; } 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 2a9a9b2a..eb7ec39b 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java @@ -64,12 +64,14 @@ public class SingleCoilPickup extends AbstractTransparentComponent { private static final long serialVersionUID = 1L; private static Color BODY_COLOR = Color.white; - private static Color BASE_COLOR = Color.gray; + private static Color BASE_COLOR = Color.gray; + public static Color LUG_COLOR = Color.decode("#E0C04C"); // private static Color POINT_COLOR = Color.lightGray; private static Size WIDTH = new Size(15.5d, SizeUnit.mm); private static Size LENGTH = new Size(83d, SizeUnit.mm); private static Size BASE_RADIUS = new Size(0.15d, SizeUnit.in); - private static Size POINT_SPACING = new Size(0.1d, SizeUnit.in); + private static Size POINT_SPACING = new Size(0.1d, SizeUnit.in); + private static Size LUG_DIAMETER = new Size(0.06d, SizeUnit.in); // strat-specific private static Size STRAT_LIP_WIDTH = new Size(5d, SizeUnit.mm); @@ -80,9 +82,8 @@ public class SingleCoilPickup extends AbstractTransparentComponent { private static Size TELE_BASE_WIDTH = new Size(1.5d, SizeUnit.in); private static Size TELE_LIP_LENGTH = new Size(1.735d, SizeUnit.in); private static Size TELE_LENGTH = new Size(2.87d, SizeUnit.in); - private static Size TELE_HOLE_SPACING = new Size(1.135d, SizeUnit.in); - - private static Size POINT_SIZE = new Size(2d, SizeUnit.mm); + private static Size TELE_HOLE_SPACING = new Size(1.135d, SizeUnit.in); + private static Size HOLE_SIZE = new Size(2d, SizeUnit.mm); private static Size HOLE_MARGIN = new Size(4d, SizeUnit.mm); private static Size POLE_SIZE = new Size(4d, SizeUnit.mm); @@ -101,6 +102,8 @@ public class SingleCoilPickup extends AbstractTransparentComponent { private Color baseColor = BASE_COLOR; private SingleCoilType type = SingleCoilType.Stratocaster; private PolePieceType polePieceType = PolePieceType.Rods; + private Color lugColor = LUG_COLOR; + private Polarity polarity = Polarity.North; private Point[] controlPoints = new Point[] {new Point(0, 0), new Point(0, 0), new Point(0, 0), new Point(0, 0)}; @@ -157,7 +160,10 @@ public class SingleCoilPickup extends AbstractTransparentComponent { Composite oldComposite = g2d.getComposite(); if (alpha < MAX_ALPHA) { g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA)); - } + } + + Theme theme = + (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : getBaseColor()); g2d.fill(body[4]); @@ -165,9 +171,12 @@ public class SingleCoilPickup extends AbstractTransparentComponent { if (body[0] == null) g2d.fill(body[3]); else - g2d.fill(body[0]); -// g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); -// g2d.fill(body[1]); + g2d.fill(body[0]); + + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : getLugColor()); + g2d.fill(body[1]); + g2d.setColor(outlineMode ? theme.getOutlineColor() : darkerOrLighter(LUG_COLOR)); + g2d.draw(body[1]); // g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color); // g2d.fill(body[3]); @@ -175,8 +184,6 @@ public class SingleCoilPickup extends AbstractTransparentComponent { Color finalBorderColor; if (outlineMode) { - Theme theme = - (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); finalBorderColor = componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme.getOutlineColor(); @@ -189,9 +196,7 @@ public class SingleCoilPickup extends AbstractTransparentComponent { g2d.setColor(finalBorderColor); g2d.draw(body[4]); - if (outlineMode) { - Theme theme = - (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); + if (outlineMode) { finalBorderColor = componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme.getOutlineColor(); @@ -215,8 +220,6 @@ public class SingleCoilPickup extends AbstractTransparentComponent { Color finalLabelColor; if (outlineMode) { - Theme theme = - (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); finalLabelColor = componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme.getOutlineColor(); @@ -250,7 +253,7 @@ public class SingleCoilPickup extends AbstractTransparentComponent { int coilLength = getType() == SingleCoilType.Stratocaster ? stratInnerLength : teleLength; int lipWidth = (int) STRAT_LIP_WIDTH.convertToPixels(); int lipLength = (int) STRAT_LIP_LENGTH.convertToPixels(); - int pointSize = getClosestOdd(POINT_SIZE.convertToPixels()); + int lugDiameter = getClosestOdd(LUG_DIAMETER.convertToPixels()); int holeSize = getClosestOdd(HOLE_SIZE.convertToPixels()); int holeMargin = getClosestOdd(HOLE_MARGIN.convertToPixels()); int baseRadius = (int) BASE_RADIUS.convertToPixels(); @@ -304,9 +307,7 @@ public class SingleCoilPickup extends AbstractTransparentComponent { base.subtract(new Area(new Ellipse2D.Double(x - holeSize / 2, y - teleHoleSpacing, holeSize, holeSize))); body[4] = base; - } - - body[1] = new Area(new Ellipse2D.Double(x - pointSize / 2, y - pointSize / 2, pointSize, pointSize)); + } Area poleArea = new Area(); if (getPolePieceType() == PolePieceType.Rods) { @@ -373,7 +374,15 @@ public class SingleCoilPickup extends AbstractTransparentComponent { if (area != null) area.transform(rotation); } - } + } + + body[1] = new Area(); + double lugHole = getClosestOdd(lugDiameter / 2); + for (int i = getPolarity() == Polarity.Humbucking ? 0 : 1; i < (getPolarity() == Polarity.Humbucking ? 4 : 3); i++) { + Point p = points[i]; + ((Area)body[1]).add(new Area(new Ellipse2D.Double(p.x - lugDiameter / 2, p.y - lugDiameter / 2, lugDiameter, lugDiameter))); + ((Area)body[1]).subtract(new Area(new Ellipse2D.Double(p.x - lugHole / 2, p.y - lugHole / 2, lugHole, lugHole))); + } } return body; } @@ -440,12 +449,12 @@ public class SingleCoilPickup extends AbstractTransparentComponent { @Override public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.WHEN_SELECTED; + return VisibilityPolicy.NEVER; } @Override public boolean isControlPointSticky(int index) { - return true; + return getPolarity() == Polarity.Humbucking || (index > 0 && index < 3); } @Override @@ -514,23 +523,64 @@ public class SingleCoilPickup extends AbstractTransparentComponent { this.poleColor = poleColor; } + @EditableProperty(name = "Lugs") + public Color getLugColor() { + if (lugColor == null) { + lugColor = LUG_COLOR; + } + return lugColor; + } + + public void setLugColor(Color lugColor) { + this.lugColor = lugColor; + } + + @EditableProperty + public Polarity getPolarity() { + if (polarity == null) + polarity = Polarity.North; + return polarity; + } + + public void setPolarity(Polarity polarity) { + this.polarity = polarity; + // Invalidate the body + body = null; + } + @Override public String getControlPointNodeName(int index) { switch (index) { case 0: + if (getPolarity() != Polarity.Humbucking) + return null; return"North Start"; case 1: - return "North End"; + if (getPolarity() == Polarity.South) + return "South Start"; + if (getPolarity() == Polarity.North) + return "North Start"; + return "North Finish"; case 2: + if (getPolarity() == Polarity.South) + return "South Finish"; + if (getPolarity() == Polarity.North) + return "North Finish"; return "South Start"; case 3: - return "South End"; + if (getPolarity() != Polarity.Humbucking) + return null; + return "South Finish"; } return null; } public enum SingleCoilType { Stratocaster, Telecaster; + } + + public enum Polarity { + North, South, Humbucking; } public enum PolePieceType { diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index afba58acf5df0ce4a6e6b7e6e4231be2f323dc5c..310870fa89bdc3915ff48673ea28dc83753e63f8 100644 GIT binary patch delta 8858 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 JINET@{{f0U4-5bR delta 8939 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 diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 2e05cd0335c1facf41c3254224eef04e0215247e..5f7ce6e144b319076340878060425817888a60e5 100644 GIT binary patch delta 28651 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%0A)}34VF&%eBcpWv#WA72o4BcCsgb}Fpp~N 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 delta 27479 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