SH-92 Fix for busted bounding boxes for mirrored meshes.
parent
2ca8a4865a
commit
ed29cac3a1
|
|
@ -2320,12 +2320,6 @@ bool LLVolume::unpackVolumeFaces(std::istream& is, S32 size)
|
|||
pos_range.setSub(max_pos, min_pos);
|
||||
LLVector2 tc_range = max_tc - min_tc;
|
||||
|
||||
LLVector4a& min = face.mExtents[0];
|
||||
LLVector4a& max = face.mExtents[1];
|
||||
|
||||
min.clear();
|
||||
max.clear();
|
||||
|
||||
LLVector4a* pos_out = face.mPositions;
|
||||
LLVector4a* norm_out = face.mNormals;
|
||||
LLVector2* tc_out = face.mTexCoords;
|
||||
|
|
@ -2339,17 +2333,6 @@ bool LLVolume::unpackVolumeFaces(std::istream& is, S32 size)
|
|||
pos_out->mul(pos_range);
|
||||
pos_out->add(min_pos);
|
||||
|
||||
if (j == 0)
|
||||
{
|
||||
min = *pos_out;
|
||||
max = min;
|
||||
}
|
||||
else
|
||||
{
|
||||
min.setMin(min, *pos_out);
|
||||
max.setMax(max, *pos_out);
|
||||
}
|
||||
|
||||
pos_out++;
|
||||
|
||||
U16* n = (U16*) &(norm[j*3*2]);
|
||||
|
|
@ -2426,6 +2409,19 @@ bool LLVolume::unpackVolumeFaces(std::istream& is, S32 size)
|
|||
}
|
||||
}
|
||||
|
||||
//calculate bounding box
|
||||
LLVector4a& min = face.mExtents[0];
|
||||
LLVector4a& max = face.mExtents[1];
|
||||
|
||||
min.clear();
|
||||
max.clear();
|
||||
min = max = face.mPositions[0];
|
||||
|
||||
for (S32 i = 1; i < face.mNumVertices; ++i)
|
||||
{
|
||||
min.setMin(min, face.mPositions[i]);
|
||||
max.setMax(max, face.mPositions[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue