summaryrefslogtreecommitdiff
path: root/indra/llprimitive
diff options
context:
space:
mode:
authorLoren Shih <seraph@lindenlab.com>2011-05-19 12:53:18 -0400
committerLoren Shih <seraph@lindenlab.com>2011-05-19 12:53:18 -0400
commit1c65b8fa44cecea8f38b9944930cbed60d075528 (patch)
tree2074515c6ed03c0d8fa2b7e5a912d3bb810bf520 /indra/llprimitive
parentd8183a71d40da61635c05b933368f43b7d4f2a80 (diff)
parent66554e2124dc87f61089bf96e2fe9ee5c32613d7 (diff)
automated merge mesh-development -> mesh-development
Diffstat (limited to 'indra/llprimitive')
-rw-r--r--indra/llprimitive/llmodel.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp
index 794cdb83d5..57ac7a143f 100644
--- a/indra/llprimitive/llmodel.cpp
+++ b/indra/llprimitive/llmodel.cpp
@@ -991,6 +991,9 @@ void LLModel::normalizeVolumeFaces()
scale.splat(1.f);
scale.div(size);
+ LLVector4a inv_scale(1.f);
+ inv_scale.div(scale);
+
for (U32 i = 0; i < mVolumeFaces.size(); ++i)
{
LLVolumeFace& face = mVolumeFaces[i];
@@ -1007,10 +1010,14 @@ void LLModel::normalizeVolumeFaces()
// For all the positions, we scale
// the positions to fit within the unit cube.
LLVector4a* pos = (LLVector4a*) face.mPositions;
+ LLVector4a* norm = (LLVector4a*) face.mNormals;
+
for (U32 j = 0; j < face.mNumVertices; ++j)
{
pos[j].add(trans);
pos[j].mul(scale);
+ norm[j].mul(inv_scale);
+ norm[j].normalize3();
}
}