diff options
Diffstat (limited to 'code/qcommon')
-rw-r--r-- | code/qcommon/q_math.c | 20 | ||||
-rw-r--r-- | code/qcommon/q_shared.h | 1 |
2 files changed, 21 insertions, 0 deletions
diff --git a/code/qcommon/q_math.c b/code/qcommon/q_math.c index de90b8b..5ddd81f 100644 --- a/code/qcommon/q_math.c +++ b/code/qcommon/q_math.c @@ -1252,4 +1252,24 @@ void PerpendicularVector( vec3_t dst, const vec3_t src ) VectorNormalize( dst ); } +/* +================ +Q_isnan +Don't pass doubles to this +================ +*/ +int Q_isnan( float x ) +{ + union + { + float f; + unsigned int i; + } t; + + t.f = x; + t.i &= 0x7FFFFFFF; + t.i = 0x7F800000 - t.i; + + return (int)( (unsigned int)t.i >> 31 ); +} diff --git a/code/qcommon/q_shared.h b/code/qcommon/q_shared.h index a9388e7..e80074d 100644 --- a/code/qcommon/q_shared.h +++ b/code/qcommon/q_shared.h @@ -557,6 +557,7 @@ void MakeNormalVectors( const vec3_t forward, vec3_t right, vec3_t up ); void MatrixMultiply(float in1[3][3], float in2[3][3], float out[3][3]); void AngleVectors( const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up); void PerpendicularVector( vec3_t dst, const vec3_t src ); +int Q_isnan( float x ); //============================================= |