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