home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Raytrace & Morphing / SOS-RAYTRACE.ISO / programm / source / devel5 / splits.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-10-24  |  2.2 KB  |  59 lines

  1. /* Functions related to splits and areas */
  2.  
  3. /* Written by Bernie Roehl, June 1992 */
  4.  
  5. /* Copyright 1992 by Dave Stampe and Bernie Roehl.
  6.    May be freely used to write software for release into the public domain;
  7.    all commercial endeavours MUST contact Bernie Roehl and Dave Stampe
  8.    for permission to incorporate any part of this software into their
  9.    products!
  10.  */
  11.  
  12. #ifndef SPLITDEF
  13. #define SPLITDEF 1
  14. typedef void SPLIT;
  15. #endif
  16.  
  17. #ifndef AREADEF
  18. #define AREADEF 1
  19. typedef void AREA;
  20. #endif
  21.  
  22. extern SPLIT *add_split(SPLIT **tree, long x, long y, long z,
  23.             long nx, long ny, long nz, unsigned flags);
  24. extern AREA *what_area(SPLIT *tree, long x, long y, long z);
  25. extern char *area_name(AREA *a);
  26. extern char *set_area_name(AREA *a, char *name);
  27.  
  28. extern void add_obj_to_area(AREA *a, OBJECT *obj);
  29. extern void add_obj_to_split(SPLIT *tree, OBJECT *obj);
  30.  
  31. extern void split_move_handler(OBJECT *obj);
  32. extern void initial_world_split(SPLIT **split_ptr);
  33. extern void set_global_split_root(SPLIT **split_tree);
  34. extern SPLIT **global_split_root;
  35.  
  36. extern OBJLIST *which_area_objlist(SPLIT *tree, long x, long y, long z);
  37. extern OBJLIST *which_objlist(SPLIT *tree, long x, long y, long z);
  38. extern void add_obj_to_split_area(SPLIT *tree, OBJECT *obj);
  39. extern void add_obj_to_split_center(SPLIT *tree, OBJECT *obj);
  40.  
  41. extern void render_monitor_point(int x, int y);
  42. extern OBJECT *render_check_monitor(int *poly, int *vert);
  43. extern void render_objlist(OBJLIST *objlist);
  44. extern void render_area(AREA *a);
  45. extern void render_subtree(int type, SPLIT *ptr, VIEW *view);
  46. extern void render_split(SPLIT *tree, VIEW *view);
  47. extern void render_visareas(AREA *area);
  48. extern void walk_area(AREA *a, void (*fn)());
  49. extern void walk_split_tree(SPLIT *tree, void (*fn)());
  50. extern void set_area_function(AREA *a, void (*fn)());
  51. extern void call_area_fn(AREA *a);
  52. extern void add_floor(AREA *area, long a, long b, long c, long d);
  53. extern void add_ceiling(AREA *area, long a, long b, long c, long d);
  54. extern long floor_at(AREA *a, long x, long z);
  55. extern long ceiling_at(AREA *a, long x, long z);
  56. extern int add_visfrom(AREA *from, AREA *to);
  57.  
  58. /* End of splits.h */
  59.