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

  1. /*
  2.  
  3. BIPLANE.H  Interface to intersection of two half-planes logic
  4.  
  5.     Biplane:    ax+by+cz+d1> 0 and
  6.             ax+by+cz+d2<=0
  7.  
  8. */
  9.  
  10. typedef struct { double a, b, c, d1, d2; } BIPLANE;
  11.  
  12. #ifndef _BIPLANE_
  13.  
  14. extern BIPLANE *create_biplane(double a, double b, double c, double d1, double d2);
  15. extern BIPLANE *create_x_in_biplane(double x1, double x2);
  16. extern BIPLANE *create_y_in_biplane(double y1, double y2);
  17. extern BIPLANE *create_z_in_biplane(double z1, double z2);
  18.  
  19. extern BIPLANE *copy_biplane(BIPLANE *biplane);
  20. extern void destroy_biplane(BIPLANE *biplane);
  21.  
  22. extern void trans_x_biplane(BIPLANE *biplane, double t);
  23. extern void trans_y_biplane(BIPLANE *biplane, double t);
  24. extern void trans_z_biplane(BIPLANE *biplane, double t);
  25. extern void scale_x_biplane(BIPLANE *biplane, double factor);
  26. extern void scale_y_biplane(BIPLANE *biplane, double factor);
  27. extern void scale_z_biplane(BIPLANE *biplane, double factor);
  28. extern void rot_x_biplane(BIPLANE *biplane, double angle);
  29. extern void rot_y_biplane(BIPLANE *biplane, double angle);
  30. extern void rot_z_biplane(BIPLANE *biplane, double angle);
  31.  
  32. extern int isects_reqd_biplane(BIPLANE *biplane);
  33. extern void intersect_biplane(BIPLANE *biplane, VECTOR p, VECTOR q, SIL *sil);
  34. extern VECTOR normal_to_biplane(BIPLANE *biplane, VECTOR p);
  35.  
  36. #endif
  37.