forked from enlightenment/efl
EPhysics: fix rate set implementation
Update everything that depends on rate: - worlds - bodies - constraints SVN revision: 75335
This commit is contained in:
parent
8b5737d2df
commit
a3f12a0ae0
|
@ -752,6 +752,11 @@ ephysics_world_gravity_get(const EPhysics_World *world, double *gx, double *gy)
|
||||||
EAPI void
|
EAPI void
|
||||||
ephysics_world_rate_set(EPhysics_World *world, double rate)
|
ephysics_world_rate_set(EPhysics_World *world, double rate)
|
||||||
{
|
{
|
||||||
|
EPhysics_Body *body;
|
||||||
|
void *constraint;
|
||||||
|
double gx, gy;
|
||||||
|
Eina_List *l;
|
||||||
|
|
||||||
if (!world)
|
if (!world)
|
||||||
{
|
{
|
||||||
ERR("No world, can't set rate.");
|
ERR("No world, can't set rate.");
|
||||||
|
@ -765,7 +770,16 @@ ephysics_world_rate_set(EPhysics_World *world, double rate)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME update objects considering new rate */
|
/* Force to recalculate sizes, velocities and accelerations with new rate */
|
||||||
|
ephysics_world_gravity_get(world, &gx, &gy);
|
||||||
|
_ephysics_world_gravity_set(world, gx, gy, rate);
|
||||||
|
|
||||||
|
EINA_INLIST_FOREACH(world->bodies, body)
|
||||||
|
ephysics_body_recalc(body, rate);
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(world->constraints, l, constraint)
|
||||||
|
ephysics_constraint_recalc((EPhysics_Constraint *)constraint, rate);
|
||||||
|
|
||||||
world->rate = rate;
|
world->rate = rate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue