home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / gfx / 3d / irit / contrib / scripts / rocket2.irt < prev    next >
Encoding:
Text File  |  1995-02-06  |  5.4 KB  |  210 lines

  1.  
  2. save_mat = view_mat;
  3. save_res = resolution;
  4. resolution = 20;
  5. v1  = vector( 0.0, 0.0, 0.0);                      # The I letter
  6. v2  = vector( 0.3, 0.0, 0.0);
  7. v3  = vector( 0.3, 0.0, 0.1);
  8. v4  = vector( 0.2, 0.0, 0.1);
  9. v5  = vector( 0.2, 0.0, 0.5);
  10. v6  = vector( 0.3, 0.0, 0.5);
  11. v7  = vector( 0.3, 0.0, 0.6);
  12. v8  = vector( 0.0, 0.0, 0.6);
  13. v9  = vector( 0.0, 0.0, 0.5);
  14. v10 = vector( 0.1, 0.0, 0.5);
  15. v11 = vector( 0.1, 0.0, 0.1);
  16. v12 = vector( 0.0, 0.0, 0.1);
  17.  
  18. I = poly( list( v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12 ), false );
  19.  
  20. v1  = vector( 0.0, 0.0, 0.0);                    # The R Letter
  21. v2  = vector( 0.1, 0.0, 0.0);
  22. v3  = vector( 0.1, 0.0, 0.5);
  23. v4  = vector( 0.2, 0.0, 0.5);
  24. v5  = vector( 0.2, 0.0, 0.4);
  25. v6  = vector( 0.1, 0.0, 0.4);
  26. v7  = vector( 0.1, 0.0, 0.3);
  27. v8  = vector( 0.2, 0.0, 0.0);
  28. v9  = vector( 0.3, 0.0, 0.0);
  29. v10 = vector( 0.2, 0.0, 0.3);
  30. v11 = vector( 0.3, 0.0, 0.3);
  31. v12 = vector( 0.3, 0.0, 0.6);
  32. v13 = vector( 0.0, 0.0, 0.6);
  33.  
  34. R = poly( list( v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 ), false );
  35.  
  36. v1  = vector( 0.1, 0.0, 0.0);
  37. v2  = vector( 0.1, 0.0, 0.5);
  38. v3  = vector( 0.0, 0.0, 0.5);
  39. v4  = vector( 0.0, 0.0, 0.6);
  40. v5  = vector( 0.3, 0.0, 0.6);
  41. v6  = vector( 0.3, 0.0, 0.5);
  42. v7  = vector( 0.2, 0.0, 0.5);
  43. v8  = vector( 0.2, 0.0, 0.0);
  44.  
  45. T = poly( list( v1, v2, v3, v4, v5, v6, v7, v8 ), false );
  46.  
  47. free(v1); free(v2); free(v3); free(v4); free(v5); free(v6); free(v7);
  48. free(v8); free(v9); free(v10); free(v11); free(v12); free(v13);
  49.  
  50. I1 = I;
  51. R2 = R * trans(vector( 0.4, 0.0, 0.0));
  52. I3 = I * trans(vector( 0.8, 0.0, 0.0));
  53. T4 = T * trans(vector( 1.2, 0.0, 0.0));
  54. free(I);
  55. free(R);
  56. free(T);
  57.  
  58. ext_dir = vector( -0.5,1.0, 0.0);
  59.  
  60. I1X = extrude(I1, ext_dir);
  61. R2X = extrude(R2, ext_dir);
  62. I3X = extrude(I3, ext_dir);
  63. T4X = extrude(T4, ext_dir);
  64.  
  65. free(I1);
  66. free(R2);
  67. free(I3);
  68. free(T4);
  69.  
  70. S1 = I1X ^ R2X ^ I3X ^ T4X;
  71. free(I1X);
  72. free(R2X);
  73. free(I3X);
  74. free(T4X);
  75.  
  76. final = convex(S1);
  77.  
  78. free(S1);
  79.  
  80. cone1 = cone(vector(0, 0, 0), vector(-3, 0, 0), 1);
  81. cylin1 = cylin(vector(0, 0, 0), vector(4, 0, 0), 1);
  82. cylin2 = cylin(vector(5,0,0),vector(4,0,0),1.5);
  83. cone2 = CON2( vector(4, 0, 0 ), vector( 1, 0, 0 ), 1, 1.5 );
  84. coni1 = CON2( vector(9, 1, 0 ), vector( 1, 0, 0 ), 0.3, 0.5 );
  85. coni2 = CON2( vector(9, 0, 1 ), vector( 1, 0, 0 ), 0.3, 0.5 );
  86.  
  87. Pt1 = CTLPT( E1, 0.0);
  88. Pt2 = CTLPT( E1, 2.0);
  89. Pt3 = CTLPT( E1, 3.0);
  90. Pt4 = CTLPT( E1,5.0);
  91. Pt5 = CTLPT( E1,10.0);
  92. Pt6 = CTLPT( E1,30.0);
  93. Pt7 = CTLPT(E1,1.0);
  94. Pt8 = CTLPT(E1,-5.0);
  95. Pt9 = CTLPT(E1,-10.0);
  96. Pt10 = CTLPT(E1,-30.0);
  97. Pt11 = CTLPT(E1,-100.0);
  98. pt12 = CTLPT(E1,8.0);
  99. Ept1 = CTLPT(E3,0.0,0.0,0.0);
  100. Ept2 = CTLPT(E3,8.0,10.0,0.0);
  101. Ept3 = CTLPT(E3,5.0,17.0,0.0); 
  102.  
  103. ROT_X = CBEZIER( list(Pt1,Pt2,Pt4));
  104. ROT_XNEG = CBEZIER( list(Pt4,Pt2,Pt1));
  105. ROT_Z = CBEZIER( list(Pt1,Pt2,Pt2,pt3));
  106. ROT_X =  CREPARAM(ROT_X,0.0, 5.0 );
  107. ROT_XNEG =  CREPARAM(ROT_XNEG,0.0, 5.0 );
  108. ROT_Z =  CREPARAM(ROT_Z,0.0, 5.0 );
  109. MOV_X = CBEZIER( list(Pt5,Pt3,Pt2));
  110. MOV_X =  CREPARAM(MOV_X,0.0, 2.0 );
  111. MOV_Z = CBEZIER( list(Pt1,Pt4,Pt5));
  112. MOV_Z =  CREPARAM(MOV_Z,4.0, 5.0 );
  113. SCL_X = CBEZIER(list(Pt7,Pt2,Pt7));
  114. SCL_X = CREPARAM(SCL_X,0.0, 5.0 );
  115. SCL_Y = CBSPLINE( 2,
  116.                list(Pt7,Pt4,Pt7),
  117.              list( KV_OPEN ) );
  118. SCL_Y = CREPARAM(SCL_Y,0.0, 2.0 );
  119. SCL = CBEZIER(list(Pt4,Pt12));
  120. SCL = CREPARAM(SCL,2.0, 5.0 );
  121. VISIBLE =  CBSPLINE( 2,
  122.             
  123. list(Pt3,Pt5,Pt3,Pt3,Pt3,Pt9,Pt3,Pt9,Pt9,Pt3,Pt3,Pt9,Pt3),
  124.              list( KV_OPEN ) );
  125. VISIBLE =  CREPARAM(VISIBLE,0.0, 2.0 );
  126. attrib(final,"animation",list(MOV_X,SCL,SCL_Y));
  127. attrib(final,"texture","marble");
  128. attrib(final,"rgb","113,230,0");
  129. free(SCL);
  130. SCL = CBEZIER(list(Pt7,Pt2));
  131. SCL = CREPARAM(SCL,0.0, 5.0 );
  132. free(MOV_X);
  133. MOV_X = CBSPLINE( 2,list(Pt5,Pt9,pt10),list( KV_OPEN ) );
  134. MOV_X =  CREPARAM(MOV_X,0.0, 5.0 );
  135. attrib(cone1,"animation",list(ROT_X,MOV_X));
  136. attrib(cone1,"rgb","150,80,80");
  137. attrib(cylin1,"animation",list(ROT_X,MOV_X));
  138. bottom = list(cylin2,cone2);
  139. attrib(bottom,"animation",list(ROT_X,MOV_X));
  140. flame = list(coni1,coni2);
  141. attrib(flame,"animation",list(ROT_X,MOV_X,VISIBLE));
  142. attrib(cylin1,"rgb","255,50,100");
  143. free(ROT_X);
  144. ROT_X = ROT_XNEG;
  145. attrib(cylin1,"animation",list(ROT_X,MOV_X));
  146. free(ROT_XNEG);
  147. attrib(cylin2,"rgb","90,223,233");
  148. COLOR(cone2,MAGENTA);
  149. COLOR(flame,RED);
  150. center = vector(-10,-14,-5);
  151. resolution = 20;
  152. sp = SPHERE(vector(-10,-10,10),2);
  153. COLOR(sp,CYAN);
  154. attrib(sp,"texture","wood");
  155. sp2 =  SPHERE(center,3);
  156.  
  157. attrib(sp2,"texture","wood");
  158. MOV_XYZ = CBEZIER(list(Ept1,Ept2,Ept3));
  159. MOV_XYZ = CREPARAM(MOV_XYZ,0.0,5.0);
  160. attrib(sp,"animation",list(SCL_X,SCL_Y,SCL,MOV_XYZ));
  161. free(MOV_XYZ);
  162. c1 = circle(center,3.8);
  163. c2 = circle(center,4.5);
  164. c3 = circle(center,4.7);
  165. c4 = circle(center,5.6);
  166. ring1 = RULEDSRF(c1,c2);
  167. ring2 = RULEDSRF(c3,c4);
  168. attrib(sp2,"rgb","175,240,15");
  169. attrib(ring1,"rgb","175,180,40");
  170. attrib(ring2,"rgb","255,170,20");
  171. attrib(ring1,"index","1.4");
  172. attrib(ring2,"index","1.4");
  173. attrib(ring1,"reflect","0.5");
  174. attrib(ring2,"reflect","0.5");
  175. MOV_XYZ =  CBEZIER(list(Ept1,Ept3,Ept2));
  176. MOV_XYZ =  CREPARAM(MOV_XYZ,0.0,5.0);
  177. free(MOV_X);
  178.  
  179. sat = list(sp2,ring1,ring2);
  180. attrib(sat,"animation",list(MOV_XYZ,ROT_Z));
  181. free(SCL);
  182. resolution = 30;
  183. sp3 = SPHERE(vector(0,0,30),15);
  184. MOV_X =  CBEZIER(list(Pt11,Pt10,Pt9));
  185. MOV_X =  CREPARAM(MOV_X,0.0, 5.0 );
  186. MOV_Z = MOV_X;
  187. attrib(sp3,"animation",list(ROT_X));
  188. COLOR(sp3,YELLOW);
  189. attrib( sp3, "transp", 0.3 );
  190. attrib( sp3, "texture", "wood" );
  191.  
  192. P = list(cone1,cylin1,bottom,flame,sp,sp3,sat,final);
  193. save("rocketman",p);
  194.  
  195.  
  196. free(Pt1 );
  197. free(Pt2 ); 
  198. free(Pt3 );
  199. free(Pt4 );
  200. free(Pt5 );
  201. free(Pt6 ); 
  202. free(Pt7 );
  203. free(Pt8 );
  204. free(Pt9 );
  205. free(Pt10 ); 
  206. free(p);
  207.  
  208. resolution = save_res;
  209. view_mat = save_mat;
  210.