summaryrefslogtreecommitdiff
path: root/indra/llprimitive/llmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llprimitive/llmodel.cpp')
-rw-r--r--indra/llprimitive/llmodel.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp
index 15087a7255..4e3e49ec9f 100644
--- a/indra/llprimitive/llmodel.cpp
+++ b/indra/llprimitive/llmodel.cpp
@@ -91,19 +91,15 @@ std::string LLModel::getStatusString(U32 status)
}
-void LLModel::offsetMesh( const LLVector3& pivotPoint )
+void LLModel::offsetMesh(const LLVector3& pivotPoint)
{
- LLVector4a pivot( pivotPoint[VX], pivotPoint[VY], pivotPoint[VZ] );
+ LLVector4a pivot(pivotPoint[VX], pivotPoint[VY], pivotPoint[VZ]);
- for (std::vector<LLVolumeFace>::iterator faceIt = mVolumeFaces.begin(); faceIt != mVolumeFaces.end(); )
+ for (LLVolumeFace& face : mVolumeFaces)
{
- std::vector<LLVolumeFace>:: iterator currentFaceIt = faceIt++;
- LLVolumeFace& face = *currentFaceIt;
- LLVector4a *pos = (LLVector4a*) face.mPositions;
-
- for (S32 i=0; i<face.mNumVertices; ++i )
+ for (S32 i = 0; i < face.mNumVertices; ++i)
{
- pos[i].add( pivot );
+ face.mPositions[i].add(pivot);
}
}
}
@@ -338,7 +334,7 @@ void LLModel::normalizeVolumeFaces()
}
}
-void LLModel::getNormalizedScaleTranslation(LLVector3& scale_out, LLVector3& translation_out)
+void LLModel::getNormalizedScaleTranslation(LLVector3& scale_out, LLVector3& translation_out) const
{
scale_out = mNormalizedScale;
translation_out = mNormalizedTranslation;
@@ -1547,6 +1543,13 @@ void LLMeshSkinInfo::fromLLSD(LLSD& skin)
mLockScaleIfJointPosition = false;
}
+ // combine mBindShapeMatrix and mInvBindMatrix into mBindPoseMatrix
+ mBindPoseMatrix.resize(mInvBindMatrix.size());
+ for (U32 i = 0; i < mInvBindMatrix.size(); ++i)
+ {
+ matMul(mBindShapeMatrix, mInvBindMatrix[i], mBindPoseMatrix[i]);
+ }
+
updateHash();
}