point.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /****************************************************************/
  2. /* */
  3. /* point.h in ~/src/Glos */
  4. /* */
  5. /* This header file defines the data structure of a */
  6. /* point (structure containing various attributes of */
  7. /* a grid cell). */
  8. /* */
  9. /****************************************************************/
  10. struct point
  11. {
  12. double orientation;
  13. /* horizontal angle(degrees) measured from +ve x-axis */
  14. double inclination;
  15. /* vertical angle(degrees) from the viewing point */
  16. int x; /* x-coor measured from viewing point location */
  17. int y; /* y-coor measured from viewing point location */
  18. struct point *next; /* pointer to next point in list */
  19. struct point *previous; /* ptr to previous pt. in list */
  20. };
  21. /* make_point.c */
  22. struct point *make_point(double, double, int, int);
  23. #ifdef GRASS_SEGMENT_H
  24. /* delete.c */
  25. struct point *delete(struct point *, struct point *, SEGMENT *, int, int);
  26. /* make_list.c */
  27. struct point *make_list(struct point *, int, int, SEGMENT *, int, int, int,
  28. int, int, double);
  29. /* mark_pts.c */
  30. int mark_visible_points(struct point *, SEGMENT *, int, int, double, double);
  31. /* pts_elim.c */
  32. struct point *hidden_point_elimination(struct point *, int, SEGMENT *,
  33. SEGMENT *, SEGMENT *, int, int, int,
  34. int, int, int, int, double);
  35. /* segment.c */
  36. struct point *segment(int, int, int, double, double,
  37. int, int, int, int, SEGMENT *, SEGMENT *, SEGMENT *,
  38. int, int, int, int, double);
  39. /*
  40. For delayed deletion of points (see delete3.c).
  41. Initially set to NULL in main.c.
  42. */
  43. extern struct point *DELAYED_DELETE;
  44. #endif
  45. /****************************************************************/