X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=cg_math.h;h=d8c539e1aa4cfa63f035f591324d8c71d4aed0fa;hp=d06eb75b510cfc870b82d12fec10418bad9101fe;hb=49cd70905c02b3cee323e22bc956244e66f731e8;hpb=0256e57e16a302ad45090618b8d6eb5930788809 diff --git a/cg_math.h b/cg_math.h index d06eb75b..d8c539e1 100644 --- a/cg_math.h +++ b/cg_math.h @@ -32,6 +32,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define M_PI 3.14159265358979323846 // matches value in gcc v2 math.h #endif +#ifndef NULL +#define NULL ((void *)0) +#endif + typedef float vec_t; typedef vec_t vec2_t[2]; typedef vec_t vec3_t[3]; @@ -46,11 +50,11 @@ extern vec3_t vec3_origin; #define nanmask (255<<23) #define IS_NAN(x) (((*(int *)&x)&nanmask)==nanmask) -#define bound(min,num,max) (num >= min ? (num < max ? num : max) : min) +#define bound(min,num,max) ((num) >= (min) ? ((num) < (max) ? (num) : (max)) : (min)) #ifndef min -#define min(A,B) (A < B ? A : B) -#define max(A,B) (A > B ? A : B) +#define min(A,B) ((A) < (B) ? (A) : (B)) +#define max(A,B) ((A) > (B) ? (A) : (B)) #endif #define lhrandom(MIN,MAX) ((rand() & 32767) * (((MAX)-(MIN)) * (1.0f / 32767.0f)) + (MIN)) @@ -76,17 +80,6 @@ extern vec3_t vec3_origin; #define VectorScale(in, scale, out) ((out)[0] = (in)[0] * (scale),(out)[1] = (in)[1] * (scale),(out)[2] = (in)[2] * (scale)) #define VectorCompare(a,b) (((a)[0]==(b)[0])&&((a)[1]==(b)[1])&&((a)[2]==(b)[2])) #define VectorMA(a, scale, b, c) ((c)[0] = (a)[0] + (scale) * (b)[0],(c)[1] = (a)[1] + (scale) * (b)[1],(c)[2] = (a)[2] + (scale) * (b)[2]) -#define VectorNormalizeFast(_v)\ -{\ - float _y, _number;\ - _number = DotProduct(_v, _v);\ - if (_number != 0.0)\ - {\ - *((long *)&_y) = 0x5f3759df - ((* (long *) &_number) >> 1);\ - _y = _y * (1.5f - (_number * 0.5f * _y * _y));\ - VectorScale(_v, _y, _v);\ - }\ -} #define VectorRandom(v) {do{(v)[0] = CGVM_RandomRange(-1, 1);(v)[1] = CGVM_RandomRange(-1, 1);(v)[2] = CGVM_RandomRange(-1, 1);}while(DotProduct(v, v) > 1);} void AngleVectors (vec3_t angles, vec3_t forward, vec3_t right, vec3_t up);