summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rwxr-xr-xindra/newview/llfloatermodelpreview.cpp12
-rw-r--r--indra/newview/llfloatermodelpreview.h6
2 files changed, 11 insertions, 7 deletions
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index 99256e1dc1..3da0c795d5 100755
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -386,7 +386,8 @@ LLFloaterModelPreview::~LLFloaterModelPreview()
sInstance = NULL;
const LLModelLoader *model_loader = mModelPreview->mModelLoader;
- if (model_loader && model_loader->mResetJoints)
+
+ if ( mModelPreview && mModelPreview->getResetJointFlag() )
{
gAgentAvatarp->resetJointPositions();
}
@@ -394,7 +395,7 @@ LLFloaterModelPreview::~LLFloaterModelPreview()
if ( mModelPreview )
{
- delete mModelPreview;
+ delete mModelPreview;
}
if (mGLName)
@@ -992,7 +993,7 @@ void LLFloaterModelPreview::onMouseCaptureLostModelPreview(LLMouseHandler* handl
// LLModelLoader
//-----------------------------------------------------------------------------
LLModelLoader::LLModelLoader(std::string filename, S32 lod, LLModelPreview* preview)
-: LLThread("Model Loader"), mFilename(filename), mLod(lod), mPreview(preview), mFirstTransform(TRUE), mResetJoints( FALSE )
+: LLThread("Model Loader"), mFilename(filename), mLod(lod), mPreview(preview), mFirstTransform(TRUE)
{
mJointMap["mPelvis"] = "mPelvis";
mJointMap["mTorso"] = "mTorso";
@@ -1566,14 +1567,14 @@ bool LLModelLoader::doLoadModel()
mPreview->setRigValid( doesJointArrayContainACompleteRig( model->mSkinInfo.mJointNames ) );
if ( !skeletonWithNoRootNode && !model->mSkinInfo.mJointNames.empty() && mPreview->isRigValid() )
{
- mResetJoints = true;
+ mPreview->setResetJointFlag( true );
}
if ( !missingSkeletonOrScene )
{
//Set the joint translations on the avatar - if it's a full mapping
//The joints are reset in the dtor
- if ( mResetJoints )
+ if ( mPreview->getResetJointFlag() )
{
std::map<std::string, std::string> :: const_iterator masterJointIt = mJointMap.begin();
std::map<std::string, std::string> :: const_iterator masterJointItEnd = mJointMap.end();
@@ -2438,6 +2439,7 @@ LLModelPreview::LLModelPreview(S32 width, S32 height, LLFloater* fmp)
: LLViewerDynamicTexture(width, height, 3, ORDER_MIDDLE, FALSE), LLMutex(NULL)
, mPelvisZOffset( 0.0f )
, mRigValid( false )
+, mResetJoints( false )
{
mNeedsUpdate = TRUE;
mCameraDistance = 0.f;
diff --git a/indra/newview/llfloatermodelpreview.h b/indra/newview/llfloatermodelpreview.h
index 6542ed4fbe..3fcc1b3e57 100644
--- a/indra/newview/llfloatermodelpreview.h
+++ b/indra/newview/llfloatermodelpreview.h
@@ -126,7 +126,6 @@ public:
//map of avatar joints as named in COLLADA assets to internal joint names
std::map<std::string, std::string> mJointMap;
std::deque<std::string> mMasterJointList;
- bool mResetJoints;
};
class LLFloaterModelPreview : public LLFloater
@@ -310,6 +309,9 @@ public:
void setLoadState( U32 state ) { mLoadState = state; }
U32 getLoadState() { return mLoadState; }
+ void setResetJointFlag( bool state ) { mResetJoints = state; }
+ bool getResetJointFlag( void ) { return mResetJoints; }
+
protected:
friend class LLModelLoader;
friend class LLFloaterModelPreview;
@@ -336,7 +338,7 @@ public:
std::string mLODFile[LLModel::NUM_LODS];
bool mLoading;
U32 mLoadState;
-
+ bool mResetJoints;
std::map<std::string, bool> mViewOption;
//GLOD object parameters (must rebuild object if these change)