home *** CD-ROM | disk | FTP | other *** search
/ Superpower (Alt) / SUPERPOWER.iso / q / source / mbq198 / mathlib.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-06-26  |  1.1 KB  |  45 lines

  1. #ifndef __MATHLIB__
  2. #define __MATHLIB__
  3.  
  4. // mathlib.h
  5.  
  6. #include <math.h>
  7.  
  8. typedef double vec_t;
  9. typedef vec_t vec3_t[3];
  10.  
  11. #define    SIDE_FRONT        0
  12. #define    SIDE_ON            2
  13. #define    SIDE_BACK        1
  14. #define    SIDE_CROSS        -2
  15.  
  16. #define    Q_PI    3.14159265358979323846
  17.  
  18. extern vec3_t vec3_origin;
  19.  
  20. #define    EQUAL_EPSILON    0.001
  21.  
  22. qboolean VectorCompare (vec3_t v1, vec3_t v2);
  23.  
  24. #define DotProduct(x,y) (x[0]*y[0]+x[1]*y[1]+x[2]*y[2])
  25. #define VectorSubtract(a,b,c) {c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];}
  26. #define VectorAdd(a,b,c) {c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];}
  27. #define VectorCopy(a,b) {b[0]=a[0];b[1]=a[1];b[2]=a[2];}
  28.  
  29. vec_t Q_rint (vec_t in);
  30. vec_t _DotProduct (vec3_t v1, vec3_t v2);
  31. void _VectorSubtract (vec3_t va, vec3_t vb, vec3_t out);
  32. void _VectorAdd (vec3_t va, vec3_t vb, vec3_t out);
  33. void _VectorCopy (vec3_t in, vec3_t out);
  34.  
  35. double VectorLength(vec3_t v);
  36.  
  37. void VectorMA (vec3_t va, double scale, vec3_t vb, vec3_t vc);
  38.  
  39. void CrossProduct (vec3_t v1, vec3_t v2, vec3_t cross);
  40. void VectorNormalize (vec3_t v);
  41. void VectorInverse (vec3_t v);
  42. void VectorScale (vec3_t v, vec_t scale, vec3_t out);
  43.  
  44. #endif
  45.