home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / graphic / irit / solid2.irt < prev    next >
Text File  |  1992-07-26  |  2KB  |  83 lines

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