Browse Source

back to old position when intersecting different facilities.

Gilian Joosen 10 years ago
parent
commit
0b9fcf9b20
2 changed files with 13 additions and 4 deletions
  1. 1 1
      src/gui/simulator/Draw.java
  2. 12 3
      src/gui/simulator/Terrain.java

+ 1 - 1
src/gui/simulator/Draw.java

@@ -32,7 +32,7 @@ public abstract class Draw {
         AffineTransform transform = new AffineTransform();
         transform.translate(this.x, this.y);
         transform.scale(this.scale, this.scale);
-        transform.rotate(Math.toRadians(this.rotation), this.image.getWidth(null) /2 , this.image.getHeight(null) / 2);
+        transform.rotate(Math.toRadians(this.rotation), this.image.getWidth(null) / 2, this.image.getHeight(null) / 2);
         return transform;
     }
 

+ 12 - 3
src/gui/simulator/Terrain.java

@@ -19,7 +19,7 @@ import java.util.LinkedList;
 public class Terrain extends JPanel {
 
     private List<Draw> entities;
-    private Point2D offset;
+    private Point2D offset, oldLocation;
     private Draw dragObject, selectedObject;
 
     public Terrain(){
@@ -41,8 +41,10 @@ public class Terrain extends JPanel {
                         offset = new Point2D.Double(e.getX() - drawObject.getX(), e.getY() - drawObject.getY());
                         selectedObject = dragObject;
                         newObject = true;
+                        oldLocation = new Point2D.Double(drawObject.getX(), drawObject.getY());
                     }
                 }
+
                 if(!newObject){
                     selectedObject = null;
                 }
@@ -51,7 +53,16 @@ public class Terrain extends JPanel {
 
             @Override
             public void mouseReleased(MouseEvent e) {
+                for(Draw draw: entities){
+                    if(!draw.equals(selectedObject)){
+                        if(intersection(draw, selectedObject)){
+                            selectedObject.setX(oldLocation.getX());
+                            selectedObject.setY(oldLocation.getY());
+                        }
+                    }
+                }
                 dragObject = null;
+                repaint();
             }
         });
 
@@ -120,10 +131,8 @@ public class Terrain extends JPanel {
 
             if(collide){
                 g2.setColor(new Color(254, 0, 0, 128));
-
             }else{
                 g2.setColor(new Color(0, 254, 0, 128));
-
             }
 
             g2.fill(this.drawDragRectangle(this.selectedObject));