[Opensim-dev] llSetHoverHeight
Michael Cortez
mcortez at gmail.com
Thu Mar 5 05:12:12 UTC 2009
I just noticed that the llSetHoverHeight() method uses PhysicsActor
PIDTarget/Tau/Active which is the same interface to the physics engine
that is used for llMoveTo().
This creates a problem because, llSetHoverHeight() should only dampen a
body's Z axis, not all three -- which is what the current implementation
of MoveTo and the PIDTarget/Tau combination does. Thus if you use
llSetHoverHeight() the object not only hovers at the correct height, but
is now also immobile as it'll try to spring back to that position if moved.
I suspect but have not tested yet, that conditionally not executing
lines 1548 & 1649 in ODEPrim.cs would create the proper effect for
llSetHoverHeight ().
It would probably be a good idea to have llMoveTo() and
llSetHoverHeight() be mutually exclusive, so perhaps adding another flag
to PhysicsActor for PIDHover {True/False}, and then using that in the
various physics implementations to signal when only the Z axis should be
used.
Thoughts?
--
Mike
More information about the Opensim-dev
mailing list