V3 mesh, texture, and hover merge.
This commit is contained in:
@@ -576,8 +576,6 @@ BOOL LLAvatarAppearance::setupBone(const LLAvatarBoneInfo* info, LLJoint* parent
|
||||
info->mRot.mV[VZ], LLQuaternion::XYZ));
|
||||
joint->setScale(info->mScale);
|
||||
|
||||
joint->setDefaultFromCurrentXform();
|
||||
|
||||
if (info->mIsJoint)
|
||||
{
|
||||
joint->setSkinOffset( info->mPivot );
|
||||
@@ -677,6 +675,42 @@ void LLAvatarAppearance::clearSkeleton()
|
||||
mSkeleton.clear();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// addPelvisFixup
|
||||
//------------------------------------------------------------------------
|
||||
void LLAvatarAppearance::addPelvisFixup( F32 fixup, const LLUUID& mesh_id )
|
||||
{
|
||||
LLVector3 pos(0.0,0.0,fixup);
|
||||
mPelvisFixups.add(mesh_id,pos);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// addPelvisFixup
|
||||
//------------------------------------------------------------------------
|
||||
void LLAvatarAppearance::removePelvisFixup( const LLUUID& mesh_id )
|
||||
{
|
||||
mPelvisFixups.remove(mesh_id);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// hasPelvisFixup
|
||||
//------------------------------------------------------------------------
|
||||
bool LLAvatarAppearance::hasPelvisFixup( F32& fixup, LLUUID& mesh_id ) const
|
||||
{
|
||||
LLVector3 pos;
|
||||
if (mPelvisFixups.findActiveOverride(mesh_id,pos))
|
||||
{
|
||||
fixup = pos[2];
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool LLAvatarAppearance::hasPelvisFixup( F32& fixup ) const
|
||||
{
|
||||
LLUUID mesh_id;
|
||||
return hasPelvisFixup( fixup, mesh_id );
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
// LLAvatarAppearance::buildCharacter()
|
||||
// Deferred initialization and rebuild of the avatar.
|
||||
|
||||
@@ -159,11 +159,17 @@ protected:
|
||||
BOOL mIsBuilt; // state of deferred character building
|
||||
typedef std::vector<LLAvatarJoint*> avatar_joint_list_t;
|
||||
avatar_joint_list_t mSkeleton;
|
||||
|
||||
LLPosOverrideMap mPelvisFixups;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Pelvis height adjustment members.
|
||||
//--------------------------------------------------------------------
|
||||
public:
|
||||
void addPelvisFixup( F32 fixup, const LLUUID& mesh_id );
|
||||
void removePelvisFixup( const LLUUID& mesh_id );
|
||||
bool hasPelvisFixup( F32& fixup, LLUUID& mesh_id ) const;
|
||||
bool hasPelvisFixup( F32& fixup ) const;
|
||||
|
||||
LLVector3 mBodySize;
|
||||
LLVector3 mAvatarOffset;
|
||||
protected:
|
||||
|
||||
@@ -85,8 +85,6 @@ LLSkinJoint::~LLSkinJoint()
|
||||
//-----------------------------------------------------------------------------
|
||||
void LLSkinJoint::setupSkinJoint( LLJoint *joint)
|
||||
{
|
||||
mRootToJointSkinOffset.clearVec();
|
||||
mRootToParentJointSkinOffset.clearVec();
|
||||
|
||||
// find the named joint
|
||||
if (!(mJoint = joint))
|
||||
@@ -96,6 +94,9 @@ void LLSkinJoint::setupSkinJoint( LLJoint *joint)
|
||||
}
|
||||
|
||||
// compute the inverse root skin matrix
|
||||
mRootToJointSkinOffset.clearVec();
|
||||
mRootToParentJointSkinOffset.clearVec();
|
||||
|
||||
do
|
||||
{
|
||||
mRootToJointSkinOffset -= joint->getSkinOffset();
|
||||
|
||||
Reference in New Issue
Block a user