@@ -451,28 +451,28 @@ - (void)handleMotion {
451451
452452 switch (interfaceOrientation) {
453453 case UIInterfaceOrientationLandscapeLeft: {
454- DisplayServerIOS::get_singleton ()->update_gravity (- gravity.y , gravity.x , gravity.z );
455- DisplayServerIOS::get_singleton ()->update_accelerometer (- (acceleration.y + gravity.y ), ( acceleration.x + gravity.x ) , acceleration.z + gravity.z );
456- DisplayServerIOS::get_singleton ()->update_magnetometer (- magnetic.y , magnetic.x , magnetic.z );
457- DisplayServerIOS::get_singleton ()->update_gyroscope (- rotation.y , rotation.x , rotation.z );
454+ DisplayServerIOS::get_singleton ()->update_gravity (Vector3 ( gravity.x , gravity.y , gravity.z ). rotated ( Vector3 ( 0 , 0 , 1 ), -Math_PI * 0.5 ) );
455+ DisplayServerIOS::get_singleton ()->update_accelerometer (Vector3 (acceleration.x + gravity.x , acceleration.y + gravity.y , acceleration.z + gravity.z ). rotated ( Vector3 ( 0 , 0 , 1 ), -Math_PI * 0.5 ) );
456+ DisplayServerIOS::get_singleton ()->update_magnetometer (Vector3 ( magnetic.x , magnetic.y , magnetic.z ). rotated ( Vector3 ( 0 , 0 , 1 ), -Math_PI * 0.5 ) );
457+ DisplayServerIOS::get_singleton ()->update_gyroscope (Vector3 ( rotation.x , rotation.y , rotation.z ). rotated ( Vector3 ( 0 , 0 , 1 ), -Math_PI * 0.5 ) );
458458 } break ;
459459 case UIInterfaceOrientationLandscapeRight: {
460- DisplayServerIOS::get_singleton ()->update_gravity (gravity.y , - gravity.x , gravity.z );
461- DisplayServerIOS::get_singleton ()->update_accelerometer ((acceleration.y + gravity.y ), -( acceleration.x + gravity.x ) , acceleration.z + gravity.z );
462- DisplayServerIOS::get_singleton ()->update_magnetometer (magnetic.y , - magnetic.x , magnetic.z );
463- DisplayServerIOS::get_singleton ()->update_gyroscope (rotation.y , - rotation.x , rotation.z );
460+ DisplayServerIOS::get_singleton ()->update_gravity (Vector3 ( gravity.x , gravity.y , gravity.z ). rotated ( Vector3 ( 0 , 0 , 1 ), Math_PI * 0.5 ) );
461+ DisplayServerIOS::get_singleton ()->update_accelerometer (Vector3 (acceleration.x + gravity.x , acceleration.y + gravity.y , acceleration.z + gravity.z ). rotated ( Vector3 ( 0 , 0 , 1 ), Math_PI * 0.5 ) );
462+ DisplayServerIOS::get_singleton ()->update_magnetometer (Vector3 ( magnetic.x , magnetic.y , magnetic.z ). rotated ( Vector3 ( 0 , 0 , 1 ), Math_PI * 0.5 ) );
463+ DisplayServerIOS::get_singleton ()->update_gyroscope (Vector3 ( rotation.x , rotation.y , rotation.z ). rotated ( Vector3 ( 0 , 0 , 1 ), Math_PI * 0.5 ) );
464464 } break ;
465465 case UIInterfaceOrientationPortraitUpsideDown: {
466- DisplayServerIOS::get_singleton ()->update_gravity (- gravity.x , gravity.y , gravity.z );
467- DisplayServerIOS::get_singleton ()->update_accelerometer (- (acceleration.x + gravity.x ), ( acceleration.y + gravity.y ) , acceleration.z + gravity.z );
468- DisplayServerIOS::get_singleton ()->update_magnetometer (- magnetic.x , magnetic.y , magnetic.z );
469- DisplayServerIOS::get_singleton ()->update_gyroscope (- rotation.x , rotation.y , rotation.z );
466+ DisplayServerIOS::get_singleton ()->update_gravity (Vector3 ( gravity.x , gravity.y , gravity.z ). rotated ( Vector3 ( 0 , 0 , 1 ), Math_PI) );
467+ DisplayServerIOS::get_singleton ()->update_accelerometer (Vector3 (acceleration.x + gravity.x , acceleration.y + gravity.y , acceleration.z + gravity.z ). rotated ( Vector3 ( 0 , 0 , 1 ), Math_PI) );
468+ DisplayServerIOS::get_singleton ()->update_magnetometer (Vector3 ( magnetic.x , magnetic.y , magnetic.z ). rotated ( Vector3 ( 0 , 0 , 1 ), Math_PI) );
469+ DisplayServerIOS::get_singleton ()->update_gyroscope (Vector3 ( rotation.x , rotation.y , rotation.z ). rotated ( Vector3 ( 0 , 0 , 1 ), Math_PI) );
470470 } break ;
471471 default : { // assume portrait
472- DisplayServerIOS::get_singleton ()->update_gravity (gravity.x , gravity.y , gravity.z );
473- DisplayServerIOS::get_singleton ()->update_accelerometer (acceleration.x + gravity.x , acceleration.y + gravity.y , acceleration.z + gravity.z );
474- DisplayServerIOS::get_singleton ()->update_magnetometer (magnetic.x , magnetic.y , magnetic.z );
475- DisplayServerIOS::get_singleton ()->update_gyroscope (rotation.x , rotation.y , rotation.z );
472+ DisplayServerIOS::get_singleton ()->update_gravity (Vector3 ( gravity.x , gravity.y , gravity.z ) );
473+ DisplayServerIOS::get_singleton ()->update_accelerometer (Vector3 ( acceleration.x + gravity.x , acceleration.y + gravity.y , acceleration.z + gravity.z ) );
474+ DisplayServerIOS::get_singleton ()->update_magnetometer (Vector3 ( magnetic.x , magnetic.y , magnetic.z ) );
475+ DisplayServerIOS::get_singleton ()->update_gyroscope (Vector3 ( rotation.x , rotation.y , rotation.z ) );
476476 } break ;
477477 }
478478}
0 commit comments