#86 New auto disable feature "teeter_factor"

open
nobody
7
2012-09-14
2006-11-03
Chris
No

The idea is, that if a box teeters, it has a very low
average velocity, but is still moving/rotating!
To avoid it from disabling, the auto-disable handler
checks, if the body has less or equal than 2
contactjoint, and then, the "teeter - totter" -
situation appears. bodys in teetering conditions has an
additional factor, which affects all thresholds.
this is, because teetering bodys needs a lower
threshold, to avoid disabling them to soon.

This patch adds the feature to the revision 1127!

the API gets four new functions:

ODE_API dReal dBodyGetAutoDisableTeeterFactor (dBodyID);
ODE_API void dBodySetAutoDisableTeeterFactor (dBodyID,
dReal teeter_factor);
ODE_API dReal dWorldGetAutoDisableTeeterFactor (dWorldID);
ODE_API void dWorldSetAutoDisableTeeterFactor
(dWorldID, dReal teeter_factor );

by default the teeter_factor is 1, this means, that
teeter-feature is like disabled.

this patch fixes also a little bug:
the "not freeze in mid-air"-check is now only for
contactjoints, other joints are ignored.

If you know a better name than "teeter", please replace
it ;-)

cheers

Christoph

Discussion