diff options
| author | andreykproductengine <akleshchev@productengine.com> | 2015-05-18 17:55:34 +0300 | 
|---|---|---|
| committer | andreykproductengine <akleshchev@productengine.com> | 2015-05-18 17:55:34 +0300 | 
| commit | 695ff76cb79598fd8e3402f797924f265ebbda1e (patch) | |
| tree | 7a6f5bcee739c4d7c4ce7f558765ea35002fad6c /indra/newview | |
| parent | 9e2eca1a8c64bcc90f71870b034bccdd1fdd57ab (diff) | |
MAINT-5214 FIXED physics layer isn't shown in the Preview Window while uploading model
Diffstat (limited to 'indra/newview')
| -rwxr-xr-x | indra/newview/llfloatermodelpreview.cpp | 20 | ||||
| -rwxr-xr-x | indra/newview/llfloatermodelpreview.h | 1 | 
2 files changed, 20 insertions, 1 deletions
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index d13db542d7..2e3e3aa239 100755 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -457,6 +457,11 @@ void LLFloaterModelPreview::disableViewOption(const std::string& option)  void LLFloaterModelPreview::loadModel(S32 lod)  {  	mModelPreview->mLoading = true; +	if (lod == LLModel::LOD_PHYSICS) +	{ +		// loading physics from file +		mModelPreview->mPhysicsSearchLOD = lod; +	}  	(new LLMeshFilePicker(mModelPreview, lod))->getFile();  } @@ -1167,6 +1172,7 @@ LLModelPreview::LLModelPreview(S32 width, S32 height, LLFloater* fmp)  , mPelvisZOffset( 0.0f )  , mLegacyRigValid( false )  , mRigValidJointUpload( false ) +, mPhysicsSearchLOD( LLModel::LOD_PHYSICS )  , mResetJoints( false )  , mModelNoErrors( true )  , mRigParityWithScene( false ) @@ -1416,8 +1422,19 @@ void LLModelPreview::rebuildUploadData()  					std::string name_to_match = instance.mLabel;  					llassert(!name_to_match.empty()); +					int extensionLOD; +					if (i != LLModel::LOD_PHYSICS || mModel[LLModel::LOD_PHYSICS].empty()) +					{ +						extensionLOD = i; +					} +					else +					{ +						//Physics can be inherited from other LODs or loaded, so we need to adjust what extension we are searching for +						extensionLOD = mPhysicsSearchLOD; +					} +  					std::string toAdd; -					switch (i) +					switch (extensionLOD)  					{  					case LLModel::LOD_IMPOSTOR: toAdd = "_LOD0"; break;  					case LLModel::LOD_LOW:      toAdd = "_LOD1"; break; @@ -1776,6 +1793,7 @@ void LLModelPreview::setPhysicsFromLOD(S32 lod)  	if (lod >= 0 && lod <= 3)  	{ +		mPhysicsSearchLOD = lod;  		mModel[LLModel::LOD_PHYSICS] = mModel[lod];  		mScene[LLModel::LOD_PHYSICS] = mScene[lod];  		mLODFile[LLModel::LOD_PHYSICS].clear(); diff --git a/indra/newview/llfloatermodelpreview.h b/indra/newview/llfloatermodelpreview.h index e101a6f21e..7a518c798b 100755 --- a/indra/newview/llfloatermodelpreview.h +++ b/indra/newview/llfloatermodelpreview.h @@ -341,6 +341,7 @@ private:  	LLVector3	mPreviewTarget;  	LLVector3	mPreviewScale;  	S32			mPreviewLOD; +	S32			mPhysicsSearchLOD;  	U32			mResourceCost;  	std::string mLODFile[LLModel::NUM_LODS];  	bool		mLoading;  | 
