home *** CD-ROM | disk | FTP | other *** search
/ Dream 57 / Amiga_Dream_57.iso / Amiga / Programmation / c / QuakeC / qtools0.2-src.lha / src / libqbuild / winding.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-07-13  |  1.8 KB  |  49 lines

  1. #ifndef    WINDING_H
  2. #define    WINDING_H
  3. /*
  4.  * ============================================================================
  5.  * structures
  6.  * ============================================================================
  7.  */
  8.  
  9. struct winding {
  10.   bool original;
  11.   int numpoints;
  12.   vec3_t points[8];                        /* variable sized */
  13. } __packed;
  14.  
  15. #define MAX_POINTS_ON_WINDING        64
  16.  
  17. /*
  18.  * ============================================================================
  19.  * globals
  20.  * ============================================================================
  21.  */
  22.  
  23. extern int c_activewindings, c_peakwindings;
  24.  
  25. /*
  26.  * ============================================================================
  27.  * prototypes
  28.  * ============================================================================
  29.  */
  30.  
  31. void WindingBounds(register struct winding *w, vec3_t mins, vec3_t maxs);
  32. void WindingCenter(register struct winding *w, vec3_t center);
  33. vec_t WindingArea(register struct winding *w);
  34. struct winding *BaseWindingForPlane(register struct plane *p);
  35. struct winding *WindingFromFace(__memBase, register struct dface_t *f);
  36. void CheckWinding(register struct winding *w);
  37. void CheckWindingInNode(register struct winding *w, register struct node *node);
  38. void CheckWindingArea(register struct winding *w);
  39. void PlaneFromWinding(register struct winding *w, register struct plane *plane);
  40. struct winding *ClipWinding(register struct winding *in, register struct plane *split, register bool keepon);
  41. void ClipWindingEpsilon(struct winding *in, vec3_t normal, vec_t dist,
  42.         vec_t epsilon, struct winding **front, struct winding **back);
  43. struct winding *CopyWinding(register struct winding *w);
  44. void DivideWinding(struct winding *in, struct plane *split, struct winding **front, struct winding **back);
  45. void FreeWinding(register struct winding *w);
  46. struct winding *NewWinding(register int points);
  47.  
  48. #endif
  49.