1 package jarmos.app.visual;
5 import android.content.Context;
6 import android.content.res.Configuration;
7 import android.opengl.GLSurfaceView;
8 import android.util.Log;
9 import android.view.KeyEvent;
10 import android.view.MotionEvent;
24 public class GLView extends GLSurfaceView {
29 private final float MIN_MOVE_DIST = 3f;
31 @SuppressWarnings(
"unused")
32 private static final String LOG_TAG = GLView.class.getSimpleName();
47 setFocusableInTouchMode(
true);
50 Configuration c = getResources().getConfiguration();
51 if (c.orientation == Configuration.ORIENTATION_PORTRAIT) {
53 }
else if (c.orientation == Configuration.ORIENTATION_LANDSCAPE) {
62 super.onSizeChanged(w, h, oldw, oldh);
64 Log.d(
"GLView",
"On size changed: old w/h " + oldw +
"/" + oldh +
" new w/h" + w +
"/" + h);
71 switch (event.getAction() & MotionEvent.ACTION_MASK) {
72 case MotionEvent.ACTION_DOWN:
79 case MotionEvent.ACTION_UP:
86 case MotionEvent.ACTION_MOVE:
89 final float xdiff = (x - event.getX());
90 final float ydiff = (y - event.getY());
91 double diff = Math.sqrt(xdiff * xdiff + ydiff * ydiff);
92 if (diff > MIN_MOVE_DIST) {
94 queueEvent(
new Runnable() {
96 glRend.isContinuousRotation =
true;
97 glRend.addPos(-xdiff / 20.0f, ydiff / 20.0f);
106 final boolean in = y > event.getY(1) - event.getY(0);
109 queueEvent(
new Runnable() {
120 y = event.getY(1) - event.getY(0);
125 case MotionEvent.ACTION_POINTER_DOWN:
128 y = event.getY(1) - event.getY(0);
140 if (event.getAction() == MotionEvent.ACTION_DOWN) {
143 glRend.nextColorField();
146 glRend.prevColorField();
153 glRend.isFrontFace = !glRend.isFrontFace;
156 return super.onKeyDown(keyCode, event);
166 float TBx = event.getX();
167 float TBy = event.getY();
168 if (event.getAction() == MotionEvent.ACTION_MOVE) {
170 if ((TBx >= 0) & (TBy <= 0))
176 if (event.getAction() == MotionEvent.ACTION_DOWN) {
void onSizeChanged(int w, int h, int oldw, int oldh)
Open GL view implementation for display of and interaction with reduced model visualizations.
boolean onTrackballEvent(MotionEvent event)
OpenGL renderer implementation using the khronos OpenGL ES android implementation.
GLView(Context context, VisualizationData visData)
A container class for all model visual data.
boolean onTouchEvent(final MotionEvent event)
boolean onKeyDown(int keyCode, KeyEvent event)