---- Cut Here and feed the following to sh ---- #!/bin/sh # This is a shell archive (produced by GNU sharutils 4.1). # To extract the files from this archive, save it to some FILE, remove # everything before the `!/bin/sh' line above, then type `sh FILE'. # # Made on 1996-02-12 09:13 PST by . # Source directory was `/ext/arvo/temp'. # # Existing files will *not* be overwritten unless `-c' is specified. # # This shar contains: # length mode name # ------ ---------- ------------------------------------------ # 5545 -rw-r--r-- FrostedGlass # 11126 -rw------- StainedGlass # 1492 -rw-r--r-- LizardData # 3030 -rw-r--r-- Lizard.C # touch -am 1231235999 $$.touch >/dev/null 2>&1 if test ! -f 1231235999 && test -f $$.touch; then shar_touch=touch else shar_touch=: echo echo 'WARNING: not restoring timestamps. Consider getting and' echo "installing GNU \`touch', distributed in GNU File Utilities..." echo fi rm -f 1231235999 $$.touch # # ============= FrostedGlass ============== if test -f 'FrostedGlass' && test X"$1" != X"-c"; then echo 'x - skipping FrostedGlass (file already exists)' else echo 'x - extracting FrostedGlass (text)' sed 's/^X//' << 'SHAR_EOF' > 'FrostedGlass' && X X/* Date Jan 4 1995, Time 14:32:28 */ X X#define exponent 65 X X// These are the RGB attributes. The first number after X// "emit" or "trans" is the Phong exponent. It is zero X// for all surfaces except the glass panel. The rgb X// colors are given in the range 0...255. X X(attrib 20 (emit 0 255 20 20)) X(attrib 21 (emit 0 0 0 165)) X(attrib 100 (trans exponent 170 150 210)) X(background 48 60 90) X X(camera X (eye ( 0.0010 -3.8649 0.8633)) X (up (-0.0001 0.2180 0.9759)) X (target ( 0.0000 0.0000 0.0000)) X (fov 45.0000)) X X(attrib 1 (emit 0 255 219 30)) X(attrib 2 (emit 0 255 190 10)) X(attrib 3 (emit 0 150 170 50)) X(attrib 4 (emit 0 230 200 60)) X(attrib 5 (emit 0 255 180 0)) X(attrib 6 (emit 0 120 170 70)) X(attrib 7 (emit 0 255 180 15)) X(attrib 8 (emit 0 120 170 65)) X(attrib 9 (emit 0 255 221 44)) X(attrib 10 (emit 0 225 200 65)) X(attrib 11 (emit 0 120 165 75)) X(attrib 12 (emit 0 210 190 55)) X(attrib 13 (emit 0 255 182 2)) X(attrib 14 (emit 0 228 192 40)) X(attrib 15 (emit 0 255 174 4)) X(attrib 16 (emit 0 255 185 8)) X(attrib 17 (emit 0 136 150 48)) X X X// This is the frosted glass panel. X X(polygon (type blocker) (attr 100) X (-1.0882 -0.1657 -0.9890) X ( 0.9118 -0.1657 -0.9890) X ( 0.9118 -0.1657 1.0110) X (-1.0882 -0.1657 1.0110)) X X X// The elements of an "XY tesselation" are polygons in the XY plane. X// The Z coordinate of all vetrices is given by the number after "XY"; X// in this case it is -0.96099. The first number of each polygon is X// the attribute to apply. The second number is the number of vertices. X// The numbers that follow are coordinate pairs. X X(tesselation XY -0.96099 X (21 4 -1.317 -0.750 -0.917 -0.750 -0.917 -0.350 -1.317 -0.350) X (20 4 0.683 0.850 1.083 0.850 1.083 1.250 0.683 1.250) X (21 4 0.283 0.850 0.683 0.850 0.683 1.250 0.283 1.250) X (20 4 -0.117 0.850 0.283 0.850 0.283 1.250 -0.117 1.250) X (21 4 -0.517 0.850 -0.117 0.850 -0.117 1.250 -0.517 1.250) X (20 4 -0.917 0.850 -0.517 0.850 -0.517 1.250 -0.917 1.250) X (21 4 -1.317 0.850 -0.917 0.850 -0.917 1.250 -1.317 1.250) X (21 4 0.683 0.450 1.083 0.450 1.083 0.850 0.683 0.850) X (20 4 0.283 0.450 0.683 0.450 0.683 0.850 0.283 0.850) X (21 4 -0.117 0.450 0.283 0.450 0.283 0.850 -0.117 0.850) X (20 4 -0.517 0.450 -0.117 0.450 -0.117 0.850 -0.517 0.850) X (21 4 -0.917 0.450 -0.517 0.450 -0.517 0.850 -0.917 0.850) X (20 4 -1.317 0.450 -0.917 0.450 -0.917 0.850 -1.317 0.850) X (20 4 0.683 0.050 1.083 0.050 1.083 0.450 0.683 0.450) X (21 4 0.283 0.050 0.683 0.050 0.683 0.450 0.283 0.450) X (20 4 -0.117 0.050 0.283 0.050 0.283 0.450 -0.117 0.450) X (21 4 -0.517 0.050 -0.117 0.050 -0.117 0.450 -0.517 0.450) X (20 4 -0.917 0.050 -0.517 0.050 -0.517 0.450 -0.917 0.450) X (21 4 -1.317 0.050 -0.917 0.050 -0.917 0.450 -1.317 0.450) X (21 4 0.683 -0.350 1.083 -0.350 1.083 0.050 0.683 0.050) X (20 4 0.283 -0.350 0.683 -0.350 0.683 0.050 0.283 0.050) X (21 4 -0.117 -0.350 0.283 -0.350 0.283 0.050 -0.117 0.050) X (20 4 -0.517 -0.350 -0.117 -0.350 -0.117 0.050 -0.517 0.050) X (21 4 -0.917 -0.350 -0.517 -0.350 -0.517 0.050 -0.917 0.050) X (20 4 -1.317 -0.350 -0.917 -0.350 -0.917 0.050 -1.317 0.050) X (20 4 0.683 -0.750 1.083 -0.750 1.083 -0.350 0.683 -0.350) X (21 4 0.283 -0.750 0.683 -0.750 0.683 -0.350 0.283 -0.350) X (20 4 -0.117 -0.750 0.283 -0.750 0.283 -0.350 -0.117 -0.350) X (21 4 -0.517 -0.750 -0.117 -0.750 -0.117 -0.350 -0.517 -0.350) X (20 4 -0.917 -0.750 -0.517 -0.750 -0.517 -0.350 -0.917 -0.350) X ) X X// These are the coordinates of the butterfly. The polygons live in X// the XZ plane at Y = 0.394317 . X X(tesselation XZ 0.394317 X ( 1 8 -0.358 1.122 -0.133 1.147 -0.208 1.197 -0.433 1.272 -0.683 1.308 -0.633 1.147 X -0.508 0.972 -0.413 1.123) X (17 8 0.415 0.598 0.442 0.747 0.468 0.598 0.477 0.447 0.468 0.296 0.442 0.147 X 0.415 0.296 0.406 0.447) X (16 6 0.560 -0.037 0.892 0.022 1.042 -0.203 0.992 -0.228 0.842 -0.228 0.567 -0.203) X (15 4 0.517 0.422 0.567 0.422 0.867 0.047 0.549 -0.008) X (14 8 0.720 0.284 0.624 0.412 0.992 0.422 1.117 0.272 1.142 0.147 1.142 -0.128 X 1.067 -0.178 0.892 0.072) X (13 4 0.292 -0.003 0.392 0.222 0.377 0.444 0.029 0.040) X (12 6 0.292 -0.028 0.242 -0.178 0.042 -0.278 -0.108 -0.278 -0.208 -0.228 -0.005 0.001) X (11 6 -0.233 -0.203 0.355 0.487 -0.143 0.383 -0.258 0.247 -0.358 0.097 -0.308 -0.103) X (10 5 0.723 0.598 0.517 0.497 0.517 0.447 0.817 0.447 0.774 0.527) X ( 9 8 0.909 0.696 0.767 0.622 0.817 0.547 0.867 0.447 1.184 0.537 1.255 0.604 X 1.284 0.822 0.980 0.775) X ( 8 8 0.492 0.672 0.517 0.547 0.851 0.707 0.951 0.811 1.092 1.072 1.192 1.247 X 0.842 1.072 0.667 0.897) X ( 7 4 0.992 0.822 1.292 0.872 1.317 0.972 1.142 1.072) X ( 6 6 1.167 1.097 1.317 0.997 1.342 0.997 1.542 1.347 1.517 1.372 1.242 1.272) X ( 5 4 0.367 0.576 0.361 0.528 0.015 0.448 0.080 0.650) X ( 4 6 -0.483 0.772 0.035 0.661 -0.045 0.432 -0.333 0.447 -0.394 0.485 -0.425 0.585) X ( 3 8 0.042 0.722 0.377 0.604 0.399 0.700 0.240 0.844 0.067 1.022 -0.115 1.101 X -0.334 1.086 -0.169 0.887) X ( 2 5 -0.483 0.797 0.042 0.697 -0.208 0.872 -0.379 1.085 -0.508 0.922) X ) X SHAR_EOF $shar_touch -am 0212090396 'FrostedGlass' && chmod 0644 'FrostedGlass' || echo 'restore of FrostedGlass failed' shar_count="`wc -c < 'FrostedGlass'`" test 5545 -eq "$shar_count" || echo "FrostedGlass: original size 5545, current size $shar_count" fi # ============= StainedGlass ============== if test -f 'StainedGlass' && test X"$1" != X"-c"; then echo 'x - skipping StainedGlass (file already exists)' else echo 'x - extracting StainedGlass (text)' sed 's/^X//' << 'SHAR_EOF' > 'StainedGlass' && X X/* Date Dec 20 1994, Time 21:40:33 */ X X#ifndef exponent X #define exponent 40 X #error "Using default exponent of 40" X#endif X X(attrib 100 (refl exponent 210 210 255) (emit 0 40 40 80) ) X(background 55 70 90) X X(camera X (eye ( 2.6095 -5.6475 1.8019)) X (up (-0.1167 0.2525 0.9605)) X (target ( 0.0000 0.0000 0.0000)) X (fov 45.0000)) X X(attrib 1 (emit 0 255 219 30) ) X(attrib 2 (emit 0 255 190 10) ) X(attrib 3 (emit 0 150 170 50) ) X(attrib 4 (emit 0 230 200 60) ) X(attrib 5 (emit 0 255 180 0) ) X(attrib 6 (emit 0 120 170 70) ) X(attrib 7 (emit 0 255 180 15) ) X(attrib 8 (emit 0 120 170 65) ) X(attrib 9 (emit 0 255 221 44) ) X(attrib 10 (emit 0 225 200 65) ) X(attrib 11 (emit 0 120 165 75) ) X(attrib 12 (emit 0 210 190 55) ) X(attrib 13 (emit 0 255 182 2) ) X(attrib 14 (emit 0 228 192 40) ) X(attrib 15 (emit 0 255 174 4) ) X(attrib 16 (emit 0 255 185 8) ) X(attrib 17 (emit 0 136 150 48) ) X(attrib 18 (emit 0 81 175 157) ) X(attrib 19 (emit 0 14 135 111) ) X(attrib 20 (emit 0 7 69 101) ) X(attrib 21 (emit 0 138 173 54) ) X(attrib 22 (emit 0 1 127 158) ) X(attrib 23 (emit 0 96 186 177) ) X(attrib 24 (emit 0 59 108 46) ) X(attrib 25 (emit 0 127 159 57) ) X(attrib 26 (emit 0 16 150 170) ) X(attrib 27 (emit 0 8 59 105) ) X(attrib 28 (emit 0 26 94 88) ) X(attrib 29 (emit 0 42 111 135) ) X(attrib 30 (emit 0 2 134 140) ) X(attrib 31 (emit 0 0 90 138) ) X(attrib 32 (emit 0 34 137 77) ) X(attrib 33 (emit 0 126 175 74) ) X(attrib 34 (emit 0 2 142 148) ) X(attrib 35 (emit 0 32 79 72) ) X(attrib 36 (emit 0 47 132 71) ) X(attrib 37 (emit 0 199 197 54) ) X(attrib 38 (emit 0 45 63 32) ) X(attrib 39 (emit 0 123 135 44) ) X(attrib 40 (emit 0 136 173 76) ) X(attrib 41 (emit 0 91 168 193) ) X(attrib 42 (emit 0 121 176 197) ) X(attrib 43 (emit 0 56 179 193) ) X(attrib 44 (emit 0 104 172 194) ) X(attrib 45 (emit 0 4 120 154) ) X(attrib 46 (emit 0 0 113 146) ) X(attrib 47 (emit 0 53 139 59) ) X(attrib 48 (emit 0 15 76 77) ) X(attrib 49 (emit 0 6 120 114) ) X(attrib 50 (emit 0 17 119 124) ) X(attrib 51 (emit 0 13 53 69) ) X(attrib 52 (emit 0 255 181 5) ) X(attrib 53 (emit 0 50 139 178) ) X(attrib 54 (emit 0 114 161 66) ) X(attrib 55 (emit 0 2 126 157) ) X(attrib 56 (emit 0 3 155 183) ) X(attrib 57 (emit 0 5 117 156) ) X(attrib 58 (emit 0 221 181 25) ) X(attrib 59 (emit 0 101 174 189) ) X(attrib 60 (emit 0 129 175 20) ) X(attrib 61 (emit 0 13 142 157) ) X(attrib 62 (emit 0 36 48 40) ) X(attrib 63 (emit 0 43 144 109) ) X(attrib 64 (emit 0 86 163 190) ) X(attrib 65 (emit 0 59 100 49) ) X(attrib 66 (emit 0 2 151 162) ) X(attrib 67 (emit 0 15 70 92) ) X(attrib 68 (emit 0 65 138 65) ) X(attrib 69 (emit 0 129 166 77) ) X(attrib 70 (emit 0 45 83 40) ) X(attrib 71 (emit 0 93 158 71) ) X(attrib 72 (emit 0 255 187 62) ) X(attrib 73 (emit 0 27 74 98) ) X(attrib 74 (emit 0 1 87 127) ) X(attrib 75 (emit 0 5 143 147) ) X(attrib 76 (emit 0 4 75 124) ) X(attrib 77 (emit 0 233 212 62) ) X(attrib 78 (emit 0 21 124 96) ) X(attrib 79 (emit 0 22 173 185) ) X(attrib 80 (emit 0 6 163 175) ) X X(polygon (type receiver) (data 0) (attr 100) X (-3.0000 -3.0000 -1.0000) X (-3.0000 3.0000 -1.0000) X ( 3.0000 3.0000 -1.0000) X ( 3.0000 -3.0000 -1.0000)) X X(tesselation XZ 2.13345 X ( 1 8 -0.805 1.884 -0.580 1.909 -0.655 1.959 -0.880 2.034 -1.130 2.070 -1.080 1.909 X -0.955 1.734 -0.860 1.885) X (80 6 1.194 -0.915 1.170 -0.816 1.191 -0.577 1.395 -0.591 1.545 -0.616 1.545 -0.916) X (79 6 1.319 -0.551 1.198 -0.545 1.173 -0.041 1.545 -0.316 1.545 -0.591 1.420 -0.566) X (78 6 0.667 -0.518 0.645 -0.916 1.145 -0.916 1.145 -0.141 0.970 -0.266 0.745 -0.391) X (77 7 0.595 -0.441 0.645 -0.466 0.720 -0.366 0.670 -0.241 0.595 -0.266 0.520 -0.241 X 0.520 -0.366) X (76 7 0.120 -0.066 0.120 -0.916 0.620 -0.916 0.620 -0.491 0.545 -0.441 0.484 -0.378 X 0.345 -0.291) X (75 5 -0.280 -0.816 -0.280 -0.916 0.070 -0.916 0.070 -0.441 -0.205 -0.691) X (74 7 -0.156 -0.589 -0.274 -0.733 -0.255 -0.616 -0.230 -0.141 -0.130 -0.141 0.070 -0.041 X 0.071 -0.391) X (73 5 -0.578 -0.168 -0.663 -0.217 -0.680 -0.916 -0.305 -0.916 -0.305 -0.591) X (72 4 -0.730 -0.091 -0.657 -0.035 -0.583 -0.146 -0.675 -0.184) X (71 7 -1.025 -0.487 -1.230 -0.566 -1.230 -0.916 -0.705 -0.916 -0.705 -0.191 -0.759 -0.147 X -0.834 -0.296) X (70 5 -1.680 -0.466 -1.805 -0.316 -1.805 -0.916 -1.455 -0.916 -1.455 -0.541) X (69 5 1.535 0.148 1.542 -0.266 1.170 0.009 1.182 0.327 1.396 0.187) X (68 10 0.728 -0.282 0.745 -0.341 0.770 -0.341 1.126 -0.102 1.136 0.327 0.920 0.259 X 0.695 0.059 0.645 -0.091 0.620 -0.216 0.695 -0.216) X (67 7 0.645 0.059 0.720 0.109 0.795 0.184 0.895 0.259 0.645 0.559 0.545 0.509 X 0.295 0.509) X (66 8 0.382 -0.281 0.120 -0.016 0.132 0.517 0.245 0.509 0.645 0.009 0.575 -0.206 X 0.495 -0.191 0.495 -0.316) X (65 12 0.020 0.884 0.045 0.984 0.095 0.559 0.070 0.009 -0.030 -0.041 -0.130 -0.091 X -0.230 -0.091 -0.210 0.205 -0.168 0.575 -0.124 0.724 -0.051 0.926 -0.009 0.865) X (64 5 -0.438 0.438 -0.613 -0.022 -0.281 -0.568 -0.255 0.234 -0.209 0.535) X (63 6 -0.605 0.459 -0.659 0.491 -0.905 0.184 -0.750 -0.070 -0.657 0.000 -0.480 0.434) X (62 7 -0.905 0.159 -1.230 0.209 -1.230 0.184 -1.230 -0.516 -1.055 -0.441 -0.830 -0.191 X -0.780 -0.091) X (61 5 -1.280 0.234 -1.305 0.234 -1.402 0.018 -1.430 -0.916 -1.280 -0.916) X (60 5 -1.805 -0.241 -1.805 0.259 -1.455 0.009 -1.455 -0.491 -1.680 -0.391) X (59 6 1.395 0.234 1.545 0.184 1.545 0.834 1.370 0.759 1.170 0.709 1.170 0.384) X (58 3 1.176 0.956 1.170 0.734 1.315 0.777) X (57 7 1.194 0.993 1.351 0.789 1.345 0.784 1.545 0.859 1.534 1.208 1.190 1.285 X 1.195 1.184) X (56 7 0.681 0.563 0.908 0.293 0.970 0.309 1.145 0.384 1.127 0.687 0.720 0.809 X 0.720 0.609) X (55 9 -1.130 0.859 -0.830 0.884 -0.830 0.784 -0.780 0.634 -0.705 0.509 -0.930 0.209 X -1.280 0.259 -1.205 0.509 -1.139 0.725) X (55 7 -0.880 1.234 -0.956 1.501 -1.130 1.434 -1.130 0.909 -0.805 0.934 -0.617 1.161 X -0.805 1.184) X (54 8 -1.214 0.631 -1.155 0.859 -1.314 0.896 -1.372 0.806 -1.487 0.749 -1.463 0.496 X -1.430 0.084 -1.316 0.280) X (53 4 -1.502 0.978 -1.355 0.934 -1.396 0.831 -1.479 0.781) X (52 3 -1.530 0.784 -1.555 0.984 -1.755 0.884) X (51 5 -1.805 0.309 -1.805 0.859 -1.655 0.784 -1.530 0.759 -1.455 0.059) X (50 5 1.520 1.259 1.530 1.239 1.545 1.759 1.195 1.659 1.205 1.316) X (49 11 0.743 0.840 1.145 0.734 1.145 1.009 1.170 1.234 0.861 1.378 0.820 1.334 X 0.752 1.259 0.620 1.234 0.570 1.209 0.697 1.062 0.723 0.956) X (47 4 -1.180 1.459 -1.455 1.659 -1.455 1.009 -1.180 0.909) X (46 4 -1.505 1.034 -1.505 1.634 -1.805 1.534 -1.805 0.909) X (45 5 1.545 1.784 1.545 2.084 1.470 2.134 1.220 2.309 1.195 1.684) X (44 6 0.845 1.434 1.068 1.321 1.154 1.292 1.170 2.034 1.120 2.084 0.905 1.719) X (43 5 -0.010 1.581 0.054 1.700 0.070 1.884 -0.199 1.890 -0.205 1.834) X (42 5 -0.980 2.084 -0.980 2.209 -1.080 2.234 -1.155 2.184 -1.155 2.109) X (41 7 -1.180 2.059 -1.180 2.184 -1.455 2.059 -1.455 1.709 -1.130 1.484 -0.980 1.534 X -1.005 1.684) X (40 4 -1.505 1.684 -1.505 2.084 -1.805 2.259 -1.805 1.584) X (39 5 1.542 2.631 1.545 2.829 1.237 2.595 1.220 2.334 1.545 2.109) X (38 6 1.070 2.159 1.170 2.084 1.195 2.609 0.895 2.609 0.795 2.509 0.795 2.059) X (37 4 0.870 2.609 0.795 2.684 0.720 2.609 0.795 2.534) X (36 5 0.770 2.509 0.695 2.584 0.513 2.639 0.470 1.909 0.770 2.059) X (35 8 0.105 2.863 0.473 2.655 0.445 1.909 0.370 1.859 0.172 1.661 0.043 1.485 X -0.005 1.534 0.097 1.672) X (34 4 -0.216 1.929 0.060 1.915 0.062 2.513 -0.211 2.343) X (33 5 0.045 2.659 0.052 2.542 -0.206 2.390 -0.205 2.784 -0.080 2.734) X (32 7 -0.248 1.815 -0.255 2.906 -0.530 2.536 -0.555 1.909 -0.330 1.784 -0.055 1.509 X -0.030 1.534) X (31 6 -0.680 2.009 -0.580 1.959 -0.580 2.509 -0.935 2.195 -0.934 2.090 -0.805 2.059) X (30 5 -1.455 2.109 -1.470 2.628 -1.405 2.534 -1.255 2.409 -1.080 2.259) X (29 6 -1.655 2.934 -1.780 3.309 -1.805 3.309 -1.805 2.309 -1.501 2.137 -1.530 2.809) X (28 4 1.238 2.649 1.220 3.309 1.545 3.309 1.545 2.884) X (27 5 0.883 2.641 1.195 2.634 1.195 3.309 0.815 3.312 0.815 2.713) X (26 6 0.520 3.309 0.495 3.309 0.524 2.688 0.683 2.624 0.768 2.698 0.770 3.309) X (25 5 0.120 3.309 0.117 3.304 0.111 2.912 0.486 2.694 0.470 3.309) X (24 5 0.020 2.709 0.070 2.659 0.070 3.309 -0.205 3.309 -0.205 2.809) X (23 4 -0.255 2.984 -0.255 3.309 -0.534 3.305 -0.547 2.581) X (22 6 -0.955 2.234 -0.580 2.559 -0.580 3.309 -0.640 3.303 -0.805 3.034 -0.930 2.634) X (21 3 -0.905 3.309 -0.805 3.134 -0.680 3.309) X (20 7 -1.005 2.909 -0.955 2.684 -0.855 3.009 -0.835 3.102 -0.938 3.302 -1.355 3.309 X -1.130 3.159) X (19 9 -1.155 2.359 -0.980 2.234 -0.980 2.609 -1.030 2.884 -1.155 3.134 -1.380 3.284 X -1.455 3.284 -1.470 2.694 -1.380 2.559) X (18 4 -1.505 2.834 -1.505 3.309 -1.755 3.309 -1.630 2.959) X (17 8 -0.032 1.360 -0.005 1.509 0.021 1.360 0.030 1.209 0.021 1.058 -0.005 0.909 X -0.032 1.058 -0.041 1.209) X (16 6 0.113 0.725 0.445 0.784 0.595 0.559 0.545 0.534 0.395 0.534 0.120 0.559) X (15 4 0.070 1.184 0.120 1.184 0.420 0.809 0.102 0.754) X (14 8 0.273 1.046 0.177 1.174 0.545 1.184 0.670 1.034 0.695 0.909 0.695 0.634 X 0.620 0.584 0.445 0.834) X (13 4 -0.155 0.759 -0.055 0.984 -0.070 1.206 -0.418 0.802) X (12 6 -0.155 0.734 -0.205 0.584 -0.405 0.484 -0.555 0.484 -0.655 0.534 -0.452 0.763) X (11 6 -0.680 0.559 -0.092 1.249 -0.590 1.145 -0.705 1.009 -0.805 0.859 -0.755 0.659) X (10 5 0.276 1.360 0.070 1.259 0.070 1.209 0.370 1.209 0.327 1.289) X ( 9 8 0.462 1.458 0.320 1.384 0.370 1.309 0.420 1.209 0.737 1.299 0.808 1.366 X 0.837 1.584 0.533 1.537) X ( 8 8 0.045 1.434 0.070 1.309 0.404 1.469 0.504 1.573 0.645 1.834 0.745 2.009 X 0.395 1.834 0.220 1.659) X ( 7 4 0.545 1.584 0.845 1.634 0.870 1.734 0.695 1.834) X ( 6 6 0.720 1.859 0.870 1.759 0.895 1.759 1.095 2.109 1.070 2.134 0.795 2.034) X ( 5 4 -0.080 1.338 -0.086 1.290 -0.432 1.210 -0.367 1.412) X ( 4 6 -0.930 1.534 -0.412 1.423 -0.492 1.194 -0.780 1.209 -0.841 1.247 -0.872 1.347) X ( 3 8 -0.405 1.484 -0.070 1.366 -0.048 1.462 -0.207 1.606 -0.380 1.784 -0.562 1.863 X -0.781 1.848 -0.616 1.649) X ( 2 5 -0.930 1.559 -0.405 1.459 -0.655 1.634 -0.826 1.847 -0.955 1.684) X ) X SHAR_EOF $shar_touch -am 0212091196 'StainedGlass' && chmod 0600 'StainedGlass' || echo 'restore of StainedGlass failed' shar_count="`wc -c < 'StainedGlass'`" test 11126 -eq "$shar_count" || echo "StainedGlass: original size 11126, current size $shar_count" fi # ============= LizardData ============== if test -f 'LizardData' && test X"$1" != X"-c"; then echo 'x - skipping LizardData (file already exists)' else echo 'x - extracting LizardData (text)' sed 's/^X//' << 'SHAR_EOF' > 'LizardData' && X X// Here are the RGB attributes for the Lizard scene. X X Floor color 1.0, 0.7, 0.90 X Background color 40/255.0, 45/255.0, 80/255.0 X Border color 0.90, 0.90, 0.9 X Square color 0.10, 0.30, 0.65 X Lizard color 1.00, 1.00, 0.20 X Eye color 0.70, 0.00, 0.00 X X// Here is how the scene is constructed. The floor and the squares X// behind the lizard are given in absolute coordinates: X X Floor ( 1.0, 1.00, 0.0 ), ( 1.0, -1.00, 0.0 ), ( -1.0, -1.00, 0.0 ), ( -1.0, 1.00, 0.0 ) X X Square ( -0.4, -0.60, 0.10 ), ( -0.4, -0.60, 1.15 ), ( -0.4, 0.60, 1.15 ), ( -0.4, 0.60, 0.10 ) X X Border ( -0.4, -0.65, 0.05 ), ( -0.4, -0.65, 1.20 ), ( -0.4, 0.65, 1.20 ), ( -0.4, 0.65, 0.05 ) X X// The lizard polygons are created by the function MakeLizard and then X// scaled and rotated appropriately. X X MakeLizard( Liz, Reye, Leye, Spine ); // See file Lizard.C X X Mat3x3 M( Vec3( 0, 0, 1 ), Vec3( 0, 1, 0 ), Vec3( 1, 0, 0 ) ); // Rotation. X M *= 0.5; // Scale by 1/2. X X Liz *= M; X Reye *= M; X Leye *= M; X Spine *= M; X X Liz += Vec3( -0.4, -0.05, 0.65 ); // Translate into place. X Reye += Vec3( -0.4, -0.05, 0.65 ); X Leye += Vec3( -0.4, -0.05, 0.65 ); X Spine += Vec3( -0.4, -0.05, 0.65 ); X X// Here are the camera coordinates for viewing the scene. X X Camera().Eye ( Vec3( 2.2, 0, 2.2 ) ); X Camera().Up ( Vec3( 0, 1, 0 ) ); X Camera().LookAt( Vec3( -0.2, 0, 0 ) ); X Camera().FOV ( 45.0 ); X X X X X X X SHAR_EOF $shar_touch -am 0212084796 'LizardData' && chmod 0644 'LizardData' || echo 'restore of LizardData failed' shar_count="`wc -c < 'LizardData'`" test 1492 -eq "$shar_count" || echo "LizardData: original size 1492, current size $shar_count" fi # ============= Lizard.C ============== if test -f 'Lizard.C' && test X"$1" != X"-c"; then echo 'x - skipping Lizard.C (file already exists)' else echo 'x - extracting Lizard.C (text)' sed 's/^X//' << 'SHAR_EOF' > 'Lizard.C' && X/***************************************************************************** X** X** MODULE NAME Lizard.C X** X** DESCRIPTION X** X** X** HISTORY X** Name Date Description X** X** arvo 12/03/94 Initial implementation. X** X** X** (c) Copyright 1994 X** Program of Computer Graphics, Cornell University, Ithaca, NY X** ALL RIGHTS RESERVED X** X*****************************************************************************/ X X#include X#include X#include X#include X#include X#include X#include X Xstatic float Liz[][2] = { X { 178, 139 }, X { 218, 150 }, X { 222, 158 }, X { 210, 192 }, X { 174, 196 }, X { 175, 205 }, X { 188, 224 }, X { 197, 219 }, X { 198, 206 }, X { 225, 206 }, X { 225, 227 }, X { 192, 253 }, X { 160, 224 }, X { 141, 243 }, X { 158, 252 }, X { 177, 275 }, X { 168, 309 }, X { 170, 330 }, X { 143, 320 }, X { 151, 276 }, X { 114, 262 }, X { 98, 272 }, X { 62, 277 }, X { 36, 253 }, X { 61, 261 }, X { 90, 247 }, X { 94, 238 }, X { 86, 216 }, X { 90, 201 }, X { 79, 186 }, X { 60, 205 }, X { 33, 202 }, X { 40, 184 }, X { 51, 182 }, X { 69, 163 }, X { 79, 162 }, X { 107, 183 }, X { 113, 206 }, X { 119, 171 }, X { 96, 142 }, X { 110, 121 }, X { 101, 116 }, X { 100, 105 }, X { 122, 99 }, X { 133, 105 }, X { 122, 138 }, X { 141, 168 }, X { 151, 166 } X }; X Xstatic float Reye[][2] = { X { 0.431, -0.382 }, X { 0.452, -0.487 }, X { 0.568, -0.462 } X }; X Xstatic float Leye[][2] = { X { 0.647, -0.178 }, X { 0.537, -0.189 }, X { 0.658, -0.284 } X }; X Xstatic float Spine[][2] = { X {-0.178, 0.359 }, X {-0.492, 0.532 }, X {-0.144, 0.418 }, X { 0.109, 0.139 }, X { 0.201, -0.053 }, X { 0.624, -0.382 }, X { 0.149, -0.114 }, X { 0.038, 0.114 } X }; X X Xvoid MakeLizard( Polygon &P ) X { X P.Clear( Blocker ); X int n = sizeof( Liz ) / ( 2 * sizeof( float ) ); X for( int i = 0; i < n; i++ ) X P.AddVertex( Liz[i][0], Liz[i][1], 0.0 ); X Box3 B = P.Bounds(); X Vec3 C = P.Centroid(); X X float s = Max( B.Side(0), B.Side(1) ); X s = 2.0 / s; X X P += ( -1.0 * C ); // Translate cento to the origin. X P *= Diag3x3( s, s, s ); // Scale to fit into XY box from (-1,-1) to (1,1). X } X X X// P = polygonal outline of lizard X// Re = right eye X// Le = left eye X// Sp = spine X Xvoid MakeLizard( Polygon &P, Polygon &Re, Polygon &Le, Polygon &Sp ) X { X int i; X MakeLizard( P ); X X // These features were added to the scaled and translated lizard, X // so they are already in the appropriate coordinates. X X Re.Clear( Blocker ); X Le.Clear( Blocker ); X Sp.Clear( Blocker ); X for( i = 0; i < 3; i++ ) X { X Re << Vec3( Reye[i][0], Reye[i][1], 0.0 ); X Le << Vec3( Leye[i][0], Leye[i][1], 0.0 ); X } X for( i = 0; i < 8; i++ ) X { X Sp << Vec3( Spine[i][0], Spine[i][1], 0.0 ); X } X } X SHAR_EOF $shar_touch -am 0212084996 'Lizard.C' && chmod 0644 'Lizard.C' || echo 'restore of Lizard.C failed' shar_count="`wc -c < 'Lizard.C'`" test 3030 -eq "$shar_count" || echo "Lizard.C: original size 3030, current size $shar_count" fi exit 0