Revert "Fixes float comparison issues in raymath functions"
This reverts commit a266d0bbaa.
This commit is contained in:
parent
a266d0bbaa
commit
59fed2ed79
|
|
@ -84,11 +84,6 @@
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Default define for RAYMATH_USE_SIMD_INTRINSICS
|
|
||||||
#ifndef RAYMATH_USE_SIMD_INTRINSICS
|
|
||||||
#define RAYMATH_USE_SIMD_INTRINSICS 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
// Defines and Macros
|
// Defines and Macros
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
@ -532,7 +527,7 @@ RMAPI Vector2 Vector2MoveTowards(Vector2 v, Vector2 target, float maxDistance)
|
||||||
float dy = target.y - v.y;
|
float dy = target.y - v.y;
|
||||||
float value = (dx*dx) + (dy*dy);
|
float value = (dx*dx) + (dy*dy);
|
||||||
|
|
||||||
if ((FloatEquals(value, 0.0f)) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target;
|
if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target;
|
||||||
|
|
||||||
float dist = sqrtf(value);
|
float dist = sqrtf(value);
|
||||||
|
|
||||||
|
|
@ -811,7 +806,7 @@ RMAPI Vector3 Vector3Normalize(Vector3 v)
|
||||||
Vector3 result = v;
|
Vector3 result = v;
|
||||||
|
|
||||||
float length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z);
|
float length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z);
|
||||||
if (!FloatEquals(length, 0.0f))
|
if (length != 0.0f)
|
||||||
{
|
{
|
||||||
float ilength = 1.0f/length;
|
float ilength = 1.0f/length;
|
||||||
|
|
||||||
|
|
@ -868,7 +863,7 @@ RMAPI void Vector3OrthoNormalize(Vector3 *v1, Vector3 *v2)
|
||||||
// Vector3Normalize(*v1);
|
// Vector3Normalize(*v1);
|
||||||
Vector3 v = *v1;
|
Vector3 v = *v1;
|
||||||
length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z);
|
length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z);
|
||||||
if (FloatEquals(length, 0.0f)) length = 1.0f;
|
if (length == 0.0f) length = 1.0f;
|
||||||
ilength = 1.0f/length;
|
ilength = 1.0f/length;
|
||||||
v1->x *= ilength;
|
v1->x *= ilength;
|
||||||
v1->y *= ilength;
|
v1->y *= ilength;
|
||||||
|
|
@ -880,7 +875,7 @@ RMAPI void Vector3OrthoNormalize(Vector3 *v1, Vector3 *v2)
|
||||||
// Vector3Normalize(vn1);
|
// Vector3Normalize(vn1);
|
||||||
v = vn1;
|
v = vn1;
|
||||||
length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z);
|
length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z);
|
||||||
if (FloatEquals(length, 0.0f)) length = 1.0f;
|
if (length == 0.0f) length = 1.0f;
|
||||||
ilength = 1.0f/length;
|
ilength = 1.0f/length;
|
||||||
vn1.x *= ilength;
|
vn1.x *= ilength;
|
||||||
vn1.y *= ilength;
|
vn1.y *= ilength;
|
||||||
|
|
@ -930,7 +925,7 @@ RMAPI Vector3 Vector3RotateByAxisAngle(Vector3 v, Vector3 axis, float angle)
|
||||||
|
|
||||||
// Vector3Normalize(axis);
|
// Vector3Normalize(axis);
|
||||||
float length = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z);
|
float length = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z);
|
||||||
if (FloatEquals(length, 0.0f)) length = 1.0f;
|
if (length == 0.0f) length = 1.0f;
|
||||||
float ilength = 1.0f/length;
|
float ilength = 1.0f/length;
|
||||||
axis.x *= ilength;
|
axis.x *= ilength;
|
||||||
axis.y *= ilength;
|
axis.y *= ilength;
|
||||||
|
|
@ -982,7 +977,7 @@ RMAPI Vector3 Vector3MoveTowards(Vector3 v, Vector3 target, float maxDistance)
|
||||||
float dz = target.z - v.z;
|
float dz = target.z - v.z;
|
||||||
float value = (dx*dx) + (dy*dy) + (dz*dz);
|
float value = (dx*dx) + (dy*dy) + (dz*dz);
|
||||||
|
|
||||||
if ((FloatEquals(value, 0)) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target;
|
if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target;
|
||||||
|
|
||||||
float dist = sqrtf(value);
|
float dist = sqrtf(value);
|
||||||
|
|
||||||
|
|
@ -1467,7 +1462,7 @@ RMAPI Vector4 Vector4MoveTowards(Vector4 v, Vector4 target, float maxDistance)
|
||||||
float dw = target.w - v.w;
|
float dw = target.w - v.w;
|
||||||
float value = (dx*dx) + (dy*dy) + (dz*dz) + (dw*dw);
|
float value = (dx*dx) + (dy*dy) + (dz*dz) + (dw*dw);
|
||||||
|
|
||||||
if ((FloatEquals(value, 0)) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target;
|
if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target;
|
||||||
|
|
||||||
float dist = sqrtf(value);
|
float dist = sqrtf(value);
|
||||||
|
|
||||||
|
|
@ -1801,7 +1796,7 @@ RMAPI Matrix MatrixRotate(Vector3 axis, float angle)
|
||||||
|
|
||||||
float lengthSquared = x*x + y*y + z*z;
|
float lengthSquared = x*x + y*y + z*z;
|
||||||
|
|
||||||
if (!FloatEquals(lengthSquared, 1.0f) && !FloatEquals(lengthSquared, 0.0f))
|
if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f))
|
||||||
{
|
{
|
||||||
float ilength = 1.0f/sqrtf(lengthSquared);
|
float ilength = 1.0f/sqrtf(lengthSquared);
|
||||||
x *= ilength;
|
x *= ilength;
|
||||||
|
|
@ -2077,7 +2072,7 @@ RMAPI Matrix MatrixLookAt(Vector3 eye, Vector3 target, Vector3 up)
|
||||||
// Vector3Normalize(vz)
|
// Vector3Normalize(vz)
|
||||||
Vector3 v = vz;
|
Vector3 v = vz;
|
||||||
length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z);
|
length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z);
|
||||||
if (FloatEquals(length, 0.0f)) length = 1.0f;
|
if (length == 0.0f) length = 1.0f;
|
||||||
ilength = 1.0f/length;
|
ilength = 1.0f/length;
|
||||||
vz.x *= ilength;
|
vz.x *= ilength;
|
||||||
vz.y *= ilength;
|
vz.y *= ilength;
|
||||||
|
|
@ -2089,7 +2084,7 @@ RMAPI Matrix MatrixLookAt(Vector3 eye, Vector3 target, Vector3 up)
|
||||||
// Vector3Normalize(x)
|
// Vector3Normalize(x)
|
||||||
v = vx;
|
v = vx;
|
||||||
length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z);
|
length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z);
|
||||||
if (FloatEquals(length, 0.0f)) length = 1.0f;
|
if (length == 0.0f) length = 1.0f;
|
||||||
ilength = 1.0f/length;
|
ilength = 1.0f/length;
|
||||||
vx.x *= ilength;
|
vx.x *= ilength;
|
||||||
vx.y *= ilength;
|
vx.y *= ilength;
|
||||||
|
|
@ -2201,7 +2196,7 @@ RMAPI Quaternion QuaternionNormalize(Quaternion q)
|
||||||
Quaternion result = { 0 };
|
Quaternion result = { 0 };
|
||||||
|
|
||||||
float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w);
|
float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w);
|
||||||
if (FloatEquals(length, 0.0f)) length = 1.0f;
|
if (length == 0.0f) length = 1.0f;
|
||||||
float ilength = 1.0f/length;
|
float ilength = 1.0f/length;
|
||||||
|
|
||||||
result.x = q.x*ilength;
|
result.x = q.x*ilength;
|
||||||
|
|
@ -2219,7 +2214,7 @@ RMAPI Quaternion QuaternionInvert(Quaternion q)
|
||||||
|
|
||||||
float lengthSq = q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w;
|
float lengthSq = q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w;
|
||||||
|
|
||||||
if (!FloatEquals(lengthSq, 0.0f))
|
if (lengthSq != 0.0f)
|
||||||
{
|
{
|
||||||
float invLength = 1.0f/lengthSq;
|
float invLength = 1.0f/lengthSq;
|
||||||
|
|
||||||
|
|
@ -2296,7 +2291,7 @@ RMAPI Quaternion QuaternionNlerp(Quaternion q1, Quaternion q2, float amount)
|
||||||
// QuaternionNormalize(q);
|
// QuaternionNormalize(q);
|
||||||
Quaternion q = result;
|
Quaternion q = result;
|
||||||
float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w);
|
float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w);
|
||||||
if (FloatEquals(length, 0.0f)) length = 1.0f;
|
if (length == 0.0f) length = 1.0f;
|
||||||
float ilength = 1.0f/length;
|
float ilength = 1.0f/length;
|
||||||
|
|
||||||
result.x = q.x*ilength;
|
result.x = q.x*ilength;
|
||||||
|
|
@ -2396,7 +2391,7 @@ RMAPI Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to)
|
||||||
// NOTE: Normalize to essentially nlerp the original and identity to 0.5
|
// NOTE: Normalize to essentially nlerp the original and identity to 0.5
|
||||||
Quaternion q = result;
|
Quaternion q = result;
|
||||||
float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w);
|
float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w);
|
||||||
if (FloatEquals(length, 0.0f)) length = 1.0f;
|
if (length == 0.0f) length = 1.0f;
|
||||||
float ilength = 1.0f/length;
|
float ilength = 1.0f/length;
|
||||||
|
|
||||||
result.x = q.x*ilength;
|
result.x = q.x*ilength;
|
||||||
|
|
@ -2466,8 +2461,6 @@ RMAPI Quaternion QuaternionFromMatrix(Matrix mat)
|
||||||
result.x = (mat.m8 + mat.m2)*mult;
|
result.x = (mat.m8 + mat.m2)*mult;
|
||||||
result.y = (mat.m6 + mat.m9)*mult;
|
result.y = (mat.m6 + mat.m9)*mult;
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -2514,7 +2507,7 @@ RMAPI Quaternion QuaternionFromAxisAngle(Vector3 axis, float angle)
|
||||||
|
|
||||||
float length = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z);
|
float length = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z);
|
||||||
|
|
||||||
if (!FloatEquals(length, 0.0f))
|
if (length != 0.0f)
|
||||||
{
|
{
|
||||||
angle *= 0.5f;
|
angle *= 0.5f;
|
||||||
|
|
||||||
|
|
@ -2535,7 +2528,7 @@ RMAPI Quaternion QuaternionFromAxisAngle(Vector3 axis, float angle)
|
||||||
// QuaternionNormalize(q);
|
// QuaternionNormalize(q);
|
||||||
Quaternion q = result;
|
Quaternion q = result;
|
||||||
length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w);
|
length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w);
|
||||||
if (FloatEquals(length, 0.0f)) length = 1.0f;
|
if (length == 0.0f) length = 1.0f;
|
||||||
ilength = 1.0f/length;
|
ilength = 1.0f/length;
|
||||||
result.x = q.x*ilength;
|
result.x = q.x*ilength;
|
||||||
result.y = q.y*ilength;
|
result.y = q.y*ilength;
|
||||||
|
|
@ -2553,7 +2546,7 @@ RMAPI void QuaternionToAxisAngle(Quaternion q, Vector3 *outAxis, float *outAngle
|
||||||
{
|
{
|
||||||
// QuaternionNormalize(q);
|
// QuaternionNormalize(q);
|
||||||
float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w);
|
float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w);
|
||||||
if (FloatEquals(length, 0.0f)) length = 1.0f;
|
if (length == 0.0f) length = 1.0f;
|
||||||
float ilength = 1.0f/length;
|
float ilength = 1.0f/length;
|
||||||
|
|
||||||
q.x = q.x*ilength;
|
q.x = q.x*ilength;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user