home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / graphic / csg_rt / quad.h < prev    next >
C/C++ Source or Header  |  1993-01-12  |  2KB  |  53 lines

  1. /*
  2.  
  3. QUAD.H  Interface to arbitrary quadratic logic
  4.  
  5. */
  6.  
  7. typedef struct { double a, b, c, d, e, f, g, h, i, j; } QUAD;
  8.  
  9. #ifndef _QUAD_
  10.  
  11. extern QUAD *create_quad(
  12.     double a, double b, double c,
  13.     double d, double e, double f,
  14.     double g, double h, double i,
  15.     double j
  16.     );
  17.  
  18. extern QUAD *create_ellipsoid(double rx, double ry, double rz);
  19.  
  20. extern QUAD *create_x_ell_cyl(double ry, double rz);
  21. extern QUAD *create_y_ell_cyl(double rx, double rz);
  22. extern QUAD *create_z_ell_cyl(double rx, double ry);
  23. extern QUAD *create_x_cyl(double r);
  24. extern QUAD *create_y_cyl(double r);
  25. extern QUAD *create_z_cyl(double r);
  26.  
  27. extern QUAD *create_x_ell_cone(double ky, double kz);
  28. extern QUAD *create_y_ell_cone(double kx, double kz);
  29. extern QUAD *create_z_ell_cone(double kx, double ky);
  30. extern QUAD *create_x_cone(double k);
  31. extern QUAD *create_y_cone(double k);
  32. extern QUAD *create_z_cone(double k);
  33.  
  34. extern QUAD *copy_quad(QUAD *quad);
  35. extern void destroy_quad(QUAD *quad);
  36.  
  37. extern void trans_x_quad(QUAD *quad, double t);
  38. extern void trans_y_quad(QUAD *quad, double t);
  39. extern void trans_z_quad(QUAD *quad, double t);
  40. extern void scale_x_quad(QUAD *quad, double factor);
  41. extern void scale_y_quad(QUAD *quad, double factor);
  42. extern void scale_z_quad(QUAD *quad, double factor);
  43. extern void rot_x_quad(QUAD *quad, double angle);
  44. extern void rot_y_quad(QUAD *quad, double angle);
  45. extern void rot_z_quad(QUAD *quad, double angle);
  46.  
  47. extern void extent_xyz_quad(QUAD *quad, VECTOR *min, VECTOR *max);
  48. extern int isects_reqd_quad(QUAD *quad);
  49. extern void intersect_quad(QUAD *quad, VECTOR p, VECTOR q, SIL *sil);
  50. extern VECTOR normal_to_quad(QUAD *quad, VECTOR p);
  51.  
  52. #endif
  53.