android - How to use sensors rotation matrix in min3d to rotate parsed object -


i want rotate objects parsed .obj file in min3d. need use rotation matrix got sensors. know how in pure opengl can't figure out use (min3d.core.renderer probably?) , how in min3d.
min3d , parses .obj files nicely don't want abandon , use pure opengl. know can use rotate() method uses eulers angles , need use rotation matrix. here's code:

public class hurleyloading extends rendereractivity implements sensoreventlistener{  private object3dcontainer hurleymodel; private sensormanager sensormanager; private sensor sensoracc; private sensor sensormagnetic;   private float[] acceldata = new float[3];  private float[] magnetdata = new float[3];  private final float[] rotationmatrix = new float[16]; float[] orientation = new float[3];  @override public void oncreate(bundle b){     super.oncreate(b);     setrequestedorientation(activityinfo.screen_orientation_portrait);     sensormanager = (sensormanager)getsystemservice(sensor_service);     sensoracc = sensormanager.getdefaultsensor(sensor.type_accelerometer);     sensormagnetic =  sensormanager.getdefaultsensor(sensor.type_magnetic_field);  } public void onresume() {     super.onresume();     sensormanager.registerlistener(this, sensoracc, sensormanager.sensor_delay_game);     sensormanager.registerlistener(this, sensormagnetic, sensormanager.sensor_delay_game); } public void onstart() {     super.onstart();     sensormanager.registerlistener(this, sensoracc, sensormanager.sensor_delay_game);     sensormanager.registerlistener(this, sensormagnetic, sensormanager.sensor_delay_game);     //this.onresume(); } public void onpause() {     super.onpause();     sensormanager.unregisterlistener(this); }  @override public void initscene() {      scene.lights().add(new light());     scene.lights().add(new light());     scene.lights().add(new light());     scene.lights().add(new light());     scene.lights().add(new light());     scene.lights().add(new light());     scene.lights().add(new light());      iparser parser = parser.createparser(parser.type.obj,             getresources(), "ie.tyndall.hurleyopengl:raw/hurley_obj", true);     parser.parse();      hurleymodel = parser.getparsedobject();     hurleymodel.scale().x = hurleymodel.scale().y =  hurleymodel.scale().z = 1.4f;     hurleymodel.position().y = -1.8f;     hurleymodel.position().x = .4f;      scene.addchild(hurleymodel);         } @override public void updatescene() {     /**some rotation code can go here rotation() method has use       * eulers angles (x/y/z euler rotation of object, using euler angles.       * units should in degrees, match opengl usage)which no use me      * need use rotation matrix      **/         }  //@override public void onaccuracychanged(sensor arg0, int arg1) {     // todo auto-generated method stub       } @override public void onsensorchanged(sensorevent event) {       loadsensordata(event);       sensormanager.getrotationmatrix(rotationmatrix, null, acceldata,                  magnetdata); } private void loadsensordata(sensorevent event) {       final int type = event.sensor.gettype();       if (type == sensor.type_accelerometer) {        acceldata = event.values.clone();       }       if (type == sensor.type_magnetic_field) {        magnetdata = event.values.clone();       } } } 

i think have calculate angle rotation matrix , set in updatescene() this: obj.rotation().x = ? obj.rotation().y = ? obj.rotation().z = ?


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -