# # A derivatione of solid2 to demonstrate dependencies' capabilities, # # Created by Gershon Elber, Mar 97 # save_res = resolution; IDpnd = iritstate( "dependency", 1 ); # Try it with 2! PSort = iritstate( "polysort", 0 ); # # Make a dummy function do display so it will be reevaluated by dependencies. # DependDisplay = function( obj, clear ): if ( clear, viewclear() ): viewobj( obj ): return = 1; T1 = BOX( vector( -2.0, -0.35, 0.0 ), 4, 0.7, 0.4 ); resolution = 40; T2 = CYLIN( vector( 0.0, 0.0, 0.0 ), vector( 0.0, 0.0, 0.4 ), 1.4, 3 ); S1 = T1 * T2; resolution = 20; T3 = CYLIN( vector( 0.0, 0.0, 0.0 ), vector( 0.0, 0.0, 0.4 ), 0.9, 3 ); S2 = S1 + T3; resolution = 40; T4 = CYLIN( vector( 1.45, -0.5, 1.0 ), vector( 0.0, 1.0, 0.0 ), 0.8, 3 ); T5 = CYLIN( vector( -1.45, -0.5, 1.0 ), vector( 0.0, 1.0, 0.0 ), 0.8, 3 ); S3 = S2 - T4 - T5; resolution = 8; T6 = CYLIN( vector( 1.2, 0.0, -0.1 ), vector( 0.0, 0.0, 0.5 ), 0.1, 3 ); T7 = CYLIN( vector( -1.2, 0.0, -0.1 ), vector( 0.0, 0.0, 0.5 ), 0.1, 3 ); S4 = S3 - T6 - T7; resolution = 16; T8 = CYLIN( vector( 0.0, 0.0, -0.2 ), vector( 0.0, 0.0, 0.9 ), 0.4, 3 ); T9 = BOX( vector( -0.6, -0.15,-0.1 ), 1.2, 0.3, 0.7 ); S5 = T8 + T9; S6 = S4 - S5; final = convex( S6 ); view_mat = view_mat * sc( 0.6 ); viewobj( view_mat ); dummy = DependDisplay( final, false ); # This will actually commence display! # Press CR when ready: pause(); resolution = 32; T8 = CYLIN( vector( 0.0, 0.0, -0.2 ), vector( 0.0, 0.0, 0.9 ), 0.2, 3 ); T8 = CYLIN( vector( 0.0, 0.0, -0.2 ), vector( 0.0, 0.0, 0.9 ), 0.25, 3 ); T8 = CYLIN( vector( 0.0, 0.0, -0.2 ), vector( 0.0, 0.0, 0.9 ), 0.3, 3 ); T8 = CYLIN( vector( 0.0, 0.0, -0.2 ), vector( 0.0, 0.0, 0.9 ), 0.35, 3 ); T8 = CYLIN( vector( 0.0, 0.0, -0.2 ), vector( 0.0, 0.0, 0.9 ), 0.4, 3 ); T8 = CYLIN( vector( 0.0, 0.0, -0.2 ), vector( 0.0, 0.0, 0.9 ), 0.45, 3 ); T8 = CYLIN( vector( 0.0, 0.0, -0.2 ), vector( 0.0, 0.0, 0.9 ), 0.5, 3 ); resolution = 12; T6 = CYLIN( vector( 1.2, 0.0, -0.1 ), vector( 0.0, 0.0, 0.5 ), 0.05, 3 ); T6 = CYLIN( vector( 1.2, 0.0, -0.1 ), vector( 0.0, 0.0, 0.5 ), 0.1, 3 ); T6 = CYLIN( vector( 1.2, 0.0, -0.1 ), vector( 0.0, 0.0, 0.5 ), 0.15, 3 ); T6 = CYLIN( vector( 1.2, 0.0, -0.1 ), vector( 0.0, 0.0, 0.5 ), 0.21, 3 ); T6 = CYLIN( vector( 1.2, 0.0, -0.1 ), vector( 0.0, 0.0, 0.5 ), 0.25, 3 ); T6 = CYLIN( vector( 1.2, 0.0, -0.1 ), vector( 0.0, 0.0, 0.5 ), 0.3, 3 ); T6 = CYLIN( vector( 1.2, 0.0, -0.1 ), vector( 0.0, 0.0, 0.5 ), 0.36, 3 ); T6 = CYLIN( vector( 1.2, 0.0, -0.1 ), vector( 0.0, 0.0, 0.5 ), 0.4, 3 ); ############################################################################# IDpnd = iritstate( "dependency", IDpnd ); free( IDpnd ); PSort = iritstate( "polysort", PSort ); free( PSort ); resolution = save_res; free( T1 ); free( T2 ); free( T3 ); free( T4 ); free( T5 ); free( T6 ); free( T7 ); free( T8 ); free( T9 ); free( S1 ); free( S2 ); free( S3 ); free( S4 ); free( S5 ); free( S6 ); free( final );