EPhysics: consider gravity on forces getter

SVN revision: 75479
This commit is contained in:
Bruno Dilly 2012-08-20 22:17:34 +00:00
parent 335dcc1165
commit 80f7e6307c
2 changed files with 7 additions and 4 deletions

View File

@ -2444,7 +2444,8 @@ EAPI void ephysics_body_force_apply(EPhysics_Body *body, double x, double y, Eva
* @brief * @brief
* Get physics body forces. * Get physics body forces.
* *
* Get all the forces applied over a body. * Get all the forces applied over a body, including gravity.
* Damping is not considered.
* *
* @param body The physics body. * @param body The physics body.
* @param x The axis x component of total force. * @param x The axis x component of total force.
@ -2455,6 +2456,7 @@ EAPI void ephysics_body_force_apply(EPhysics_Body *body, double x, double y, Eva
* @see ephysics_body_central_force_apply(). * @see ephysics_body_central_force_apply().
* @see ephysics_body_torque_apply(). * @see ephysics_body_torque_apply().
* @see ephysics_body_forces_clear(). * @see ephysics_body_forces_clear().
* @see ephysics_world_gravity_set().
* *
* @ingroup EPhysics_Body * @ingroup EPhysics_Body
*/ */

View File

@ -1461,7 +1461,7 @@ ephysics_body_torque_apply(EPhysics_Body *body, double torque)
EAPI void EAPI void
ephysics_body_forces_get(const EPhysics_Body *body, double *x, double *y, double *torque) ephysics_body_forces_get(const EPhysics_Body *body, double *x, double *y, double *torque)
{ {
double rate; double rate, gx, gy;
if (!body) if (!body)
{ {
@ -1470,9 +1470,10 @@ ephysics_body_forces_get(const EPhysics_Body *body, double *x, double *y, double
} }
rate = ephysics_world_rate_get(body->world); rate = ephysics_world_rate_get(body->world);
ephysics_world_gravity_get(body->world, &gx, &gy);
if (x) *x = body->force.x * rate; if (x) *x = body->force.x * rate + gx;
if (y) *y = body->force.y * rate; if (y) *y = body->force.y * rate + gy;
if (torque) *torque = -body->force.torque; if (torque) *torque = -body->force.torque;
} }