ehysics - fix potential divide by zero

fix CID 1039435
This commit is contained in:
Carsten Haitzler 2014-08-22 19:55:45 +09:00
parent f764b8e644
commit 56dc04b019
1 changed files with 9 additions and 6 deletions

View File

@ -1004,8 +1004,8 @@ _ephysics_body_soft_body_mass_set(EPhysics_Body *body, double mass)
double inverse_mass;
if (body->type == EPHYSICS_BODY_TYPE_SOFT)
body->soft_body->setTotalMass(mass);
else
body->soft_body->setTotalMass(mass);
else if (mass > 0.0)
{
valid_nodes = 0;
for (int i = 0; i < body->soft_body->m_nodes.size(); i++)
@ -1015,12 +1015,15 @@ _ephysics_body_soft_body_mass_set(EPhysics_Body *body, double mass)
valid_nodes++;
}
inverse_mass = 1 / (mass / valid_nodes);
if (body->dragging_data.dragging)
if (valid_nodes > 0)
{
valid_nodes++;
inverse_mass = 1 / (mass / valid_nodes);
body->dragging_data.mass = inverse_mass;
if (body->dragging_data.dragging)
{
valid_nodes++;
inverse_mass = 1 / (mass / valid_nodes);
body->dragging_data.mass = inverse_mass;
}
}
for (int i = 0; i < body->soft_body->m_nodes.size(); i++)