home *** CD-ROM | disk | FTP | other *** search
- proc drawBox {width height depth} {
-
- set nPolys 6
- set nVerts {4 4 4 4 4 4 }
- set verts {3 2 6 7 \
- 2 1 5 6 \
- 1 0 4 5 \
- 0 3 7 4 \
- 7 6 5 4 \
- 0 1 2 3}
- set bb(0) [expr {-.5 * $width}]
- set bb(1) [expr { .5 * $width}]
- set bb(2) [expr {-.5 * $height}]
- set bb(3) [expr { .5 * $height}]
- set bb(4) [expr {-.5 * $depth}]
- set bb(5) [expr { .5 * $depth}]
- set thePointsOfACube "$bb(0) $bb(3) $bb(5) \
- $bb(1) $bb(3) $bb(5) \
- $bb(1) $bb(3) $bb(4) \
- $bb(0) $bb(3) $bb(4) \
- $bb(0) $bb(2) $bb(5) \
- $bb(1) $bb(2) $bb(5) \
- $bb(1) $bb(2) $bb(4) \
- $bb(0) $bb(2) $bb(4)"
-
-
- PointsPolygons $nVerts $verts P $thePointsOfACube
- }
-
-
- proc drawPatch {} {
-
- set patch(color) {1.0 0.0 0.0}
- set patch(type) bilinear
- set patch(x0) -1.0
- set patch(y0) -0.5
- set patch(z0) 0.0
-
- set patch(x1) -1.0
- set patch(y1) 0.5
- set patch(z1) 0.0
-
- set patch(x2) 1.0
- set patch(y2) -0.5
- set patch(z2) 0.0
-
- set patch(x3) 1.0
- set patch(y3) 0.5
- set patch(z3) 0.0
-
- Patch $patch(type) P "$patch(x0) $patch(y0) $patch(z0) $patch(x1) $patch(y1) $patch(z1) \
- $patch(x2) $patch(y2) $patch(z2) $patch(x3) $patch(y3) $patch(z3)"
-
- }
-
- startShape theDifferenceOfTwoSpheres
- SolidBegin difference
- SolidBegin primitive
- drawPatch
- SolidEnd
- SolidBegin primitive
- drawBox .5 .5 .5
- SolidEnd
- SolidEnd
- AttributeEnd
-
-