Correctly compute inverse_mass when inertia is defined by user

This commit is contained in:
BimDav 2022-11-14 18:22:13 +01:00
parent d80396db03
commit de40dfaac0

View file

@ -44,6 +44,12 @@ void Body2DSW::update_inertias() {
switch (mode) { switch (mode) {
case Physics2DServer::BODY_MODE_RIGID: { case Physics2DServer::BODY_MODE_RIGID: {
if (mass) {
_inv_mass = 1.0 / mass;
} else {
_inv_mass = 0;
}
if (user_inertia) { if (user_inertia) {
_inv_inertia = inertia > 0 ? (1.0 / inertia) : 0; _inv_inertia = inertia > 0 ? (1.0 / inertia) : 0;
break; break;
@ -78,13 +84,6 @@ void Body2DSW::update_inertias() {
} }
_inv_inertia = inertia > 0 ? (1.0 / inertia) : 0; _inv_inertia = inertia > 0 ? (1.0 / inertia) : 0;
if (mass) {
_inv_mass = 1.0 / mass;
} else {
_inv_mass = 0;
}
} break; } break;
case Physics2DServer::BODY_MODE_KINEMATIC: case Physics2DServer::BODY_MODE_KINEMATIC:
case Physics2DServer::BODY_MODE_STATIC: { case Physics2DServer::BODY_MODE_STATIC: {