diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-09-20 21:06:17 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-09-20 21:06:17 +0400 |
commit | 9d1b4b63b33b77505f4399a4db4f462f5b1fd1eb (patch) | |
tree | 31d83fbd17c4790211707a3ce13c78b664647c23 /source | |
parent | 0169079bd1c3ce69690153321fb09c3647b9d930 (diff) |
Fix for recent commit:
- Some declarations after statement left.
- Do not use static inline functions in MOD_navmesh. It produces errors
with msvc and not sure it's actually helps -- optimizer should
make it inlined itself.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/navmesh_conversion.c | 18 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_navmesh.c | 4 |
2 files changed, 15 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/navmesh_conversion.c b/source/blender/blenkernel/intern/navmesh_conversion.c index eefc24ee8c6..7df8e902ccd 100644 --- a/source/blender/blenkernel/intern/navmesh_conversion.c +++ b/source/blender/blenkernel/intern/navmesh_conversion.c @@ -83,10 +83,14 @@ int polyIsConvex(const unsigned short* p, const int vertsPerPoly, const float* v float distPointToSegmentSq(const float* point, const float* a, const float* b) { float abx[3], dx[3]; + float d, t; + sub_v3_v3v3(abx, b,a); sub_v3_v3v3(dx, point,a); - float d = abx[0]*abx[0]+abx[2]*abx[2]; - float t = abx[0]*dx[0]+abx[2]*dx[2]; + + d = abx[0]*abx[0]+abx[2]*abx[2]; + t = abx[0]*dx[0]+abx[2]*dx[2]; + if (d > 0) t /= d; if (t < 0) @@ -95,6 +99,7 @@ float distPointToSegmentSq(const float* point, const float* a, const float* b) t = 1; dx[0] = a[0] + t*abx[0] - point[0]; dx[2] = a[2] + t*abx[2] - point[2]; + return dx[0]*dx[0] + dx[2]*dx[2]; } @@ -107,6 +112,8 @@ int buildRawVertIndicesData(DerivedMesh* dm, int *nverts_r, float **verts_r, int *trisToFacesMap; float *verts; unsigned short *tris, *tri; + int nfaces; + MFace *faces; nverts = dm->getNumVerts(dm); if (nverts>=0xffff) @@ -124,8 +131,8 @@ int buildRawVertIndicesData(DerivedMesh* dm, int *nverts_r, float **verts_r, } //calculate number of tris - int nfaces = dm->getNumFaces(dm); - MFace *faces = dm->getFaceArray(dm); + nfaces = dm->getNumFaces(dm); + faces = dm->getFaceArray(dm); ntris = nfaces; for (fi=0; fi<nfaces; fi++) { @@ -226,8 +233,9 @@ int buildPolygonsByDetailedMeshes(const int vertsPerPoly, const int npolys, { if (nv==capacity) { + unsigned short* newPolyBig; capacity += vertsPerPoly; - unsigned short* newPolyBig = MEM_callocN(sizeof(unsigned short)*capacity, "buildPolygonsByDetailedMeshes newPolyBig"); + newPolyBig = MEM_callocN(sizeof(unsigned short)*capacity, "buildPolygonsByDetailedMeshes newPolyBig"); memset(newPolyBig, 0xff, sizeof(unsigned short)*capacity); memcpy(newPolyBig, newPoly, sizeof(unsigned short)*nv); MEM_freeN(newPoly); diff --git a/source/blender/modifiers/intern/MOD_navmesh.c b/source/blender/modifiers/intern/MOD_navmesh.c index e05f91058f3..5a8c79ba4dd 100644 --- a/source/blender/modifiers/intern/MOD_navmesh.c +++ b/source/blender/modifiers/intern/MOD_navmesh.c @@ -48,12 +48,12 @@ #include "BKE_customdata.h" #include "MEM_guardedalloc.h" -static inline int bit(int a, int b) +static int bit(int a, int b) { return (a & (1 << b)) >> b; } -static inline void intToCol(int i, float* col) +static void intToCol(int i, float* col) { int r = bit(i, 0) + bit(i, 3) * 2 + 1; int g = bit(i, 1) + bit(i, 4) * 2 + 1; |