home *** CD-ROM | disk | FTP | other *** search
/ Superpower (Alt) / SUPERPOWER.iso / q / util / mbq319 / mathlib.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-01  |  1.0 KB  |  46 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. typedef struct
  12. {
  13.     vec3_t    origin;    // should be intersection of normal through origin
  14.     vec3_t    normal;    // should be normalized
  15. } plane_t;
  16.  
  17. typedef struct
  18. {
  19.     vec3_t    origin;
  20.     vec3_t    vector;
  21. } line_t;
  22.  
  23.  
  24. #define    SIDE_FRONT        1
  25. #define    SIDE_ON            0
  26. #define    SIDE_BACK        -1
  27. #define    SIDE_CROSS        -2
  28.  
  29. extern vec3_t vec3_origin;
  30.  
  31. boolean VectorCompare (vec3_t v1, vec3_t v2);
  32.  
  33. void CrossProduct (vec3_t v1, vec3_t v2, vec3_t cross);
  34. vec_t DotProduct (vec3_t v1, vec3_t v2);
  35. void VectorSubtract (vec3_t va, vec3_t vb, vec3_t out);
  36. void VectorAdd (vec3_t va, vec3_t vb, vec3_t out);
  37. void VectorCopy (vec3_t in, vec3_t out);
  38. void VectorNormalize (vec3_t v);
  39. void VectorInverse (vec3_t v);
  40. void VectorScale (vec3_t v, vec_t scale);
  41. int    PointOnPlaneSide (vec3_t pt, plane_t *plane);
  42. int    PointOnPlaneSideFudge (vec3_t pt, plane_t *plane);
  43. void LineHitPlane (line_t *line, plane_t *plane, vec3_t point);
  44.  
  45. #endif
  46.