home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / i / iritsm3s.zip / irit / solid2h.irt < prev    next >
Text File  |  1991-09-04  |  2KB  |  79 lines

  1. #
  2. # This solid was taken from: Geometric Modeling,
  3. # by Michael E. Mortenson page 441, figure 10.9
  4. # Takes more than 13 minutes on my 12Mhz 286 with copro.
  5. #
  6. #                Created by Gershon Elber,    Apr 90
  7. #
  8.  
  9. tm = time(true);
  10.  
  11. save_mat = view_mat;
  12. view_mat = view_mat * scale(vector( 0.5, 0.5, 0.5 ));
  13. save_res = resolution;
  14.  
  15. # normal(TRUE, 0.1, RED);
  16.  
  17. T1 = BOX(vector( -2.0, -0.35, 0.0), 4, 0.7, 0.4);
  18. resolution = 80;
  19. T2 = CYLIN(vector( 0.0, 0.0, -0.001), vector( 0.0, 0.0, 0.402), 1.4);
  20. S1 = T1 * T2;
  21. free(T1);
  22. free(T2);
  23. beep(800,200);
  24. view(list(S1), true);
  25.  
  26. resolution = 40;
  27. T3 = CYLIN(vector( 0.0, 0.0, -0.001), vector( 0.0, 0.0, 0.402), 0.9);
  28. S2 = S1 + T3;
  29. free(T3);
  30. free(S1);
  31. beep(800,200);
  32. view(list(S2), true);
  33.  
  34. resolution = 80;
  35. T4 = CYLIN(vector( 1.45, -0.5, 1.0), vector( 0.0, 1.0, 0.0), 0.8);
  36. T5 = CYLIN(vector(-1.45, -0.5, 1.0), vector( 0.0, 1.0, 0.0), 0.8);
  37. S3 = S2 - T4 - T5;
  38. free(T4);
  39. free(T5);
  40. free(S2);
  41. beep(800,200);
  42. view(list(S3), true);
  43.  
  44. resolution = 20;
  45. T6 = CYLIN(vector( 1.2, 0.0, -0.1), vector( 0.0, 0.0, 0.5), 0.1);
  46. T7 = CYLIN(vector(-1.2, 0.0, -0.1), vector( 0.0, 0.0, 0.5), 0.1);
  47. S4 = S3 - T6 - T7;
  48. free(T6);
  49. free(T7);
  50. beep(1200,200);
  51. view(list(S4), true);
  52.  
  53. resolution = 32;
  54. T8 = CYLIN(vector( 0.0, 0.0, -0.2), vector( 0.0, 0.0, 0.9), 0.3);
  55. T9 = BOX(vector( -0.6, -0.15,-0.1), 1.2, 0.3, 0.7);
  56. S5 = T8 + T9;
  57. free(T8);
  58. free(T9);
  59. beep(1200,200);
  60. view(list(S5), false);
  61.  
  62. S6 = S4 - S5;
  63. free(S4);
  64. free(S5);
  65.  
  66. final = convex(S6);
  67. free(S6);
  68.  
  69. tm = time(false);
  70. tm; # In Seconds
  71.  
  72. interact(list(final), false);
  73.  
  74. save("solid2h", list(view_mat,final));
  75. free(final);
  76.  
  77. view_mat = save_mat;
  78. resolution = save_res;
  79.