diff --git a/Recast/Include/Recast.h b/Recast/Include/Recast.h index 84a9069..08861d5 100644 --- a/Recast/Include/Recast.h +++ b/Recast/Include/Recast.h @@ -303,13 +303,14 @@ template inline T rcMax(T a, T b) { return a > b ? a : b; } template inline T rcAbs(T a) { return a < 0 ? -a : a; } template inline T rcSqr(T a) { return a*a; } template inline T rcClamp(T v, T mn, T mx) { return v < mn ? mn : (v > mx ? mx : v); } +float rcSqrt(float x); // Common vector helper functions. inline void rcVcross(float* dest, const float* v1, const float* v2) { dest[0] = v1[1]*v2[2] - v1[2]*v2[1]; dest[1] = v1[2]*v2[0] - v1[0]*v2[2]; - dest[2] = v1[0]*v2[1] - v1[1]*v2[0]; + dest[2] = v1[0]*v2[1] - v1[1]*v2[0]; } inline float rcVdot(const float* v1, const float* v2) @@ -364,7 +365,7 @@ inline float rcVdist(const float* v1, const float* v2) float dx = v2[0] - v1[0]; float dy = v2[1] - v1[1]; float dz = v2[2] - v1[2]; - return sqrtf(dx*dx + dy*dy + dz*dz); + return rcSqrt(dx*dx + dy*dy + dz*dz); } inline float rcVdistSqr(const float* v1, const float* v2) @@ -377,7 +378,7 @@ inline float rcVdistSqr(const float* v1, const float* v2) inline void rcVnormalize(float* v) { - float d = 1.0f / sqrtf(rcSqr(v[0]) + rcSqr(v[1]) + rcSqr(v[2])); + float d = 1.0f / rcSqrt(rcSqr(v[0]) + rcSqr(v[1]) + rcSqr(v[2])); v[0] *= d; v[1] *= d; v[2] *= d; diff --git a/Recast/Source/Recast.cpp b/Recast/Source/Recast.cpp index 864ad5f..a41db4a 100644 --- a/Recast/Source/Recast.cpp +++ b/Recast/Source/Recast.cpp @@ -26,6 +26,10 @@ #include "RecastLog.h" #include "RecastTimer.h" +float rcSqrt(float x) +{ + return sqrtf(x); +} void rcIntArray::resize(int n) {