home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / gfx / 3d / irit / scripts / solid0.irt < prev    next >
Encoding:
Text File  |  1995-02-15  |  5.0 KB  |  220 lines

  1. #
  2. # Extrusion example of the IRIT letters created manually:
  3. #
  4. #                Created by Gershon Elber,    Mar 89
  5. #
  6.  
  7. save_mat = view_mat;
  8. save_res = resolution;
  9.  
  10. view_mat = view_mat * scale( vector( -1.0, 1.0, 1.0 ) );
  11.  
  12. v1  = vector( 0.0, 0.0, 0.0);                      # The I letter
  13. v2  = vector( 0.3, 0.0, 0.0);
  14. v3  = vector( 0.3, 0.0, 0.1);
  15. v4  = vector( 0.2, 0.0, 0.1);
  16. v5  = vector( 0.2, 0.0, 0.5);
  17. v6  = vector( 0.3, 0.0, 0.5);
  18. v7  = vector( 0.3, 0.0, 0.6);
  19. v8  = vector( 0.0, 0.0, 0.6);
  20. v9  = vector( 0.0, 0.0, 0.5);
  21. v10 = vector( 0.1, 0.0, 0.5);
  22. v11 = vector( 0.1, 0.0, 0.1);
  23. v12 = vector( 0.0, 0.0, 0.1);
  24.  
  25. I = poly( list( v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12 ), false );
  26. view( list( view_mat, I ), true );
  27.  
  28.  
  29. v1  = vector( 0.0, 0.0, 0.0);                    # The R Letter
  30. v2  = vector( 0.1, 0.0, 0.0);
  31. v3  = vector( 0.1, 0.0, 0.5);
  32. v4  = vector( 0.2, 0.0, 0.5);
  33. v5  = vector( 0.2, 0.0, 0.4);
  34. v6  = vector( 0.1, 0.0, 0.4);
  35. v7  = vector( 0.1, 0.0, 0.3);
  36. v8  = vector( 0.2, 0.0, 0.0);
  37. v9  = vector( 0.3, 0.0, 0.0);
  38. v10 = vector( 0.2, 0.0, 0.3);
  39. v11 = vector( 0.3, 0.0, 0.3);
  40. v12 = vector( 0.3, 0.0, 0.6);
  41. v13 = vector( 0.0, 0.0, 0.6);
  42.  
  43. R = poly( list( v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 ), false );
  44. view(R, true);
  45.  
  46.  
  47. v1  = vector( 0.1, 0.0, 0.0);
  48. v2  = vector( 0.1, 0.0, 0.5);
  49. v3  = vector( 0.0, 0.0, 0.5);
  50. v4  = vector( 0.0, 0.0, 0.6);
  51. v5  = vector( 0.3, 0.0, 0.6);
  52. v6  = vector( 0.3, 0.0, 0.5);
  53. v7  = vector( 0.2, 0.0, 0.5);
  54. v8  = vector( 0.2, 0.0, 0.0);
  55.  
  56. T = poly( list( v1, v2, v3, v4, v5, v6, v7, v8 ), false );
  57. view( T, true);
  58.  
  59. free( v1 ); free( v2 ); free( v3 ); free( v4 ); free( v5 );
  60. free( v6 ); free( v7 ); free( v8 ); free( v9 ); free( v10 );
  61. free( v11 ); free( v12 ); free( v13 );
  62.  
  63. I1 = I;
  64. R2 = R * trans( vector( 0.4, 0.0, 0.0 ) );
  65. I3 = I * trans( vector( 0.8, 0.0, 0.0 ) );
  66. T4 = T * trans( vector( 1.2, 0.0, 0.0 ) );
  67. free( I );
  68. free( R );
  69. free( T );
  70.  
  71. view_mat = view_mat * trans( vector( -0.8, 0.0, 0.0 ) );
  72.  
  73. view( list( view_mat, I1, R2, I3, T4 ), true );
  74.  
  75. ext_dir = vector( 0.0,-1.0, 0.0 );
  76.  
  77. I1X = extrude( I1, ext_dir );
  78. R2X = extrude( R2, ext_dir );
  79. I3X = extrude( I3, ext_dir );
  80. T4X = extrude( T4, ext_dir );
  81. free( I1 );
  82. free( R2 );
  83. free( I3 );
  84. free( T4 );
  85.  
  86. S1 = I1X ^ R2X ^ I3X ^ T4X;
  87. final = convex( S1 );
  88. interact( final );
  89.  
  90. #
  91. # Animation one - all in parallel.
  92. #
  93.  
  94.  
  95. I1XT = I1X * trans( vector( -0.5, 0.5, -0.3 ) );
  96. R2XT = R2X * trans( vector( -0.5, 0.5, -0.3 ) );
  97. I3XT = I3X * trans( vector( -0.5, 0.5, -0.3 ) );
  98. T4XT = T4X * trans( vector( -0.5, 0.5, -0.3 ) );
  99.  
  100. view_mat = save_mat * scale(vector( -0.9, 0.9, 0.9 ) )
  101.             * trans( vector( 0.0, 0.0, 0.0 ) );
  102. viewobj( view_mat );
  103.  
  104. scl = creparam( cbspline( 3,
  105.               list( ctlpt( E1, 0.05 ),
  106.                     ctlpt( E1, 0.1 ),
  107.                     ctlpt( E1, 1.0 ) ),
  108.               list( KV_OPEN ) ),
  109.         0, 2 );
  110.  
  111. mov_x = cbspline( 3,
  112.           list( ctlpt( E1, 3 ),
  113.             ctlpt( E1, -8 ),
  114.             ctlpt( E1, 3 ),
  115.             ctlpt( E1, 0 ) ),
  116.           list( KV_OPEN ) );
  117. attrib( I1XT, "animation", list( mov_x, scl ) );
  118. free( mov_x );
  119.  
  120. mov_y = cbspline( 3,
  121.           list( ctlpt( E1, -3 ),
  122.             ctlpt( E1, 8 ),
  123.             ctlpt( E1, -2 ),
  124.             ctlpt( E1, 0 ) ),
  125.           list( KV_OPEN ) );
  126. attrib( R2XT, "animation", list( mov_y, scl ) );
  127. free( mov_y );
  128.  
  129. mov_x = cbspline( 3,
  130.           list( ctlpt( E1, 3 ),
  131.             ctlpt( E1, -8 ),
  132.             ctlpt( E1, 3 ),
  133.             ctlpt( E1, 0 ) ),
  134.           list( KV_OPEN ) );
  135. attrib( I3XT, "animation", list( mov_x, scl ) );
  136. free( mov_x );
  137.  
  138. mov_z = cbspline( 3,
  139.           list( ctlpt( E1, -3 ),
  140.             ctlpt( E1, 8 ),
  141.             ctlpt( E1, -2 ),
  142.             ctlpt( E1, 0 ) ),
  143.           list( KV_OPEN ) );
  144. attrib( T4XT, "animation", list( mov_z, scl ) );
  145. free( mov_z );
  146.  
  147. S1 = list( I1XT, R2XT, I3XT, T4XT );
  148. view( S1, on );
  149. viewstate( "DepthCue" );
  150. viewanim( 0, 2, 0.01 );
  151. pause();
  152. save( "solid0a1", s1 );
  153. free( S1 );
  154.  
  155. #
  156. # Animation two - do every character at a time.
  157. #
  158.  
  159. scl = creparam( cbspline( 3,
  160.               list( ctlpt( E1, 0.2 ),
  161.                     ctlpt( E1, 0.2 ),
  162.                     ctlpt( E1, 1.0 ) ),
  163.               list( KV_OPEN ) ),
  164.         0, 2 );
  165. mov_x = cbspline( 3,
  166.           list( ctlpt( E1, 5 ),
  167.             ctlpt( E1, -8 ),
  168.             ctlpt( E1, 3 ),
  169.             ctlpt( E1, 0 ) ),
  170.           list( KV_OPEN ) );
  171. attrib( I1XT, "animation", list( mov_x, scl ) );
  172. attrib( I3XT, "animation", list( mov_x, scl ) );
  173. free( scl );
  174. free( mov_x );
  175.  
  176. scl = creparam( cbspline( 3,
  177.               list( ctlpt( E1, 0.2 ),
  178.                     ctlpt( E1, 0.2 ),
  179.                     ctlpt( E1, 1.0 ) ),
  180.               list( KV_OPEN ) ),
  181.         2, 4 );
  182. mov_y = creparam( cbspline( 3,
  183.                 list( ctlpt( E1, -3 ),
  184.                   ctlpt( E1, 8 ),
  185.                   ctlpt( E1, -2 ),
  186.                   ctlpt( E1, 0 ) ),
  187.                 list( KV_OPEN ) ),
  188.           2, 4 );
  189. attrib( R2XT, "animation", list( mov_y, scl ) );
  190. free( scl );
  191. free( mov_y );
  192.  
  193. scl = creparam( cbspline( 3,
  194.               list( ctlpt( E1, 0.2 ),
  195.                     ctlpt( E1, 0.2 ),
  196.                     ctlpt( E1, 1.0 ) ),
  197.               list( KV_OPEN ) ),
  198.         4, 6 );
  199. mov_z = creparam( cbspline( 3,
  200.                 list( ctlpt( E1, -3 ),
  201.                   ctlpt( E1, 8 ),
  202.                   ctlpt( E1, -2 ),
  203.                   ctlpt( E1, 0 ) ),
  204.                 list( KV_OPEN ) ),    
  205.           4, 6 );
  206. attrib( T4XT, "animation", list( mov_z, scl ) );
  207. free( scl );
  208. free( mov_z );
  209.  
  210. S1 = list( I1XT, R2XT, I3XT, T4XT );
  211. view( S1, on );
  212. viewanim( 0, 6, 0.02 );
  213. pause();
  214. save( "solid0a2", s1 );
  215. free( S1 );
  216.  
  217. resolution = save_res;
  218. view_mat = save_mat;
  219.  
  220.