Пример #1
0
 @Override
 public void mouseWheelMoved(final MouseWheelEvent e) {
   final double v = keyModfiedSpeed(e.getModifiersEx());
   final int s = e.getWheelRotation();
   p.setF(p.getF() * (1 - 0.05f * s * v));
   update(false);
 }
Пример #2
0
 @Override
 public void keyPressed(final KeyEvent e) {
   if (e.getKeyCode() == KeyEvent.VK_ESCAPE || e.getKeyCode() == KeyEvent.VK_ENTER) {
     painter.interrupt();
     imp.getCanvas().setDisplayList(null);
     gui.restoreGui();
     if (e.getKeyCode() == KeyEvent.VK_ESCAPE) gui.close();
   } else if (e.getKeyCode() == KeyEvent.VK_SHIFT) {
     dLambda *= 10;
     dPhi *= 10;
   } else if (e.getKeyCode() == KeyEvent.VK_CONTROL) {
     dLambda /= 10;
     dPhi /= 10;
   } else {
     final double v = keyModfiedSpeed(e.getModifiersEx());
     if (e.getKeyCode() == KeyEvent.VK_LEFT) {
       lambda -= v * step;
       update(false);
     } else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
       lambda += v * step;
       update(false);
     } else if (e.getKeyCode() == KeyEvent.VK_UP) {
       phi -= v * step;
       update(false);
     } else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
       phi += v * step;
       update(false);
     } else if (e.getKeyCode() == KeyEvent.VK_PLUS || e.getKeyCode() == KeyEvent.VK_EQUALS) {
       p.setF(p.getF() * (1 + 0.1f * v));
       update(false);
     } else if (e.getKeyCode() == KeyEvent.VK_MINUS) {
       p.setF(p.getF() / (1 + 0.1f * v));
       update(false);
     } else if (e.getKeyCode() == KeyEvent.VK_SPACE) {
       renderCubeFaces(hfov, vfov);
       update(false);
     } else if (e.getKeyCode() == KeyEvent.VK_I) {
       painter.toggleInterpolation();
       update(false);
     } else if (e.getKeyCode() == KeyEvent.VK_V) {
       painter.toggleVisualization();
       imp.getCanvas().setDisplayList(null);
       update(false);
     } else if (e.getKeyCode() == KeyEvent.VK_A) {
       naviMode = NaviMode.PAN_TILT;
       dLambda = dPhi = 0;
       update(false);
     } else if (e.getKeyCode() == KeyEvent.VK_P) {
       naviMode = NaviMode.PAN_ONLY;
       dLambda = dPhi = 0;
       update(false);
     } else if (e.getKeyCode() == KeyEvent.VK_T) {
       naviMode = NaviMode.TILT_ONLY;
       dLambda = dPhi = 0;
       update(false);
     } else if (e.getKeyCode() == KeyEvent.VK_R) {
       naviMode = NaviMode.ROLL_ONLY;
       dLambda = dPhi = 0;
       update(false);
     } else if (e.getKeyCode() == KeyEvent.VK_F1) {
       IJ.showMessage(
           "Interactive Panorama Viewer",
           "Mouse control:"
               + NL
               + " "
               + NL
               + "Pan and tilt the panorama by dragging the image in the canvas and"
               + NL
               + "zoom in and out using the mouse-wheel."
               + NL
               + " "
               + NL
               + "Key control:"
               + NL
               + " "
               + NL
               + "CURSOR LEFT - Pan left."
               + NL
               + "CURSOR RIGHT - Pan right."
               + NL
               + "CURSOR UP - Tilt up."
               + NL
               + "CURSOR DOWN - Tilt down."
               + NL
               + "SHIFT - Move 10x faster."
               + NL
               + "CTRL - Move browse 10x slower."
               + NL
               + "ENTER/ESC - Leave interactive mode."
               + NL
               + "I - Toggle interpolation."
               + NL
               + "V - Toggle FOV visualization."
               + NL
               + "R - Roll-mode (roll via mouse drag)."
               + NL
               + "P - Pan/Tilt-mode (pan/tilt via mouse drag).");
     }
   }
 }