home *** CD-ROM | disk | FTP | other *** search
- #
- # Extrusion example of the IRIT letters created manually:
- #
- # Created by Gershon Elber, Mar 89
- #
-
- save_mat = view_mat;
- save_res = resolution;
-
- view_mat = view_mat * scale( vector( -1.0, 1.0, 1.0 ) );
-
- v1 = vector( 0.0, 0.0, 0.0); # The I letter
- v2 = vector( 0.3, 0.0, 0.0);
- v3 = vector( 0.3, 0.0, 0.1);
- v4 = vector( 0.2, 0.0, 0.1);
- v5 = vector( 0.2, 0.0, 0.5);
- v6 = vector( 0.3, 0.0, 0.5);
- v7 = vector( 0.3, 0.0, 0.6);
- v8 = vector( 0.0, 0.0, 0.6);
- v9 = vector( 0.0, 0.0, 0.5);
- v10 = vector( 0.1, 0.0, 0.5);
- v11 = vector( 0.1, 0.0, 0.1);
- v12 = vector( 0.0, 0.0, 0.1);
-
- I = poly( list( v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12 ), false );
- view( list( view_mat, I ), true );
-
-
- v1 = vector( 0.0, 0.0, 0.0); # The R Letter
- v2 = vector( 0.1, 0.0, 0.0);
- v3 = vector( 0.1, 0.0, 0.5);
- v4 = vector( 0.2, 0.0, 0.5);
- v5 = vector( 0.2, 0.0, 0.4);
- v6 = vector( 0.1, 0.0, 0.4);
- v7 = vector( 0.1, 0.0, 0.3);
- v8 = vector( 0.2, 0.0, 0.0);
- v9 = vector( 0.3, 0.0, 0.0);
- v10 = vector( 0.2, 0.0, 0.3);
- v11 = vector( 0.3, 0.0, 0.3);
- v12 = vector( 0.3, 0.0, 0.6);
- v13 = vector( 0.0, 0.0, 0.6);
-
- R = poly( list( v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 ), false );
- view(R, true);
-
-
- v1 = vector( 0.1, 0.0, 0.0);
- v2 = vector( 0.1, 0.0, 0.5);
- v3 = vector( 0.0, 0.0, 0.5);
- v4 = vector( 0.0, 0.0, 0.6);
- v5 = vector( 0.3, 0.0, 0.6);
- v6 = vector( 0.3, 0.0, 0.5);
- v7 = vector( 0.2, 0.0, 0.5);
- v8 = vector( 0.2, 0.0, 0.0);
-
- T = poly( list( v1, v2, v3, v4, v5, v6, v7, v8 ), false );
- view( T, true);
-
- free( v1 ); free( v2 ); free( v3 ); free( v4 ); free( v5 );
- free( v6 ); free( v7 ); free( v8 ); free( v9 ); free( v10 );
- free( v11 ); free( v12 ); free( v13 );
-
- I1 = I;
- R2 = R * trans( vector( 0.4, 0.0, 0.0 ) );
- I3 = I * trans( vector( 0.8, 0.0, 0.0 ) );
- T4 = T * trans( vector( 1.2, 0.0, 0.0 ) );
- free( I );
- free( R );
- free( T );
-
- view_mat = view_mat * trans( vector( -0.8, 0.0, 0.0 ) );
-
- view( list( view_mat, I1, R2, I3, T4 ), true );
-
- ext_dir = vector( 0.0,-1.0, 0.0 );
-
- I1X = extrude( I1, ext_dir );
- R2X = extrude( R2, ext_dir );
- I3X = extrude( I3, ext_dir );
- T4X = extrude( T4, ext_dir );
- free( I1 );
- free( R2 );
- free( I3 );
- free( T4 );
-
- S1 = I1X ^ R2X ^ I3X ^ T4X;
- final = convex( S1 );
- interact( final );
-
- #
- # Animation one - all in parallel.
- #
-
-
- I1XT = I1X * trans( vector( -0.5, 0.5, -0.3 ) );
- R2XT = R2X * trans( vector( -0.5, 0.5, -0.3 ) );
- I3XT = I3X * trans( vector( -0.5, 0.5, -0.3 ) );
- T4XT = T4X * trans( vector( -0.5, 0.5, -0.3 ) );
-
- view_mat = save_mat * scale(vector( -0.9, 0.9, 0.9 ) )
- * trans( vector( 0.0, 0.0, 0.0 ) );
- viewobj( view_mat );
-
- scl = creparam( cbspline( 3,
- list( ctlpt( E1, 0.05 ),
- ctlpt( E1, 0.1 ),
- ctlpt( E1, 1.0 ) ),
- list( KV_OPEN ) ),
- 0, 2 );
-
- mov_x = cbspline( 3,
- list( ctlpt( E1, 3 ),
- ctlpt( E1, -8 ),
- ctlpt( E1, 3 ),
- ctlpt( E1, 0 ) ),
- list( KV_OPEN ) );
- attrib( I1XT, "animation", list( mov_x, scl ) );
- free( mov_x );
-
- mov_y = cbspline( 3,
- list( ctlpt( E1, -3 ),
- ctlpt( E1, 8 ),
- ctlpt( E1, -2 ),
- ctlpt( E1, 0 ) ),
- list( KV_OPEN ) );
- attrib( R2XT, "animation", list( mov_y, scl ) );
- free( mov_y );
-
- mov_x = cbspline( 3,
- list( ctlpt( E1, 3 ),
- ctlpt( E1, -8 ),
- ctlpt( E1, 3 ),
- ctlpt( E1, 0 ) ),
- list( KV_OPEN ) );
- attrib( I3XT, "animation", list( mov_x, scl ) );
- free( mov_x );
-
- mov_z = cbspline( 3,
- list( ctlpt( E1, -3 ),
- ctlpt( E1, 8 ),
- ctlpt( E1, -2 ),
- ctlpt( E1, 0 ) ),
- list( KV_OPEN ) );
- attrib( T4XT, "animation", list( mov_z, scl ) );
- free( mov_z );
-
- S1 = list( I1XT, R2XT, I3XT, T4XT );
- view( S1, on );
- viewstate( "DepthCue" );
- viewanim( 0, 2, 0.01 );
- pause();
- save( "solid0a1", s1 );
- free( S1 );
-
- #
- # Animation two - do every character at a time.
- #
-
- scl = creparam( cbspline( 3,
- list( ctlpt( E1, 0.2 ),
- ctlpt( E1, 0.2 ),
- ctlpt( E1, 1.0 ) ),
- list( KV_OPEN ) ),
- 0, 2 );
- mov_x = cbspline( 3,
- list( ctlpt( E1, 5 ),
- ctlpt( E1, -8 ),
- ctlpt( E1, 3 ),
- ctlpt( E1, 0 ) ),
- list( KV_OPEN ) );
- attrib( I1XT, "animation", list( mov_x, scl ) );
- attrib( I3XT, "animation", list( mov_x, scl ) );
- free( scl );
- free( mov_x );
-
- scl = creparam( cbspline( 3,
- list( ctlpt( E1, 0.2 ),
- ctlpt( E1, 0.2 ),
- ctlpt( E1, 1.0 ) ),
- list( KV_OPEN ) ),
- 2, 4 );
- mov_y = creparam( cbspline( 3,
- list( ctlpt( E1, -3 ),
- ctlpt( E1, 8 ),
- ctlpt( E1, -2 ),
- ctlpt( E1, 0 ) ),
- list( KV_OPEN ) ),
- 2, 4 );
- attrib( R2XT, "animation", list( mov_y, scl ) );
- free( scl );
- free( mov_y );
-
- scl = creparam( cbspline( 3,
- list( ctlpt( E1, 0.2 ),
- ctlpt( E1, 0.2 ),
- ctlpt( E1, 1.0 ) ),
- list( KV_OPEN ) ),
- 4, 6 );
- mov_z = creparam( cbspline( 3,
- list( ctlpt( E1, -3 ),
- ctlpt( E1, 8 ),
- ctlpt( E1, -2 ),
- ctlpt( E1, 0 ) ),
- list( KV_OPEN ) ),
- 4, 6 );
- attrib( T4XT, "animation", list( mov_z, scl ) );
- free( scl );
- free( mov_z );
-
- S1 = list( I1XT, R2XT, I3XT, T4XT );
- view( S1, on );
- viewanim( 0, 6, 0.02 );
- pause();
- save( "solid0a2", s1 );
- free( S1 );
-
- resolution = save_res;
- view_mat = save_mat;
-
-