diff options
| author | prep <prep@lindenlab.com> | 2011-03-30 16:04:36 -0400 | 
|---|---|---|
| committer | prep <prep@lindenlab.com> | 2011-03-30 16:04:36 -0400 | 
| commit | 69789e40d9df7a13913a88bc02316e8bbc4a4dac (patch) | |
| tree | a78a5ef317aef42f7757c365abd8d365ce00a0e5 | |
| parent | 5aeac734bcfe92364a982dc31dcd6d483df25eac (diff) | |
Moved joint reset flag into model preview
| -rwxr-xr-x | indra/newview/llfloatermodelpreview.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/llfloatermodelpreview.h | 6 | 
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) | 
