[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