mirror of
https://github.com/ptitSeb/Serious-Engine
synced 2024-12-25 15:14:51 +01:00
51 lines
1.8 KiB
C
51 lines
1.8 KiB
C
#ifndef LWMATH_H
|
|
#define LWMATH_H
|
|
|
|
#ifndef PI
|
|
#define PI (3.14159265358979324)
|
|
#endif
|
|
#ifndef TWOPI
|
|
#define TWOPI (2.0 * PI)
|
|
#endif
|
|
#ifndef HALFPI
|
|
#define HALFPI (0.5 * PI)
|
|
#endif
|
|
|
|
#define VSET(a,x) ((a)[0]=(x), (a)[1]=(x), (a)[2]=(x))
|
|
#define VCLR(a) VSET(a,0.0)
|
|
#define VCPY(a,b) ((a)[0] =(b)[0], (a)[1] =(b)[1], (a)[2] =(b)[2])
|
|
#define VSCL(a,x) ((a)[0]*= (x), (a)[1]*= (x), (a)[2]*= (x))
|
|
#define VADD(a,b) ((a)[0]+=(b)[0], (a)[1]+=(b)[1], (a)[2]+=(b)[2])
|
|
#define VSUB(a,b) ((a)[0]-=(b)[0], (a)[1]-=(b)[1], (a)[2]-=(b)[2])
|
|
#define VADDS(a,b,x) ((a)[0]+=(b)[0]*(x), (a)[1]+=(b)[1]*(x), (a)[2]+=(b)[2]*(x))
|
|
#define VSCL3(r,a,x) ((r)[0]=(a)[0]*(x), (r)[1]=(a)[1]*(x), (r)[2]=(a)[2]*(x))
|
|
#define VADD3(r,a,b) ((r)[0]=(a)[0]+(b)[0], (r)[1]=(a)[1]+(b)[1], (r)[2]=(a)[2]+(b)[2])
|
|
#define VSUB3(r,a,b) ((r)[0]=(a)[0]-(b)[0], (r)[1]=(a)[1]-(b)[1], (r)[2]=(a)[2]-(b)[2])
|
|
#define VADDS3(r,a,b,x) ((r)[0]=(a)[0]+(b)[0]*(x), (r)[1]=(a)[1]+(b)[1]*(x), (r)[2]=(a)[2]+(b)[2]*(x))
|
|
#define VDOT(a,b) ((a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2])
|
|
#define VLEN(a) sqrt(VDOT(a,a))
|
|
#define VCROSS(r,a,b) ((r)[0] = (a)[1]*(b)[2] - (a)[2]*(b)[1],\
|
|
(r)[1] = (a)[2]*(b)[0] - (a)[0]*(b)[2],\
|
|
(r)[2] = (a)[0]*(b)[1] - (a)[1]*(b)[0])
|
|
#define VMUL3(r,a,b) ((r)[0]=(a)[0]*(b)[0], (r)[1]=(a)[1]*(b)[1], (r)[2]=(a)[2]*(b)[2])
|
|
|
|
#ifndef ABS
|
|
#define ABS(a) ((a < 0) ? (-(a)) : (a))
|
|
#endif
|
|
|
|
#ifndef MAX
|
|
#define MAX(a,b) ((a) > (b) ? (a) : (b))
|
|
#endif
|
|
|
|
#ifndef MIN
|
|
#define MIN(a,b) ((a) < (b) ? (a) : (b))
|
|
#endif
|
|
|
|
#define CLAMP(a,b,c) (((a) < (b)) ? (b) : (((a) > (c)) ? (c) : (a)))
|
|
#define SWAP(a,b) { a^=b; b^=a; a^=b; }
|
|
|
|
#define RADIANS(deg) ((deg)*0.017453292519943295769236907684886)
|
|
#define DEGREES(rad) ((rad)*57.2957795130823208767981548141052)
|
|
|
|
#endif
|