From: Leandro Dorileo Date: Tue, 11 Dec 2012 21:11:12 +0000 (+0000) Subject: EPhysics: fix issues with force application X-Git-Tag: submit/devel/efl/20131022.203902~2901 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2ccf6d2a119fc3c31851114aa19bef3f42e6e8cf;p=platform%2Fupstream%2Fefl.git EPhysics: fix issues with force application This patch fixes the forces apply, the current implementation will never apply it. We're also applying rate twice, get rid of rate on forces_apply function. SVN revision: 80719 --- diff --git a/legacy/ephysics/src/lib/ephysics_body.cpp b/legacy/ephysics/src/lib/ephysics_body.cpp index 5fde811..576c2b8 100644 --- a/legacy/ephysics/src/lib/ephysics_body.cpp +++ b/legacy/ephysics/src/lib/ephysics_body.cpp @@ -544,6 +544,11 @@ _ephysics_body_forces_update(EPhysics_Body *body) body->force.torque_y = body->rigid_body->getTotalTorque().getY(); body->force.torque_z = body->rigid_body->getTotalTorque().getZ(); body->rigid_body->clearForces(); + + DBG("forces updated: %lf, %lf, %lf", body->force.x, body->force.y, + body->force.z); + DBG("torque updated: %lf, %lf, %lf", body->force.torque_x, + body->force.torque_y, body->force.torque_z); } static inline void @@ -1683,18 +1688,18 @@ _ephysics_body_outside_render_area_check(EPhysics_Body *body) void ephysics_body_forces_apply(EPhysics_Body *body) { - double rate; - if (!((body->force.x) || (body->force.y) || (body->force.z) || (body->force.torque_x) || (body->force.torque_y) || (body->force.torque_z))) - return; + return; + + DBG("body: %p, applying forces: %lf, %lf, %lf", body, body->force.x, + body->force.y, body->force.z); - rate = ephysics_world_rate_get(body->world); ephysics_body_activate(body, EINA_TRUE); - body->rigid_body->applyCentralForce(btVector3(body->force.x / rate, - body->force.y / rate, - body->force.z / rate)); + body->rigid_body->applyCentralForce(btVector3(body->force.x, + body->force.y, + body->force.z)); body->rigid_body->applyTorque(btVector3(body->force.torque_x, body->force.torque_y, body->force.torque_z));