summaryrefslogtreecommitdiff
path: root/indra/newview/llfloatermodelpreview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfloatermodelpreview.cpp')
-rwxr-xr-xindra/newview/llfloatermodelpreview.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index 3fe5d08bb3..0cdd5b9898 100755
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -318,7 +318,10 @@ LLFloaterModelPreview::~LLFloaterModelPreview()
{
sInstance = NULL;
- gAgentAvatarp->resetJointPositions();
+ if ( mModelPreview->containsRiggedAsset() )
+ {
+ gAgentAvatarp->resetJointPositions();
+ }
delete mModelPreview;
@@ -2461,6 +2464,21 @@ void LLModelPreview::scrubMaterials()
refresh();
}
+bool LLModelPreview::containsRiggedAsset( void )
+{
+ //loop through the models and determine if any of them contained a rigged asset, and if so
+ //return true.
+ //This is used to cleanup the joint positions after a preview.
+ for (LLModelLoader::model_list::iterator iter = mBaseModel.begin(); iter != mBaseModel.end(); ++iter)
+ {
+ LLModel* pModel = *iter;
+ if ( pModel->mAlternateBindMatrix.size() > 0 )
+ {
+ return true;
+ }
+ }
+ return false;
+}
void LLModelPreview::genLODs(S32 which_lod)
{
if (mBaseModel.empty())