comparison Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/atlantis/whale.c @ 2207:d63e9f5944ae

Unpacked project archives to get individual file history in subversion
author Sam Lantinga <slouken@libsdl.org>
date Sat, 21 Jul 2007 17:09:01 +0000
parents
children
comparison
equal deleted inserted replaced
2206:ca7d2227d630 2207:d63e9f5944ae
1 /**
2 * (c) Copyright 1993, 1994, Silicon Graphics, Inc.
3 * ALL RIGHTS RESERVED
4 * Permission to use, copy, modify, and distribute this software for
5 * any purpose and without fee is hereby granted, provided that the above
6 * copyright notice appear in all copies and that both the copyright notice
7 * and this permission notice appear in supporting documentation, and that
8 * the name of Silicon Graphics, Inc. not be used in advertising
9 * or publicity pertaining to distribution of the software without specific,
10 * written prior permission.
11 *
12 * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
13 * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
14 * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
15 * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
16 * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
17 * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
18 * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
19 * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
20 * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
21 * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
22 * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
23 * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
24 *
25 * US Government Users Restricted Rights
26 * Use, duplication, or disclosure by the Government is subject to
27 * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
28 * (c)(1)(ii) of the Rights in Technical Data and Computer Software
29 * clause at DFARS 252.227-7013 and/or in similar or successor
30 * clauses in the FAR or the DOD or NASA FAR Supplement.
31 * Unpublished-- rights reserved under the copyright laws of the
32 * United States. Contractor/manufacturer is Silicon Graphics,
33 * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
34 *
35 * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
36 */
37 #include <GLUT/glut.h>
38 #include <math.h>
39 #include "atlantis.h"
40 /* *INDENT-OFF* */
41 static float N001[3] = {0.019249 ,0.011340 ,-0.999750};
42 static float N002[3] = {-0.132579 ,0.954547 ,0.266952};
43 static float N003[3] = {-0.196061 ,0.980392 ,-0.019778};
44 static float N004[3] = {0.695461 ,0.604704 ,0.388158};
45 static float N005[3] = {0.870600 ,0.425754 ,0.246557};
46 static float N006[3] = {-0.881191 ,0.392012 ,0.264251};
47 static float N008[3] = {-0.341437 ,0.887477 ,0.309523};
48 static float N009[3] = {0.124035 ,-0.992278 ,0.000000};
49 static float N010[3] = {0.242536 ,0.000000 ,-0.970143};
50 static float N011[3] = {0.588172 ,0.000000 ,0.808736};
51 static float N012[3] = {0.929824 ,-0.340623 ,-0.139298};
52 static float N013[3] = {0.954183 ,0.267108 ,-0.134865};
53 static float N014[3] = {0.495127 ,0.855436 ,-0.151914};
54 static float N015[3] = {-0.390199 ,0.906569 ,-0.160867};
55 static float N016[3] = {-0.923605 ,0.354581 ,-0.145692};
56 static float N017[3] = {-0.955796 ,-0.260667 ,-0.136036};
57 static float N018[3] = {-0.501283 ,-0.853462 ,-0.142540};
58 static float N019[3] = {0.405300 ,-0.901974 ,-0.148913};
59 static float N020[3] = {0.909913 ,-0.392746 ,-0.133451};
60 static float N021[3] = {0.936494 ,0.331147 ,-0.115414};
61 static float N022[3] = {0.600131 ,0.793724 ,-0.099222};
62 static float N023[3] = {-0.231556 ,0.968361 ,-0.093053};
63 static float N024[3] = {-0.844369 ,0.525330 ,-0.105211};
64 static float N025[3] = {-0.982725 ,-0.136329 ,-0.125164};
65 static float N026[3] = {-0.560844 ,-0.822654 ,-0.093241};
66 static float N027[3] = {0.263884 ,-0.959981 ,-0.093817};
67 static float N028[3] = {0.842057 ,-0.525192 ,-0.122938};
68 static float N029[3] = {0.921620 ,0.367565 ,-0.124546};
69 static float N030[3] = {0.613927 ,0.784109 ,-0.090918};
70 static float N031[3] = {-0.448754 ,0.888261 ,-0.098037};
71 static float N032[3] = {-0.891865 ,0.434376 ,-0.126077};
72 static float N033[3] = {-0.881447 ,-0.448017 ,-0.149437};
73 static float N034[3] = {-0.345647 ,-0.922057 ,-0.174183};
74 static float N035[3] = {0.307998 ,-0.941371 ,-0.137688};
75 static float N036[3] = {0.806316 ,-0.574647 ,-0.140124};
76 static float N037[3] = {0.961346 ,0.233646 ,-0.145681};
77 static float N038[3] = {0.488451 ,0.865586 ,-0.110351};
78 static float N039[3] = {-0.374290 ,0.921953 ,-0.099553};
79 static float N040[3] = {-0.928504 ,0.344533 ,-0.138485};
80 static float N041[3] = {-0.918419 ,-0.371792 ,-0.135189};
81 static float N042[3] = {-0.520666 ,-0.833704 ,-0.183968};
82 static float N043[3] = {0.339204 ,-0.920273 ,-0.195036};
83 static float N044[3] = {0.921475 ,-0.387382 ,-0.028636};
84 static float N045[3] = {0.842465 ,0.533335 ,-0.076204};
85 static float N046[3] = {0.380110 ,0.924939 ,0.002073};
86 static float N047[3] = {-0.276128 ,0.961073 ,-0.009579};
87 static float N048[3] = {-0.879684 ,0.473001 ,-0.049250};
88 static float N049[3] = {-0.947184 ,-0.317614 ,-0.044321};
89 static float N050[3] = {-0.642059 ,-0.764933 ,-0.051363};
90 static float N051[3] = {0.466794 ,-0.880921 ,-0.077990};
91 static float N052[3] = {0.898509 ,-0.432277 ,0.076279};
92 static float N053[3] = {0.938985 ,0.328141 ,0.103109};
93 static float N054[3] = {0.442420 ,0.895745 ,0.043647};
94 static float N055[3] = {-0.255163 ,0.966723 ,0.018407};
95 static float N056[3] = {-0.833769 ,0.540650 ,0.111924};
96 static float N057[3] = {-0.953653 ,-0.289939 ,0.080507};
97 static float N058[3] = {-0.672357 ,-0.730524 ,0.119461};
98 static float N059[3] = {0.522249 ,-0.846652 ,0.102157};
99 static float N060[3] = {0.885868 ,-0.427631 ,0.179914};
100 static float N062[3] = {0.648942 ,0.743116 ,0.163255};
101 static float N063[3] = {-0.578967 ,0.807730 ,0.111219};
102 static float N065[3] = {-0.909864 ,-0.352202 ,0.219321};
103 static float N066[3] = {-0.502541 ,-0.818090 ,0.279610};
104 static float N067[3] = {0.322919 ,-0.915358 ,0.240504};
105 static float N068[3] = {0.242536 ,0.000000 ,-0.970143};
106 static float N069[3] = {0.000000 ,1.000000 ,0.000000};
107 static float N070[3] = {0.000000 ,1.000000 ,0.000000};
108 static float N071[3] = {0.000000 ,1.000000 ,0.000000};
109 static float N072[3] = {0.000000 ,1.000000 ,0.000000};
110 static float N073[3] = {0.000000 ,1.000000 ,0.000000};
111 static float N074[3] = {0.000000 ,1.000000 ,0.000000};
112 static float N075[3] = {0.031220 ,0.999025 ,-0.031220};
113 static float N076[3] = {0.000000 ,1.000000 ,0.000000};
114 static float N077[3] = {0.446821 ,0.893642 ,0.041889};
115 static float N078[3] = {0.863035 ,-0.100980 ,0.494949};
116 static float N079[3] = {0.585597 ,-0.808215 ,0.062174};
117 static float N080[3] = {0.000000 ,1.000000 ,0.000000};
118 static float N081[3] = {1.000000 ,0.000000 ,0.000000};
119 static float N082[3] = {0.000000 ,1.000000 ,0.000000};
120 static float N083[3] = {-1.000000 ,0.000000 ,0.000000};
121 static float N084[3] = {-0.478893 ,0.837129 ,-0.264343};
122 static float N085[3] = {0.000000 ,1.000000 ,0.000000};
123 static float N086[3] = {0.763909 ,0.539455 ,-0.354163};
124 static float N087[3] = {0.446821 ,0.893642 ,0.041889};
125 static float N088[3] = {0.385134 ,-0.908288 ,0.163352};
126 static float N089[3] = {-0.605952 ,0.779253 ,-0.159961};
127 static float N090[3] = {0.000000 ,1.000000 ,0.000000};
128 static float N091[3] = {0.000000 ,1.000000 ,0.000000};
129 static float N092[3] = {0.000000 ,1.000000 ,0.000000};
130 static float N093[3] = {0.000000 ,1.000000 ,0.000000};
131 static float N094[3] = {1.000000 ,0.000000 ,0.000000};
132 static float N095[3] = {-1.000000 ,0.000000 ,0.000000};
133 static float N096[3] = {0.644444 ,-0.621516 ,0.445433};
134 static float N097[3] = {-0.760896 ,-0.474416 ,0.442681};
135 static float N098[3] = {0.636888 ,-0.464314 ,0.615456};
136 static float N099[3] = {-0.710295 ,0.647038 ,0.277168};
137 static float N100[3] = {0.009604 ,0.993655 ,0.112063};
138 static float iP001[3] = {18.74, 13.19, 3.76};
139 static float P001[3] = {18.74, 13.19, 3.76};
140 static float P002[3] = {0.00, 390.42, 10292.57};
141 static float P003[3] = {55.80, 622.31, 8254.35};
142 static float P004[3] = {20.80, 247.66, 10652.13};
143 static float P005[3] = {487.51, 198.05, 9350.78};
144 static float P006[3] = {-457.61, 199.04, 9353.01};
145 static float P008[3] = {-34.67, 247.64, 10663.71};
146 static float iP009[3] = {97.46, 67.63, 593.82};
147 static float iP010[3] = {-84.33, 67.63, 588.18};
148 static float iP011[3] = {118.69, 8.98, -66.91};
149 static float P009[3] = {97.46, 67.63, 593.82};
150 static float P010[3] = {-84.33, 67.63, 588.18};
151 static float P011[3] = {118.69, 8.98, -66.91};
152 static float iP012[3] = {156.48, -31.95, 924.54};
153 static float iP013[3] = {162.00, 110.22, 924.54};
154 static float iP014[3] = {88.16, 221.65, 924.54};
155 static float iP015[3] = {-65.21, 231.16, 924.54};
156 static float iP016[3] = {-156.48, 121.97, 924.54};
157 static float iP017[3] = {-162.00, -23.93, 924.54};
158 static float iP018[3] = {-88.16, -139.10, 924.54};
159 static float iP019[3] = {65.21, -148.61, 924.54};
160 static float iP020[3] = {246.87, -98.73, 1783.04};
161 static float iP021[3] = {253.17, 127.76, 1783.04};
162 static float iP022[3] = {132.34, 270.77, 1783.04};
163 static float iP023[3] = {-97.88, 285.04, 1783.04};
164 static float iP024[3] = {-222.97, 139.80, 1783.04};
165 static float iP025[3] = {-225.29, -86.68, 1783.04};
166 static float iP026[3] = {-108.44, -224.15, 1783.04};
167 static float iP027[3] = {97.88, -221.56, 1783.04};
168 static float iP028[3] = {410.55, -200.66, 3213.87};
169 static float iP029[3] = {432.19, 148.42, 3213.87};
170 static float iP030[3] = {200.66, 410.55, 3213.87};
171 static float iP031[3] = {-148.42, 432.19, 3213.87};
172 static float iP032[3] = {-407.48, 171.88, 3213.87};
173 static float iP033[3] = {-432.19, -148.42, 3213.87};
174 static float iP034[3] = {-148.88, -309.74, 3213.87};
175 static float iP035[3] = {156.38, -320.17, 3213.87};
176 static float iP036[3] = {523.39, -303.81, 4424.57};
177 static float iP037[3] = {574.66, 276.84, 4424.57};
178 static float iP038[3] = {243.05, 492.50, 4424.57};
179 static float iP039[3] = {-191.23, 520.13, 4424.57};
180 static float iP040[3] = {-523.39, 304.01, 4424.57};
181 static float iP041[3] = {-574.66, -231.83, 4424.57};
182 static float iP042[3] = {-266.95, -578.17, 4424.57};
183 static float iP043[3] = {211.14, -579.67, 4424.57};
184 static float iP044[3] = {680.57, -370.27, 5943.46};
185 static float iP045[3] = {834.01, 363.09, 5943.46};
186 static float iP046[3] = {371.29, 614.13, 5943.46};
187 static float iP047[3] = {-291.43, 621.86, 5943.46};
188 static float iP048[3] = {-784.13, 362.60, 5943.46};
189 static float iP049[3] = {-743.29, -325.82, 5943.46};
190 static float iP050[3] = {-383.24, -804.77, 5943.46};
191 static float iP051[3] = {283.47, -846.09, 5943.46};
192 static float P012[3] = {156.48, -31.95, 924.54};
193 static float P013[3] = {162.00, 110.22, 924.54};
194 static float P014[3] = {88.16, 221.65, 924.54};
195 static float P015[3] = {-65.21, 231.16, 924.54};
196 static float P016[3] = {-156.48, 121.97, 924.54};
197 static float P017[3] = {-162.00, -23.93, 924.54};
198 static float P018[3] = {-88.16, -139.10, 924.54};
199 static float P019[3] = {65.21, -148.61, 924.54};
200 static float P020[3] = {246.87, -98.73, 1783.04};
201 static float P021[3] = {253.17, 127.76, 1783.04};
202 static float P022[3] = {132.34, 270.77, 1783.04};
203 static float P023[3] = {-97.88, 285.04, 1783.04};
204 static float P024[3] = {-222.97, 139.80, 1783.04};
205 static float P025[3] = {-225.29, -86.68, 1783.04};
206 static float P026[3] = {-108.44, -224.15, 1783.04};
207 static float P027[3] = {97.88, -221.56, 1783.04};
208 static float P028[3] = {410.55, -200.66, 3213.87};
209 static float P029[3] = {432.19, 148.42, 3213.87};
210 static float P030[3] = {200.66, 410.55, 3213.87};
211 static float P031[3] = {-148.42, 432.19, 3213.87};
212 static float P032[3] = {-407.48, 171.88, 3213.87};
213 static float P033[3] = {-432.19, -148.42, 3213.87};
214 static float P034[3] = {-148.88, -309.74, 3213.87};
215 static float P035[3] = {156.38, -320.17, 3213.87};
216 static float P036[3] = {523.39, -303.81, 4424.57};
217 static float P037[3] = {574.66, 276.84, 4424.57};
218 static float P038[3] = {243.05, 492.50, 4424.57};
219 static float P039[3] = {-191.23, 520.13, 4424.57};
220 static float P040[3] = {-523.39, 304.01, 4424.57};
221 static float P041[3] = {-574.66, -231.83, 4424.57};
222 static float P042[3] = {-266.95, -578.17, 4424.57};
223 static float P043[3] = {211.14, -579.67, 4424.57};
224 static float P044[3] = {680.57, -370.27, 5943.46};
225 static float P045[3] = {834.01, 363.09, 5943.46};
226 static float P046[3] = {371.29, 614.13, 5943.46};
227 static float P047[3] = {-291.43, 621.86, 5943.46};
228 static float P048[3] = {-784.13, 362.60, 5943.46};
229 static float P049[3] = {-743.29, -325.82, 5943.46};
230 static float P050[3] = {-383.24, -804.77, 5943.46};
231 static float P051[3] = {283.47, -846.09, 5943.46};
232 static float P052[3] = {599.09, -332.24, 7902.59};
233 static float P053[3] = {735.48, 306.26, 7911.92};
234 static float P054[3] = {321.55, 558.53, 7902.59};
235 static float P055[3] = {-260.54, 559.84, 7902.59};
236 static float P056[3] = {-698.66, 320.83, 7902.59};
237 static float P057[3] = {-643.29, -299.16, 7902.59};
238 static float P058[3] = {-341.47, -719.30, 7902.59};
239 static float P059[3] = {252.57, -756.12, 7902.59};
240 static float P060[3] = {458.39, -265.31, 9355.44};
241 static float P062[3] = {224.04, 438.98, 9364.77};
242 static float P063[3] = {-165.71, 441.27, 9355.44};
243 static float P065[3] = {-473.99, -219.71, 9355.44};
244 static float P066[3] = {-211.97, -479.87, 9355.44};
245 static float P067[3] = {192.86, -504.03, 9355.44};
246 static float iP068[3] = {-112.44, 9.25, -64.42};
247 static float iP069[3] = {1155.63, 0.00, -182.46};
248 static float iP070[3] = {-1143.13, 0.00, -181.54};
249 static float iP071[3] = {1424.23, 0.00, -322.09};
250 static float iP072[3] = {-1368.01, 0.00, -310.38};
251 static float iP073[3] = {1255.57, 2.31, 114.05};
252 static float iP074[3] = {-1149.38, 0.00, 117.12};
253 static float iP075[3] = {718.36, 0.00, 433.36};
254 static float iP076[3] = {-655.90, 0.00, 433.36};
255 static float P068[3] = {-112.44, 9.25, -64.42};
256 static float P069[3] = {1155.63, 0.00, -182.46};
257 static float P070[3] = {-1143.13, 0.00, -181.54};
258 static float P071[3] = {1424.23, 0.00, -322.09};
259 static float P072[3] = {-1368.01, 0.00, -310.38};
260 static float P073[3] = {1255.57, 2.31, 114.05};
261 static float P074[3] = {-1149.38, 0.00, 117.12};
262 static float P075[3] = {718.36, 0.00, 433.36};
263 static float P076[3] = {-655.90, 0.00, 433.36};
264 static float P077[3] = {1058.00, -2.66, 7923.51};
265 static float P078[3] = {-1016.51, -15.47, 7902.87};
266 static float P079[3] = {-1363.99, -484.50, 7593.38};
267 static float P080[3] = {1478.09, -861.47, 7098.12};
268 static float P081[3] = {1338.06, -284.68, 7024.15};
269 static float P082[3] = {-1545.51, -860.64, 7106.60};
270 static float P083[3] = {1063.19, -70.46, 7466.60};
271 static float P084[3] = {-1369.18, -288.11, 7015.34};
272 static float P085[3] = {1348.44, -482.50, 7591.41};
273 static float P086[3] = {-1015.45, -96.80, 7474.86};
274 static float P087[3] = {731.04, 148.38, 7682.58};
275 static float P088[3] = {-697.03, 151.82, 7668.81};
276 static float P089[3] = {-686.82, 157.09, 7922.29};
277 static float P090[3] = {724.73, 147.75, 7931.39};
278 static float iP091[3] = {0.00, 327.10, 2346.55};
279 static float iP092[3] = {0.00, 552.28, 2311.31};
280 static float iP093[3] = {0.00, 721.16, 2166.41};
281 static float iP094[3] = {0.00, 693.42, 2388.80};
282 static float iP095[3] = {0.00, 389.44, 2859.97};
283 static float P091[3] = {0.00, 327.10, 2346.55};
284 static float P092[3] = {0.00, 552.28, 2311.31};
285 static float P093[3] = {0.00, 721.16, 2166.41};
286 static float P094[3] = {0.00, 693.42, 2388.80};
287 static float P095[3] = {0.00, 389.44, 2859.97};
288 static float iP096[3] = {222.02, -183.67, 10266.89};
289 static float iP097[3] = {-128.90, -182.70, 10266.89};
290 static float iP098[3] = {41.04, 88.31, 10659.36};
291 static float iP099[3] = {-48.73, 88.30, 10659.36};
292 static float P096[3] = {222.02, -183.67, 10266.89};
293 static float P097[3] = {-128.90, -182.70, 10266.89};
294 static float P098[3] = {41.04, 88.31, 10659.36};
295 static float P099[3] = {-48.73, 88.30, 10659.36};
296 static float P100[3] = {0.00, 603.42, 9340.68};
297 static float P104[3] = {-9.86, 567.62, 7858.65};
298 static float P105[3] = {31.96, 565.27, 7908.46};
299 static float P106[3] = {22.75, 568.13, 7782.83};
300 static float P107[3] = {58.93, 568.42, 7775.94};
301 static float P108[3] = {55.91, 565.59, 7905.86};
302 static float P109[3] = {99.21, 566.00, 7858.65};
303 static float P110[3] = {-498.83, 148.14, 9135.10};
304 static float P111[3] = {-495.46, 133.24, 9158.48};
305 static float P112[3] = {-490.82, 146.23, 9182.76};
306 static float P113[3] = {-489.55, 174.11, 9183.66};
307 static float P114[3] = {-492.92, 189.00, 9160.28};
308 static float P115[3] = {-497.56, 176.02, 9136.00};
309 static float P116[3] = {526.54, 169.68, 9137.70};
310 static float P117[3] = {523.49, 184.85, 9161.42};
311 static float P118[3] = {518.56, 171.78, 9186.06};
312 static float P119[3] = {516.68, 143.53, 9186.98};
313 static float P120[3] = {519.73, 128.36, 9163.26};
314 static float P121[3] = {524.66, 141.43, 9138.62};
315 /* *INDENT-ON* */
316
317 void
318 Whale001(void)
319 {
320
321 glBegin(GL_POLYGON);
322 glNormal3fv(N001);
323 glVertex3fv(P001);
324 glNormal3fv(N068);
325 glVertex3fv(P068);
326 glNormal3fv(N010);
327 glVertex3fv(P010);
328 glEnd();
329 glBegin(GL_POLYGON);
330 glNormal3fv(N068);
331 glVertex3fv(P068);
332 glNormal3fv(N076);
333 glVertex3fv(P076);
334 glNormal3fv(N010);
335 glVertex3fv(P010);
336 glEnd();
337 glBegin(GL_POLYGON);
338 glNormal3fv(N068);
339 glVertex3fv(P068);
340 glNormal3fv(N070);
341 glVertex3fv(P070);
342 glNormal3fv(N076);
343 glVertex3fv(P076);
344 glEnd();
345 glBegin(GL_POLYGON);
346 glNormal3fv(N076);
347 glVertex3fv(P076);
348 glNormal3fv(N070);
349 glVertex3fv(P070);
350 glNormal3fv(N074);
351 glVertex3fv(P074);
352 glEnd();
353 glBegin(GL_POLYGON);
354 glNormal3fv(N070);
355 glVertex3fv(P070);
356 glNormal3fv(N072);
357 glVertex3fv(P072);
358 glNormal3fv(N074);
359 glVertex3fv(P074);
360 glEnd();
361 glBegin(GL_POLYGON);
362 glNormal3fv(N072);
363 glVertex3fv(P072);
364 glNormal3fv(N070);
365 glVertex3fv(P070);
366 glNormal3fv(N074);
367 glVertex3fv(P074);
368 glEnd();
369 glBegin(GL_POLYGON);
370 glNormal3fv(N074);
371 glVertex3fv(P074);
372 glNormal3fv(N070);
373 glVertex3fv(P070);
374 glNormal3fv(N076);
375 glVertex3fv(P076);
376 glEnd();
377 glBegin(GL_POLYGON);
378 glNormal3fv(N070);
379 glVertex3fv(P070);
380 glNormal3fv(N068);
381 glVertex3fv(P068);
382 glNormal3fv(N076);
383 glVertex3fv(P076);
384 glEnd();
385 glBegin(GL_POLYGON);
386 glNormal3fv(N076);
387 glVertex3fv(P076);
388 glNormal3fv(N068);
389 glVertex3fv(P068);
390 glNormal3fv(N010);
391 glVertex3fv(P010);
392 glEnd();
393 glBegin(GL_POLYGON);
394 glNormal3fv(N068);
395 glVertex3fv(P068);
396 glNormal3fv(N001);
397 glVertex3fv(P001);
398 glNormal3fv(N010);
399 glVertex3fv(P010);
400 glEnd();
401 }
402
403 void
404 Whale002(void)
405 {
406 glBegin(GL_POLYGON);
407 glNormal3fv(N011);
408 glVertex3fv(P011);
409 glNormal3fv(N001);
410 glVertex3fv(P001);
411 glNormal3fv(N009);
412 glVertex3fv(P009);
413 glEnd();
414 glBegin(GL_POLYGON);
415 glNormal3fv(N075);
416 glVertex3fv(P075);
417 glNormal3fv(N011);
418 glVertex3fv(P011);
419 glNormal3fv(N009);
420 glVertex3fv(P009);
421 glEnd();
422 glBegin(GL_POLYGON);
423 glNormal3fv(N069);
424 glVertex3fv(P069);
425 glNormal3fv(N011);
426 glVertex3fv(P011);
427 glNormal3fv(N075);
428 glVertex3fv(P075);
429 glEnd();
430 glBegin(GL_POLYGON);
431 glNormal3fv(N069);
432 glVertex3fv(P069);
433 glNormal3fv(N075);
434 glVertex3fv(P075);
435 glNormal3fv(N073);
436 glVertex3fv(P073);
437 glEnd();
438 glBegin(GL_POLYGON);
439 glNormal3fv(N071);
440 glVertex3fv(P071);
441 glNormal3fv(N069);
442 glVertex3fv(P069);
443 glNormal3fv(N073);
444 glVertex3fv(P073);
445 glEnd();
446 glBegin(GL_POLYGON);
447 glNormal3fv(N001);
448 glVertex3fv(P001);
449 glNormal3fv(N011);
450 glVertex3fv(P011);
451 glNormal3fv(N009);
452 glVertex3fv(P009);
453 glEnd();
454 glBegin(GL_POLYGON);
455 glNormal3fv(N009);
456 glVertex3fv(P009);
457 glNormal3fv(N011);
458 glVertex3fv(P011);
459 glNormal3fv(N075);
460 glVertex3fv(P075);
461 glEnd();
462 glBegin(GL_POLYGON);
463 glNormal3fv(N011);
464 glVertex3fv(P011);
465 glNormal3fv(N069);
466 glVertex3fv(P069);
467 glNormal3fv(N075);
468 glVertex3fv(P075);
469 glEnd();
470 glBegin(GL_POLYGON);
471 glNormal3fv(N069);
472 glVertex3fv(P069);
473 glNormal3fv(N073);
474 glVertex3fv(P073);
475 glNormal3fv(N075);
476 glVertex3fv(P075);
477 glEnd();
478 glBegin(GL_POLYGON);
479 glNormal3fv(N069);
480 glVertex3fv(P069);
481 glNormal3fv(N071);
482 glVertex3fv(P071);
483 glNormal3fv(N073);
484 glVertex3fv(P073);
485 glEnd();
486 }
487
488 void
489 Whale003(void)
490 {
491 glBegin(GL_POLYGON);
492 glNormal3fv(N018);
493 glVertex3fv(P018);
494 glNormal3fv(N001);
495 glVertex3fv(P001);
496 glNormal3fv(N019);
497 glVertex3fv(P019);
498 glEnd();
499 glBegin(GL_POLYGON);
500 glNormal3fv(N019);
501 glVertex3fv(P019);
502 glNormal3fv(N001);
503 glVertex3fv(P001);
504 glNormal3fv(N012);
505 glVertex3fv(P012);
506 glEnd();
507 glBegin(GL_POLYGON);
508 glNormal3fv(N017);
509 glVertex3fv(P017);
510 glNormal3fv(N001);
511 glVertex3fv(P001);
512 glNormal3fv(N018);
513 glVertex3fv(P018);
514 glEnd();
515 glBegin(GL_POLYGON);
516 glNormal3fv(N001);
517 glVertex3fv(P001);
518 glNormal3fv(N017);
519 glVertex3fv(P017);
520 glNormal3fv(N016);
521 glVertex3fv(P016);
522 glEnd();
523 glBegin(GL_POLYGON);
524 glNormal3fv(N001);
525 glVertex3fv(P001);
526 glNormal3fv(N013);
527 glVertex3fv(P013);
528 glNormal3fv(N012);
529 glVertex3fv(P012);
530 glEnd();
531 glBegin(GL_POLYGON);
532 glNormal3fv(N001);
533 glVertex3fv(P001);
534 glNormal3fv(N016);
535 glVertex3fv(P016);
536 glNormal3fv(N015);
537 glVertex3fv(P015);
538 glEnd();
539 glBegin(GL_POLYGON);
540 glNormal3fv(N001);
541 glVertex3fv(P001);
542 glNormal3fv(N014);
543 glVertex3fv(P014);
544 glNormal3fv(N013);
545 glVertex3fv(P013);
546 glEnd();
547 glBegin(GL_POLYGON);
548 glNormal3fv(N001);
549 glVertex3fv(P001);
550 glNormal3fv(N015);
551 glVertex3fv(P015);
552 glNormal3fv(N014);
553 glVertex3fv(P014);
554 glEnd();
555 }
556
557 void
558 Whale004(void)
559 {
560 glBegin(GL_POLYGON);
561 glNormal3fv(N014);
562 glVertex3fv(P014);
563 glNormal3fv(N015);
564 glVertex3fv(P015);
565 glNormal3fv(N023);
566 glVertex3fv(P023);
567 glNormal3fv(N022);
568 glVertex3fv(P022);
569 glEnd();
570 glBegin(GL_POLYGON);
571 glNormal3fv(N015);
572 glVertex3fv(P015);
573 glNormal3fv(N016);
574 glVertex3fv(P016);
575 glNormal3fv(N024);
576 glVertex3fv(P024);
577 glNormal3fv(N023);
578 glVertex3fv(P023);
579 glEnd();
580 glBegin(GL_POLYGON);
581 glNormal3fv(N016);
582 glVertex3fv(P016);
583 glNormal3fv(N017);
584 glVertex3fv(P017);
585 glNormal3fv(N025);
586 glVertex3fv(P025);
587 glNormal3fv(N024);
588 glVertex3fv(P024);
589 glEnd();
590 glBegin(GL_POLYGON);
591 glNormal3fv(N017);
592 glVertex3fv(P017);
593 glNormal3fv(N018);
594 glVertex3fv(P018);
595 glNormal3fv(N026);
596 glVertex3fv(P026);
597 glNormal3fv(N025);
598 glVertex3fv(P025);
599 glEnd();
600 glBegin(GL_POLYGON);
601 glNormal3fv(N013);
602 glVertex3fv(P013);
603 glNormal3fv(N014);
604 glVertex3fv(P014);
605 glNormal3fv(N022);
606 glVertex3fv(P022);
607 glNormal3fv(N021);
608 glVertex3fv(P021);
609 glEnd();
610 glBegin(GL_POLYGON);
611 glNormal3fv(N012);
612 glVertex3fv(P012);
613 glNormal3fv(N013);
614 glVertex3fv(P013);
615 glNormal3fv(N021);
616 glVertex3fv(P021);
617 glNormal3fv(N020);
618 glVertex3fv(P020);
619 glEnd();
620 glBegin(GL_POLYGON);
621 glNormal3fv(N018);
622 glVertex3fv(P018);
623 glNormal3fv(N019);
624 glVertex3fv(P019);
625 glNormal3fv(N027);
626 glVertex3fv(P027);
627 glNormal3fv(N026);
628 glVertex3fv(P026);
629 glEnd();
630 glBegin(GL_POLYGON);
631 glNormal3fv(N019);
632 glVertex3fv(P019);
633 glNormal3fv(N012);
634 glVertex3fv(P012);
635 glNormal3fv(N020);
636 glVertex3fv(P020);
637 glNormal3fv(N027);
638 glVertex3fv(P027);
639 glEnd();
640 }
641
642 void
643 Whale005(void)
644 {
645 glBegin(GL_POLYGON);
646 glNormal3fv(N022);
647 glVertex3fv(P022);
648 glNormal3fv(N023);
649 glVertex3fv(P023);
650 glNormal3fv(N031);
651 glVertex3fv(P031);
652 glNormal3fv(N030);
653 glVertex3fv(P030);
654 glEnd();
655 glBegin(GL_POLYGON);
656 glNormal3fv(N021);
657 glVertex3fv(P021);
658 glNormal3fv(N022);
659 glVertex3fv(P022);
660 glNormal3fv(N030);
661 glVertex3fv(P030);
662 glEnd();
663 glBegin(GL_POLYGON);
664 glNormal3fv(N021);
665 glVertex3fv(P021);
666 glNormal3fv(N030);
667 glVertex3fv(P030);
668 glNormal3fv(N029);
669 glVertex3fv(P029);
670 glEnd();
671 glBegin(GL_POLYGON);
672 glNormal3fv(N023);
673 glVertex3fv(P023);
674 glNormal3fv(N024);
675 glVertex3fv(P024);
676 glNormal3fv(N031);
677 glVertex3fv(P031);
678 glEnd();
679 glBegin(GL_POLYGON);
680 glNormal3fv(N024);
681 glVertex3fv(P024);
682 glNormal3fv(N032);
683 glVertex3fv(P032);
684 glNormal3fv(N031);
685 glVertex3fv(P031);
686 glEnd();
687 glBegin(GL_POLYGON);
688 glNormal3fv(N024);
689 glVertex3fv(P024);
690 glNormal3fv(N025);
691 glVertex3fv(P025);
692 glNormal3fv(N032);
693 glVertex3fv(P032);
694 glEnd();
695 glBegin(GL_POLYGON);
696 glNormal3fv(N025);
697 glVertex3fv(P025);
698 glNormal3fv(N033);
699 glVertex3fv(P033);
700 glNormal3fv(N032);
701 glVertex3fv(P032);
702 glEnd();
703 glBegin(GL_POLYGON);
704 glNormal3fv(N020);
705 glVertex3fv(P020);
706 glNormal3fv(N021);
707 glVertex3fv(P021);
708 glNormal3fv(N029);
709 glVertex3fv(P029);
710 glEnd();
711 glBegin(GL_POLYGON);
712 glNormal3fv(N020);
713 glVertex3fv(P020);
714 glNormal3fv(N029);
715 glVertex3fv(P029);
716 glNormal3fv(N028);
717 glVertex3fv(P028);
718 glEnd();
719 glBegin(GL_POLYGON);
720 glNormal3fv(N027);
721 glVertex3fv(P027);
722 glNormal3fv(N020);
723 glVertex3fv(P020);
724 glNormal3fv(N028);
725 glVertex3fv(P028);
726 glEnd();
727 glBegin(GL_POLYGON);
728 glNormal3fv(N027);
729 glVertex3fv(P027);
730 glNormal3fv(N028);
731 glVertex3fv(P028);
732 glNormal3fv(N035);
733 glVertex3fv(P035);
734 glEnd();
735 glBegin(GL_POLYGON);
736 glNormal3fv(N025);
737 glVertex3fv(P025);
738 glNormal3fv(N026);
739 glVertex3fv(P026);
740 glNormal3fv(N033);
741 glVertex3fv(P033);
742 glEnd();
743 glBegin(GL_POLYGON);
744 glNormal3fv(N033);
745 glVertex3fv(P033);
746 glNormal3fv(N026);
747 glVertex3fv(P026);
748 glNormal3fv(N034);
749 glVertex3fv(P034);
750 glEnd();
751 glBegin(GL_POLYGON);
752 glNormal3fv(N026);
753 glVertex3fv(P026);
754 glNormal3fv(N027);
755 glVertex3fv(P027);
756 glNormal3fv(N035);
757 glVertex3fv(P035);
758 glNormal3fv(N034);
759 glVertex3fv(P034);
760 glEnd();
761 }
762
763 void
764 Whale006(void)
765 {
766 glBegin(GL_POLYGON);
767 glNormal3fv(N092);
768 glVertex3fv(P092);
769 glNormal3fv(N093);
770 glVertex3fv(P093);
771 glNormal3fv(N094);
772 glVertex3fv(P094);
773 glEnd();
774 glBegin(GL_POLYGON);
775 glNormal3fv(N093);
776 glVertex3fv(P093);
777 glNormal3fv(N092);
778 glVertex3fv(P092);
779 glNormal3fv(N094);
780 glVertex3fv(P094);
781 glEnd();
782 glBegin(GL_POLYGON);
783 glNormal3fv(N092);
784 glVertex3fv(P092);
785 glNormal3fv(N091);
786 glVertex3fv(P091);
787 glNormal3fv(N095);
788 glVertex3fv(P095);
789 glNormal3fv(N094);
790 glVertex3fv(P094);
791 glEnd();
792 glBegin(GL_POLYGON);
793 glNormal3fv(N091);
794 glVertex3fv(P091);
795 glNormal3fv(N092);
796 glVertex3fv(P092);
797 glNormal3fv(N094);
798 glVertex3fv(P094);
799 glNormal3fv(N095);
800 glVertex3fv(P095);
801 glEnd();
802 }
803
804 void
805 Whale007(void)
806 {
807 glBegin(GL_POLYGON);
808 glNormal3fv(N030);
809 glVertex3fv(P030);
810 glNormal3fv(N031);
811 glVertex3fv(P031);
812 glNormal3fv(N039);
813 glVertex3fv(P039);
814 glNormal3fv(N038);
815 glVertex3fv(P038);
816 glEnd();
817 glBegin(GL_POLYGON);
818 glNormal3fv(N029);
819 glVertex3fv(P029);
820 glNormal3fv(N030);
821 glVertex3fv(P030);
822 glNormal3fv(N038);
823 glVertex3fv(P038);
824 glEnd();
825 glBegin(GL_POLYGON);
826 glNormal3fv(N029);
827 glVertex3fv(P029);
828 glNormal3fv(N038);
829 glVertex3fv(P038);
830 glNormal3fv(N037);
831 glVertex3fv(P037);
832 glEnd();
833 glBegin(GL_POLYGON);
834 glNormal3fv(N028);
835 glVertex3fv(P028);
836 glNormal3fv(N029);
837 glVertex3fv(P029);
838 glNormal3fv(N037);
839 glVertex3fv(P037);
840 glEnd();
841 glBegin(GL_POLYGON);
842 glNormal3fv(N028);
843 glVertex3fv(P028);
844 glNormal3fv(N037);
845 glVertex3fv(P037);
846 glNormal3fv(N036);
847 glVertex3fv(P036);
848 glEnd();
849 glBegin(GL_POLYGON);
850 glNormal3fv(N035);
851 glVertex3fv(P035);
852 glNormal3fv(N028);
853 glVertex3fv(P028);
854 glNormal3fv(N036);
855 glVertex3fv(P036);
856 glEnd();
857 glBegin(GL_POLYGON);
858 glNormal3fv(N035);
859 glVertex3fv(P035);
860 glNormal3fv(N036);
861 glVertex3fv(P036);
862 glNormal3fv(N043);
863 glVertex3fv(P043);
864 glEnd();
865 glBegin(GL_POLYGON);
866 glNormal3fv(N034);
867 glVertex3fv(P034);
868 glNormal3fv(N035);
869 glVertex3fv(P035);
870 glNormal3fv(N043);
871 glVertex3fv(P043);
872 glNormal3fv(N042);
873 glVertex3fv(P042);
874 glEnd();
875 glBegin(GL_POLYGON);
876 glNormal3fv(N033);
877 glVertex3fv(P033);
878 glNormal3fv(N034);
879 glVertex3fv(P034);
880 glNormal3fv(N042);
881 glVertex3fv(P042);
882 glEnd();
883 glBegin(GL_POLYGON);
884 glNormal3fv(N033);
885 glVertex3fv(P033);
886 glNormal3fv(N042);
887 glVertex3fv(P042);
888 glNormal3fv(N041);
889 glVertex3fv(P041);
890 glEnd();
891 glBegin(GL_POLYGON);
892 glNormal3fv(N031);
893 glVertex3fv(P031);
894 glNormal3fv(N032);
895 glVertex3fv(P032);
896 glNormal3fv(N039);
897 glVertex3fv(P039);
898 glEnd();
899 glBegin(GL_POLYGON);
900 glNormal3fv(N039);
901 glVertex3fv(P039);
902 glNormal3fv(N032);
903 glVertex3fv(P032);
904 glNormal3fv(N040);
905 glVertex3fv(P040);
906 glEnd();
907 glBegin(GL_POLYGON);
908 glNormal3fv(N032);
909 glVertex3fv(P032);
910 glNormal3fv(N033);
911 glVertex3fv(P033);
912 glNormal3fv(N040);
913 glVertex3fv(P040);
914 glEnd();
915 glBegin(GL_POLYGON);
916 glNormal3fv(N040);
917 glVertex3fv(P040);
918 glNormal3fv(N033);
919 glVertex3fv(P033);
920 glNormal3fv(N041);
921 glVertex3fv(P041);
922 glEnd();
923 }
924
925 void
926 Whale008(void)
927 {
928 glBegin(GL_POLYGON);
929 glNormal3fv(N042);
930 glVertex3fv(P042);
931 glNormal3fv(N043);
932 glVertex3fv(P043);
933 glNormal3fv(N051);
934 glVertex3fv(P051);
935 glNormal3fv(N050);
936 glVertex3fv(P050);
937 glEnd();
938 glBegin(GL_POLYGON);
939 glNormal3fv(N043);
940 glVertex3fv(P043);
941 glNormal3fv(N036);
942 glVertex3fv(P036);
943 glNormal3fv(N051);
944 glVertex3fv(P051);
945 glEnd();
946 glBegin(GL_POLYGON);
947 glNormal3fv(N051);
948 glVertex3fv(P051);
949 glNormal3fv(N036);
950 glVertex3fv(P036);
951 glNormal3fv(N044);
952 glVertex3fv(P044);
953 glEnd();
954 glBegin(GL_POLYGON);
955 glNormal3fv(N041);
956 glVertex3fv(P041);
957 glNormal3fv(N042);
958 glVertex3fv(P042);
959 glNormal3fv(N050);
960 glVertex3fv(P050);
961 glEnd();
962 glBegin(GL_POLYGON);
963 glNormal3fv(N041);
964 glVertex3fv(P041);
965 glNormal3fv(N050);
966 glVertex3fv(P050);
967 glNormal3fv(N049);
968 glVertex3fv(P049);
969 glEnd();
970 glBegin(GL_POLYGON);
971 glNormal3fv(N036);
972 glVertex3fv(P036);
973 glNormal3fv(N037);
974 glVertex3fv(P037);
975 glNormal3fv(N044);
976 glVertex3fv(P044);
977 glEnd();
978 glBegin(GL_POLYGON);
979 glNormal3fv(N044);
980 glVertex3fv(P044);
981 glNormal3fv(N037);
982 glVertex3fv(P037);
983 glNormal3fv(N045);
984 glVertex3fv(P045);
985 glEnd();
986 glBegin(GL_POLYGON);
987 glNormal3fv(N040);
988 glVertex3fv(P040);
989 glNormal3fv(N041);
990 glVertex3fv(P041);
991 glNormal3fv(N049);
992 glVertex3fv(P049);
993 glEnd();
994 glBegin(GL_POLYGON);
995 glNormal3fv(N040);
996 glVertex3fv(P040);
997 glNormal3fv(N049);
998 glVertex3fv(P049);
999 glNormal3fv(N048);
1000 glVertex3fv(P048);
1001 glEnd();
1002 glBegin(GL_POLYGON);
1003 glNormal3fv(N039);
1004 glVertex3fv(P039);
1005 glNormal3fv(N040);
1006 glVertex3fv(P040);
1007 glNormal3fv(N048);
1008 glVertex3fv(P048);
1009 glEnd();
1010 glBegin(GL_POLYGON);
1011 glNormal3fv(N039);
1012 glVertex3fv(P039);
1013 glNormal3fv(N048);
1014 glVertex3fv(P048);
1015 glNormal3fv(N047);
1016 glVertex3fv(P047);
1017 glEnd();
1018 glBegin(GL_POLYGON);
1019 glNormal3fv(N037);
1020 glVertex3fv(P037);
1021 glNormal3fv(N038);
1022 glVertex3fv(P038);
1023 glNormal3fv(N045);
1024 glVertex3fv(P045);
1025 glEnd();
1026 glBegin(GL_POLYGON);
1027 glNormal3fv(N038);
1028 glVertex3fv(P038);
1029 glNormal3fv(N046);
1030 glVertex3fv(P046);
1031 glNormal3fv(N045);
1032 glVertex3fv(P045);
1033 glEnd();
1034 glBegin(GL_POLYGON);
1035 glNormal3fv(N038);
1036 glVertex3fv(P038);
1037 glNormal3fv(N039);
1038 glVertex3fv(P039);
1039 glNormal3fv(N047);
1040 glVertex3fv(P047);
1041 glNormal3fv(N046);
1042 glVertex3fv(P046);
1043 glEnd();
1044 }
1045
1046 void
1047 Whale009(void)
1048 {
1049 glBegin(GL_POLYGON);
1050 glNormal3fv(N050);
1051 glVertex3fv(P050);
1052 glNormal3fv(N051);
1053 glVertex3fv(P051);
1054 glNormal3fv(N059);
1055 glVertex3fv(P059);
1056 glNormal3fv(N058);
1057 glVertex3fv(P058);
1058 glEnd();
1059 glBegin(GL_POLYGON);
1060 glNormal3fv(N051);
1061 glVertex3fv(P051);
1062 glNormal3fv(N044);
1063 glVertex3fv(P044);
1064 glNormal3fv(N059);
1065 glVertex3fv(P059);
1066 glEnd();
1067 glBegin(GL_POLYGON);
1068 glNormal3fv(N059);
1069 glVertex3fv(P059);
1070 glNormal3fv(N044);
1071 glVertex3fv(P044);
1072 glNormal3fv(N052);
1073 glVertex3fv(P052);
1074 glEnd();
1075 glBegin(GL_POLYGON);
1076 glNormal3fv(N044);
1077 glVertex3fv(P044);
1078 glNormal3fv(N045);
1079 glVertex3fv(P045);
1080 glNormal3fv(N053);
1081 glVertex3fv(P053);
1082 glEnd();
1083 glBegin(GL_POLYGON);
1084 glNormal3fv(N044);
1085 glVertex3fv(P044);
1086 glNormal3fv(N053);
1087 glVertex3fv(P053);
1088 glNormal3fv(N052);
1089 glVertex3fv(P052);
1090 glEnd();
1091 glBegin(GL_POLYGON);
1092 glNormal3fv(N049);
1093 glVertex3fv(P049);
1094 glNormal3fv(N050);
1095 glVertex3fv(P050);
1096 glNormal3fv(N058);
1097 glVertex3fv(P058);
1098 glEnd();
1099 glBegin(GL_POLYGON);
1100 glNormal3fv(N049);
1101 glVertex3fv(P049);
1102 glNormal3fv(N058);
1103 glVertex3fv(P058);
1104 glNormal3fv(N057);
1105 glVertex3fv(P057);
1106 glEnd();
1107 glBegin(GL_POLYGON);
1108 glNormal3fv(N048);
1109 glVertex3fv(P048);
1110 glNormal3fv(N049);
1111 glVertex3fv(P049);
1112 glNormal3fv(N057);
1113 glVertex3fv(P057);
1114 glEnd();
1115 glBegin(GL_POLYGON);
1116 glNormal3fv(N048);
1117 glVertex3fv(P048);
1118 glNormal3fv(N057);
1119 glVertex3fv(P057);
1120 glNormal3fv(N056);
1121 glVertex3fv(P056);
1122 glEnd();
1123 glBegin(GL_POLYGON);
1124 glNormal3fv(N047);
1125 glVertex3fv(P047);
1126 glNormal3fv(N048);
1127 glVertex3fv(P048);
1128 glNormal3fv(N056);
1129 glVertex3fv(P056);
1130 glEnd();
1131 glBegin(GL_POLYGON);
1132 glNormal3fv(N047);
1133 glVertex3fv(P047);
1134 glNormal3fv(N056);
1135 glVertex3fv(P056);
1136 glNormal3fv(N055);
1137 glVertex3fv(P055);
1138 glEnd();
1139 glBegin(GL_POLYGON);
1140 glNormal3fv(N045);
1141 glVertex3fv(P045);
1142 glNormal3fv(N046);
1143 glVertex3fv(P046);
1144 glNormal3fv(N053);
1145 glVertex3fv(P053);
1146 glEnd();
1147 glBegin(GL_POLYGON);
1148 glNormal3fv(N046);
1149 glVertex3fv(P046);
1150 glNormal3fv(N054);
1151 glVertex3fv(P054);
1152 glNormal3fv(N053);
1153 glVertex3fv(P053);
1154 glEnd();
1155 glBegin(GL_POLYGON);
1156 glNormal3fv(N046);
1157 glVertex3fv(P046);
1158 glNormal3fv(N047);
1159 glVertex3fv(P047);
1160 glNormal3fv(N055);
1161 glVertex3fv(P055);
1162 glNormal3fv(N054);
1163 glVertex3fv(P054);
1164 glEnd();
1165 }
1166
1167 void
1168 Whale010(void)
1169 {
1170 glBegin(GL_POLYGON);
1171 glNormal3fv(N080);
1172 glVertex3fv(P080);
1173 glNormal3fv(N081);
1174 glVertex3fv(P081);
1175 glNormal3fv(N085);
1176 glVertex3fv(P085);
1177 glEnd();
1178 glBegin(GL_POLYGON);
1179 glNormal3fv(N081);
1180 glVertex3fv(P081);
1181 glNormal3fv(N083);
1182 glVertex3fv(P083);
1183 glNormal3fv(N085);
1184 glVertex3fv(P085);
1185 glEnd();
1186 glBegin(GL_POLYGON);
1187 glNormal3fv(N085);
1188 glVertex3fv(P085);
1189 glNormal3fv(N083);
1190 glVertex3fv(P083);
1191 glNormal3fv(N077);
1192 glVertex3fv(P077);
1193 glEnd();
1194 glBegin(GL_POLYGON);
1195 glNormal3fv(N083);
1196 glVertex3fv(P083);
1197 glNormal3fv(N087);
1198 glVertex3fv(P087);
1199 glNormal3fv(N077);
1200 glVertex3fv(P077);
1201 glEnd();
1202 glBegin(GL_POLYGON);
1203 glNormal3fv(N077);
1204 glVertex3fv(P077);
1205 glNormal3fv(N087);
1206 glVertex3fv(P087);
1207 glNormal3fv(N090);
1208 glVertex3fv(P090);
1209 glEnd();
1210 glBegin(GL_POLYGON);
1211 glNormal3fv(N081);
1212 glVertex3fv(P081);
1213 glNormal3fv(N080);
1214 glVertex3fv(P080);
1215 glNormal3fv(N085);
1216 glVertex3fv(P085);
1217 glEnd();
1218 glBegin(GL_POLYGON);
1219 glNormal3fv(N083);
1220 glVertex3fv(P083);
1221 glNormal3fv(N081);
1222 glVertex3fv(P081);
1223 glNormal3fv(N085);
1224 glVertex3fv(P085);
1225 glEnd();
1226 glBegin(GL_POLYGON);
1227 glNormal3fv(N083);
1228 glVertex3fv(P083);
1229 glNormal3fv(N085);
1230 glVertex3fv(P085);
1231 glNormal3fv(N077);
1232 glVertex3fv(P077);
1233 glEnd();
1234 glBegin(GL_POLYGON);
1235 glNormal3fv(N087);
1236 glVertex3fv(P087);
1237 glNormal3fv(N083);
1238 glVertex3fv(P083);
1239 glNormal3fv(N077);
1240 glVertex3fv(P077);
1241 glEnd();
1242 glBegin(GL_POLYGON);
1243 glNormal3fv(N087);
1244 glVertex3fv(P087);
1245 glNormal3fv(N077);
1246 glVertex3fv(P077);
1247 glNormal3fv(N090);
1248 glVertex3fv(P090);
1249 glEnd();
1250 }
1251
1252 void
1253 Whale011(void)
1254 {
1255 glBegin(GL_POLYGON);
1256 glNormal3fv(N082);
1257 glVertex3fv(P082);
1258 glNormal3fv(N084);
1259 glVertex3fv(P084);
1260 glNormal3fv(N079);
1261 glVertex3fv(P079);
1262 glEnd();
1263 glBegin(GL_POLYGON);
1264 glNormal3fv(N084);
1265 glVertex3fv(P084);
1266 glNormal3fv(N086);
1267 glVertex3fv(P086);
1268 glNormal3fv(N079);
1269 glVertex3fv(P079);
1270 glEnd();
1271 glBegin(GL_POLYGON);
1272 glNormal3fv(N079);
1273 glVertex3fv(P079);
1274 glNormal3fv(N086);
1275 glVertex3fv(P086);
1276 glNormal3fv(N078);
1277 glVertex3fv(P078);
1278 glEnd();
1279 glBegin(GL_POLYGON);
1280 glNormal3fv(N086);
1281 glVertex3fv(P086);
1282 glNormal3fv(N088);
1283 glVertex3fv(P088);
1284 glNormal3fv(N078);
1285 glVertex3fv(P078);
1286 glEnd();
1287 glBegin(GL_POLYGON);
1288 glNormal3fv(N078);
1289 glVertex3fv(P078);
1290 glNormal3fv(N088);
1291 glVertex3fv(P088);
1292 glNormal3fv(N089);
1293 glVertex3fv(P089);
1294 glEnd();
1295 glBegin(GL_POLYGON);
1296 glNormal3fv(N088);
1297 glVertex3fv(P088);
1298 glNormal3fv(N086);
1299 glVertex3fv(P086);
1300 glNormal3fv(N089);
1301 glVertex3fv(P089);
1302 glEnd();
1303 glBegin(GL_POLYGON);
1304 glNormal3fv(N089);
1305 glVertex3fv(P089);
1306 glNormal3fv(N086);
1307 glVertex3fv(P086);
1308 glNormal3fv(N078);
1309 glVertex3fv(P078);
1310 glEnd();
1311 glBegin(GL_POLYGON);
1312 glNormal3fv(N086);
1313 glVertex3fv(P086);
1314 glNormal3fv(N084);
1315 glVertex3fv(P084);
1316 glNormal3fv(N078);
1317 glVertex3fv(P078);
1318 glEnd();
1319 glBegin(GL_POLYGON);
1320 glNormal3fv(N078);
1321 glVertex3fv(P078);
1322 glNormal3fv(N084);
1323 glVertex3fv(P084);
1324 glNormal3fv(N079);
1325 glVertex3fv(P079);
1326 glEnd();
1327 glBegin(GL_POLYGON);
1328 glNormal3fv(N084);
1329 glVertex3fv(P084);
1330 glNormal3fv(N082);
1331 glVertex3fv(P082);
1332 glNormal3fv(N079);
1333 glVertex3fv(P079);
1334 glEnd();
1335 }
1336
1337 void
1338 Whale012(void)
1339 {
1340 glBegin(GL_POLYGON);
1341 glNormal3fv(N058);
1342 glVertex3fv(P058);
1343 glNormal3fv(N059);
1344 glVertex3fv(P059);
1345 glNormal3fv(N067);
1346 glVertex3fv(P067);
1347 glNormal3fv(N066);
1348 glVertex3fv(P066);
1349 glEnd();
1350 glBegin(GL_POLYGON);
1351 glNormal3fv(N059);
1352 glVertex3fv(P059);
1353 glNormal3fv(N052);
1354 glVertex3fv(P052);
1355 glNormal3fv(N060);
1356 glVertex3fv(P060);
1357 glEnd();
1358 glBegin(GL_POLYGON);
1359 glNormal3fv(N059);
1360 glVertex3fv(P059);
1361 glNormal3fv(N060);
1362 glVertex3fv(P060);
1363 glNormal3fv(N067);
1364 glVertex3fv(P067);
1365 glEnd();
1366 glBegin(GL_POLYGON);
1367 glNormal3fv(N058);
1368 glVertex3fv(P058);
1369 glNormal3fv(N066);
1370 glVertex3fv(P066);
1371 glNormal3fv(N065);
1372 glVertex3fv(P065);
1373 glEnd();
1374 glBegin(GL_POLYGON);
1375 glNormal3fv(N058);
1376 glVertex3fv(P058);
1377 glNormal3fv(N065);
1378 glVertex3fv(P065);
1379 glNormal3fv(N057);
1380 glVertex3fv(P057);
1381 glEnd();
1382 glBegin(GL_POLYGON);
1383 glNormal3fv(N056);
1384 glVertex3fv(P056);
1385 glNormal3fv(N057);
1386 glVertex3fv(P057);
1387 glNormal3fv(N065);
1388 glVertex3fv(P065);
1389 glEnd();
1390 glBegin(GL_POLYGON);
1391 glNormal3fv(N056);
1392 glVertex3fv(P056);
1393 glNormal3fv(N065);
1394 glVertex3fv(P065);
1395 glNormal3fv(N006);
1396 glVertex3fv(P006);
1397 glEnd();
1398 glBegin(GL_POLYGON);
1399 glNormal3fv(N056);
1400 glVertex3fv(P056);
1401 glNormal3fv(N006);
1402 glVertex3fv(P006);
1403 glNormal3fv(N063);
1404 glVertex3fv(P063);
1405 glEnd();
1406 glBegin(GL_POLYGON);
1407 glNormal3fv(N056);
1408 glVertex3fv(P056);
1409 glNormal3fv(N063);
1410 glVertex3fv(P063);
1411 glNormal3fv(N055);
1412 glVertex3fv(P055);
1413 glEnd();
1414 glBegin(GL_POLYGON);
1415 glNormal3fv(N054);
1416 glVertex3fv(P054);
1417 glNormal3fv(N062);
1418 glVertex3fv(P062);
1419 glNormal3fv(N005);
1420 glVertex3fv(P005);
1421 glEnd();
1422 glBegin(GL_POLYGON);
1423 glNormal3fv(N054);
1424 glVertex3fv(P054);
1425 glNormal3fv(N005);
1426 glVertex3fv(P005);
1427 glNormal3fv(N053);
1428 glVertex3fv(P053);
1429 glEnd();
1430 glBegin(GL_POLYGON);
1431 glNormal3fv(N053);
1432 glVertex3fv(P053);
1433 glNormal3fv(N005);
1434 glVertex3fv(P005);
1435 glNormal3fv(N060);
1436 glVertex3fv(P060);
1437 glEnd();
1438 glBegin(GL_POLYGON);
1439 glNormal3fv(N053);
1440 glVertex3fv(P053);
1441 glNormal3fv(N060);
1442 glVertex3fv(P060);
1443 glNormal3fv(N052);
1444 glVertex3fv(P052);
1445 glEnd();
1446 }
1447
1448 void
1449 Whale013(void)
1450 {
1451 glBegin(GL_POLYGON);
1452 glNormal3fv(N066);
1453 glVertex3fv(P066);
1454 glNormal3fv(N067);
1455 glVertex3fv(P067);
1456 glNormal3fv(N096);
1457 glVertex3fv(P096);
1458 glNormal3fv(N097);
1459 glVertex3fv(P097);
1460 glEnd();
1461 glBegin(GL_POLYGON);
1462 glNormal3fv(N097);
1463 glVertex3fv(P097);
1464 glNormal3fv(N096);
1465 glVertex3fv(P096);
1466 glNormal3fv(N098);
1467 glVertex3fv(P098);
1468 glNormal3fv(N099);
1469 glVertex3fv(P099);
1470 glEnd();
1471 glBegin(GL_POLYGON);
1472 glNormal3fv(N065);
1473 glVertex3fv(P065);
1474 glNormal3fv(N066);
1475 glVertex3fv(P066);
1476 glNormal3fv(N097);
1477 glVertex3fv(P097);
1478 glEnd();
1479 glBegin(GL_POLYGON);
1480 glNormal3fv(N067);
1481 glVertex3fv(P067);
1482 glNormal3fv(N060);
1483 glVertex3fv(P060);
1484 glNormal3fv(N096);
1485 glVertex3fv(P096);
1486 glEnd();
1487 glBegin(GL_POLYGON);
1488 glNormal3fv(N060);
1489 glVertex3fv(P060);
1490 glNormal3fv(N005);
1491 glVertex3fv(P005);
1492 glNormal3fv(N096);
1493 glVertex3fv(P096);
1494 glEnd();
1495 glBegin(GL_POLYGON);
1496 glNormal3fv(N096);
1497 glVertex3fv(P096);
1498 glNormal3fv(N005);
1499 glVertex3fv(P005);
1500 glNormal3fv(N098);
1501 glVertex3fv(P098);
1502 glEnd();
1503 glBegin(GL_POLYGON);
1504 glNormal3fv(N006);
1505 glVertex3fv(P006);
1506 glNormal3fv(N065);
1507 glVertex3fv(P065);
1508 glNormal3fv(N097);
1509 glVertex3fv(P097);
1510 glEnd();
1511 glBegin(GL_POLYGON);
1512 glNormal3fv(N006);
1513 glVertex3fv(P006);
1514 glNormal3fv(N097);
1515 glVertex3fv(P097);
1516 glNormal3fv(N099);
1517 glVertex3fv(P099);
1518 glEnd();
1519 glBegin(GL_POLYGON);
1520 glVertex3fv(P005);
1521 glVertex3fv(P006);
1522 glVertex3fv(P099);
1523 glVertex3fv(P098);
1524 glEnd();
1525 }
1526
1527 void
1528 Whale014(void)
1529 {
1530 glBegin(GL_POLYGON);
1531 glNormal3fv(N062);
1532 glVertex3fv(P062);
1533 glNormal3fv(N004);
1534 glVertex3fv(P004);
1535 glNormal3fv(N005);
1536 glVertex3fv(P005);
1537 glEnd();
1538 glBegin(GL_POLYGON);
1539 glVertex3fv(P006);
1540 glVertex3fv(P005);
1541 glVertex3fv(P004);
1542 glVertex3fv(P008);
1543 glEnd();
1544 glBegin(GL_POLYGON);
1545 glNormal3fv(N063);
1546 glVertex3fv(P063);
1547 glNormal3fv(N006);
1548 glVertex3fv(P006);
1549 glNormal3fv(N002);
1550 glVertex3fv(P002);
1551 glEnd();
1552 glBegin(GL_POLYGON);
1553 glNormal3fv(N002);
1554 glVertex3fv(P002);
1555 glNormal3fv(N006);
1556 glVertex3fv(P006);
1557 glNormal3fv(N008);
1558 glVertex3fv(P008);
1559 glEnd();
1560 glBegin(GL_POLYGON);
1561 glNormal3fv(N002);
1562 glVertex3fv(P002);
1563 glNormal3fv(N008);
1564 glVertex3fv(P008);
1565 glNormal3fv(N004);
1566 glVertex3fv(P004);
1567 glEnd();
1568 glBegin(GL_POLYGON);
1569 glNormal3fv(N062);
1570 glVertex3fv(P062);
1571 glNormal3fv(N002);
1572 glVertex3fv(P002);
1573 glNormal3fv(N004);
1574 glVertex3fv(P004);
1575 glEnd();
1576 }
1577
1578 void
1579 Whale015(void)
1580 {
1581 glBegin(GL_POLYGON);
1582 glNormal3fv(N055);
1583 glVertex3fv(P055);
1584 glNormal3fv(N003);
1585 glVertex3fv(P003);
1586 glNormal3fv(N054);
1587 glVertex3fv(P054);
1588 glEnd();
1589 glBegin(GL_POLYGON);
1590 glNormal3fv(N003);
1591 glVertex3fv(P003);
1592 glNormal3fv(N055);
1593 glVertex3fv(P055);
1594 glNormal3fv(N063);
1595 glVertex3fv(P063);
1596 glEnd();
1597 glBegin(GL_POLYGON);
1598 glNormal3fv(N003);
1599 glVertex3fv(P003);
1600 glNormal3fv(N063);
1601 glVertex3fv(P063);
1602 glNormal3fv(N100);
1603 glVertex3fv(P100);
1604 glEnd();
1605 glBegin(GL_POLYGON);
1606 glNormal3fv(N003);
1607 glVertex3fv(P003);
1608 glNormal3fv(N100);
1609 glVertex3fv(P100);
1610 glNormal3fv(N054);
1611 glVertex3fv(P054);
1612 glEnd();
1613 glBegin(GL_POLYGON);
1614 glNormal3fv(N054);
1615 glVertex3fv(P054);
1616 glNormal3fv(N100);
1617 glVertex3fv(P100);
1618 glNormal3fv(N062);
1619 glVertex3fv(P062);
1620 glEnd();
1621 glBegin(GL_POLYGON);
1622 glNormal3fv(N100);
1623 glVertex3fv(P100);
1624 glNormal3fv(N063);
1625 glVertex3fv(P063);
1626 glNormal3fv(N002);
1627 glVertex3fv(P002);
1628 glEnd();
1629 glBegin(GL_POLYGON);
1630 glNormal3fv(N100);
1631 glVertex3fv(P100);
1632 glNormal3fv(N002);
1633 glVertex3fv(P002);
1634 glNormal3fv(N062);
1635 glVertex3fv(P062);
1636 glEnd();
1637 }
1638
1639 void
1640 Whale016(void)
1641 {
1642 glBegin(GL_POLYGON);
1643 glVertex3fv(P104);
1644 glVertex3fv(P105);
1645 glVertex3fv(P106);
1646 glEnd();
1647 glBegin(GL_POLYGON);
1648 glVertex3fv(P107);
1649 glVertex3fv(P108);
1650 glVertex3fv(P109);
1651 glEnd();
1652 glBegin(GL_POLYGON);
1653 glVertex3fv(P110);
1654 glVertex3fv(P111);
1655 glVertex3fv(P112);
1656 glVertex3fv(P113);
1657 glVertex3fv(P114);
1658 glVertex3fv(P115);
1659 glEnd();
1660 glBegin(GL_POLYGON);
1661 glVertex3fv(P116);
1662 glVertex3fv(P117);
1663 glVertex3fv(P118);
1664 glVertex3fv(P119);
1665 glVertex3fv(P120);
1666 glVertex3fv(P121);
1667 glEnd();
1668 }
1669
1670 void
1671 DrawWhale(fishRec * fish)
1672 {
1673 float seg0, seg1, seg2, seg3, seg4, seg5, seg6, seg7;
1674 float pitch, thrash, chomp;
1675
1676 fish->htail = (int) (fish->htail - (int) (5.0 * fish->v)) % 360;
1677
1678 thrash = 70.0 * fish->v;
1679
1680 seg0 = 1.5 * thrash * sin((fish->htail) * RRAD);
1681 seg1 = 2.5 * thrash * sin((fish->htail + 10.0) * RRAD);
1682 seg2 = 3.7 * thrash * sin((fish->htail + 15.0) * RRAD);
1683 seg3 = 4.8 * thrash * sin((fish->htail + 23.0) * RRAD);
1684 seg4 = 6.0 * thrash * sin((fish->htail + 28.0) * RRAD);
1685 seg5 = 6.5 * thrash * sin((fish->htail + 35.0) * RRAD);
1686 seg6 = 6.5 * thrash * sin((fish->htail + 40.0) * RRAD);
1687 seg7 = 6.5 * thrash * sin((fish->htail + 55.0) * RRAD);
1688
1689 pitch = fish->v * sin((fish->htail - 160.0) * RRAD);
1690
1691 chomp = 0.0;
1692 if (fish->v > 2.0) {
1693 chomp = -(fish->v - 2.0) * 200.0;
1694 }
1695 P012[1] = iP012[1] + seg5;
1696 P013[1] = iP013[1] + seg5;
1697 P014[1] = iP014[1] + seg5;
1698 P015[1] = iP015[1] + seg5;
1699 P016[1] = iP016[1] + seg5;
1700 P017[1] = iP017[1] + seg5;
1701 P018[1] = iP018[1] + seg5;
1702 P019[1] = iP019[1] + seg5;
1703
1704 P020[1] = iP020[1] + seg4;
1705 P021[1] = iP021[1] + seg4;
1706 P022[1] = iP022[1] + seg4;
1707 P023[1] = iP023[1] + seg4;
1708 P024[1] = iP024[1] + seg4;
1709 P025[1] = iP025[1] + seg4;
1710 P026[1] = iP026[1] + seg4;
1711 P027[1] = iP027[1] + seg4;
1712
1713 P028[1] = iP028[1] + seg2;
1714 P029[1] = iP029[1] + seg2;
1715 P030[1] = iP030[1] + seg2;
1716 P031[1] = iP031[1] + seg2;
1717 P032[1] = iP032[1] + seg2;
1718 P033[1] = iP033[1] + seg2;
1719 P034[1] = iP034[1] + seg2;
1720 P035[1] = iP035[1] + seg2;
1721
1722 P036[1] = iP036[1] + seg1;
1723 P037[1] = iP037[1] + seg1;
1724 P038[1] = iP038[1] + seg1;
1725 P039[1] = iP039[1] + seg1;
1726 P040[1] = iP040[1] + seg1;
1727 P041[1] = iP041[1] + seg1;
1728 P042[1] = iP042[1] + seg1;
1729 P043[1] = iP043[1] + seg1;
1730
1731 P044[1] = iP044[1] + seg0;
1732 P045[1] = iP045[1] + seg0;
1733 P046[1] = iP046[1] + seg0;
1734 P047[1] = iP047[1] + seg0;
1735 P048[1] = iP048[1] + seg0;
1736 P049[1] = iP049[1] + seg0;
1737 P050[1] = iP050[1] + seg0;
1738 P051[1] = iP051[1] + seg0;
1739
1740 P009[1] = iP009[1] + seg6;
1741 P010[1] = iP010[1] + seg6;
1742 P075[1] = iP075[1] + seg6;
1743 P076[1] = iP076[1] + seg6;
1744
1745 P001[1] = iP001[1] + seg7;
1746 P011[1] = iP011[1] + seg7;
1747 P068[1] = iP068[1] + seg7;
1748 P069[1] = iP069[1] + seg7;
1749 P070[1] = iP070[1] + seg7;
1750 P071[1] = iP071[1] + seg7;
1751 P072[1] = iP072[1] + seg7;
1752 P073[1] = iP073[1] + seg7;
1753 P074[1] = iP074[1] + seg7;
1754
1755 P091[1] = iP091[1] + seg3 * 1.1;
1756 P092[1] = iP092[1] + seg3;
1757 P093[1] = iP093[1] + seg3;
1758 P094[1] = iP094[1] + seg3;
1759 P095[1] = iP095[1] + seg3 * 0.9;
1760
1761 P099[1] = iP099[1] + chomp;
1762 P098[1] = iP098[1] + chomp;
1763 P097[1] = iP097[1] + chomp;
1764 P096[1] = iP096[1] + chomp;
1765
1766 glPushMatrix();
1767
1768 glRotatef(pitch, 1.0, 0.0, 0.0);
1769
1770 glTranslatef(0.0, 0.0, 8000.0);
1771
1772 glRotatef(180.0, 0.0, 1.0, 0.0);
1773
1774 glScalef(3.0, 3.0, 3.0);
1775
1776 glEnable(GL_CULL_FACE);
1777
1778 Whale001();
1779 Whale002();
1780 Whale003();
1781 Whale004();
1782 Whale005();
1783 Whale006();
1784 Whale007();
1785 Whale008();
1786 Whale009();
1787 Whale010();
1788 Whale011();
1789 Whale012();
1790 Whale013();
1791 Whale014();
1792 Whale015();
1793 Whale016();
1794
1795 glDisable(GL_CULL_FACE);
1796
1797 glPopMatrix();
1798 }