summaryrefslogtreecommitdiff
path: root/indra/llmath
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2011-06-08 20:20:14 -0500
committerDave Parks <davep@lindenlab.com>2011-06-08 20:20:14 -0500
commit875ce844af0f16c08726445353a6efc25710aef3 (patch)
tree54f8c9425b00021e12dc850c7cff36ba6cf6ec53 /indra/llmath
parent7f36558d80d526502d8be3693b2ba0e8f09314c9 (diff)
parentfc2e76fafcb579cecc06dfbd67b9962314cc22fa (diff)
merge
Diffstat (limited to 'indra/llmath')
-rw-r--r--indra/llmath/llvolume.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp
index 53f73d8637..618b056768 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);