forked from enlightenment/efl
EPhysics: fix issues with rotation
We must convert degrees to radians wherever operating with angles. SVN revision: 80718
This commit is contained in:
parent
44a9b9a350
commit
2e8fcf0a23
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue