[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