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