aboutsummaryrefslogtreecommitdiff
path: root/src/Dynamic3DGraph.java
diff options
context:
space:
mode:
authorJoshua Rahm <joshua.rahm@colorado.edu>2015-01-30 17:11:48 -0700
committerJoshua Rahm <joshua.rahm@colorado.edu>2015-01-30 17:11:48 -0700
commit1c5e38fe69ac8a6decbdd8abe93112f4e3369315 (patch)
tree926cef8cb76d46862ed2c4ec7028720611e47476 /src/Dynamic3DGraph.java
downloadModulus3D-1c5e38fe69ac8a6decbdd8abe93112f4e3369315.tar.gz
Modulus3D-1c5e38fe69ac8a6decbdd8abe93112f4e3369315.tar.bz2
Modulus3D-1c5e38fe69ac8a6decbdd8abe93112f4e3369315.zip
added source
Diffstat (limited to 'src/Dynamic3DGraph.java')
-rw-r--r--src/Dynamic3DGraph.java181
1 files changed, 181 insertions, 0 deletions
diff --git a/src/Dynamic3DGraph.java b/src/Dynamic3DGraph.java
new file mode 100644
index 0000000..09decc0
--- /dev/null
+++ b/src/Dynamic3DGraph.java
@@ -0,0 +1,181 @@
+/* */ import java.awt.AWTEvent;
+/* */ import java.awt.Graphics;
+/* */ import java.awt.event.KeyEvent;
+/* */ import java.awt.event.KeyListener;
+/* */ import java.awt.event.MouseEvent;
+/* */ import java.awt.event.MouseListener;
+/* */ import java.awt.event.MouseMotionListener;
+/* */ import java.awt.event.MouseWheelEvent;
+/* */ import java.awt.event.MouseWheelListener;
+/* */ import java.util.ArrayList;
+/* */
+/* */ public class Dynamic3DGraph extends Graph3D
+/* */ implements MouseWheelListener, MouseMotionListener, MouseListener, KeyListener
+/* */ {
+/* */ private static final long serialVersionUID = 5815581053362655149L;
+/* 24 */ private int lastX = 0;
+/* 25 */ private int lastY = 0;
+/* */ private long lastClick;
+/* */ private int multiplier;
+/* */ private boolean shift;
+/* */ private boolean ctrl;
+/* */ private boolean alt;
+/* */ private ArrayList<MoveListener> listeners;
+/* */
+/* */ public Dynamic3DGraph()
+/* */ {
+/* 34 */ this.multiplier = 1;
+/* 35 */ addMouseWheelListener(this);
+/* 36 */ addMouseMotionListener(this);
+/* 37 */ addMouseListener(this);
+/* 38 */ super.setCameraZ(220.0D);
+/* 39 */ this.listeners = new ArrayList();
+/* */ }
+/* */ public void addMoveListener(MoveListener listen) {
+/* 42 */ this.listeners.add(listen);
+/* */ }
+/* */ public void firePreformed(AWTEvent e) {
+/* 45 */ for (int i = 0; i < this.listeners.size(); i++)
+/* 46 */ ((MoveListener)this.listeners.get(i)).objectMoved(e);
+/* */ }
+/* */
+/* */ public void mouseWheelMoved(MouseWheelEvent e)
+/* */ {
+/* 51 */ super.setCameraZ(super.getCameraZ() + e.getWheelRotation() * this.multiplier);
+/* */
+/* 53 */ super.repaint();
+/* 54 */ firePreformed(e);
+/* */ }
+/* */ public void mouseDragged(MouseEvent e) {
+/* 57 */ super.setXRotation(super.getXRotation() - (e.getY() - this.lastY) * this.multiplier);
+/* 58 */ if (!this.alt) super.setYRotation(super.getYRotation() + (this.lastX - e.getX()) * this.multiplier); else {
+/* 59 */ super.setZRotation(super.getZRotation() + (this.lastX - e.getX()) * this.multiplier);
+/* */ }
+/* 61 */ this.lastX = e.getX();
+/* 62 */ this.lastY = e.getY();
+/* 63 */ super.repaint();
+/* 64 */ firePreformed(e);
+/* */ }
+/* */
+/* */ public void mouseMoved(MouseEvent e)
+/* */ {
+/* 69 */ this.lastX = e.getX();
+/* 70 */ this.lastY = e.getY();
+/* 71 */ firePreformed(e);
+/* */ }
+/* */
+/* */ public void mouseClicked(MouseEvent e) {
+/* 75 */ this.lastX = e.getX();
+/* 76 */ this.lastY = e.getY();
+/* */
+/* 78 */ long lastClickNew = System.currentTimeMillis();
+/* 79 */ if (Math.abs(this.lastClick - lastClickNew) < 500L) {
+/* 80 */ super.setXRotation(0.0D);
+/* 81 */ super.setYRotation(0.0D);
+/* 82 */ super.setCameraX(0.0D);
+/* 83 */ super.setCameraY(0.0D);
+/* 84 */ super.setCameraZ(200.0D);
+/* 85 */ super.repaint();
+/* */ }
+/* 87 */ this.lastClick = lastClickNew;
+/* 88 */ firePreformed(e);
+/* */ }
+/* */ public void invoke(Graphics g) {
+/* 91 */ super.invoke(g);
+/* 92 */ if (this.alt) new Point3D(getXPivot(), getYPivot(), getZPivot()).drawOn(g, this);
+/* 93 */ firePreformed(null);
+/* */ }
+/* */ public void mouseEntered(MouseEvent e) {
+/* */ }
+/* */ public void mouseExited(MouseEvent e) {
+/* */ }
+/* */ public void mousePressed(MouseEvent e) {
+/* 100 */ this.lastX = e.getX();
+/* 101 */ this.lastY = e.getY();
+/* */ }
+/* */ public void mouseReleased(MouseEvent e) {
+/* */ }
+/* 105 */ public void keyReleased(KeyEvent evt) { int keyCode = evt.getKeyCode();
+/* 106 */ if (keyCode == 17) {
+/* 107 */ this.multiplier /= 5;
+/* 108 */ this.ctrl = false;
+/* */ }
+/* 110 */ else if (keyCode == 16) {
+/* 111 */ this.multiplier /= 5;
+/* 112 */ this.shift = false;
+/* */ }
+/* 114 */ else if (keyCode == 18) {
+/* 115 */ this.alt = false;
+/* 116 */ repaint();
+/* */ } }
+/* */
+/* */ public void keyTyped(KeyEvent evt)
+/* */ {
+/* */ }
+/* */
+/* */ public void keyPressed(KeyEvent evt) {
+/* 124 */ int keyCode = evt.getKeyCode();
+/* 125 */ if (keyCode == 37) {
+/* 126 */ if (this.alt)
+/* 127 */ setXPivot(getXPivot() - 5 * this.multiplier);
+/* */ else {
+/* 129 */ setYRotation(getYRotation() + 5 * this.multiplier);
+/* */ }
+/* 131 */ repaint();
+/* */ }
+/* 133 */ else if (keyCode == 39) {
+/* 134 */ if (this.alt)
+/* 135 */ setXPivot(getXPivot() + 5 * this.multiplier);
+/* */ else {
+/* 137 */ setYRotation(getYRotation() - 5 * this.multiplier);
+/* */ }
+/* 139 */ repaint();
+/* */ }
+/* 141 */ else if (keyCode == 38) {
+/* 142 */ if (this.alt) {
+/* 143 */ setYPivot(getYPivot() + 5 * this.multiplier);
+/* */ }
+/* */ else {
+/* 146 */ setXRotation(getXRotation() + 5.0D);
+/* */ }
+/* 148 */ repaint();
+/* */ }
+/* 150 */ else if (keyCode == 40) {
+/* 151 */ if (this.alt)
+/* 152 */ setYPivot(getYPivot() - 5 * this.multiplier);
+/* */ else {
+/* 154 */ setXRotation(getXRotation() - 5 * this.multiplier);
+/* */ }
+/* 156 */ repaint();
+/* */ }
+/* 158 */ else if (keyCode == 17) {
+/* 159 */ if (!this.ctrl) {
+/* 160 */ this.multiplier *= 5;
+/* 161 */ this.ctrl = true;
+/* */ }
+/* */ }
+/* 164 */ else if (keyCode == 16) {
+/* 165 */ if (!this.shift) {
+/* 166 */ this.multiplier *= 5;
+/* 167 */ this.shift = true;
+/* */ }
+/* */ }
+/* 170 */ else if ((keyCode == 18) && (!this.alt)) {
+/* 171 */ this.alt = true;
+/* 172 */ repaint();
+/* */ }
+/* 174 */ else if (keyCode == 61) {
+/* 175 */ setCameraZ(getCameraZ() - 15 * this.multiplier);
+/* 176 */ repaint();
+/* */ }
+/* 178 */ else if (keyCode == 45) {
+/* 179 */ setCameraZ(getCameraZ() + 15 * this.multiplier);
+/* 180 */ repaint();
+/* */ }
+/* */ }
+/* */ }
+
+/* Location: Modulus.jar
+ * Qualified Name: Dynamic3DGraph
+ * JD-Core Version: 0.6.2
+ */ \ No newline at end of file