Example #1
0
  @Override
  public boolean onTouchEvent(MotionEvent event) {
    //
    float x = event.getX();
    float y = event.getY();

    // If a touch is moved on the screen
    if (event.getAction() == MotionEvent.ACTION_MOVE) {
      // Calculate the change
      float dx = x - oldX;
      float dy = y - oldY;
      // Define an upper area of 10% on the screen
      int upperArea = this.getHeight() / 10;

      if (y < upperArea) {
        // Zoom in/out if the touch move has been made in the upper
        renderer.Zoom(dx * TOUCH_SCALE / 2);
      } else {
        // Rotate around the axis otherwise
        renderer.RotateAnchor(dy * TOUCH_SCALE, dx * TOUCH_SCALE);
      }

      // A press on the screen
    } else if (event.getAction() == MotionEvent.ACTION_UP) {
      // TODO stop the animation
    }

    // Remember the values
    oldX = x;
    oldY = y;

    // We handled the event
    return true;
  }
Example #2
0
 @Override
 public boolean onKeyUp(int keyCode, KeyEvent event) {
   switch (keyCode) {
     case KeyEvent.KEYCODE_P:
       queueEvent(
           new Runnable() {
             public void run() {
               // TODO renderer pause
               renderer.togglePause();
             }
           });
       return true;
     case KeyEvent.KEYCODE_DPAD_LEFT:
       return true;
     case KeyEvent.KEYCODE_DPAD_RIGHT:
       return true;
     case KeyEvent.KEYCODE_DPAD_UP:
       renderer.Zoom(-3);
       return true;
     case KeyEvent.KEYCODE_DPAD_DOWN:
       renderer.Zoom(3);
       return true;
     case KeyEvent.KEYCODE_DPAD_CENTER:
       return true;
   }
   // default case
   return super.onKeyUp(keyCode, event);
 }
Example #3
0
 public void UpdateModel(InputStreamReader objsource) {
   renderer.SetModel(loadModel(objsource));
 }