[Opensim-dev] Viewers Avatar Hover and Shape Hover

Leal Duarte ajlduarte at sapo.pt
Tue Sep 24 16:43:02 UTC 2019


Hi,

     Avatar Hover and Shape hover (parameter ID 11001) should be a 
viewer side effect only.

     Most current viewers process them and store the result internally 
on a old variable mAvatarOffset

     Then on llagent.cpp,   LLAgent::sendAgentSetAppearance() (or 
identical function) they add that to the avatar body size calculated 
from the skeleton information.

     This a problem, since 0.9.0.0, at least, that body size is used to 
define the avatar size on its physics representation.

     Adding mAvatarOffset will turn it also a undesired physical change.

     If memory serves me well mAvatarOffset pre-dates hover offsets, and 
was used only for small offsets, needed by avatar havok engine.

the code on some viewers reads: (from alchemy source)

     void LLAgent::sendAgentSetAppearance()

{

...

     // correct for the collision tolerance (to make it look like the
     // agent is actually walking on the ground/object)
     // NOTE -- when we start correcting all of the other Havok geometry
     // to compensate for the COLLISION_TOLERANCE ugliness we will have
     // to tweak this number again
     const LLVector3 body_size = gAgentAvatarp->mBodySize + 
gAgentAvatarp->mAvatarOffset;
     msg->addVector3Fast(_PREHASH_Size, body_size);

...

last lines should be

...

const LLVector3 body_size = gAgentAvatarp->mBodySize;

msg->addVector3Fast(_PREHASH_Size, body_size);

...

possible just

...

msg->addVector3Fast(_PREHASH_Size, gAgentAvatarp->mBodySize);

...


     This code path is only used on non SSA regions , guess now only  
OpenSim ones.


Regards;

Ubit (Leal Duarte)




More information about the Opensim-dev mailing list