home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / graphic / irit / solid4.irt < prev    next >
Text File  |  1991-11-18  |  1KB  |  68 lines

  1. #
  2. # This solid was taken from: Geometric Modeling,
  3. # by Michael E. Mortenson page 468, figure 10.34
  4. #
  5. #                Created by Gershon Elber,    Feb 89
  6. #   Be patient - this one takes about 15 minutes on my 12Mhz 286 with co-pro.
  7. #
  8.  
  9. tm = time(true);
  10.  
  11. save_mat = view_mat;
  12. save_res = resolution;
  13.  
  14. # normal(TRUE, 0.1, RED);
  15.  
  16. resolution = 8;
  17. T1 = CYLIN(vector( -1.1, 0.0, 0.0), vector(  2.2, 0.0, 0.0), 0.1);
  18. T2 = CYLIN(vector( -0.8, 0.0, 0.0), vector( 0.05, 0.0, 0.0), 0.15);
  19. T3 = CYLIN(vector(  0.8, 0.0, 0.0), vector(-0.05, 0.0, 0.0), 0.15);
  20.  
  21. S1 = T1 + T2 + T3;
  22. free(T1);
  23. free(T2);
  24. free(T3);
  25. S1 = convex(S1);
  26. beep(800,200);
  27. view(list(S1), true);
  28.  
  29. S2 = S1 * roty(90);
  30. S3 = S1 * rotz(90);
  31. beep(800,200);
  32. view(list(S2, S3), false);
  33.  
  34. S4 = S1 + S2 + S3;
  35. free(S1);
  36. free(S2);
  37. free(S3);
  38. beep(800,200);
  39. view(list(S4), true);
  40.  
  41. resolution = 20;
  42. T4 = sphere(vector(0.0, 0.0, 0.0), 1.0);
  43.  
  44. S5 = T4 - S4;
  45. free(S4);
  46. free(T4);
  47.  
  48. final = convex(S5);
  49. free(S5);
  50.  
  51. tm = time(false);
  52. tm; # In Seconds
  53.  
  54. interact(list(final), false);
  55.  
  56. save("solid4", list(view_mat,final));
  57.  
  58. # Now make the box cut out of it:
  59. T5 = box(vector(-0.01, -0.01, -0.01), 1.5, 1.5, 1.5);
  60. cut = final - T5;
  61. cut = convex(cut);
  62.  
  63. save("solid4c", list(view_mat,cut));
  64.  
  65. view_mat = save_mat;
  66. resolution = save_res;
  67.