home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / graphic / irit / solid2h.irt < prev    next >
Text File  |  1992-07-26  |  2KB  |  84 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. #
  16. # Try it with coplanar = 0 for fun.
  17. #
  18. coplanar = 1;
  19.  
  20. # normal(TRUE, 0.1, RED);
  21.  
  22. T1 = BOX(vector( -2.0, -0.35, 0.0 ), 4, 0.7, 0.4 );
  23. resolution = 80;
  24. T2 = CYLIN(vector( 0.0, 0.0, 0.0 ), vector( 0.0, 0.0, 0.4 ), 1.4);
  25. S1 = T1 * T2;
  26. free(T1);
  27. free(T2);
  28. beep(800,200);
  29. view(list(S1), true);
  30.  
  31. resolution = 40;
  32. T3 = CYLIN(vector( 0.0, 0.0, 0.0 ), vector( 0.0, 0.0, 0.4 ), 0.9);
  33. S2 = S1 + T3;
  34. free(T3);
  35. free(S1);
  36. beep(800,200);
  37. view(list(S2), true);
  38.  
  39. resolution = 80;
  40. T4 = CYLIN(vector( 1.45, -0.5, 1.0 ), vector( 0.0, 1.0, 0.0 ), 0.8);
  41. T5 = CYLIN(vector(-1.45, -0.5, 1.0 ), vector( 0.0, 1.0, 0.0 ), 0.8);
  42. S3 = S2 - T4 - T5;
  43. free(T4);
  44. free(T5);
  45. free(S2);
  46. beep(800,200);
  47. view(list(S3), true);
  48.  
  49. resolution = 20;
  50. T6 = CYLIN(vector( 1.2, 0.0, -0.1), vector( 0.0, 0.0, 0.5), 0.1);
  51. T7 = CYLIN(vector(-1.2, 0.0, -0.1), vector( 0.0, 0.0, 0.5), 0.1);
  52. S4 = S3 - T6 - T7;
  53. free(T6);
  54. free(T7);
  55. beep(1200,200);
  56. view(list(S4), true);
  57.  
  58. resolution = 32;
  59. T8 = CYLIN(vector( 0.0, 0.0, -0.2 ), vector( 0.0, 0.0, 0.9 ), 0.3);
  60. T9 = BOX(vector( -0.6, -0.15,-0.1 ), 1.2, 0.3, 0.7 );
  61. S5 = T8 + T9;
  62. free(T8);
  63. free(T9);
  64. beep(1200,200);
  65. view(list(S5), false);
  66.  
  67. S6 = S4 - S5;
  68. free(S4);
  69. free(S5);
  70.  
  71. final = convex(S6);
  72. free(S6);
  73.  
  74. tm = time(false);
  75. tm; # In Seconds
  76.  
  77. interact(list(final), false);
  78.  
  79. save("solid2h", list(view_mat,final));
  80. free(final);
  81.  
  82. view_mat = save_mat;
  83. resolution = save_res;
  84.