diff options
author | Dave Parks <davep@lindenlab.com> | 2011-06-06 18:20:25 -0500 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2011-06-06 18:20:25 -0500 |
commit | c4b7728f0ef19efcaef02ccabf7d98f5b340cfd3 (patch) | |
tree | 8a2992890a7315b30c5aa3914d7f3aa27cd64a63 /indra | |
parent | 86d6c3f196af3f40bcd4fc62c7828476c7a9d037 (diff) | |
parent | aa21ad59aa1540be1839f0403b5a1291b86a74b3 (diff) |
merge
Diffstat (limited to 'indra')
-rw-r--r-- | indra/llmath/llvolume.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp index 3c1de3a422..f473a708cd 100644 --- a/indra/llmath/llvolume.cpp +++ b/indra/llmath/llvolume.cpp @@ -2419,12 +2419,25 @@ bool LLVolume::unpackVolumeFaces(std::istream& is, S32 size) for (U32 i = 0; i < face_count; ++i) { + LLVolumeFace& face = mVolumeFaces[i]; + + if (mdl[i].has("NoGeometry")) + { //face has no geometry, continue + face.resizeIndices(3); + face.resizeVertices(1); + memset(face.mPositions, 0, sizeof(LLVector4a)); + memset(face.mNormals, 0, sizeof(LLVector4a)); + memset(face.mTexCoords, 0, sizeof(LLVector2)); + memset(face.mIndices, 0, sizeof(U16)*3); + continue; + } + LLSD::Binary pos = mdl[i]["Position"]; LLSD::Binary norm = mdl[i]["Normal"]; LLSD::Binary tc = mdl[i]["TexCoord0"]; LLSD::Binary idx = mdl[i]["TriangleList"]; - LLVolumeFace& face = mVolumeFaces[i]; + //copy out indices face.resizeIndices(idx.size()/2); |