This commit is contained in:
Yorick
2015-03-17 13:21:43 +01:00
parent ddf5e4e908
commit a0a0e604a9
4 changed files with 270 additions and 245 deletions
+73 -47
View File
@@ -1,4 +1,5 @@
package Applicatie; package Applicatie;
import java.awt.BasicStroke; import java.awt.BasicStroke;
import java.awt.Color; import java.awt.Color;
import java.awt.Graphics2D; import java.awt.Graphics2D;
@@ -12,8 +13,8 @@ import java.awt.geom.Rectangle2D;
import javax.swing.ImageIcon; import javax.swing.ImageIcon;
public abstract class DrawObject
public abstract class DrawObject { {
Point2D position; Point2D position;
double rotation; double rotation;
double scale; double scale;
@@ -46,10 +47,12 @@ public abstract class DrawObject {
{ {
AffineTransform tx = getTransform(); AffineTransform tx = getTransform();
g.drawImage(image, tx, null); g.drawImage(image, tx, null);
if(selected) { if (selected)
// g.rotate(Math.toRadians(rotation), image.getWidth(null)/2, image.getHeight(null)/2); {
// g.rotate(Math.toRadians(rotation), image.getWidth(null)/2,
// image.getHeight(null)/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() + image.getWidth(null) / 2, position.getY() + image.getHeight(null) / 2);
g.transform(rotate); g.transform(rotate);
g.setColor(Color.BLACK); g.setColor(Color.BLACK);
g.setStroke(new BasicStroke(7)); g.setStroke(new BasicStroke(7));
@@ -58,23 +61,23 @@ public abstract class DrawObject {
rektAngle.setFrame(tx.createTransformedShape(rektAngle).getBounds()); rektAngle.setFrame(tx.createTransformedShape(rektAngle).getBounds());
g.draw(rektAngle); g.draw(rektAngle);
g.setColor(Color.YELLOW); g.setColor(Color.YELLOW);
upperLeftCorner = new Rectangle2D.Double(rektAngle.getX()-7,rektAngle.getY()-7,15,15); upperLeftCorner = new Rectangle2D.Double(rektAngle.getX() - 7, rektAngle.getY() - 7, 15, 15);
upperRightCorner = new Rectangle2D.Double(rektAngle.getX() + rektAngle.getWidth()-8,rektAngle.getY()-7,15,15); upperRightCorner = new Rectangle2D.Double(rektAngle.getX() + rektAngle.getWidth() - 8, rektAngle.getY() - 7, 15, 15);
bottomLeftCorner = new Rectangle2D.Double(rektAngle.getX()-7,rektAngle.getY() + rektAngle.getHeight()-8,15,15); bottomLeftCorner = new Rectangle2D.Double(rektAngle.getX() - 7, rektAngle.getY() + rektAngle.getHeight() - 8, 15, 15);
bottomRightCorner = new Rectangle2D.Double(rektAngle.getX() + rektAngle.getWidth()-8,rektAngle.getY() + rektAngle.getHeight()-8,15,15); bottomRightCorner = new Rectangle2D.Double(rektAngle.getX() + rektAngle.getWidth() - 8, rektAngle.getY() + rektAngle.getHeight() - 8, 15, 15);
g.fill(upperLeftCorner); //upperleft g.fill(upperLeftCorner); // upperleft
g.fill(upperRightCorner); //upperright g.fill(upperRightCorner); // upperright
g.fill(bottomLeftCorner); //bottomleft g.fill(bottomLeftCorner); // bottomleft
g.fill(bottomRightCorner); //bottomright g.fill(bottomRightCorner); // bottomright
g.setColor(Color.RED); g.setColor(Color.RED);
rotateDot = new Ellipse2D.Double((rektAngle.getX() + (rektAngle.getWidth()/2))-8,rektAngle.getY()-8,15,15); rotateDot = new Ellipse2D.Double((rektAngle.getX() + (rektAngle.getWidth() / 2)) - 8, rektAngle.getY() - 8, 15, 15);
g.fill(rotateDot); g.fill(rotateDot);
} }
} }
protected AffineTransform getTransform() { protected AffineTransform getTransform()
{
AffineTransform tx = new AffineTransform(); AffineTransform tx = new AffineTransform();
tx.scale(scale, scale); tx.scale(scale, scale);
tx.translate(position.getX(), position.getY()); tx.translate(position.getX(), position.getY());
@@ -82,7 +85,8 @@ public abstract class DrawObject {
return tx; return tx;
} }
protected AffineTransform getTransformSelection() { protected AffineTransform getTransformSelection()
{
AffineTransform tx = new AffineTransform(); AffineTransform tx = new AffineTransform();
tx.scale(scale, scale); tx.scale(scale, scale);
tx.translate(position.getX(), position.getY()); tx.translate(position.getX(), position.getY());
@@ -90,47 +94,59 @@ public abstract class DrawObject {
} }
/** /**
* Special transformation for the selection rectangle, because the translation of the image one places the rectangle translated from the image. * Special transformation for the selection rectangle, because the
* translation of the image one places the rectangle translated from the
* image.
*
* @return affineTransform * @return affineTransform
*/ */
private AffineTransform getTransformRectangle() { private AffineTransform getTransformRectangle()
{
AffineTransform tx = new AffineTransform(); AffineTransform tx = new AffineTransform();
tx.scale(scale, scale); tx.scale(scale, scale);
return tx; return tx;
} }
public boolean contains(Point2D clickPoint) { public boolean contains(Point2D clickPoint)
{
Shape shape; Shape shape;
if(rektAngle == null) { if (rektAngle == null)
shape = new Rectangle2D.Double(0,0,image.getWidth(null), image.getHeight(null)); {
shape = new Rectangle2D.Double(0, 0, image.getWidth(null), image.getHeight(null));
return getTransform().createTransformedShape(shape).contains(clickPoint); return getTransform().createTransformedShape(shape).contains(clickPoint);
} } else
else { {
shape = new Rectangle2D.Double(-7,-7,image.getWidth(null)+7, image.getHeight(null)+7); shape = new Rectangle2D.Double(-7, -7, image.getWidth(null) + 7, image.getHeight(null) + 7);
return getTransformSelection().createTransformedShape(shape).contains(clickPoint); return getTransformSelection().createTransformedShape(shape).contains(clickPoint);
} }
} }
public Point2D getObjectPoint(Point2D point) { public Point2D getObjectPoint(Point2D point)
try { {
try
{
return getTransform().inverseTransform(point, null); return getTransform().inverseTransform(point, null);
} catch (NoninvertibleTransformException e) { } catch (NoninvertibleTransformException e)
{
e.printStackTrace(); e.printStackTrace();
} }
return null; return null;
} }
/** /**
* This method checks if the place thats clicked is inside one of the corners. * This method checks if the place thats clicked is inside one of the
* corners.
* *
* @param point * @param point
* @param corner * @param corner
* @return if the clicked point is inside one of the corners * @return if the clicked point is inside one of the corners
*/ */
public boolean containsCorner(Point2D point, int corner) { public boolean containsCorner(Point2D point, int corner)
{
Rectangle2D chosenCorner = null; Rectangle2D chosenCorner = null;
switch(corner) { switch (corner)
{
case 0: case 0:
chosenCorner = upperLeftCorner; chosenCorner = upperLeftCorner;
break; break;
@@ -144,64 +160,74 @@ public abstract class DrawObject {
chosenCorner = bottomRightCorner; chosenCorner = bottomRightCorner;
break; break;
case 4: case 4:
if(point.getX() > rotateDot.getX() && point.getX() < rotateDot.getX() + rotateDot.getWidth() if (point.getX() > rotateDot.getX() && point.getX() < rotateDot.getX() + rotateDot.getWidth() && point.getY() > rotateDot.getY() && point.getY() < rotateDot.getY() + rotateDot.getHeight())
&& point.getY() > rotateDot.getY() && point.getY() < rotateDot.getY() + rotateDot.getHeight())
return true; return true;
else else
return false; return false;
} }
if(point.getX() > chosenCorner.getX() && point.getX() < chosenCorner.getX() + chosenCorner.getWidth() if (point.getX() > chosenCorner.getX() && point.getX() < chosenCorner.getX() + chosenCorner.getWidth() && point.getY() > chosenCorner.getY() && point.getY() < chosenCorner.getY() + chosenCorner.getHeight())
&& point.getY() > chosenCorner.getY() && point.getY() < chosenCorner.getY() + chosenCorner.getHeight())
return true; return true;
else else
return false; return false;
} }
public void setSelected(boolean b) { public void setSelected(boolean b)
{
selected = b; selected = b;
} }
public Point2D getPosition() { public Point2D getPosition()
{
return position; return position;
} }
public void setPosition(Point2D position) { public void setPosition(Point2D position)
{
this.position = position; this.position = position;
} }
public double getRotation() { public double getRotation()
{
return rotation; return rotation;
} }
public void setRotation(double rotation) { public void setRotation(double rotation)
{
this.rotation = rotation; this.rotation = rotation;
} }
public double getScale() { public double getScale()
{
return scale; return scale;
} }
public void setScale(double scale) { public void setScale(double scale)
{
this.scale = scale; this.scale = scale;
} }
public Image getImage() { public Image getImage()
{
return image; return image;
} }
public void setImage(Image image) { public void setImage(Image image)
{
this.image = image; this.image = image;
} }
public boolean isSelected() { public boolean isSelected()
{
return selected; return selected;
} }
public Rectangle2D getRectangle() { public Rectangle2D getRectangle()
{
return rektAngle; return rektAngle;
} }
public void setRectangle(Rectangle2D rectangle) { public void setRectangle(Rectangle2D rectangle)
{
rektAngle = rectangle; rektAngle = rectangle;
} }
+4 -2
View File
@@ -1,8 +1,10 @@
package Applicatie; package Applicatie;
public class Main { public class Main
{
public static void main(String[] args) { public static void main(String[] args)
{
new Window(); new Window();
} }
+95 -52
View File
@@ -33,11 +33,11 @@ import Objects.Toilet;
import Objects.Wall; import Objects.Wall;
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class Panel extends JPanel { public class Panel extends JPanel
{
BufferedImage background; BufferedImage background;
BufferedImage podiumImage, toiletImage, entranceImage, pathImage, BufferedImage podiumImage, toiletImage, entranceImage, pathImage, wallImage;
wallImage;
private int panelInfox, panelInfoy, scrollfactor; private int panelInfox, panelInfoy, scrollfactor;
@@ -63,17 +63,20 @@ public class Panel extends JPanel {
// en maak een case statement die een new Object returnt in // en maak een case statement die een new Object returnt in
// createNewDrawObject. // createNewDrawObject.
Panel(PropertiesPanel pp) { Panel(PropertiesPanel pp)
{
this.pp = pp; this.pp = pp;
pp.setPanel(this); pp.setPanel(this);
try { try
{
background = ImageIO.read(new File("images/grass.jpg")); background = ImageIO.read(new File("images/grass.jpg"));
podiumImage = ImageIO.read(new File("images/stageIcon.png")); podiumImage = ImageIO.read(new File("images/stageIcon.png"));
toiletImage = ImageIO.read(new File("images/wcIcon.png")); toiletImage = ImageIO.read(new File("images/wcIcon.png"));
entranceImage = ImageIO.read(new File("images/entranceIcon.png")); entranceImage = ImageIO.read(new File("images/entranceIcon.png"));
pathImage = ImageIO.read(new File("images/pathIcon.png")); pathImage = ImageIO.read(new File("images/pathIcon.png"));
wallImage = ImageIO.read(new File("images/wallIcon.png")); wallImage = ImageIO.read(new File("images/wallIcon.png"));
} catch (IOException e) { } catch (IOException e)
{
e.printStackTrace(); e.printStackTrace();
} }
panelInfo.add(podiumImage); panelInfo.add(podiumImage);
@@ -97,17 +100,21 @@ public class Panel extends JPanel {
addMouseWheelListener(new MouseWheel(this)); addMouseWheelListener(new MouseWheel(this));
} }
public int getPanelInfoLength() { public int getPanelInfoLength()
{
int panelInfoLength = 0; int panelInfoLength = 0;
for (BufferedImage image : panelInfo) { for (BufferedImage image : panelInfo)
{
panelInfoLength += image.getWidth(); panelInfoLength += image.getWidth();
} }
return panelInfoLength; return panelInfoLength;
} }
public DrawObject createNewDrawObject(int index) { public DrawObject createNewDrawObject(int index)
switch (index) { {
switch (index)
{
case 0: case 0:
return new Stage(null); return new Stage(null);
case 1: case 1:
@@ -123,11 +130,13 @@ public class Panel extends JPanel {
} }
} }
public void add(DrawObject dragObject) { public void add(DrawObject dragObject)
{
objects.add(dragObject); objects.add(dragObject);
} }
public void paintComponent(Graphics g) { public void paintComponent(Graphics g)
{
super.paintComponent(g); super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g; Graphics2D g2 = (Graphics2D) g;
g2.setClip(new Rectangle2D.Double(0, 0, getWidth(), 300)); g2.setClip(new Rectangle2D.Double(0, 0, getWidth(), 300));
@@ -137,7 +146,8 @@ public class Panel extends JPanel {
// g2.drawImage(podiumImage, 0, 0, null); // g2.drawImage(podiumImage, 0, 0, null);
g2.drawLine(0, 150, getWidth(), 150); g2.drawLine(0, 150, getWidth(), 150);
for (BufferedImage image : panelInfo) { for (BufferedImage image : panelInfo)
{
g2.drawImage(image, panelInfox + scrollfactor, panelInfoy, null); g2.drawImage(image, panelInfox + scrollfactor, panelInfoy, null);
panelInfox += image.getWidth(); panelInfox += image.getWidth();
} }
@@ -147,15 +157,15 @@ public class Panel extends JPanel {
AffineTransform oldTransform = g2.getTransform(); AffineTransform oldTransform = g2.getTransform();
g2.setTransform(getCamera()); g2.setTransform(getCamera());
TexturePaint p = new TexturePaint(background, new Rectangle2D.Double(0, TexturePaint p = new TexturePaint(background, new Rectangle2D.Double(0, 0, 100, 100));
0, 100, 100));
g2.setPaint(p); g2.setPaint(p);
g2.fill(new Rectangle2D.Double(-1920, -1080, 3840, 2160)); g2.fill(new Rectangle2D.Double(-1920, -1080, 3840, 2160));
BasicStroke stroke = new BasicStroke(10); BasicStroke stroke = new BasicStroke(10);
g2.setStroke(stroke); g2.setStroke(stroke);
for (DrawObject o : objects) { for (DrawObject o : objects)
{
o.draw(g2); o.draw(g2);
} }
@@ -163,137 +173,170 @@ public class Panel extends JPanel {
g2.setTransform(oldTransform); g2.setTransform(oldTransform);
} }
public AffineTransform getCamera() { public AffineTransform getCamera()
{
AffineTransform tx = new AffineTransform(); AffineTransform tx = new AffineTransform();
tx.translate(-cameraPoint.getX() + getWidth() / 2, -cameraPoint.getY() tx.translate(-cameraPoint.getX() + getWidth() / 2, -cameraPoint.getY() + getHeight() / 2);
+ getHeight() / 2);
tx.scale(cameraScale, cameraScale); tx.scale(cameraScale, cameraScale);
return tx; return tx;
} }
public Point2D getClickPoint(Point point) { public Point2D getClickPoint(Point point)
try { {
try
{
return getCamera().inverseTransform(point, null); return getCamera().inverseTransform(point, null);
} catch (NoninvertibleTransformException e1) { } catch (NoninvertibleTransformException e1)
{
e1.printStackTrace(); e1.printStackTrace();
} }
return null; return null;
} }
public void setBackground(BufferedImage background) { public void setBackground(BufferedImage background)
{
this.background = background; this.background = background;
} }
public ArrayList<DrawObject> getObjects() { public ArrayList<DrawObject> getObjects()
{
return objects; return objects;
} }
public void setObjects(ArrayList<DrawObject> objects) { public void setObjects(ArrayList<DrawObject> objects)
{
this.objects = objects; this.objects = objects;
} }
public DrawObject getDragObject() { public DrawObject getDragObject()
{
return dragObject; return dragObject;
} }
public void setDragObject(DrawObject dragObject) { public void setDragObject(DrawObject dragObject)
{
this.dragObject = dragObject; this.dragObject = dragObject;
} }
public Point2D getCameraPoint() { public Point2D getCameraPoint()
{
return cameraPoint; return cameraPoint;
} }
public void setCameraPoint(Point2D cameraPoint) { public void setCameraPoint(Point2D cameraPoint)
{
this.cameraPoint = cameraPoint; this.cameraPoint = cameraPoint;
} }
public float getCameraScale() { public float getCameraScale()
{
return cameraScale; return cameraScale;
} }
public void setCameraScale(float cameraScale) { public void setCameraScale(float cameraScale)
{
this.cameraScale = cameraScale; this.cameraScale = cameraScale;
} }
public Point2D getLastClickPosition() { public Point2D getLastClickPosition()
{
return lastClickPosition; return lastClickPosition;
} }
public void setLastClickPosition(Point2D lastClickPosition) { public void setLastClickPosition(Point2D lastClickPosition)
{
this.lastClickPosition = lastClickPosition; this.lastClickPosition = lastClickPosition;
} }
public Point getLastMousePosition() { public Point getLastMousePosition()
{
return lastMousePosition; return lastMousePosition;
} }
public void setLastMousePosition(Point lastMousePosition) { public void setLastMousePosition(Point lastMousePosition)
{
this.lastMousePosition = lastMousePosition; this.lastMousePosition = lastMousePosition;
} }
public BufferedImage getPodiumImage() { public BufferedImage getPodiumImage()
{
return podiumImage; return podiumImage;
} }
public void setPodiumImage(BufferedImage podiumImage) { public void setPodiumImage(BufferedImage podiumImage)
{
this.podiumImage = podiumImage; this.podiumImage = podiumImage;
} }
public ArrayList<BufferedImage> getPanelInfo() { public ArrayList<BufferedImage> getPanelInfo()
{
return panelInfo; return panelInfo;
} }
public void setPanelInfo(ArrayList<BufferedImage> panelInfo) { public void setPanelInfo(ArrayList<BufferedImage> panelInfo)
{
this.panelInfo = panelInfo; this.panelInfo = panelInfo;
} }
public int getScrollfactor() { public int getScrollfactor()
{
return scrollfactor; return scrollfactor;
} }
public void setScrollfactor(int scrollfactor) { public void setScrollfactor(int scrollfactor)
{
this.scrollfactor = scrollfactor; this.scrollfactor = scrollfactor;
} }
public int getPanelInfox() { public int getPanelInfox()
{
return panelInfox; return panelInfox;
} }
public void setPanelInfox(int panelInfox) { public void setPanelInfox(int panelInfox)
{
this.panelInfox = panelInfox; this.panelInfox = panelInfox;
} }
public PropertiesPanel getPP() { public PropertiesPanel getPP()
{
return pp; return pp;
} }
public void update() { public void update()
{
repaint(); repaint();
} }
public DrawObject getSelectedObject() { public DrawObject getSelectedObject()
{
return selectedObject; return selectedObject;
} }
public void setSelectedObject(DrawObject selectedObject) { public void setSelectedObject(DrawObject selectedObject)
{
this.selectedObject = selectedObject; this.selectedObject = selectedObject;
} }
public String getClickedOption() { public String getClickedOption()
{
return clickedOption; return clickedOption;
} }
public void setClickedOption(String clickedOption) { public void setClickedOption(String clickedOption)
{
this.clickedOption = clickedOption; this.clickedOption = clickedOption;
} }
public void removeObject(DrawObject o) { public void removeObject(DrawObject o)
{
Iterator<DrawObject> itr = objects.iterator(); Iterator<DrawObject> itr = objects.iterator();
while (itr.hasNext()) { while (itr.hasNext())
{
DrawObject nextObject = (DrawObject) itr.next(); DrawObject nextObject = (DrawObject) itr.next();
if (nextObject.equals(o)) { if (nextObject.equals(o))
{
pp.clearSelected(); pp.clearSelected();
itr.remove(); itr.remove();
} }
+48 -94
View File
@@ -6,118 +6,72 @@ import java.awt.geom.Point2D;
import Applicatie.Panel; import Applicatie.Panel;
public class MouseMotion extends MouseMotionAdapter { public class MouseMotion extends MouseMotionAdapter
{
private Panel panel; private Panel panel;
public MouseMotion(Panel panel) { public MouseMotion(Panel panel)
{
this.panel = panel; this.panel = panel;
} }
public void mouseDragged(MouseEvent e) { public void mouseDragged(MouseEvent e)
{
Point2D clickPoint = panel.getClickPoint(e.getPoint()); Point2D clickPoint = panel.getClickPoint(e.getPoint());
if (panel.getDragObject() != null) { if (panel.getDragObject() != null)
Point2D objectPoint = panel.getDragObject().getObjectPoint( {
panel.getDragObject().getPosition()); switch (panel.getClickedOption())
switch (panel.getClickedOption()) { {
case "drag": case "drag":
if (panel.getDragObject() != null) if (panel.getDragObject() != null)
panel.getDragObject() panel.getDragObject().setPosition(new Point2D.Double((panel.getDragObject().getPosition().getX()) - ((panel.getLastClickPosition().getX() - clickPoint.getX())) / panel.getDragObject().getScale(), (panel.getDragObject().getPosition().getY()) - (panel.getLastClickPosition().getY() - clickPoint.getY()) / panel.getDragObject().getScale()));
.setPosition(
new Point2D.Double(
(panel.getDragObject()
.getPosition().getX())
- ((panel
.getLastClickPosition()
.getX() - clickPoint
.getX()))
/ panel.getDragObject()
.getScale(),
(panel.getDragObject()
.getPosition().getY())
- (panel.getLastClickPosition()
.getY() - clickPoint
.getY())
/ panel.getDragObject()
.getScale()));
break; break;
case "upperLeft": case "upperLeft":
if (clickPoint.getX() < panel.getDragObject().getPosition() if (clickPoint.getX() < panel.getDragObject().getPosition().getX() && clickPoint.getY() < panel.getDragObject().getPosition().getY())
.getX() {
&& clickPoint.getY() < panel.getDragObject()
.getPosition().getY()) {
resizeBigger(); resizeBigger();
} else if (clickPoint.getX() > panel.getDragObject() } else if (clickPoint.getX() > panel.getDragObject().getPosition().getX() && clickPoint.getY() > panel.getDragObject().getPosition().getY())
.getPosition().getX() {
&& clickPoint.getY() > panel.getDragObject() resizeSmaller(clickPoint);
.getPosition().getY()) {
resizeSmaller();
} }
break; break;
case "upperRight": case "upperRight":
if (clickPoint.getX() > panel.getDragObject().getRectangle() if (clickPoint.getX() > panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() < panel.getDragObject().getRectangle().getY())
.getX() {
+ panel.getDragObject().getRectangle().getWidth()
&& clickPoint.getY() < panel.getDragObject()
.getRectangle().getY()) {
resizeBigger(); resizeBigger();
} else if (clickPoint.getX() < panel.getDragObject() } else if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() > panel.getDragObject().getRectangle().getY())
.getRectangle().getX() {
+ panel.getDragObject().getRectangle().getWidth() resizeSmaller(clickPoint);
&& clickPoint.getY() > panel.getDragObject()
.getRectangle().getY()) {
resizeSmaller();
} }
break; break;
case "bottomLeft": case "bottomLeft":
if (clickPoint.getX() < panel.getDragObject().getRectangle() if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() && clickPoint.getY() > panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight())
.getX() {
&& clickPoint.getY() > panel.getDragObject()
.getRectangle().getY()
+ panel.getDragObject().getRectangle()
.getHeight()) {
resizeBigger(); resizeBigger();
} else if (clickPoint.getX() > panel.getDragObject() } else if (clickPoint.getX() > panel.getDragObject().getRectangle().getX() && clickPoint.getY() < panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight())
.getRectangle().getX() {
&& clickPoint.getY() < panel.getDragObject() resizeSmaller(clickPoint);
.getRectangle().getY()
+ panel.getDragObject().getRectangle()
.getHeight()) {
resizeSmaller();
} }
break; break;
case "bottomRight": case "bottomRight":
if (clickPoint.getX() > panel.getDragObject().getRectangle() if (clickPoint.getX() > panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() > panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight())
.getX() {
+ panel.getDragObject().getRectangle().getWidth()
&& clickPoint.getY() > panel.getDragObject()
.getRectangle().getY()
+ panel.getDragObject().getRectangle()
.getHeight()) {
resizeBigger(); resizeBigger();
} else if (clickPoint.getX() < panel.getDragObject() } else if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() < panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight())
.getRectangle().getX() {
+ panel.getDragObject().getRectangle().getWidth() resizeSmaller(clickPoint);
&& clickPoint.getY() < panel.getDragObject()
.getRectangle().getY()
+ panel.getDragObject().getRectangle()
.getHeight()) {
resizeSmaller();
} }
break; break;
case "rotate": case "rotate":
double tempval = panel.getDragObject().getRotation() double tempval = panel.getDragObject().getRotation() - (panel.getLastClickPosition().getX() - clickPoint.getX());
- (panel.getLastClickPosition().getX() - clickPoint
.getX());
panel.getDragObject().setRotation(tempval); panel.getDragObject().setRotation(tempval);
break; break;
} }
} else { } else
panel.setCameraPoint(new Point2D.Double(panel.getCameraPoint() {
.getX() + (panel.getLastMousePosition().getX() - e.getX()), panel.setCameraPoint(new Point2D.Double(panel.getCameraPoint().getX() + (panel.getLastMousePosition().getX() - e.getX()), panel.getCameraPoint().getY() + (panel.getLastMousePosition().getY() - e.getY())));
panel.getCameraPoint().getY()
+ (panel.getLastMousePosition().getY() - e.getY())));
} }
panel.repaint(); panel.repaint();
panel.setLastMousePosition(e.getPoint()); panel.setLastMousePosition(e.getPoint());
@@ -125,23 +79,23 @@ public class MouseMotion extends MouseMotionAdapter {
panel.getPP().update(); panel.getPP().update();
} }
private void resizeBigger() { private void resizeBigger()
double scale = panel.getDragObject().getScale() * 1 + 0.02; {
double scale = panel.getDragObject().getScale() + 0.05;
panel.getDragObject().setScale(scale); panel.getDragObject().setScale(scale);
panel.getDragObject().setPosition( panel.getDragObject().setPosition(new Point2D.Double(panel.getDragObject().getPosition().getX(), panel.getDragObject().getPosition().getY() - 5));
new Point2D.Double(
panel.getDragObject().getPosition().getX() - 2, panel
.getDragObject().getPosition().getY() - 2));
} }
private void resizeSmaller() { private void resizeSmaller(Point2D clickPoint)
if (panel.getDragObject().getScale() > 0.2) { {
double scale = panel.getDragObject().getScale() * 1 - 0.02; System.out.println(clickPoint.getX());
if (panel.getDragObject().getScale() > 0.2)
{
double scale = panel.getDragObject().getScale() - 0.05;
panel.getDragObject().setScale(scale); panel.getDragObject().setScale(scale);
panel.getDragObject().setPosition( panel.getDragObject().setPosition(new Point2D.Double(panel.getDragObject().getPosition().getX() - clickPoint.getX(), panel.getDragObject().getPosition().getY() - clickPoint.getY()));
new Point2D.Double(panel.getDragObject().getPosition()
.getX() + 2, panel.getDragObject().getPosition()
.getY() + 2));
} }
} }
} }