EPhysics: fix issues with rotation

We must convert degrees to radians wherever operating with angles.


SVN revision: 80718
This commit is contained in:
Leandro Dorileo 2012-12-11 21:11:07 +00:00
parent 44a9b9a350
commit 2e8fcf0a23
2 changed files with 5 additions and 5 deletions

View File

@ -20,7 +20,7 @@ _mouse_move_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void
ry = mmove->cur.output.x - mmove->prev.output.x;
ephysics_body_rotation_get(body, &quat_prev);
ephysics_quaternion_euler_set(&quat_delta, -ry * 0.06, - rx * 0.04, 0);
ephysics_quaternion_euler_set(&quat_delta, -ry * 3.43, - rx * 2.29, 0);
ephysics_quaternion_multiply(&quat_prev, &quat_delta, &quat);
ephysics_body_rotation_set(body, &quat);
}

View File

@ -80,7 +80,7 @@ ephysics_quaternion_axis_angle_get(const EPhysics_Quaternion *quat, double *nx,
if (nx) *nx = bt_quat.getAxis().getX();
if (ny) *ny = bt_quat.getAxis().getY();
if (nz) *nz = bt_quat.getAxis().getZ();
if (a) *a = bt_quat.getAngle();
if (a) *a = bt_quat.getAngle() * RAD_TO_DEG;
}
EAPI void
@ -111,7 +111,7 @@ ephysics_quaternion_axis_angle_set(EPhysics_Quaternion *quat, double nx, double
}
axis = btVector3(nx, ny, nz);
bt_quat = btQuaternion(axis, a);
bt_quat = btQuaternion(axis, a / RAD_TO_DEG);
_ephysics_quaternion_update(quat, &bt_quat);
}
@ -127,7 +127,7 @@ ephysics_quaternion_euler_set(EPhysics_Quaternion *quat, double yaw, double pitc
}
bt_quat = btQuaternion();
bt_quat.setEuler(yaw, pitch, roll);
bt_quat.setEuler(yaw / RAD_TO_DEG, pitch / RAD_TO_DEG, roll / RAD_TO_DEG);
_ephysics_quaternion_update(quat, &bt_quat);
}
@ -294,7 +294,7 @@ ephysics_quaternion_angle_get(const EPhysics_Quaternion *quat1, const EPhysics_Q
bt_quat1 = btQuaternion(quat1->x, quat1->y, quat1->z, quat1->w);
bt_quat2 = btQuaternion(quat2->x, quat2->y, quat2->z, quat2->w);
return bt_quat1.angle(bt_quat2);
return bt_quat1.angle(bt_quat2) * RAD_TO_DEG;
}
EAPI double