diff --git a/contrib/mobile/Android/src/org/geuz/onelab/GLESRender.java b/contrib/mobile/Android/src/org/geuz/onelab/GLESRender.java index 8868ab9f65fe147e603eb8f1fd5e7fcd6277a849..201be57e514d91eef2e25fa039d2a90d305650b3 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/GLESRender.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/GLESRender.java @@ -37,6 +37,9 @@ public class GLESRender implements Renderer{ public void resetModelPosition() { mGModel.resetPosition(); } + public void viewX() { mGModel.viewX();} + public void viewY() { mGModel.viewY();} + public void viewZ() { mGModel.viewZ();} // OpenGL ES methods public void onDrawFrame(GL10 gl) { diff --git a/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java b/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java index baff69f3f97bc6e9111612a16c7fff38be1f2d7b..3d1ba9c3372453eb9e77a9e0734b96a038f2c9a7 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java @@ -19,6 +19,7 @@ public class Gmsh { private native void drawView(long ptr); // Called each time the GLView request a render private native void eventHandler(long ptr, int event, float x, float y); private native void setShow(long ptr, String what, boolean show); // select what to show / hide + private native boolean isShow(long ptr, String what); private native long getOnelabInstance(); // return the singleton of the onelab server public native String[] getParams(); // return the parameters for onelab public native int setParam(String type, String name, String value); // change a parameters @@ -65,13 +66,16 @@ public class Gmsh { { this.eventHandler(ptr, 3, x, y); } + public void viewX() { this.eventHandler(ptr, 5, 0, 0);} + public void viewY() { this.eventHandler(ptr, 6, 0, 0);} + public void viewZ() { this.eventHandler(ptr, 7, 0, 0);} public void endEvent(float x, float y) { this.eventHandler(ptr, 4, x, y); } public void resetPosition() { - this.eventHandler(ptr, 5, 0, 0); + this.eventHandler(ptr, 10, 0, 0); } public void showGeom(boolean show) { @@ -81,6 +85,14 @@ public class Gmsh { { this.setShow(ptr, "mesh", show); } + public boolean showMesh() + { + return this.isShow(ptr, "mesh"); + } + public boolean showGeom() + { + return this.isShow(ptr, "geom"); + } public long getOnelab() { return this.onelab; } diff --git a/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java b/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java index 65f424248a6ccb37181787f1efbb178a3f1b0115..c5ddabe6812dafe7ba0ee64227a8b9b462190c24 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java @@ -157,21 +157,19 @@ public class MainActivity extends Activity { .setPositiveButton("Ok", null) .show(); } - /*else if(item.getTitle().equals(getString(R.string.menu_view_x))){ - renderer.rotate(0, 0, 0); - renderer.rotate(90, 0, 0); + else if(item.getTitle().equals(getString(R.string.menu_view_x))){ + renderer.viewX(); glView.requestRender(); } else if(item.getTitle().equals(getString(R.string.menu_view_y))){ - renderer.rotate(0, 0, 0); - renderer.rotate(0, 90, 0); + renderer.viewY(); glView.requestRender(); } else if(item.getTitle().equals(getString(R.string.menu_view_z))){ - renderer.rotate(0, 0, 0); + renderer.viewZ(); glView.requestRender(); } - else if(item.getTitle().equals(getString(R.string.menu_view_scale))){ + /*else if(item.getTitle().equals(getString(R.string.menu_view_scale))){ glView.resetScale(); glView.requestRender(); } @@ -449,7 +447,7 @@ public class MainActivity extends Activity { onelabBtns.addView(run, lp); CheckBox showMesh = new CheckBox(ctx); showMesh.setText("Show the mesh"); - showMesh.setChecked(false); + showMesh.setChecked(gmsh.showMesh()); showMesh.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { @@ -459,7 +457,7 @@ public class MainActivity extends Activity { }); CheckBox showGeom = new CheckBox(ctx); showGeom.setText("Show the geometry"); - showGeom.setChecked(true); + showGeom.setChecked(gmsh.showGeom()); showGeom.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { diff --git a/contrib/mobile/androidGModel.cpp b/contrib/mobile/androidGModel.cpp index cc94026dc7aa5f5d13215b3d6d5718763b7299d3..2ccfac331a8a95d419a8df625ba667e779aea0e7 100644 --- a/contrib/mobile/androidGModel.cpp +++ b/contrib/mobile/androidGModel.cpp @@ -158,6 +158,14 @@ JNIEXPORT void JNICALL Java_org_geuz_onelab_Gmsh_setShow else if(strcmp(what, "geom") == 0) ((drawContext *)jptr)->showGeom(value); } +JNIEXPORT jboolean JNICALL Java_org_geuz_onelab_Gmsh_isShow + (JNIEnv *env, jobject obj, jlong jptr, jstring jwhat) +{ + const char* what = env->GetStringUTFChars(jwhat, NULL); + if(strcmp(what, "mesh") == 0) return ((drawContext *)jptr)->isShowedMesh(); + else if(strcmp(what, "geom") == 0) return ((drawContext *)jptr)->isShowedGeom(); + else return false; +} JNIEXPORT jlong JNICALL Java_org_geuz_onelab_Gmsh_getOnelabInstance (JNIEnv *env , jobject obj) { diff --git a/contrib/mobile/androidGModel.h b/contrib/mobile/androidGModel.h index 9ae8acdf33eeda61f4794b196cd17ad01979845e..9c6150e398a653f410ab176ceb8a6ce13cc4ec1c 100644 --- a/contrib/mobile/androidGModel.h +++ b/contrib/mobile/androidGModel.h @@ -57,6 +57,14 @@ JNIEXPORT void JNICALL Java_org_geuz_onelab_Gmsh_eventHandler JNIEXPORT void JNICALL Java_org_geuz_onelab_Gmsh_setShow (JNIEnv *, jobject, jlong, jstring, jboolean); +/* + * Class: org_geuz_onelab_Gmsh + * Method: isShow + * Signature: (JLjava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_geuz_onelab_Gmsh_isShow + (JNIEnv *, jobject, jlong, jstring); + /* * Class: org_geuz_onelab_Gmsh * Method: getOnelabInstance diff --git a/contrib/mobile/drawContext.cpp b/contrib/mobile/drawContext.cpp index e10b22d1f00fd8b5e341a61cd9cbce50a18e0a00..193117e21d276139bed12bd3c2b93440ef39ed54 100644 --- a/contrib/mobile/drawContext.cpp +++ b/contrib/mobile/drawContext.cpp @@ -122,17 +122,17 @@ void drawContext::eventHandler(int event, float x, float y) case 4: // release the finger(s) // Do nothink ? break; - case 5: // X view - axis_to_quat(xx, M_PI/2, q); - setQuaternion(q[0], q[1], q[2], q[3]); - break; - case 6: // Y view - axis_to_quat(yy, M_PI/2, q); - setQuaternion(q[0], q[1], q[2], q[3]); - break; - case 7: // Z view - setQuaternion(0., 0., 0., 1.); - break; + case 5: // X view + axis_to_quat(xx, M_PI/2, q); + setQuaternion(q[0], q[1], q[2], q[3]); + break; + case 6: // Y view + axis_to_quat(yy, M_PI/2, q); + setQuaternion(q[0], q[1], q[2], q[3]); + break; + case 7: // Z view + setQuaternion(0., 0., 0., 1.); + break; default: // all other reset the position setQuaternion(0., 0., 0., 1.); for(int i = 0; i < 3; i++){ diff --git a/contrib/mobile/drawContext.h b/contrib/mobile/drawContext.h index d3b860d4833ab789e855b5441bb5af45ce872ef6..9845b0d42ae869b9b0e34ea2af86dfcb36319cb8 100644 --- a/contrib/mobile/drawContext.h +++ b/contrib/mobile/drawContext.h @@ -61,8 +61,8 @@ public: void showGeom(bool show=true) {CTX::instance()->geom.draw = show;} void showMesh(bool show=true) {CTX::instance()->mesh.draw = show;} void fillMesh(bool show=true) {_fillMesh = show;} - bool isShowedMesh(){return CTX::instance()->mesh.draw;} - bool isShowedGeom(){return CTX::instance()->geom.draw;} + bool isShowedMesh(){return CTX::instance()->mesh.draw;} + bool isShowedGeom(){return CTX::instance()->geom.draw;} }; #endif