SL-704 - more comment review/cleanup, some avatar state handling updated for animated objects.

meow-7.2.2
Brad Payne (Vir Linden) 2017-12-11 21:18:05 +00:00
parent ef264fd82e
commit 6199cecd8b
3 changed files with 12 additions and 13 deletions

View File

@ -113,7 +113,7 @@ void LLControlAvatar::setGlobalScale(F32 scale)
{
F32 adjust_scale = scale/mGlobalScale;
LL_INFOS() << "scale " << scale << " adjustment " << adjust_scale << LL_ENDL;
// AXON - should we be scaling from the pelvis or the root?
// should we be scaling from the pelvis or the root?
recursiveScaleJoint(mPelvisp,adjust_scale);
mGlobalScale = scale;
}
@ -167,7 +167,10 @@ void LLControlAvatar::updateVolumeGeom()
matchVolumeTransform();
// AXON testing scale
// Initial exploration of allowing scaling skeleton to match root
// prim bounding box. If enabled, would probably be controlled by
// an additional checkbox and default to off. Not enabled for
// initial release.
// What should the scale be? What we really want is the ratio
// between the scale at which the object was originally designed

View File

@ -3975,7 +3975,6 @@ void LLVOAvatar::updateRootPositionAndRotation(LLAgent& agent, F32 speed, bool w
root_pos = gAgent.getPosGlobalFromAgent(getRenderPosition());
root_pos.mdV[VZ] += getVisualParamWeight(AVATAR_HOVER);
// AXON need to review mInAir calcs for animated objects, if the value even matters.
LLVector3 normal;
resolveHeightGlobal(root_pos, ground_under_pelvis, normal);
F32 foot_to_ground = (F32) (root_pos.mdV[VZ] - mPelvisToFoot - ground_under_pelvis.mdV[VZ]);
@ -4024,9 +4023,8 @@ void LLVOAvatar::updateRootPositionAndRotation(LLAgent& agent, F32 speed, bool w
//--------------------------------------------------------------------
if (!isControlAvatar() && !isAnyAnimationSignaled(AGENT_NO_ROTATE_ANIMS, NUM_AGENT_NO_ROTATE_ANIMS))
{
// AXON - should we always skip for control avatars?
// Rotation fixups for avatars in motion, some may be
// relevant.
// Rotation fixups for avatars in motion.
// Skip for animated objects.
updateOrientation(agent, speed, delta_time);
}
}
@ -6130,8 +6128,7 @@ void LLVOAvatar::getGround(const LLVector3 &in_pos_agent, LLVector3 &out_pos_age
LLVector3d z_vec(0.0f, 0.0f, 1.0f);
LLVector3d p0_global, p1_global;
// AXON UPDATE FOR CONTROL AVS?
if (mIsDummy)
if (isUIAvatar())
{
outNorm.setVec(z_vec);
out_pos_agent = in_pos_agent;

View File

@ -3357,12 +3357,11 @@ U32 LLVOVolume::getExtendedMeshFlags() const
void LLVOVolume::onSetExtendedMeshFlags(U32 flags)
{
// AXON - the check against isAnySelected() is "empirically
// derived": doing rebuildGeom() while in selection trashes the
// graphics state of animated objects. Skipping this update is OK
// because we get another one on deselect.
if (!getRootEdit()->isAnySelected() && mDrawable.notNull())
// The isAnySelected() check was needed at one point to prevent
// graphics problems. These are now believed to be fixed so the
// check has been disabled.
if (/*!getRootEdit()->isAnySelected() &&*/ mDrawable.notNull())
{
// Need to trigger rebuildGeom(), which is where control avatars get created/removed
getRootEdit()->recursiveMarkForUpdate(TRUE);