@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; }
@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); }
public void UpdateModel(InputStreamReader objsource) { renderer.SetModel(loadModel(objsource)); }