home *** CD-ROM | disk | FTP | other *** search
/ Superpower (Alt) / SUPERPOWER.iso / q / source / mathlib.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-08-08  |  902 b   |  32 lines

  1. #ifndef __MATHLIB__
  2. #define __MATHLIB__
  3.  
  4. #include "cmdlib.h"
  5.  
  6. // mathlib.h
  7.  
  8. typedef float vec_t;
  9. typedef vec_t vec3_t[3];
  10.  
  11. extern vec3_t vec3_origin;
  12.  
  13. boolean VectorCompare (vec3_t v1, vec3_t v2);
  14.  
  15. #define DotProduct(x,y) (x[0]*y[0]+x[1]*y[1]+x[2]*y[2])
  16. #define VectorSubtract(a,b,c) {c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];}
  17. #define VectorAdd(a,b,c) {c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];}
  18. #define VectorCopy(a,b) {b[0]=a[0];b[1]=a[1];b[2]=a[2];}
  19.  
  20. vec_t _DotProduct (vec3_t v1, vec3_t v2);
  21. void _VectorSubtract (vec3_t va, vec3_t vb, vec3_t out);
  22. void _VectorAdd (vec3_t va, vec3_t vb, vec3_t out);
  23. void _VectorCopy (vec3_t in, vec3_t out);
  24.  
  25. void CrossProduct (vec3_t v1, vec3_t v2, vec3_t cross);
  26. void VectorNormalize (vec3_t v);
  27. void VectorScale (vec3_t v, vec_t scale, vec3_t out);
  28. double VectorLength(vec3_t v);
  29. void VectorMA (vec3_t va, double scale, vec3_t vb, vec3_t vc);
  30.  
  31. #endif
  32.