|
@@ -20,6 +20,7 @@ import javax.swing.JLabel;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.event.ChangeEvent;
|
|
import javax.swing.event.ChangeEvent;
|
|
import javax.swing.event.ChangeListener;
|
|
import javax.swing.event.ChangeListener;
|
|
|
|
+import javax.swing.plaf.BorderUIResource.BevelBorderUIResource;
|
|
|
|
|
|
import classes.AbstractCpsObject;
|
|
import classes.AbstractCpsObject;
|
|
import classes.Constants;
|
|
import classes.Constants;
|
|
@@ -71,6 +72,7 @@ public class HolonCanvas extends JPanel implements MouseWheelListener, MouseList
|
|
private ArrayList<HolonBody> sortedDist = new ArrayList<>();
|
|
private ArrayList<HolonBody> sortedDist = new ArrayList<>();
|
|
private boolean sizeChange = false;
|
|
private boolean sizeChange = false;
|
|
private HolonBody toDrag;
|
|
private HolonBody toDrag;
|
|
|
|
+ private boolean beingDragged = false;
|
|
|
|
|
|
public HolonCanvas(Model mod, Control control) {
|
|
public HolonCanvas(Model mod, Control control) {
|
|
// Wire up Events
|
|
// Wire up Events
|
|
@@ -361,17 +363,19 @@ public class HolonCanvas extends JPanel implements MouseWheelListener, MouseList
|
|
// and elapsedTime
|
|
// and elapsedTime
|
|
calcCenter();
|
|
calcCenter();
|
|
for (int i = 0; i < subCount; i++) {
|
|
for (int i = 0; i < subCount; i++) {
|
|
- bodies.get(i).position
|
|
|
|
- .setX((float) (bodies.get(i).position.getX() + (bodies.get(i).velocity.getX() * (elapsedSeconds))
|
|
|
|
- - ((bodies.get(i).position.getX() - center.getWidth()) / (50 + subCount))));
|
|
|
|
- bodies.get(i).position
|
|
|
|
- .setY((float) (bodies.get(i).position.getY() + (bodies.get(i).velocity.getY() * (elapsedSeconds))
|
|
|
|
- - ((bodies.get(i).position.getY() - center.getHeight()) / (50 + subCount))));
|
|
|
|
-
|
|
|
|
- if (Math.abs(bodies.get(i).velocity.getX()) < Constants.epsilon)
|
|
|
|
- bodies.get(i).velocity.setX(0);
|
|
|
|
- if (Math.abs(bodies.get(i).velocity.getY()) < Constants.epsilon)
|
|
|
|
- bodies.get(i).velocity.setY(0);
|
|
|
|
|
|
+ if (!bodies.get(i).equals(toDrag) || (bodies.get(i).equals(toDrag)&& !beingDragged)) {
|
|
|
|
+ bodies.get(i).position.setX(
|
|
|
|
+ (float) (bodies.get(i).position.getX() + (bodies.get(i).velocity.getX() * (elapsedSeconds))
|
|
|
|
+ - ((bodies.get(i).position.getX() - center.getWidth()) / (50 + subCount))));
|
|
|
|
+ bodies.get(i).position.setY(
|
|
|
|
+ (float) (bodies.get(i).position.getY() + (bodies.get(i).velocity.getY() * (elapsedSeconds))
|
|
|
|
+ - ((bodies.get(i).position.getY() - center.getHeight()) / (50 + subCount))));
|
|
|
|
+
|
|
|
|
+ if (Math.abs(bodies.get(i).velocity.getX()) < Constants.epsilon)
|
|
|
|
+ bodies.get(i).velocity.setX(0);
|
|
|
|
+ if (Math.abs(bodies.get(i).velocity.getY()) < Constants.epsilon)
|
|
|
|
+ bodies.get(i).velocity.setY(0);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
checkCollisions();
|
|
checkCollisions();
|
|
}
|
|
}
|
|
@@ -492,11 +496,12 @@ public class HolonCanvas extends JPanel implements MouseWheelListener, MouseList
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void mouseReleased(MouseEvent e) {
|
|
public void mouseReleased(MouseEvent e) {
|
|
- // TODO Auto-generated method stub
|
|
|
|
|
|
+ beingDragged = false;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void mouseDragged(MouseEvent e) {
|
|
public void mouseDragged(MouseEvent e) {
|
|
|
|
+ beingDragged = true;
|
|
if (toDrag != null) {
|
|
if (toDrag != null) {
|
|
toDrag.position = new Vector2d(e.getX(), e.getY());
|
|
toDrag.position = new Vector2d(e.getX(), e.getY());
|
|
}
|
|
}
|