home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 11 / CDACTUAL11.iso / cdactual / demobin / share / os2 / IRIT50 / SCRIPTS / TRIMSRFS.IRT < prev    next >
Encoding:
Text File  |  1994-12-17  |  2.3 KB  |  84 lines

  1. #
  2. #  Some simple examples of trimmed surfaces' construction.
  3. #
  4. #                    Gershon Elber, Dec 1994.
  5. #
  6.  
  7. iritstate("dumplevel", 9 );
  8.  
  9. spts = list( list( ctlpt( E3, 0.1, 0.0, 1.0 ),
  10.                ctlpt( E3, 0.3, 1.0, 0.0 ),
  11.                ctlpt( E3, 0.0, 2.0, 1.0 ) ),
  12.              list( ctlpt( E3, 1.1, 0.0, 0.0 ),
  13.                ctlpt( E3, 1.3, 1.5, 2.0 ),
  14.                ctlpt( E3, 1.0, 2.1, 0.0 ) ),
  15.              list( ctlpt( E3, 2.1, 0.0, 2.0 ),
  16.                ctlpt( E3, 2.3, 1.0, 0.0 ),
  17.                ctlpt( E3, 2.0, 2.0, 2.0 ) ),
  18.              list( ctlpt( E3, 3.1, 0.0, 0.0 ),
  19.                ctlpt( E3, 3.3, 1.5, 2.0 ),
  20.                ctlpt( E3, 3.0, 2.1, 0.0 ) ),
  21.              list( ctlpt( E3, 4.1, 0.0, 1.0 ),
  22.                ctlpt( E3, 4.3, 1.0, 0.0 ),
  23.                ctlpt( E3, 4.0, 2.0, 1.0 ) ) );
  24.  
  25. sb1 = sbezier( spts );
  26. sb2 = sbspline( 3, 3, spts, list( list( KV_OPEN ), list( KV_OPEN ) ) );
  27.  
  28. tcrv1 = cbspline( 2,
  29.           list( ctlpt( E2, 0.3, 0.3 ),
  30.                 ctlpt( E2, 0.7, 0.3 ),
  31.                 ctlpt( E2, 0.7, 0.7 ),
  32.                 ctlpt( E2, 0.3, 0.7 ),
  33.                 ctlpt( E2, 0.3, 0.3 ) ),
  34.           list( KV_OPEN ) );
  35. tcrv2 = circle( vector( 0.5, 0.5, 0.0 ), 0.25 );
  36. tcrv3 = cbspline( 3,
  37.           list( ctlpt( E2, 0.3, 0.3 ),
  38.                 ctlpt( E2, 0.7, 0.3 ),
  39.                 ctlpt( E2, 0.7, 0.7 ),
  40.                 ctlpt( E2, 0.3, 0.7 ) ),
  41.           list( KV_PERIODIC ) );
  42.  
  43. tsrf1a = trimsrf( sb1, tcrv1, false );
  44. color( tsrf1a, red );
  45. interact( tsrf1a );
  46. tsrf1b = trimsrf( sb1, tcrv1, true ) * tz( 0.1 );
  47. color( tsrf1b, green );
  48. interact( tsrf1b );
  49. interact( list( tsrf1a, tsrf1b ) );
  50.  
  51. tsrf2a = trimsrf( sb1, tcrv2, false );
  52. color( tsrf2a, red );
  53. tsrf2b = trimsrf( sb1, tcrv2, true ) * tz( 0.1 );
  54. color( tsrf2b, green );
  55. interact( list( tsrf2a, tsrf2b ) );
  56.  
  57. tsrf2ap = gpolyline( tsrf2a, off );
  58. color( tsrf2a, red );
  59. tsrf2bp = gpolyline( tsrf2b, off );
  60. color( tsrf2b, green );
  61. interact( list( tsrf2ap, tsrf2bp ) );
  62.  
  63. crvs3 = list( tcrv1, tcrv2 * ty( 1 ), tcrv3 * ty( 2 ) );
  64. tsrf3a = trimsrf( sb2, crvs3, false );
  65. color( tsrf3a, red );
  66. tsrf3b = trimsrf( sb2, crvs3, true ) * tz( 0.1 );
  67. interact( tsrf3b );
  68. color( tsrf3b, green );
  69. interact( list( tsrf3a, tsrf3b ) );
  70.  
  71. pdomain( tsrf1a );
  72. pdomain( tsrf3b );
  73.  
  74. interact( strimsrf( tsrf1a ) );
  75. interact( ctrimsrf( tsrf1a, true ) );
  76. interact( ctrimsrf( tsrf3a, false ) );
  77.  
  78. save( "trim2", tsrf2a );
  79. save( "trim3", tsrf3b );
  80. trim3l = load( "trim3" );
  81. trim3l;
  82.  
  83. iritstate("dumplevel", 1 );
  84.