summaryrefslogtreecommitdiff
path: root/indra/newview/llvoavatar.cpp
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2016-05-11 16:08:25 -0400
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2016-05-11 16:08:25 -0400
commit182f2a48159e231149227e1cd606b3d7ead04dcd (patch)
tree4614820b9b22e88bb5f01b67eca3b0b7be08803a /indra/newview/llvoavatar.cpp
parent41bdfe07bba897aa3217c760b3539f8b7288bab5 (diff)
SL-315 - resetSkeleton(), working for bones at least partially, still some issues with collision volumes
Diffstat (limited to 'indra/newview/llvoavatar.cpp')
-rwxr-xr-xindra/newview/llvoavatar.cpp48
1 files changed, 41 insertions, 7 deletions
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 37c5e84347..e82f24a069 100755
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -1802,22 +1802,56 @@ void LLVOAvatar::buildCharacter()
}
//-----------------------------------------------------------------------------
-// resetSkeleton()
+// resetVisualParams()
//-----------------------------------------------------------------------------
void LLVOAvatar::resetVisualParams()
{
+ // SKELETAL DISTORTIONS
+ {
+ LLAvatarXmlInfo::skeletal_distortion_info_list_t::iterator iter;
+ for (iter = sAvatarXmlInfo->mSkeletalDistortionInfoList.begin();
+ iter != sAvatarXmlInfo->mSkeletalDistortionInfoList.end();
+ ++iter)
+ {
+ LLPolySkeletalDistortionInfo *info = (LLPolySkeletalDistortionInfo*)*iter;
+ LLPolySkeletalDistortion *param = dynamic_cast<LLPolySkeletalDistortion*>(getVisualParam(info->getID()));
+ *param = LLPolySkeletalDistortion(this);
+ llassert(param);
+ if (!param->setInfo(info))
+ {
+ llassert(false);
+ }
+ }
+ }
#if 0
- for (LLVisualParam *param = getFirstVisualParam();
- param;
- param = getNextVisualParam())
+ // avatar_lad.xml : <driver_parameters>
+ for (LLAvatarXmlInfo::driver_info_list_t::iterator iter = sAvatarXmlInfo->mDriverInfoList.begin();
+ iter != sAvatarXmlInfo->mDriverInfoList.end();
+ ++iter)
{
- if (param->isAnimating())
+ LLDriverParamInfo *info = *iter;
+ LLDriverParam* driver_param = new LLDriverParam( this );
+ if (driver_param->setInfo(info))
{
- continue;
+ addVisualParam( driver_param );
+ driver_param->setParamLocation(isSelf() ? LOC_AV_SELF : LOC_AV_OTHER);
+ LLVisualParam*(LLAvatarAppearance::*avatar_function)(S32)const = &LLAvatarAppearance::getVisualParam;
+ if( !driver_param->linkDrivenParams(boost::bind(avatar_function,(LLAvatarAppearance*)this,_1 ), false))
+ {
+ LL_WARNS() << "could not link driven params for avatar " << getID().asString() << " param id: " << driver_param->getID() << LL_ENDL;
+ continue;
+ }
+ }
+ else
+ {
+ delete driver_param;
+ LL_WARNS() << "avatar file: driver_param->parseData() failed" << LL_ENDL;
+ return FALSE;
}
- param->setLastWeight(param->getDefaultWeight());
}
#endif
+
+
}
//-----------------------------------------------------------------------------