home *** CD-ROM | disk | FTP | other *** search
/ Mega Top 1 / os2_top1.zip / os2_top1 / APPS / RAYTRACE / RT / PLANE.H < prev    next >
C/C++ Source or Header  |  1993-01-12  |  1KB  |  37 lines

  1. /*
  2.  
  3. PLANE.H  Interface to half-plane logic
  4.  
  5. */
  6.  
  7. typedef struct { double a, b, c, d; } PLANE;
  8.  
  9. #ifndef _PLANE_
  10.  
  11. extern PLANE *create_plane(double a, double b, double c, double d);
  12. extern PLANE *create_x_lt_plane(double x);
  13. extern PLANE *create_x_gt_plane(double x);
  14. extern PLANE *create_y_lt_plane(double y);
  15. extern PLANE *create_y_gt_plane(double y);
  16. extern PLANE *create_z_lt_plane(double z);
  17. extern PLANE *create_z_gt_plane(double z);
  18.  
  19. extern PLANE *copy_plane(PLANE *plane);
  20. extern void destroy_plane(PLANE *plane);
  21.  
  22. extern void trans_x_plane(PLANE *plane, double t);
  23. extern void trans_y_plane(PLANE *plane, double t);
  24. extern void trans_z_plane(PLANE *plane, double t);
  25. extern void scale_x_plane(PLANE *plane, double factor);
  26. extern void scale_y_plane(PLANE *plane, double factor);
  27. extern void scale_z_plane(PLANE *plane, double factor);
  28. extern void rot_x_plane(PLANE *plane, double angle);
  29. extern void rot_y_plane(PLANE *plane, double angle);
  30. extern void rot_z_plane(PLANE *plane, double angle);
  31.  
  32. extern int isects_reqd_plane(PLANE *plane);
  33. extern void intersect_plane(PLANE *plane, VECTOR p, VECTOR q, SIL *sil);
  34. extern VECTOR normal_to_plane(PLANE *plane);
  35.  
  36. #endif
  37.