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,
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
Log in to post a comment.