home *** CD-ROM | disk | FTP | other *** search
- #
- # Simple animation demo
- #
- # Zvika Zilberman and Haggay Dagan
- #
-
- save_mat = view_mat;
- save_res = resolution;
-
- view_mat = view_mat * sc( 0.1 );
- viewobj( view_mat );
-
- a = box( vector( 0, 0, 0 ), 1, 1, 1 );
- b = box( vector( 0, 0, 0 ), 1, 1, 1 );
- c = box( vector( 0, 0, 0 ), 1, 1, 1 );
- d = sphere( vector( 0, 0, 0), 0.7 );
-
- pt0 = ctlpt( e1, 0.0 );
- pt1 = ctlpt( e1, 1.0 );
- pt2 = ctlpt( e1, 2.0 );
- pt6 = ctlpt( e1, 6.0 );
- pt360 = ctlpt( e1, 360.0 );
-
- pt10 = ctlpt( e1, -4.0 );
- pt11 = ctlpt( e1, 1.0 );
- pt12 = ctlpt( e1, 4.0 );
- pt13 = ctlpt( e1, -1.0 );
-
- visible = creparam( cbezier( list( pt10, pt11 ) ), 0.0, 5.0 );
- mov_x = creparam( cbezier( list( pt0, pt6, pt2 ) ), 0.0, 1.2 );
- mov_y = mov_x;
- mov_z = mov_x;
- rot_x = creparam( cbspline( 2,
- list( pt0, pt360, pt0 ),
- list( KV_OPEN ) ),
- 1.2, 2.5 );
- rot_y = rot_x;
- rot_z = rot_x;
- scl = creparam( cbezier( list( pt1, pt2, pt1, pt2, pt1 ) ),
- 2.5, 4.0 );
- scl_x = scl;
- scl_y = scl;
- scl_z = scl;
- mov_xyz = creparam( circle( vector( 0, 0, 0 ), 2.0 ), 4.0, 5.0 );
-
- attrib( d, "animation", list( mov_xyz, visible ) );
- free( visible );
-
- visible = creparam( cbezier( list( pt12, pt13 ) ), 0.0, 5.0 );
-
- attrib( a, "animation", list( rot_x, mov_x, scl, scl_x, visible ) );
- attrib( b, "animation", list( rot_y, mov_y, scl, scl_y, visible ) );
- attrib( c, "animation", list( rot_z, mov_z, scl, scl_z, visible ) );
-
- color( a, red );
- color( b, green );
- color( c, blue );
- color( d, cyan );
-
- demo = list( a, b, c, d );
-
- interact( demo );
- viewanim( 0, 5, 0.01 );
-
- save( "animdemo", demo );
-
- free( a );
- free( b );
- free( c );
- free( d );
- free( demo );
-
- resolution = save_res;
- view_mat = save_mat;
-