From 6f0df4fdc911821283b355ff7d0d6e3ba0290dfc Mon Sep 17 00:00:00 2001 From: bancika Date: Mon, 22 Apr 2013 10:22:15 +0000 Subject: [PATCH] added breadboard component --- .../diylc-core/library/main.jar | Bin 264774 -> 268852 bytes .../diylc/components/AbstractComponent.java | 23 +++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar index f4d8765d9b3d43a9552c7be737397a24dae162de..69cc1337c6641a0dad1e1582310c722dd0340f71 100644 GIT binary patch delta 9568 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 diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractComponent.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractComponent.java index 9d8ccf5b..8fb2cf75 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractComponent.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractComponent.java @@ -9,6 +9,7 @@ import java.awt.Rectangle; import java.awt.Shape; import java.awt.font.FontRenderContext; import java.awt.font.GlyphVector; +import java.awt.geom.Rectangle2D; import java.lang.reflect.Array; import java.lang.reflect.Field; import java.lang.reflect.Modifier; @@ -90,7 +91,27 @@ public abstract class AbstractComponent implements IDIYComponent { return false; } } - return true; + int minX = Integer.MAX_VALUE; + int minY = Integer.MAX_VALUE; + int maxX = Integer.MIN_VALUE; + int maxY = Integer.MIN_VALUE; + for (int i = 0; i < getControlPointCount(); i++) { + Point p = getControlPoint(i); + if (minX > p.x) { + minX = p.x; + } + if (maxX < p.x) { + maxX = p.x; + } + if (minY > p.y) { + minY = p.y; + } + if (maxY < p.y) { + maxY = p.y; + } + } + Rectangle2D rect = new Rectangle2D.Double(minX, minY, maxX - minX, maxY - minY); + return clip.intersects(rect); } protected void drawCenteredText(Graphics2D g2d, String text, int x, int y,