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)


_______________________________________________
Opensim-dev mailing list
[email protected]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev

Reply via email to