Author: paperwing
Date: 2011-06-02 11:30:39 -0700 (Thu, 02 Jun 2011)
New Revision: 25620
Added:
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/KeyboardMonitor.java
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/MouseMonitor.java
Modified:
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/TestGraphics.java
Log:
mouse, keyboard input implemented for jogl implementation
Added:
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/KeyboardMonitor.java
===================================================================
---
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/KeyboardMonitor.java
(rev 0)
+++
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/KeyboardMonitor.java
2011-06-02 18:30:39 UTC (rev 25620)
@@ -0,0 +1,72 @@
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.util.Set;
+import java.util.TreeSet;
+
+
+public class KeyboardMonitor implements KeyListener {
+
+ private TreeSet<Integer> justPressed;
+ private TreeSet<Integer> keysDown;
+ private TreeSet<Integer> justReleased;
+
+ private boolean hasNew = false;
+ private boolean hasHeld = false;
+
+ public KeyboardMonitor() {
+ justPressed = new TreeSet<Integer>();
+ keysDown = new TreeSet<Integer>();
+ justReleased = new TreeSet<Integer>();
+ }
+
+ public boolean hasNew() {
+ return hasNew;
+ }
+
+ public boolean hasHeld() {
+ return !keysDown.isEmpty();
+ }
+
+ public Set<Integer> getPressed() {
+ return justPressed;
+ }
+
+ public Set<Integer> getHeld() {
+ return keysDown;
+ }
+
+ public Set<Integer> getReleased() {
+ return justReleased;
+ }
+
+ @Override
+ public void keyPressed(KeyEvent event) {
+ Integer key = event.getKeyCode();
+
+ if (!keysDown.contains(key)) {
+ justPressed.add(key);
+ keysDown.add(key);
+ hasNew = true;
+ }
+ }
+
+ @Override
+ public void keyReleased(KeyEvent event) {
+ justReleased.add(event.getKeyCode());
+ keysDown.remove(event.getKeyCode());
+ hasNew = true;
+ }
+
+ @Override
+ public void keyTyped(KeyEvent event) {
+ }
+
+ // Method should be called when wanting to clear the list of newly
pressed and released keys
+ public void update() {
+ justPressed.clear();
+ justReleased.clear();
+ hasNew = false;
+ }
+
+
+}
Property changes on:
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/KeyboardMonitor.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/MouseMonitor.java
===================================================================
---
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/MouseMonitor.java
(rev 0)
+++
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/MouseMonitor.java
2011-06-02 18:30:39 UTC (rev 25620)
@@ -0,0 +1,134 @@
+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.Set;
+import java.util.TreeSet;
+
+
+public class MouseMonitor implements MouseListener, MouseMotionListener,
MouseWheelListener {
+ private int prevX;
+ private int prevY;
+ private int currentX;
+ private int currentY;
+ private int wheelChange;
+
+ private boolean hasMoved;
+ private boolean hasNew;
+
+ private boolean ignoreNext;
+
+ private TreeSet<Integer> justPressed;
+ private TreeSet<Integer> buttonsDown;
+ private TreeSet<Integer> justReleased;
+
+ public MouseMonitor() {
+ justPressed = new TreeSet<Integer>();
+ buttonsDown = new TreeSet<Integer>();
+ justReleased = new TreeSet<Integer>();
+
+ ignoreNext = true;
+ }
+
+ public Set<Integer> getPressed() {
+ return justPressed;
+ }
+
+ public Set<Integer> getReleased() {
+ return justReleased;
+ }
+
+ public Set<Integer> getHeld() {
+ return buttonsDown;
+ }
+
+ public boolean hasNew() {
+ return hasNew;
+ }
+
+ public boolean hasMoved() {
+ return hasMoved;
+ }
+
+ public int dX() {
+ return currentX - prevX;
+ }
+
+ public int dY() {
+ return currentY - prevY;
+ }
+
+ public int dWheel() {
+ return wheelChange;
+ }
+
+ @Override
+ public void mouseDragged(MouseEvent event) {
+ }
+
+ @Override
+ public void mouseMoved(MouseEvent event) {
+ hasMoved = true;
+ currentX = event.getX();
+ currentY = event.getY();
+
+ if (ignoreNext) {
+ prevX = currentX;
+ prevY = currentY;
+ ignoreNext = false;
+ }
+ }
+
+ @Override
+ public void mouseClicked(MouseEvent event) {
+ }
+
+ @Override
+ public void mouseEntered(MouseEvent event) {
+ ignoreNext = false;
+ }
+
+ @Override
+ public void mouseExited(MouseEvent event) {
+ ignoreNext = false;
+ }
+
+ @Override
+ public void mousePressed(MouseEvent event) {
+ Integer button = event.getButton();
+
+ if (button != MouseEvent.NOBUTTON) {
+ justPressed.add(button);
+ buttonsDown.add(button);
+ hasNew = true;
+ }
+ }
+
+ @Override
+ public void mouseReleased(MouseEvent event) {
+ justReleased.add(event.getButton());
+ buttonsDown.remove(event.getButton());
+ hasNew = true;
+ }
+
+ @Override
+ public void mouseWheelMoved(MouseWheelEvent event) {
+ wheelChange += event.getWheelRotation();
+ hasNew = true;
+ }
+
+ // Clear just pressed and just released buttons
+ public void update() {
+ justPressed.clear();
+ justReleased.clear();
+ hasNew = false;
+ hasMoved = false;
+
+ wheelChange = 0;
+ prevX = currentX;
+ prevY = currentY;
+ }
+
+
+}
Property changes on:
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/MouseMonitor.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/TestGraphics.java
===================================================================
---
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/TestGraphics.java
2011-06-02 02:55:48 UTC (rev 25619)
+++
csplugins/trunk/toronto/paperwing/TestLibrary/src/test/java/TestGraphics.java
2011-06-02 18:30:39 UTC (rev 25620)
@@ -1,4 +1,8 @@
+import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+import java.awt.event.MouseWheelListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.nio.FloatBuffer;
@@ -19,12 +23,12 @@
import com.jogamp.opengl.util.FPSAnimator;
import com.jogamp.opengl.util.gl2.GLUT;
-public class TestGraphics implements GLEventListener, MouseInputListener{
+public class TestGraphics implements GLEventListener {
- private static final int NODE_COUNT = 30000;
+ private static final int NODE_COUNT = 10;
private static final int EDGE_COUNT = 0;
private static final float LARGE_SPHERE_RADIUS = 2.0f;
- private static final float SMALL_SPHERE_RADIUS = 0.03f;
+ private static final float SMALL_SPHERE_RADIUS = 0.015f;
private static final float EDGE_RADIUS = 0.008f;
private static final int NODE_SLICES_DETAIL = 6;
@@ -72,7 +76,26 @@
private float xFace = 1.0f;
private float yFace = 0.0f;
private float zFace = 0.0f;
+
+ private KeyboardMonitor keys = new KeyboardMonitor();
+ private MouseMonitor mouse = new MouseMonitor();
+ public KeyListener getKeyListener() {
+ return keys;
+ }
+
+ public MouseListener getMouseListener() {
+ return mouse;
+ }
+
+ public MouseMotionListener getMouseMotionListener() {
+ return mouse;
+ }
+
+ public MouseWheelListener getMouseWheelListener() {
+ return mouse;
+ }
+
/**
* @param args
*/
@@ -93,8 +116,9 @@
TestGraphics graphics = new TestGraphics();
canvas.addGLEventListener(graphics);
- canvas.addMouseListener(graphics);
- canvas.addMouseMotionListener(graphics);
+ // canvas.addMouseListener(graphics);
+ // canvas.addMouseMotionListener(graphics);
+ graphics.getKeyListener();
frame.add(canvas);
frame.addWindowListener(new WindowAdapter() {
@@ -107,6 +131,11 @@
frame.setVisible(true);
+ canvas.addKeyListener(graphics.getKeyListener());
+ canvas.addMouseListener(graphics.getMouseListener());
+
canvas.addMouseMotionListener(graphics.getMouseMotionListener());
+ canvas.addMouseWheelListener(graphics.getMouseWheelListener());
+
FPSAnimator animator = new FPSAnimator(60);
animator.add(canvas);
animator.start();
@@ -138,6 +167,7 @@
float overhang = 0.0f;
+ /*
// Draw X axis gl.glTranslatef(-overhang, 0.0f, 0.0f);
gl.glRotatef(90, 0, 1, 0); gl.glColor3f(1.0f, 0.0f, 0.0f);
glut.glutSolidCylinder(0.005f, axisLength, 6, 3);
gl.glRotatef(-90, 0, 1, 0); gl.glTranslatef(overhang, 0.0f, 0.0f);
@@ -149,14 +179,14 @@
// Draw Z axis gl.glTranslatef(0.0f, 0.0f, -overhang);
gl.glColor3f(0.0f, 0.0f, 1.0f); glut.glutSolidCylinder(0.005f,
axisLength, 6, 3); gl.glTranslatef(0.0f, 0.0f, overhang);
-
+ */
// gl.glRotatef(90, 0.0f, -1.0f, 0.0f);
float[] specularReflection = { 1.0f, 1.0f, 1.0f, 1.0f };
gl.glMaterialfv(GL2.GL_FRONT, GL2.GL_SPECULAR,
FloatBuffer.wrap(specularReflection));
- gl.glMateriali(GL2.GL_FRONT, GL2.GL_SHININESS, 20);
+ gl.glMateriali(GL2.GL_FRONT, GL2.GL_SHININESS, 40);
gl.glColor3f(0.73f, 0.73f, 0.75f);
drawNodes(gl);
@@ -165,6 +195,29 @@
// drawNodesEdges(gl);
framesElapsed++;
+
+
+ if (keys.hasNew()) {
+ System.out.println("Keys down: " + keys.getHeld());
+ keys.update();
+ }
+
+ if (mouse.hasNew()) {
+ System.out.println("Mouse keys down: " +
mouse.getHeld());
+ System.out.println("Mouse scroll change: " +
mouse.dWheel());
+ mouse.update();
+ }
+
+ /*
+ if (mouse.hasMoved()) {
+ System.out.println("dx: " + mouse.dX());
+ System.out.println("dy: " + mouse.dY());
+ mouse.update();
+ }
+ */
+
+ //GLU glu = new GLU();
+ //glu.gluLookAt(0, 0, 0, 0, 1, 0, 0, 0, 1);
}
private void drawNodes(GL2 gl) {
@@ -232,8 +285,11 @@
generateNodes();
generateEdges();
startTime = System.nanoTime();
- // createDisplayListsIndividual(gl);
+ //createDisplayListsIndividual(gl);
createDisplayLists(gl);
+
+ //drawable.addGLEventListener(arg0)
+ //keys = new KeyboardMonitor();
}
private void createDisplayListsIndividual(GL2 gl) {
@@ -427,25 +483,8 @@
gl.glLoadIdentity();
}
+ /*
@Override
- public void mouseClicked(MouseEvent e) {
- }
-
- @Override
- public void mouseEntered(MouseEvent e) {
- }
-
- @Override
- public void mouseExited(MouseEvent arg0) {
- }
-
- @Override
- public void mousePressed(MouseEvent e) {
- lastX = e.getX();
- lastY = e.getY();
- }
-
- @Override
public void mouseReleased(MouseEvent arg0) {
endTime = System.nanoTime();
@@ -457,7 +496,9 @@
rotateY(1);
System.out.println("New facing: (" + xFace + ", " + yFace + ",
" + zFace + ")");
}
+ */
+ /*
@Override
public void mouseDragged(MouseEvent e) {
float xDelta = e.getX() - lastX;
@@ -476,6 +517,7 @@
lastX = e.getX();
lastY = e.getY();
}
+ */
// Rotation about the absolute y-axis, by the right-hand rule
private void rotateY(float degrees) {
@@ -540,8 +582,4 @@
zFace = (float) Math.cos(Math.toRadians(newAngle)) * radius;
yFace = (float) -Math.sin(Math.toRadians(newAngle)) * radius;
}
-
- @Override
- public void mouseMoved(MouseEvent e) {
- }
}
\ No newline at end of file
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.