comparison Xcode/TemplatesForXcodeLeopard/SDL OpenGL Application/atlantis/whale.c @ 3331:d44a0a913aa2

Eric Wing to Sam Lots of fixes. Fixed missing power management building. Added template icons to the project templates. DocSet stuff Documentation fixes.. Fixed all the SDLtests. (Lots of tedious work.) It now depends on the static library target for convenience so I am not going to remove it from the SDL xcode project.
author Sam Lantinga <slouken@libsdl.org>
date Thu, 01 Oct 2009 15:30:26 +0000
parents
children
comparison
equal deleted inserted replaced
3330:e15bcb04c9b4 3331:d44a0a913aa2
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 }