+public class Main implements GLEventListener, MouseListener, MouseMotionListener, KeyListener, MouseWheelListener {
+
+ boolean alt = false;
+ boolean shift = false;
+ boolean control = false;
+
+ public void mouseWheelMoved(MouseWheelEvent e) {
+ tz -= e.getWheelRotation() ;
+ }
+
+ public void keyTyped(KeyEvent e) { }
+ public void keyPressed(KeyEvent e) {
+ switch(e.getKeyCode()) {
+ case KeyEvent.VK_CONTROL: control = true; break;
+ case KeyEvent.VK_ALT: alt = true; break;
+ case KeyEvent.VK_SHIFT: shift = true; break;
+ }
+ }
+ public void keyReleased(KeyEvent e) {
+ switch(e.getKeyCode()) {
+ case KeyEvent.VK_CONTROL: control = false; break;
+ case KeyEvent.VK_ALT: alt = false; break;
+ case KeyEvent.VK_SHIFT: shift = false; break;
+ }
+ }
+
+ public void mouseClicked(MouseEvent e) { }
+ public void mouseEntered(MouseEvent e) { }
+ public void mouseExited(MouseEvent e) { }
+ public void mousePressed(MouseEvent e) { }
+ public void mouseReleased(MouseEvent e) { }
+
+ int mousex;
+ int mousey;
+ public void mouseMoved(MouseEvent e) {
+ mousex = e.getX();
+ mousey = e.getY();
+ }
+
+ float tx = 0;
+ float ty = 0;
+ float tz = 0;
+ float anglex = 0;
+ float angley = 0;
+ public void mouseDragged(MouseEvent e) {
+ if (shift) {
+ tx += (mousex - e.getX())/(float)20;
+ ty += (mousey - e.getY())/(float)20;
+ } else {
+ anglex -= mousex - e.getX();
+ angley += mousey - e.getY();
+ }
+ mousex = e.getX();
+ mousey = e.getY();
+ }