home *** CD-ROM | disk | FTP | other *** search
- #
- # Some simple examples of trimmed surfaces' construction.
- #
- # Gershon Elber, Dec 1994.
- #
-
- iritstate("dumplevel", 9 );
-
- spts = list( list( ctlpt( E3, 0.1, 0.0, 1.0 ),
- ctlpt( E3, 0.3, 1.0, 0.0 ),
- ctlpt( E3, 0.0, 2.0, 1.0 ) ),
- list( ctlpt( E3, 1.1, 0.0, 0.0 ),
- ctlpt( E3, 1.3, 1.5, 2.0 ),
- ctlpt( E3, 1.0, 2.1, 0.0 ) ),
- list( ctlpt( E3, 2.1, 0.0, 2.0 ),
- ctlpt( E3, 2.3, 1.0, 0.0 ),
- ctlpt( E3, 2.0, 2.0, 2.0 ) ),
- list( ctlpt( E3, 3.1, 0.0, 0.0 ),
- ctlpt( E3, 3.3, 1.5, 2.0 ),
- ctlpt( E3, 3.0, 2.1, 0.0 ) ),
- list( ctlpt( E3, 4.1, 0.0, 1.0 ),
- ctlpt( E3, 4.3, 1.0, 0.0 ),
- ctlpt( E3, 4.0, 2.0, 1.0 ) ) );
-
- sb1 = sbezier( spts );
- sb2 = sbspline( 3, 3, spts, list( list( KV_OPEN ), list( KV_OPEN ) ) );
-
- tcrv1 = cbspline( 2,
- list( ctlpt( E2, 0.3, 0.3 ),
- ctlpt( E2, 0.7, 0.3 ),
- ctlpt( E2, 0.7, 0.7 ),
- ctlpt( E2, 0.3, 0.7 ),
- ctlpt( E2, 0.3, 0.3 ) ),
- list( KV_OPEN ) );
- tcrv2 = circle( vector( 0.5, 0.5, 0.0 ), 0.25 );
- tcrv3 = cbspline( 3,
- list( ctlpt( E2, 0.3, 0.3 ),
- ctlpt( E2, 0.7, 0.3 ),
- ctlpt( E2, 0.7, 0.7 ),
- ctlpt( E2, 0.3, 0.7 ) ),
- list( KV_PERIODIC ) );
-
- tsrf1a = trimsrf( sb1, tcrv1, false );
- color( tsrf1a, red );
- interact( tsrf1a );
- tsrf1b = trimsrf( sb1, tcrv1, true ) * tz( 0.1 );
- color( tsrf1b, green );
- interact( tsrf1b );
- interact( list( tsrf1a, tsrf1b ) );
-
- tsrf2a = trimsrf( sb1, tcrv2, false );
- color( tsrf2a, red );
- tsrf2b = trimsrf( sb1, tcrv2, true ) * tz( 0.1 );
- color( tsrf2b, green );
- interact( list( tsrf2a, tsrf2b ) );
-
- tsrf2ap = gpolyline( tsrf2a, off );
- color( tsrf2a, red );
- tsrf2bp = gpolyline( tsrf2b, off );
- color( tsrf2b, green );
- interact( list( tsrf2ap, tsrf2bp ) );
-
- crvs3 = list( tcrv1, tcrv2 * ty( 1 ), tcrv3 * ty( 2 ) );
- tsrf3a = trimsrf( sb2, crvs3, false );
- color( tsrf3a, red );
- tsrf3b = trimsrf( sb2, crvs3, true ) * tz( 0.1 );
- interact( tsrf3b );
- color( tsrf3b, green );
- interact( list( tsrf3a, tsrf3b ) );
-
- pdomain( tsrf1a );
- pdomain( tsrf3b );
-
- interact( strimsrf( tsrf1a ) );
- interact( ctrimsrf( tsrf1a, true ) );
- interact( ctrimsrf( tsrf3a, false ) );
-
- save( "trim2", tsrf2a );
- save( "trim3", tsrf3b );
- trim3l = load( "trim3" );
- trim3l;
-
- iritstate("dumplevel", 1 );
-