diff options
| author | Dave Parks <davep@lindenlab.com> | 2010-08-25 14:48:18 -0500 |
|---|---|---|
| committer | Dave Parks <davep@lindenlab.com> | 2010-08-25 14:48:18 -0500 |
| commit | 2f012dd34f01b359c487c778cbf8842eb419e7c3 (patch) | |
| tree | 2682cf545422d6656a0635bc6a28cba1b797dc66 /indra/newview/llviewercamera.cpp | |
| parent | 6fbc79d5e861085375d776a4da4a5921650b3115 (diff) | |
| parent | 314a89535791e1e5a0c3f4d901c9c1d16fb9b6cc (diff) | |
merge
Diffstat (limited to 'indra/newview/llviewercamera.cpp')
| -rw-r--r-- | indra/newview/llviewercamera.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/indra/newview/llviewercamera.cpp b/indra/newview/llviewercamera.cpp index aa82c216d9..917185ed04 100644 --- a/indra/newview/llviewercamera.cpp +++ b/indra/newview/llviewercamera.cpp @@ -38,6 +38,7 @@ // Viewer includes #include "llagent.h" #include "llagentcamera.h" +#include "llmatrix4a.h" #include "llviewercontrol.h" #include "llviewerobjectlist.h" #include "llviewerregion.h" @@ -787,21 +788,29 @@ BOOL LLViewerCamera::areVertsVisible(LLViewerObject* volumep, BOOL all_verts) LLMatrix4 render_mat(vo_volume->getRenderRotation(), LLVector4(vo_volume->getRenderPosition())); + LLMatrix4a render_mata; + render_mata.loadu(render_mat); + LLMatrix4a mata; + mata.loadu(mat); + num_faces = volume->getNumVolumeFaces(); for (i = 0; i < num_faces; i++) { const LLVolumeFace& face = volume->getVolumeFace(i); - for (U32 v = 0; v < face.mVertices.size(); v++) + for (U32 v = 0; v < face.mNumVertices; v++) { - LLVector4 vec = LLVector4(face.mVertices[v].mPosition) * mat; + const LLVector4a& src_vec = face.mPositions[v]; + LLVector4a vec; + mata.affineTransform(src_vec, vec); if (drawablep->isActive()) { - vec = vec * render_mat; + LLVector4a t = vec; + render_mata.affineTransform(t, vec); } - BOOL in_frustum = pointInFrustum(LLVector3(vec)) > 0; + BOOL in_frustum = pointInFrustum(LLVector3(vec.getF32ptr())) > 0; if (( !in_frustum && all_verts) || (in_frustum && !all_verts)) |
