home *** CD-ROM | disk | FTP | other *** search
/ Stone Design / Stone Design.iso / Stone_Friends / Wave / WavesWorld / Examples / constructiveSolidGeometry / PolysMinusPatch.eve < prev    next >
Encoding:
Text File  |  1995-03-22  |  1.6 KB  |  67 lines

  1. proc drawBox {width height depth} {
  2.  
  3.   set nPolys 6
  4.   set nVerts {4 4 4 4 4 4 }
  5.   set verts  {3 2 6 7 \
  6.               2 1 5 6 \
  7.               1 0 4 5 \
  8.               0 3 7 4 \
  9.               7 6 5 4 \
  10.               0 1 2 3}
  11.   set bb(0) [expr {-.5 * $width}] 
  12.   set bb(1) [expr { .5 * $width}] 
  13.   set bb(2) [expr {-.5 * $height}] 
  14.   set bb(3) [expr { .5 * $height}] 
  15.   set bb(4) [expr {-.5 * $depth}] 
  16.   set bb(5) [expr { .5 * $depth}] 
  17.   set thePointsOfACube "$bb(0) $bb(3) $bb(5) \
  18.                         $bb(1) $bb(3) $bb(5) \
  19.                         $bb(1) $bb(3) $bb(4) \
  20.                         $bb(0) $bb(3) $bb(4) \
  21.                         $bb(0) $bb(2) $bb(5) \
  22.                         $bb(1) $bb(2) $bb(5) \
  23.                         $bb(1) $bb(2) $bb(4) \
  24.                         $bb(0) $bb(2) $bb(4)"
  25.  
  26.  
  27.   PointsPolygons $nVerts $verts P $thePointsOfACube
  28. }
  29.  
  30.  
  31. proc drawPatch {} {
  32.  
  33.   set patch(color) {1.0 0.0 0.0}
  34.   set patch(type) bilinear
  35.   set patch(x0) -1.0
  36.   set patch(y0) -0.5
  37.   set patch(z0)  0.0
  38.   
  39.   set patch(x1) -1.0
  40.   set patch(y1)  0.5
  41.   set patch(z1)  0.0
  42.   
  43.   set patch(x2)  1.0
  44.   set patch(y2) -0.5
  45.   set patch(z2)  0.0
  46.   
  47.   set patch(x3)  1.0
  48.   set patch(y3)  0.5
  49.   set patch(z3)  0.0
  50.   
  51.   Patch $patch(type) P "$patch(x0) $patch(y0) $patch(z0) $patch(x1) $patch(y1) $patch(z1) \
  52.                         $patch(x2) $patch(y2) $patch(z2) $patch(x3) $patch(y3) $patch(z3)"
  53.  
  54. }
  55.  
  56. startShape theDifferenceOfTwoSpheres
  57.   SolidBegin difference
  58.     SolidBegin primitive
  59.       drawPatch
  60.     SolidEnd
  61.     SolidBegin primitive
  62.       drawBox .5 .5 .5
  63.     SolidEnd
  64.   SolidEnd
  65. AttributeEnd
  66.  
  67.