summaryrefslogtreecommitdiff
path: root/indra/llmath/llvolume.cpp
diff options
context:
space:
mode:
authorRichard Linden <none@none>2013-10-08 11:59:24 -0700
committerRichard Linden <none@none>2013-10-08 11:59:24 -0700
commit80dfbbaacd82179e54163ed48b1bc444e3becbd5 (patch)
treeda3858b58b5ec9c34d6eefa60c4fe87fc5743249 /indra/llmath/llvolume.cpp
parentf7158bc5afcec1da8b9d2d5a4ed86921e62d4959 (diff)
parent2eeee8a9491398697a8f3167bc4f715a3970fc3a (diff)
merge from viewer-release
Diffstat (limited to 'indra/llmath/llvolume.cpp')
-rwxr-xr-xindra/llmath/llvolume.cpp109
1 files changed, 54 insertions, 55 deletions
diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp
index 2b865b4a8e..699eeb0b89 100755
--- a/indra/llmath/llvolume.cpp
+++ b/indra/llmath/llvolume.cpp
@@ -44,7 +44,6 @@
#include "m3math.h"
#include "llmatrix3a.h"
#include "lloctree.h"
-#include "lldarray.h"
#include "llvolume.h"
#include "llvolumeoctree.h"
#include "llstl.h"
@@ -426,7 +425,7 @@ public:
}
else
{
- llerrs << "Empty leaf" << llendl;
+ LL_ERRS() << "Empty leaf" << LL_ENDL;
}
for (S32 i = 0; i < branch->getChildCount(); ++i)
@@ -833,7 +832,7 @@ BOOL LLProfile::generate(const LLProfileParams& params, BOOL path_open,F32 detai
if (detail < MIN_LOD)
{
- llinfos << "Generating profile with LOD < MIN_LOD. CLAMPING" << llendl;
+ LL_INFOS() << "Generating profile with LOD < MIN_LOD. CLAMPING" << LL_ENDL;
detail = MIN_LOD;
}
@@ -849,7 +848,7 @@ BOOL LLProfile::generate(const LLProfileParams& params, BOOL path_open,F32 detai
// Quick validation to eliminate some server crashes.
if (begin > end - 0.01f)
{
- llwarns << "LLProfile::generate() assertion failed (begin >= end)" << llendl;
+ LL_WARNS() << "LLProfile::generate() assertion failed (begin >= end)" << LL_ENDL;
return FALSE;
}
@@ -1070,7 +1069,7 @@ BOOL LLProfile::generate(const LLProfileParams& params, BOOL path_open,F32 detai
}
break;
default:
- llerrs << "Unknown profile: getCurveType()=" << params.getCurveType() << llendl;
+ LL_ERRS() << "Unknown profile: getCurveType()=" << params.getCurveType() << LL_ENDL;
break;
};
@@ -1152,7 +1151,7 @@ BOOL LLProfileParams::importFile(LLFILE *fp)
}
else
{
- llwarns << "unknown keyword " << keyword << " in profile import" << llendl;
+ LL_WARNS() << "unknown keyword " << keyword << " in profile import" << LL_ENDL;
}
}
@@ -1224,7 +1223,7 @@ BOOL LLProfileParams::importLegacyStream(std::istream& input_stream)
}
else
{
- llwarns << "unknown keyword " << keyword << " in profile import" << llendl;
+ LL_WARNS() << "unknown keyword " << keyword << " in profile import" << LL_ENDL;
}
}
@@ -1389,7 +1388,7 @@ void LLPath::genNGon(const LLPathParams& params, S32 sides, F32 startOff, F32 en
hole_y * lerp(taper_y_begin, taper_y_end, t),
0,1);
pt->mTexT = t;
-
+
// Twist rotates the path along the x,y plane (I think) - DJS 04/05/02
twist.setQuat (lerp(twist_begin,twist_end,t) * 2.f * F_PI - F_PI,0,0,1);
// Rotate the point around the circle's center.
@@ -1449,7 +1448,7 @@ void LLPath::genNGon(const LLPathParams& params, S32 sides, F32 startOff, F32 en
hole_y * lerp(taper_y_begin, taper_y_end, t),
0,1);
pt->mTexT = t;
-
+
// Twist rotates the path along the x,y plane (I think) - DJS 04/05/02
twist.setQuat (lerp(twist_begin,twist_end,t) * 2.f * F_PI - F_PI,0,0,1);
// Rotate the point around the circle's center.
@@ -1546,7 +1545,7 @@ BOOL LLPath::generate(const LLPathParams& params, F32 detail, S32 split,
if (detail < MIN_LOD)
{
- llinfos << "Generating path with LOD < MIN! Clamping to 1" << llendl;
+ LL_INFOS() << "Generating path with LOD < MIN! Clamping to 1" << LL_ENDL;
detail = MIN_LOD;
}
@@ -1808,7 +1807,7 @@ BOOL LLPathParams::importFile(LLFILE *fp)
}
else
{
- llwarns << "unknown keyword " << " in path import" << llendl;
+ LL_WARNS() << "unknown keyword " << " in path import" << LL_ENDL;
}
}
return TRUE;
@@ -1948,7 +1947,7 @@ BOOL LLPathParams::importLegacyStream(std::istream& input_stream)
}
else
{
- llwarns << "unknown keyword " << " in path import" << llendl;
+ LL_WARNS() << "unknown keyword " << " in path import" << LL_ENDL;
}
}
return TRUE;
@@ -2039,7 +2038,7 @@ LLProfile::~LLProfile()
{
if(profile_delete_lock)
{
- llerrs << "LLProfile should not be deleted here!" << llendl ;
+ LL_ERRS() << "LLProfile should not be deleted here!" << LL_ENDL ;
}
}
@@ -2374,7 +2373,7 @@ bool LLVolume::unpackVolumeFaces(std::istream& is, S32 size)
LLSD mdl;
if (!unzip_llsd(mdl, is, size))
{
- LL_DEBUGS("MeshStreaming") << "Failed to unzip LLSD blob for LoD, will probably fetch from sim again." << llendl;
+ LL_DEBUGS("MeshStreaming") << "Failed to unzip LLSD blob for LoD, will probably fetch from sim again." << LL_ENDL;
return false;
}
@@ -2383,7 +2382,7 @@ bool LLVolume::unpackVolumeFaces(std::istream& is, S32 size)
if (face_count == 0)
{ //no faces unpacked, treat as failed decode
- llwarns << "found no faces!" << llendl;
+ LL_WARNS() << "found no faces!" << LL_ENDL;
return false;
}
@@ -2416,7 +2415,7 @@ bool LLVolume::unpackVolumeFaces(std::istream& is, S32 size)
if (idx.empty() || face.mNumIndices < 3)
{ //why is there an empty index list?
- llwarns <<"Empty face present!" << llendl;
+ LL_WARNS() <<"Empty face present!" << LL_ENDL;
continue;
}
@@ -2563,7 +2562,7 @@ bool LLVolume::unpackVolumeFaces(std::istream& is, S32 size)
if (cur_vertex != num_verts || idx != weights.size())
{
- llwarns << "Vertex weight count does not match vertex count!" << llendl;
+ LL_WARNS() << "Vertex weight count does not match vertex count!" << LL_ENDL;
}
}
@@ -2729,7 +2728,7 @@ void LLVolume::createVolumeFaces()
vf.mNumS = face.mCount;
if (vf.mNumS < 0)
{
- llerrs << "Volume face corruption detected." << llendl;
+ LL_ERRS() << "Volume face corruption detected." << LL_ENDL;
}
vf.mBeginT = 0;
@@ -2777,7 +2776,7 @@ void LLVolume::createVolumeFaces()
vf.mNumS = vf.mNumS*2;
if (vf.mNumS < 0)
{
- llerrs << "Volume face corruption detected." << llendl;
+ LL_ERRS() << "Volume face corruption detected." << LL_ENDL;
}
}
}
@@ -3106,7 +3105,7 @@ void LLVolume::sculpt(U16 sculpt_width, U16 sculpt_height, S8 sculpt_components,
// weird crash bug - DEV-11158 - trying to collect more data:
if ((sizeS == 0) || (sizeT == 0))
{
- llwarns << "sculpt bad mesh size " << sizeS << " " << sizeT << llendl;
+ LL_WARNS() << "sculpt bad mesh size " << sizeS << " " << sizeT << LL_ENDL;
}
sNumMeshPoints -= mMesh.size();
@@ -3501,16 +3500,16 @@ bool LLVolumeParams::setType(U8 profile, U8 path)
// Bad profile. Make it square.
profile = LL_PCODE_PROFILE_SQUARE;
result = false;
- llwarns << "LLVolumeParams::setType changing bad profile type (" << profile_type
- << ") to be LL_PCODE_PROFILE_SQUARE" << llendl;
+ LL_WARNS() << "LLVolumeParams::setType changing bad profile type (" << profile_type
+ << ") to be LL_PCODE_PROFILE_SQUARE" << LL_ENDL;
}
else if (hole_type > LL_PCODE_HOLE_MAX)
{
// Bad hole. Make it the same.
profile = profile_type;
result = false;
- llwarns << "LLVolumeParams::setType changing bad hole type (" << hole_type
- << ") to be LL_PCODE_HOLE_SAME" << llendl;
+ LL_WARNS() << "LLVolumeParams::setType changing bad hole type (" << hole_type
+ << ") to be LL_PCODE_HOLE_SAME" << LL_ENDL;
}
if (path_type < LL_PCODE_PATH_MIN ||
@@ -3518,8 +3517,8 @@ bool LLVolumeParams::setType(U8 profile, U8 path)
{
// Bad path. Make it linear.
result = false;
- llwarns << "LLVolumeParams::setType changing bad path (" << path
- << ") to be LL_PCODE_PATH_LINE" << llendl;
+ LL_WARNS() << "LLVolumeParams::setType changing bad path (" << path
+ << ") to be LL_PCODE_PATH_LINE" << LL_ENDL;
path = LL_PCODE_PATH_LINE;
}
@@ -3962,7 +3961,7 @@ S32 LLVolume::lineSegmentIntersect(const LLVector4a& start, const LLVector4a& en
n1.add(n2);
n1.add(n3);
-
+
*normal = n1;
}
@@ -4111,7 +4110,7 @@ BOOL equalTriangle(const S32 *a, const S32 *b)
BOOL LLVolumeParams::importFile(LLFILE *fp)
{
- //llinfos << "importing volume" << llendl;
+ //LL_INFOS() << "importing volume" << LL_ENDL;
const S32 BUFSIZE = 16384;
char buffer[BUFSIZE]; /* Flawfinder: ignore */
// *NOTE: changing the size or type of this buffer will require
@@ -4145,7 +4144,7 @@ BOOL LLVolumeParams::importFile(LLFILE *fp)
}
else
{
- llwarns << "unknown keyword " << keyword << " in volume import" << llendl;
+ LL_WARNS() << "unknown keyword " << keyword << " in volume import" << LL_ENDL;
}
}
@@ -4165,7 +4164,7 @@ BOOL LLVolumeParams::exportFile(LLFILE *fp) const
BOOL LLVolumeParams::importLegacyStream(std::istream& input_stream)
{
- //llinfos << "importing volume" << llendl;
+ //LL_INFOS() << "importing volume" << LL_ENDL;
const S32 BUFSIZE = 16384;
// *NOTE: changing the size or type of this buffer will require
// changing the sscanf below.
@@ -4195,7 +4194,7 @@ BOOL LLVolumeParams::importLegacyStream(std::istream& input_stream)
}
else
{
- llwarns << "unknown keyword " << keyword << " in volume import" << llendl;
+ LL_WARNS() << "unknown keyword " << keyword << " in volume import" << LL_ENDL;
}
}
@@ -4407,7 +4406,7 @@ LLFaceID LLVolume::generateFaceMask()
}
break;
default:
- llerrs << "Unknown profile!" << llendl;
+ LL_ERRS() << "Unknown profile!" << LL_ENDL;
break;
}
@@ -4668,7 +4667,7 @@ LLVolumeFace::~LLVolumeFace()
void LLVolumeFace::freeData()
{
- ll_aligned_free(mPositions);
+ ll_aligned_free(64, mPositions);
mPositions = NULL;
//normals and texture coordinates are part of the same buffer as mPositions, do not free them separately
@@ -4706,7 +4705,7 @@ BOOL LLVolumeFace::create(LLVolume* volume, BOOL partial_build)
}
else
{
- llerrs << "Unknown/uninitialized face type!" << llendl;
+ LL_ERRS() << "Unknown/uninitialized face type!" << LL_ENDL;
}
return ret ;
@@ -5246,7 +5245,7 @@ void LLVolumeFace::cacheOptimize()
//allocate space for new buffer
S32 num_verts = mNumVertices;
S32 size = ((num_verts*sizeof(LLVector2)) + 0xF) & ~0xF;
- LLVector4a* pos = (LLVector4a*) ll_aligned_malloc(sizeof(LLVector4a)*2*num_verts+size, 64);
+ LLVector4a* pos = (LLVector4a*) ll_aligned_malloc(64, sizeof(LLVector4a)*2*num_verts+size);
LLVector4a* norm = pos + num_verts;
LLVector2* tc = (LLVector2*) (norm + num_verts);
@@ -5296,7 +5295,7 @@ void LLVolumeFace::cacheOptimize()
mIndices[i] = new_idx[mIndices[i]];
}
- ll_aligned_free(mPositions);
+ ll_aligned_free(64, mPositions);
// DO NOT free mNormals and mTexCoords as they are part of mPositions buffer
ll_aligned_free_16(mWeights);
ll_aligned_free_16(mTangents);
@@ -5308,7 +5307,7 @@ void LLVolumeFace::cacheOptimize()
mTangents = binorm;
//std::string result = llformat("ACMR pre/post: %.3f/%.3f -- %d triangles %d breaks", pre_acmr, post_acmr, mNumIndices/3, breaks);
- //llinfos << result << llendl;
+ //LL_INFOS() << result << LL_ENDL;
}
@@ -5479,7 +5478,7 @@ BOOL LLVolumeFace::createUnCutCubeCap(LLVolume* volume, BOOL partial_build)
S32 size = (grid_size+1)*(grid_size+1);
resizeVertices(size);
-
+
LLVector4a* pos = (LLVector4a*) mPositions;
LLVector4a* norm = (LLVector4a*) mNormals;
LLVector2* tc = (LLVector2*) mTexCoords;
@@ -5500,7 +5499,7 @@ BOOL LLVolumeFace::createUnCutCubeCap(LLVolume* volume, BOOL partial_build)
*pos++ = newVert.getPosition();
*norm++ = baseVert.getNormal();
*tc++ = newVert.mTexCoord;
-
+
if (gx == 0 && gy == 0)
{
min = newVert.getPosition();
@@ -5577,7 +5576,7 @@ BOOL LLVolumeFace::createCap(LLVolume* volume, BOOL partial_build)
if (!(mTypeMask & HOLLOW_MASK) && !(mTypeMask & OPEN_MASK))
{
resizeVertices(num_vertices+1);
-
+
if (!partial_build)
{
resizeIndices(num_indices+3);
@@ -5621,7 +5620,7 @@ BOOL LLVolumeFace::createCap(LLVolume* volume, BOOL partial_build)
LLVector2* tc = (LLVector2*) mTexCoords;
LLVector4a* pos = (LLVector4a*) mPositions;
LLVector4a* norm = (LLVector4a*) mNormals;
-
+
// Copy the vertices into the array
const LLVector4a* src = mesh.mArray+offset;
@@ -5994,7 +5993,7 @@ void CalculateTangentArray(U32 vertexCount, const LLVector4a *vertex, const LLVe
void LLVolumeFace::createTangents()
{
if (!mTangents)
- {
+ {
allocateTangents(mNumVertices);
//generate tangents
@@ -6004,7 +6003,7 @@ void LLVolumeFace::createTangents()
LLVector4a* end = mTangents+mNumVertices;
while (binorm < end)
- {
+ {
(*binorm++).clear();
}
@@ -6024,7 +6023,7 @@ void LLVolumeFace::createTangents()
void LLVolumeFace::resizeVertices(S32 num_verts)
{
- ll_aligned_free(mPositions);
+ ll_aligned_free(64, mPositions);
//DO NOT free mNormals and mTexCoords as they are part of mPositions buffer
ll_aligned_free_16(mTangents);
@@ -6035,7 +6034,7 @@ void LLVolumeFace::resizeVertices(S32 num_verts)
//pad texture coordinate block end to allow for QWORD reads
S32 size = ((num_verts*sizeof(LLVector2)) + 0xF) & ~0xF;
- mPositions = (LLVector4a*) ll_aligned_malloc(sizeof(LLVector4a)*2*num_verts+size, 64);
+ mPositions = (LLVector4a*) ll_aligned_malloc(64, sizeof(LLVector4a)*2*num_verts+size);
mNormals = mPositions+num_verts;
mTexCoords = (LLVector2*) (mNormals+num_verts);
@@ -6075,7 +6074,7 @@ void LLVolumeFace::pushVertex(const LLVector4a& pos, const LLVector4a& norm, con
LLVector4a* old_buf = mPositions;
- mPositions = (LLVector4a*) ll_aligned_malloc(new_size, 64);
+ mPositions = (LLVector4a*) ll_aligned_malloc(64, new_size);
mNormals = mPositions+new_verts;
mTexCoords = (LLVector2*) (mNormals+new_verts);
@@ -6091,7 +6090,7 @@ void LLVolumeFace::pushVertex(const LLVector4a& pos, const LLVector4a& norm, con
//just clear tangents
ll_aligned_free_16(mTangents);
mTangents = NULL;
- ll_aligned_free(old_buf);
+ ll_aligned_free(64, old_buf);
mNumAllocatedVertices = new_verts;
@@ -6176,12 +6175,12 @@ void LLVolumeFace::appendFace(const LLVolumeFace& face, LLMatrix4& mat_in, LLMat
if (new_count > 65536)
{
- llerrs << "Cannot append face -- 16-bit overflow will occur." << llendl;
+ LL_ERRS() << "Cannot append face -- 16-bit overflow will occur." << LL_ENDL;
}
if (face.mNumVertices == 0)
{
- llerrs << "Cannot append empty face." << llendl;
+ LL_ERRS() << "Cannot append empty face." << LL_ENDL;
}
U32 old_vsize = mNumVertices*16;
@@ -6192,7 +6191,7 @@ void LLVolumeFace::appendFace(const LLVolumeFace& face, LLMatrix4& mat_in, LLMat
//allocate new buffer space
LLVector4a* old_buf = mPositions;
- mPositions = (LLVector4a*) ll_aligned_malloc(new_size, 64);
+ mPositions = (LLVector4a*) ll_aligned_malloc(64, new_size);
mNormals = mPositions + new_count;
mTexCoords = (LLVector2*) (mNormals+new_count);
@@ -6758,7 +6757,7 @@ void CalculateTangentArray(U32 vertexCount, const LLVector4a *vertex, const LLVe
memset(tan1, 0, vertexCount*2*sizeof(LLVector4a));
for (U32 a = 0; a < triangleCount; a++)
- {
+{
U32 i1 = *index_array++;
U32 i2 = *index_array++;
U32 i3 = *index_array++;
@@ -6802,7 +6801,7 @@ void CalculateTangentArray(U32 vertexCount, const LLVector4a *vertex, const LLVe
tan1[i1].add(sdir);
tan1[i2].add(sdir);
tan1[i3].add(sdir);
-
+
tan2[i1].add(tdir);
tan2[i2].add(tdir);
tan2[i3].add(tdir);
@@ -6816,7 +6815,7 @@ void CalculateTangentArray(U32 vertexCount, const LLVector4a *vertex, const LLVe
LLVector4a ncrosst;
ncrosst.setCross3(n,t);
-
+
// Gram-Schmidt orthogonalize
n.mul(n.dot3(t).getF32());
@@ -6824,7 +6823,7 @@ void CalculateTangentArray(U32 vertexCount, const LLVector4a *vertex, const LLVe
tsubn.setSub(t,n);
if (tsubn.dot3(tsubn).getF32() > F_APPROXIMATELY_ZERO)
- {
+ {
tsubn.normalize3fast();
// Calculate handedness
@@ -6838,7 +6837,7 @@ void CalculateTangentArray(U32 vertexCount, const LLVector4a *vertex, const LLVe
{ //degenerate, make up a value
tangent[a].set(0,0,1,1);
}
- }
+ }
ll_aligned_free_16(tan1);
}