This commit is contained in:
Yorick
2015-03-10 12:55:02 +00:00
parent 281bd9fa4a
commit a315bdda59
5 changed files with 196 additions and 49 deletions
+31 -15
View File
@@ -1,33 +1,49 @@
package Listneners;
import Applicatie.Panel;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.geom.Point2D;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class MouseMotion extends MouseMotionAdapter {
private Panel panel;
public MouseMotion(Panel panel)
{
this.panel = panel;
}
public void mouseDragged(MouseEvent e) {
Point2D clickPoint = getClickPoint(e.getPoint());
if(dragObject != null)
Point2D clickPoint = panel.getClickPoint(e.getPoint());
if(panel.getDragObject() != null)
{
if(SwingUtilities.isLeftMouseButton(e))
dragObject.position = new Point2D.Double(
dragObject.position.getX() - (lastClickPosition.getX() - clickPoint.getX()),
dragObject.position.getY() - (lastClickPosition.getY() - clickPoint.getY()));
if(SwingUtilities.isLeftMouseButton(e)){
panel.getDragObject().setPosition(new Point2D.Double(
panel.getDragObject().getPosition().getX() - (panel.getLastClickPosition().getX() - clickPoint.getX()),
panel.getDragObject().getPosition().getY() - (panel.getLastClickPosition().getY() - clickPoint.getY())));
}
else
dragObject.rotation += (lastClickPosition.getX() - clickPoint.getX());
repaint();
{
double tempval = panel.getDragObject().getRotation() + (panel.getLastClickPosition().getX() - clickPoint.getX());
panel.getDragObject().setRotation(tempval);
}
panel.repaint();
}
else
{
cameraPoint = new Point2D.Double(
cameraPoint.getX() + (lastMousePosition.getX() - e.getX()),
cameraPoint.getY() + (lastMousePosition.getY() - e.getY())
);
repaint();
panel.setCameraPoint(new Point2D.Double(
panel.getCameraPoint().getX() + (panel.getLastMousePosition().getX() - e.getX()),
panel.getCameraPoint().getY() + (panel.getLastMousePosition().getY() - e.getY())
));
panel.repaint();
}
lastMousePosition = e.getPoint();
lastClickPosition = clickPoint;
panel.setLastMousePosition(e.getPoint());
panel.setLastClickPosition(clickPoint);
}
}