From 65cd07af6f71ed255987cc2bba2f1605601feae2 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Sat, 4 Apr 2015 11:02:05 +0200 Subject: [PATCH 1/5] Removing useless stuff --- images/KENNY_Entrance.png | Bin 4031 -> 0 bytes images/KENNY_Food.png | Bin 2190 -> 0 bytes images/KENNY_Toilet.png | Bin 8373 -> 0 bytes images/toilet.png | Bin 1531 -> 0 bytes 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 images/KENNY_Entrance.png delete mode 100644 images/KENNY_Food.png delete mode 100644 images/KENNY_Toilet.png delete mode 100644 images/toilet.png diff --git a/images/KENNY_Entrance.png b/images/KENNY_Entrance.png deleted file mode 100644 index 6bc4badc5480a37f86c1bd9626bcdd6e77338c52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4031 zcmeH~dr;F?7RSRa_yQ8uSHDZ1=B}91}l>*x$39lrAgb)HmAde00zwPWgJN=J4_s*R;ch0$Y zzV~zHo?H15KGxb|uLT4Gv5q?$l>~v95VponQ=?^L^@@*idM`UNArb<)Ut_7wFoQr$ zAs>BsJlbgAVXQF#TU|@1cXc88edN`68edJ6`bWYsW zmtTBicwju4{6w=c`mX$=r;8vE8^P8v+2a%cxzXrIiate3&igZooKcts z$Dsi*A=A<#&dBm*zqKxnO2iE!{P0!<07$b%M=mZxDU5y8%9Zec;>=mM-nmWR zd@8T`Ntlh?s32gHYgv|Ztg1S{=#4IKrae$NuI5bh#xXq^8R1{N z&YZmo=O={F%U(T@|4G{&cWW51C7_Wh}}6C1{#G^;djM19{Td`8SwqcpufzM6bx0(YuDJgtHXZIFPf{o0@)|To)@DmXqFSsT-6A z8Mjwd5;MhqijFLXChz#!-U6D*$*F(&|C6&)q_5D$>WKt#_goWeZRmYKBqa^vheUCK zcsB!yvBXA3P$8bloo124{w69ZuH#RWB#k|t7ZxWKanKm4Rzufx8?U7IiMomOqpOYK z8EvvIP%^2QgGMN@=W#J0*0>n0&Lvjq&M_v6f@K^RLio)glROdQYIj!|*csk`!m-B7 zNcLaExCM+K@q)7c${Tmuk;1}i+VkYkf|%6SS^hQL$W|0rX+8q%a7s%NTfeGd@G3vY z$J~%l(2wgzudU55m)|Xj|C!KL36YR3wx(B?IkT(o3{Wd7jFgJO_Mle!gU*AmGc%1j z#@HdO>DXemo>;EUr>@%koLf4HnM>Fu_;vEk^;6#ohWmOisp;8ej_Q`B!^^J04&TuZ z{Q~E!4Tmm{V4#mWS(3r7N()dbXbcMsN@?=W-2GqBZacqYmTwETE!cm33brBHhU9mG z1U^JnpDS!WH?>MfG%ZVdlQy)5le&$nz~I0rT!Oq*<;6wTmU0aIf! z&27=ljPXJ%dgQcD$t|1kbi+JAr9eY?J#s(I^Ir+{ZuR&RDNR#b=q{e9z41$--|q>? b*#?saVQJ*SgeLOVpC&FEA9e3=dij3Z(btiIVPik{pF~y$24;o; zpAc7|I2Svsl7z6Kj^_4B4Ubk$_`h{BP;eBChQLS&fpe|B+kyV%EbxddW? z8eR=RL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33J=4@yqf`b4Rt8TO$B>G+w|8#` zJ@R632o#<1|Nj%_E{-DZ39^=nZ`)VST(@j(T;}1^EcaAAC#htvxo2+@^gjC1U%P*q zOYF8S`TbB0b z#phXX$}3JT%SgJXzpQrG+NXBU$}Y)0>+}q_K6KZ_^uzqmb^UJ=`DT@@eXsp#w{$(T z+?&h_f1cPmB}>++qD&`QBaTz4qrB-k0r` z-evMKro#SqP1MI_^VQevclYD@+w)-W4c^`MlJ~kF9<@#)E(ZVZuUKENV1AE%mtNEN z#t(6P`KPS^RP+0pKG-b~H~ag>$JPu_j#kQB?sMLE;xU9_6F2w!zsJ^3KJ2r3e|KMV z$;W%u)e_4Zzwdi&{pQ1?*x&E|mVa*4op!k7W8SW>4E#2`UVq5j^^$?#4#=o8mG~hR zv&VjIo$c4+JI^OOZh!FT?_JjZhvj$Xe~>FX_;}vm$F@A=r8wLHM<^Nho~b^3T>a7B z#q0U!|9&TAcCUSR$&8P7aeMx3rCDSWauapZP<8CRqgmEV-;`D^x7bsEes@$({j0(X z_Z6%McK==J-dj{`^Z)cmr9J74$8P@Lx!U}s^=;t~^Oz+v|36=MPo@34WW{-go~{2c zhv&~a{F`Ubaz?k?|4*(qpZG5L!#pO5!vE^i=6ikDtng>(+4X<%Q}xTWeD~^CKV5j> z#BckUx{Y&uzI#^ivo`%*Kkfc&|IXhwd*(A`Hy!mc9`&cyZ1XQ w(#6RsV}LQfyy8B%_zD6RWu8?Vwr~H>Ad?*v{#5Bc3#hX2boFyt=akR{0L856ng9R* diff --git a/images/KENNY_Toilet.png b/images/KENNY_Toilet.png deleted file mode 100644 index 7d5d4a70587265305817319df7011afde23fd5f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8373 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 ZY*Cd-6NhX1BtZRy!N<$bQ{)kv{14%jqLlyu From 7e5c09da587a1c6914eef2db9ac75700c4e082fb Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 6 Apr 2015 15:31:21 +0200 Subject: [PATCH 2/5] Starting with area --- Applicatie/DrawObject.java | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/Applicatie/DrawObject.java b/Applicatie/DrawObject.java index 0a20063..d80b383 100644 --- a/Applicatie/DrawObject.java +++ b/Applicatie/DrawObject.java @@ -15,9 +15,11 @@ import javax.swing.ImageIcon; public abstract class DrawObject { - Point2D position; - double rotation; - double scale; + protected Point2D position; + protected double rotation; + protected double scale; + protected int width; + protected int height; private Image image; private Image rotateImage; protected boolean selected; @@ -37,6 +39,8 @@ public abstract class DrawObject { image = new ImageIcon(filename).getImage(); rotateImage = new ImageIcon("rotate.png").getImage(); + width = image.getWidth(null); + height = image.getHeight(null); scale = 1; rotation = 0; this.position = position; @@ -51,14 +55,14 @@ public abstract class DrawObject g.drawImage(image, tx, null); if (selected) { - // g.rotate(Math.toRadians(rotation), image.getWidth(null)/2, - // image.getHeight(null)/2); + // g.rotate(Math.toRadians(rotation), width/2, + // height/2); - AffineTransform rotate = AffineTransform.getRotateInstance(Math.toRadians(rotation), position.getX() + image.getWidth(null) / 2, position.getY() + image.getHeight(null) / 2); + AffineTransform rotate = AffineTransform.getRotateInstance(Math.toRadians(rotation), position.getX() + width / 2, position.getY() + height / 2); g.transform(rotate); g.setColor(rectangleColor); g.setStroke(new BasicStroke(7)); - rektAngle = new Rectangle2D.Double((int) position.getX(), (int) position.getY(), image.getWidth(null), image.getHeight(null)); + rektAngle = new Rectangle2D.Double((int) position.getX(), (int) position.getY(), width, height); tx = getTransformRectangle(); rektAngle.setFrame(tx.createTransformedShape(rektAngle).getBounds()); g.draw(rektAngle); @@ -83,7 +87,7 @@ public abstract class DrawObject AffineTransform tx = new AffineTransform(); tx.scale(scale, scale); tx.translate(position.getX(), position.getY()); - tx.rotate(Math.toRadians(rotation), image.getWidth(null) / 2, image.getHeight(null) / 2); + tx.rotate(Math.toRadians(rotation), width / 2, height / 2); return tx; } @@ -114,13 +118,13 @@ public abstract class DrawObject Shape shape; if (rektAngle == null) { - shape = new Rectangle2D.Double(0, 0, image.getWidth(null), image.getHeight(null)); + shape = new Rectangle2D.Double(0, 0, width, height); return getTransform().createTransformedShape(shape).contains(clickPoint); } else { - shape = new Rectangle2D.Double(-9, -9, image.getWidth(null) + 13, image.getHeight(null) + 13); + shape = new Rectangle2D.Double(-9, -9, width + 13, height + 13); return getTransformSelection().createTransformedShape(shape).contains(clickPoint); } @@ -148,7 +152,7 @@ public abstract class DrawObject */ public Point2D[] getCorners() { - Rectangle2D tempRekt = new Rectangle2D.Double(0, 0, image.getWidth(null), image.getHeight(null)); + Rectangle2D tempRekt = new Rectangle2D.Double(0, 0, width, height); tempRekt.setFrame(getTransform().createTransformedShape(tempRekt).getBounds()); Point2D[] points = new Point2D[4]; Point2D point = new Point2D.Double(tempRekt.getX(), tempRekt.getY()); @@ -171,7 +175,7 @@ public abstract class DrawObject { // Point2D[] ownCorners = getCorners(); Point2D[] objectCorners = object.getCorners(); - Shape ownShape = new Rectangle2D.Double(-9, -9, image.getWidth(null) + 13, image.getHeight(null) + 13); + Shape ownShape = new Rectangle2D.Double(-9, -9, width + 13, height + 13); ownShape = getTransformSelection().createTransformedShape(ownShape); // Shape otherShape = new Rectangle2D.Double(-9, // -9,object.getImage().getWidth(null) + @@ -226,8 +230,8 @@ public abstract class DrawObject case 4: if (point.getX() > rotateDot.getX() && point.getX() < rotateDot.getX() + rotateDot.getWidth() && point.getY() > rotateDot.getY() && point.getY() < rotateDot.getY() + rotateDot.getHeight()) return true; - else - return false; + else + return false; } if (point.getX() > chosenCorner.getX() && point.getX() < chosenCorner.getX() + chosenCorner.getWidth() && point.getY() > chosenCorner.getY() && point.getY() < chosenCorner.getY() + chosenCorner.getHeight()) From 24790d8d198f1c8a68f0030a968574e7be5faa46 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 6 Apr 2015 16:27:49 +0200 Subject: [PATCH 3/5] Added area in Objects and made new panel for changing them. --- Applicatie/Panel.java | 1 + Applicatie/PropertiesPanel.java | 185 ++++++++++++++++++++++++++++++-- Listeners/Mouse.java | 2 +- Listeners/MouseMotion.java | 2 +- Listeners/MouseWheel.java | 2 +- Objects/Entrance.java | 2 - Objects/Food.java | 2 - Objects/Path.java | 2 - Objects/Stage.java | 2 - Objects/Toilet.java | 2 - Objects/Wall.java | 2 - 11 files changed, 182 insertions(+), 22 deletions(-) diff --git a/Applicatie/Panel.java b/Applicatie/Panel.java index db758a8..f96bcec 100644 --- a/Applicatie/Panel.java +++ b/Applicatie/Panel.java @@ -23,6 +23,7 @@ import javax.swing.JPanel; import Listeners.Mouse; import Listeners.MouseMotion; import Listeners.MouseWheel; +import Objects.DrawObject; import Objects.Entrance; import Objects.Food; import Objects.Path; diff --git a/Applicatie/PropertiesPanel.java b/Applicatie/PropertiesPanel.java index e1b154e..070e1bd 100644 --- a/Applicatie/PropertiesPanel.java +++ b/Applicatie/PropertiesPanel.java @@ -20,6 +20,8 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; +import Objects.DrawObject; + @SuppressWarnings("serial") public class PropertiesPanel extends JPanel { @@ -30,11 +32,16 @@ public class PropertiesPanel extends JPanel Dimension spacerDimension = new Dimension(200, 30); JLabel nameLabel; + JPanel areaPanel; JTextField locationXField; JTextField locationYField; JTextField scaleField; JTextField rotationField; + JTextField areaTopField; + JTextField areaBottomField; + JTextField areaLeftField; + JTextField areaRightField; PropertiesPanel() { @@ -75,9 +82,13 @@ public class PropertiesPanel extends JPanel buttonPanel.setMaximumSize(new Dimension(200, 40)); buttonPanel.add(buttonLabel); add(buttonPanel); + + //AREA PANEL: AVAILABLE FOR ACTIONLISTENER + areaPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + areaPanel.setVisible(false); - // DELETE - JPanel deletePanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + // BUTTONS ROW 1 + JPanel row1ButtonPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); JButton deleteButton = new JButton("Delete"); deleteButton.setFont(new Font("Segoe UI", Font.PLAIN, 20)); deleteButton.addActionListener(new ActionListener() @@ -87,10 +98,165 @@ public class PropertiesPanel extends JPanel p.removeObject(selectedObject); } }); - deletePanel.setPreferredSize(new Dimension(200, 50)); - deletePanel.setMaximumSize(new Dimension(200, 50)); - deletePanel.add(deleteButton); - add(deletePanel); + JButton areaButton = new JButton("Area"); + areaButton.setFont(new Font("Segoe UI", Font.PLAIN, 20)); + areaButton.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + areaPanel.setVisible(!areaPanel.isVisible()); + } + }); + row1ButtonPanel.setPreferredSize(new Dimension(200, 50)); + row1ButtonPanel.setMaximumSize(new Dimension(200, 50)); + row1ButtonPanel.add(deleteButton); + row1ButtonPanel.add(areaButton); + add(row1ButtonPanel); + + + //AREA PANEL + JLabel areaLabel = new JLabel("Area size"); + areaLabel.setFont(new Font("Segoe UI", Font.ITALIC, 20)); + areaPanel.setPreferredSize(new Dimension(200, 150)); + areaPanel.setMaximumSize(new Dimension(200, 250)); + areaPanel.add(areaLabel); + add(areaPanel); + { + JPanel areaTopPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + areaTopPanel.setPreferredSize(new Dimension(200, 50)); + areaPanel.add(areaTopPanel); + + JLabel areaTopLabel = new JLabel("Top"); + areaTopPanel.add(areaTopLabel); + areaTopField = new JTextField(); + areaTopField.setPreferredSize(new Dimension(140, 25)); + { + areaTopField.addKeyListener(new KeyListener() + { + + public void keyTyped(KeyEvent e){} + + public void keyReleased(KeyEvent e) + { + try + { + areaTopField.setBackground(Color.WHITE); + int top = Integer.parseInt(areaTopField.getText()); + selectedObject.setAreaTop(top); + p.update(); + } catch (NumberFormatException nfe) + { + areaTopField.setBackground(Color.RED); + } + } + + public void keyPressed(KeyEvent e){} + }); + } + areaTopPanel.add(areaTopField); + } + { + JPanel areaBottomPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + areaBottomPanel.setPreferredSize(new Dimension(200, 50)); + areaPanel.add(areaBottomPanel); + + JLabel areaBottomLabel = new JLabel("Bottom"); + areaBottomPanel.add(areaBottomLabel); + areaBottomField = new JTextField(); + areaBottomField.setPreferredSize(new Dimension(120, 25)); + { + areaBottomField.addKeyListener(new KeyListener() + { + + public void keyTyped(KeyEvent e){} + + public void keyReleased(KeyEvent e) + { + try + { + areaBottomField.setBackground(Color.WHITE); + int bottom = Integer.parseInt(areaBottomField.getText()); + selectedObject.setAreaBottom(bottom); + p.update(); + } catch (NumberFormatException nfe) + { + areaBottomField.setBackground(Color.RED); + } + } + + public void keyPressed(KeyEvent e){} + }); + } + areaBottomPanel.add(areaBottomField); + } + { + JPanel areaLeftPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + areaLeftPanel.setPreferredSize(new Dimension(200, 50)); + areaPanel.add(areaLeftPanel); + + JLabel areaLeftLabel = new JLabel("Left"); + areaLeftPanel.add(areaLeftLabel); + areaLeftField = new JTextField(); + areaLeftField.setPreferredSize(new Dimension(138, 25)); + { + areaLeftField.addKeyListener(new KeyListener() + { + + public void keyTyped(KeyEvent e){} + + public void keyReleased(KeyEvent e) + { + try + { + areaLeftField.setBackground(Color.WHITE); + int left = Integer.parseInt(areaLeftField.getText()); + selectedObject.setAreaLeft(left); + p.update(); + } catch (NumberFormatException nfe) + { + areaLeftField.setBackground(Color.RED); + } + } + + public void keyPressed(KeyEvent e){} + }); + } + areaLeftPanel.add(areaLeftField); + } + { + JPanel areaRightPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + areaRightPanel.setPreferredSize(new Dimension(200, 50)); + areaPanel.add(areaRightPanel); + + JLabel areaRightLabel = new JLabel("Right"); + areaRightPanel.add(areaRightLabel); + areaRightField = new JTextField(); + areaRightField.setPreferredSize(new Dimension(130, 25)); + { + areaRightField.addKeyListener(new KeyListener() + { + + public void keyTyped(KeyEvent e){} + + public void keyReleased(KeyEvent e) + { + try + { + areaRightField.setBackground(Color.WHITE); + int right = Integer.parseInt(areaRightField.getText()); + selectedObject.setAreaRight(right); + p.update(); + } catch (NumberFormatException nfe) + { + areaRightField.setBackground(Color.RED); + } + } + + public void keyPressed(KeyEvent e){} + }); + } + areaRightPanel.add(areaRightField); + } // SPACER add(Box.createRigidArea(spacerDimension)); @@ -343,7 +509,7 @@ public class PropertiesPanel extends JPanel } nameLabel.setText("No Selection"); - + areaPanel.setVisible(false); } private void fillFields() @@ -356,6 +522,11 @@ public class PropertiesPanel extends JPanel locationYField.setText(Math.round(selectedObject.getPosition().getY()) + ""); scaleField.setText((double) Math.round(selectedObject.getScale() * 10) / 10 + ""); rotationField.setText(Math.round(selectedObject.getRotation() % 360) + ""); + + areaTopField.setText(selectedObject.getAreaTop() + ""); + areaBottomField.setText(selectedObject.getAreaBottom() + ""); + areaLeftField.setText(selectedObject.getAreaLeft() + ""); + areaRightField.setText(selectedObject.getAreaRight() + ""); } diff --git a/Listeners/Mouse.java b/Listeners/Mouse.java index 0ae68a6..c2e87e6 100644 --- a/Listeners/Mouse.java +++ b/Listeners/Mouse.java @@ -6,8 +6,8 @@ import java.awt.event.MouseEvent; import java.awt.geom.Point2D; import java.awt.image.BufferedImage; -import Applicatie.DrawObject; import Applicatie.Panel; +import Objects.DrawObject; import Objects.Stage; public class Mouse extends MouseAdapter diff --git a/Listeners/MouseMotion.java b/Listeners/MouseMotion.java index a5922c3..82184a0 100644 --- a/Listeners/MouseMotion.java +++ b/Listeners/MouseMotion.java @@ -5,8 +5,8 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.awt.geom.Point2D; -import Applicatie.DrawObject; import Applicatie.Panel; +import Objects.DrawObject; public class MouseMotion extends MouseMotionAdapter { diff --git a/Listeners/MouseWheel.java b/Listeners/MouseWheel.java index c841884..4f6fcea 100644 --- a/Listeners/MouseWheel.java +++ b/Listeners/MouseWheel.java @@ -4,8 +4,8 @@ import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; import java.awt.geom.Point2D; -import Applicatie.DrawObject; import Applicatie.Panel; +import Objects.DrawObject; public class MouseWheel implements MouseWheelListener { diff --git a/Objects/Entrance.java b/Objects/Entrance.java index 69a7033..eab28db 100644 --- a/Objects/Entrance.java +++ b/Objects/Entrance.java @@ -2,8 +2,6 @@ package Objects; import java.awt.geom.Point2D; -import Applicatie.DrawObject; - public class Entrance extends DrawObject { diff --git a/Objects/Food.java b/Objects/Food.java index cdd5028..d6bdb65 100644 --- a/Objects/Food.java +++ b/Objects/Food.java @@ -1,8 +1,6 @@ package Objects; import java.awt.geom.Point2D; -import Applicatie.DrawObject; - public class Food extends DrawObject { diff --git a/Objects/Path.java b/Objects/Path.java index 1cde2ff..0cf64da 100644 --- a/Objects/Path.java +++ b/Objects/Path.java @@ -2,8 +2,6 @@ package Objects; import java.awt.geom.Point2D; -import Applicatie.DrawObject; - public class Path extends DrawObject { diff --git a/Objects/Stage.java b/Objects/Stage.java index 9827adc..2c3b82c 100644 --- a/Objects/Stage.java +++ b/Objects/Stage.java @@ -2,8 +2,6 @@ package Objects; import java.awt.geom.Point2D; -import Applicatie.DrawObject; - public class Stage extends DrawObject { public Stage(Point2D position) diff --git a/Objects/Toilet.java b/Objects/Toilet.java index f0a0aa8..3a8708a 100644 --- a/Objects/Toilet.java +++ b/Objects/Toilet.java @@ -2,8 +2,6 @@ package Objects; import java.awt.geom.Point2D; -import Applicatie.DrawObject; - public class Toilet extends DrawObject { diff --git a/Objects/Wall.java b/Objects/Wall.java index 6c213d4..e79b3c1 100644 --- a/Objects/Wall.java +++ b/Objects/Wall.java @@ -2,8 +2,6 @@ package Objects; import java.awt.geom.Point2D; -import Applicatie.DrawObject; - public class Wall extends DrawObject { From fe5a8a5c2d0c114be4f92ce7dd6684336067061d Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 6 Apr 2015 16:28:14 +0200 Subject: [PATCH 4/5] Improved code structure. --- {Applicatie => Objects}/DrawObject.java | 67 ++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 7 deletions(-) rename {Applicatie => Objects}/DrawObject.java (83%) diff --git a/Applicatie/DrawObject.java b/Objects/DrawObject.java similarity index 83% rename from Applicatie/DrawObject.java rename to Objects/DrawObject.java index d80b383..a67bda2 100644 --- a/Applicatie/DrawObject.java +++ b/Objects/DrawObject.java @@ -1,4 +1,4 @@ -package Applicatie; +package Objects; import java.awt.BasicStroke; import java.awt.Color; @@ -20,19 +20,28 @@ public abstract class DrawObject protected double scale; protected int width; protected int height; + + protected int areaTop; + protected int areaBottom; + protected int areaLeft; + protected int areaRight; + private Image image; private Image rotateImage; protected boolean selected; private Rectangle2D rektAngle; + private Rectangle2D upperLeftCorner; private Rectangle2D upperRightCorner; private Rectangle2D bottomLeftCorner; private Rectangle2D bottomRightCorner; private Ellipse2D rotateDot; + static final int UPPERLEFT = 0; static final int UPPERRIGHT = 1; static final int BOTTOMLEFT = 2; static final int BOTTOMRIGHT = 3; + private Color rectangleColor; public DrawObject(String filename, Point2D position) @@ -45,6 +54,10 @@ public abstract class DrawObject rotation = 0; this.position = position; rectangleColor = Color.BLACK; + areaTop = 0; + areaBottom = 0; + areaLeft = 0; + areaRight = 0; } public abstract String getName(); @@ -62,7 +75,7 @@ public abstract class DrawObject g.transform(rotate); g.setColor(rectangleColor); g.setStroke(new BasicStroke(7)); - rektAngle = new Rectangle2D.Double((int) position.getX(), (int) position.getY(), width, height); + rektAngle = new Rectangle2D.Double((int) position.getX() - areaLeft, (int) position.getY() - areaTop, width + areaLeft + areaRight, height + areaTop + areaBottom); tx = getTransformRectangle(); rektAngle.setFrame(tx.createTransformedShape(rektAngle).getBounds()); g.draw(rektAngle); @@ -87,7 +100,7 @@ public abstract class DrawObject AffineTransform tx = new AffineTransform(); tx.scale(scale, scale); tx.translate(position.getX(), position.getY()); - tx.rotate(Math.toRadians(rotation), width / 2, height / 2); + tx.rotate(Math.toRadians(rotation), (width+areaLeft+areaRight) / 2, (height+areaTop+areaBottom) / 2); return tx; } @@ -118,13 +131,13 @@ public abstract class DrawObject Shape shape; if (rektAngle == null) { - shape = new Rectangle2D.Double(0, 0, width, height); + shape = new Rectangle2D.Double(0-areaLeft, 0-areaTop, width+areaLeft+areaRight, height+areaTop+areaBottom); return getTransform().createTransformedShape(shape).contains(clickPoint); } else { - shape = new Rectangle2D.Double(-9, -9, width + 13, height + 13); + shape = new Rectangle2D.Double(-9 - areaLeft, -9 - areaTop, width + 13 + areaLeft+areaRight, height + 13+areaTop+areaBottom); return getTransformSelection().createTransformedShape(shape).contains(clickPoint); } @@ -152,7 +165,7 @@ public abstract class DrawObject */ public Point2D[] getCorners() { - Rectangle2D tempRekt = new Rectangle2D.Double(0, 0, width, height); + Rectangle2D tempRekt = new Rectangle2D.Double(0-areaLeft, 0-areaTop, width+areaLeft+areaRight, height+areaTop+areaBottom); tempRekt.setFrame(getTransform().createTransformedShape(tempRekt).getBounds()); Point2D[] points = new Point2D[4]; Point2D point = new Point2D.Double(tempRekt.getX(), tempRekt.getY()); @@ -175,7 +188,7 @@ public abstract class DrawObject { // Point2D[] ownCorners = getCorners(); Point2D[] objectCorners = object.getCorners(); - Shape ownShape = new Rectangle2D.Double(-9, -9, width + 13, height + 13); + Shape ownShape = new Rectangle2D.Double(-9 - areaLeft, -9 - areaTop, width + 13 + areaLeft+areaRight, height + 13+areaTop+areaBottom); ownShape = getTransformSelection().createTransformedShape(ownShape); // Shape otherShape = new Rectangle2D.Double(-9, // -9,object.getImage().getWidth(null) + @@ -310,4 +323,44 @@ public abstract class DrawObject this.rectangleColor = rectangleColor; } + public int getAreaTop() + { + return areaTop; + } + + public void setAreaTop(int areaTop) + { + this.areaTop = areaTop; + } + + public int getAreaBottom() + { + return areaBottom; + } + + public void setAreaBottom(int areaBottom) + { + this.areaBottom = areaBottom; + } + + public int getAreaLeft() + { + return areaLeft; + } + + public void setAreaLeft(int areaLeft) + { + this.areaLeft = areaLeft; + } + + public int getAreaRight() + { + return areaRight; + } + + public void setAreaRight(int areaRight) + { + this.areaRight = areaRight; + } + } From a138807c2a80c19dfdec33ca82330d66ab2c552e Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 6 Apr 2015 16:44:21 +0200 Subject: [PATCH 5/5] Fixed collision and updated to WCS (Wesley Code Standard) --- Objects/DrawObject.java | 88 +++++++++++------------------------------ 1 file changed, 23 insertions(+), 65 deletions(-) diff --git a/Objects/DrawObject.java b/Objects/DrawObject.java index a67bda2..9b0a380 100644 --- a/Objects/DrawObject.java +++ b/Objects/DrawObject.java @@ -15,22 +15,20 @@ import javax.swing.ImageIcon; public abstract class DrawObject { - protected Point2D position; - protected double rotation; - protected double scale; - protected int width; - protected int height; + Point2D position; + double rotation; + double scale; + int width; + int height; + private Image image; + protected boolean selected; protected int areaTop; protected int areaBottom; protected int areaLeft; protected int areaRight; - private Image image; - private Image rotateImage; - protected boolean selected; private Rectangle2D rektAngle; - private Rectangle2D upperLeftCorner; private Rectangle2D upperRightCorner; private Rectangle2D bottomLeftCorner; @@ -41,19 +39,18 @@ public abstract class DrawObject static final int UPPERRIGHT = 1; static final int BOTTOMLEFT = 2; static final int BOTTOMRIGHT = 3; - private Color rectangleColor; public DrawObject(String filename, Point2D position) { image = new ImageIcon(filename).getImage(); - rotateImage = new ImageIcon("rotate.png").getImage(); width = image.getWidth(null); height = image.getHeight(null); scale = 1; rotation = 0; this.position = position; rectangleColor = Color.BLACK; + areaTop = 0; areaBottom = 0; areaLeft = 0; @@ -72,7 +69,7 @@ public abstract class DrawObject // height/2); AffineTransform rotate = AffineTransform.getRotateInstance(Math.toRadians(rotation), position.getX() + width / 2, position.getY() + height / 2); - g.transform(rotate); + //g.transform(rotate); g.setColor(rectangleColor); g.setStroke(new BasicStroke(7)); rektAngle = new Rectangle2D.Double((int) position.getX() - areaLeft, (int) position.getY() - areaTop, width + areaLeft + areaRight, height + areaTop + areaBottom); @@ -158,60 +155,17 @@ public abstract class DrawObject } /** - * Method that gets all the corner coordinates index: 0 -> top left 1 -> top - * right 3 -> bottom left 4 -> bottom right - * - * @return corner coordinates - */ - public Point2D[] getCorners() - { - Rectangle2D tempRekt = new Rectangle2D.Double(0-areaLeft, 0-areaTop, width+areaLeft+areaRight, height+areaTop+areaBottom); - tempRekt.setFrame(getTransform().createTransformedShape(tempRekt).getBounds()); - Point2D[] points = new Point2D[4]; - Point2D point = new Point2D.Double(tempRekt.getX(), tempRekt.getY()); - points[0] = point; - point = new Point2D.Double(tempRekt.getX() + tempRekt.getHeight(), tempRekt.getY()); - points[1] = point; - point = new Point2D.Double(tempRekt.getX(), tempRekt.getY() + tempRekt.getHeight()); - points[2] = point; - point = new Point2D.Double(tempRekt.getX() + tempRekt.getHeight(), tempRekt.getY() + tempRekt.getHeight()); - points[3] = point; - return points; - } - - /** - * - * @param corners - * @return if there is a collision + * Checking collision. + * @param object. the drawObject to check collision with. + * @return if there is a collision. */ public boolean collision(DrawObject object) { - // Point2D[] ownCorners = getCorners(); - Point2D[] objectCorners = object.getCorners(); - Shape ownShape = new Rectangle2D.Double(-9 - areaLeft, -9 - areaTop, width + 13 + areaLeft+areaRight, height + 13+areaTop+areaBottom); - ownShape = getTransformSelection().createTransformedShape(ownShape); - // Shape otherShape = new Rectangle2D.Double(-9, - // -9,object.getImage().getWidth(null) + - // 13,object.getImage().getHeight(null) + 13); - // otherShape = - // getTransformSelection().createTransformedShape(otherShape); - if (ownShape.contains(objectCorners[0])) + Shape ownShape = getRectangle(); + Rectangle2D otherRectangle = object.getTransform().createTransformedShape(object.getImageRectangle()).getBounds2D(); + if(ownShape.intersects(otherRectangle)) return true; - else if (ownShape.contains(objectCorners[1])) - return true; - else if (ownShape.contains(objectCorners[2])) - return true; - else if (ownShape.contains(objectCorners[3])) - return true; - // if(otherShape.contains(ownCorners[0])) - // return true; - // else if(otherShape.contains(ownCorners[1])) - // return true; - // else if(otherShape.contains(ownCorners[2])) - // return true; - // else if(otherShape.contains(ownCorners[3])) - // return true; - else + else return false; } @@ -243,8 +197,8 @@ public abstract class DrawObject case 4: if (point.getX() > rotateDot.getX() && point.getX() < rotateDot.getX() + rotateDot.getWidth() && point.getY() > rotateDot.getY() && point.getY() < rotateDot.getY() + rotateDot.getHeight()) return true; - else - return false; + else + return false; } if (point.getX() > chosenCorner.getX() && point.getX() < chosenCorner.getX() + chosenCorner.getWidth() && point.getY() > chosenCorner.getY() && point.getY() < chosenCorner.getY() + chosenCorner.getHeight()) @@ -322,7 +276,11 @@ public abstract class DrawObject { this.rectangleColor = rectangleColor; } - + + public Rectangle2D getImageRectangle() { + return new Rectangle2D.Double(0-areaLeft,0-areaTop, width+areaLeft+areaRight, height+areaTop+areaBottom); + } + public int getAreaTop() { return areaTop;