http://packetstormsecurity.org/UNIX/admin/xscreensaver-4.14.tar.gz
[xscreensaver] / hacks / glx / dolphin.c
1 /* atlantis --- Shows moving 3D sea animals */
2
3 #if 0
4 static const char sccsid[] = "@(#)dolphin.c     1.2 98/06/16 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
75 #ifndef STANDALONE
76 #include "xlock.h"
77 #endif
78
79 #ifdef USE_GL
80
81 #ifdef STANDALONE
82 #include <math.h>
83 #include <GL/glx.h>
84 #endif
85
86 #include "atlantis.h"
87 /* *INDENT-OFF* */
88 static float N001[3] = {-0.005937 ,-0.101998 ,-0.994767};
89 static float N002[3] = {0.936780 ,-0.200803 ,0.286569};
90 static float N003[3] = {-0.233062 ,0.972058 ,0.028007};
91 #if 0
92 static float N004[3] = {0.000000 ,1.000000 ,0.000000};
93 #endif
94 static float N005[3] = {0.898117 ,0.360171 ,0.252315};
95 static float N006[3] = {-0.915437 ,0.348456 ,0.201378};
96 static float N007[3] = {0.602263 ,-0.777527 ,0.180920};
97 static float N008[3] = {-0.906912 ,-0.412015 ,0.088061};
98 #if 0
99 static float N009[3] = {-0.015623 ,0.999878 ,0.000000};
100 static float N010[3] = {0.000000 ,-0.992278 ,0.124035};
101 static float N011[3] = {0.000000 ,-0.936329 ,-0.351123};
102 #endif
103 static float N012[3] = {0.884408 ,-0.429417 ,-0.182821};
104 static float N013[3] = {0.921121 ,0.311084 ,-0.234016};
105 static float N014[3] = {0.382635 ,0.877882 ,-0.287948};
106 static float N015[3] = {-0.380046 ,0.888166 ,-0.258316};
107 static float N016[3] = {-0.891515 ,0.392238 ,-0.226607};
108 static float N017[3] = {-0.901419 ,-0.382002 ,-0.203763};
109 static float N018[3] = {-0.367225 ,-0.911091 ,-0.187243};
110 static float N019[3] = {0.339539 ,-0.924846 ,-0.171388};
111 static float N020[3] = {0.914706 ,-0.378617 ,-0.141290};
112 static float N021[3] = {0.950662 ,0.262713 ,-0.164994};
113 static float N022[3] = {0.546359 ,0.801460 ,-0.243218};
114 static float N023[3] = {-0.315796 ,0.917068 ,-0.243431};
115 static float N024[3] = {-0.825687 ,0.532277 ,-0.186875};
116 static float N025[3] = {-0.974763 ,-0.155232 ,-0.160435};
117 static float N026[3] = {-0.560596 ,-0.816658 ,-0.137119};
118 static float N027[3] = {0.380210 ,-0.910817 ,-0.160786};
119 static float N028[3] = {0.923772 ,-0.358322 ,-0.135093};
120 static float N029[3] = {0.951202 ,0.275053 ,-0.139859};
121 static float N030[3] = {0.686099 ,0.702548 ,-0.188932};
122 static float N031[3] = {-0.521865 ,0.826719 ,-0.210220};
123 static float N032[3] = {-0.923820 ,0.346739 ,-0.162258};
124 static float N033[3] = {-0.902095 ,-0.409995 ,-0.134646};
125 static float N034[3] = {-0.509115 ,-0.848498 ,-0.144404};
126 static float N035[3] = {0.456469 ,-0.880293 ,-0.129305};
127 static float N036[3] = {0.873401 ,-0.475489 ,-0.105266};
128 static float N037[3] = {0.970825 ,0.179861 ,-0.158584};
129 static float N038[3] = {0.675609 ,0.714187 ,-0.183004};
130 static float N039[3] = {-0.523574 ,0.830212 ,-0.191360};
131 static float N040[3] = {-0.958895 ,0.230808 ,-0.165071};
132 static float N041[3] = {-0.918285 ,-0.376803 ,-0.121542};
133 static float N042[3] = {-0.622467 ,-0.774167 ,-0.114888};
134 static float N043[3] = {0.404497 ,-0.908807 ,-0.102231};
135 static float N044[3] = {0.930538 ,-0.365155 ,-0.027588};
136 static float N045[3] = {0.921920 ,0.374157 ,-0.100345};
137 static float N046[3] = {0.507346 ,0.860739 ,0.041562};
138 static float N047[3] = {-0.394646 ,0.918815 ,-0.005730};
139 static float N048[3] = {-0.925411 ,0.373024 ,-0.066837};
140 static float N049[3] = {-0.945337 ,-0.322309 ,-0.049551};
141 static float N050[3] = {-0.660437 ,-0.750557 ,-0.022072};
142 static float N051[3] = {0.488835 ,-0.871950 ,-0.027261};
143 static float N052[3] = {0.902599 ,-0.421397 ,0.087969};
144 static float N053[3] = {0.938636 ,0.322606 ,0.122020};
145 static float N054[3] = {0.484605 ,0.871078 ,0.079878};
146 static float N055[3] = {-0.353607 ,0.931559 ,0.084619};
147 static float N056[3] = {-0.867759 ,0.478564 ,0.134054};
148 static float N057[3] = {-0.951583 ,-0.296030 ,0.082794};
149 static float N058[3] = {-0.672355 ,-0.730209 ,0.121384};
150 static float N059[3] = {0.528336 ,-0.842452 ,0.105525};
151 static float N060[3] = {0.786913 ,-0.564760 ,0.248627};
152 #if 0
153 static float N061[3] = {0.000000 ,1.000000 ,0.000000};
154 #endif
155 static float N062[3] = {0.622098 ,0.765230 ,0.165584};
156 static float N063[3] = {-0.631711 ,0.767816 ,0.106773};
157 static float N064[3] = {-0.687886 ,0.606351 ,0.398938};
158 static float N065[3] = {-0.946327 ,-0.281623 ,0.158598};
159 static float N066[3] = {-0.509549 ,-0.860437 ,0.002776};
160 static float N067[3] = {0.462594 ,-0.876692 ,0.131977};
161 #if 0
162 static float N068[3] = {0.000000 ,-0.992278 ,0.124035};
163 static float N069[3] = {0.000000 ,-0.970143 ,-0.242536};
164 static float N070[3] = {0.015502 ,0.992159 ,-0.124020};
165 #endif
166 static float N071[3] = {0.000000 ,1.000000 ,0.000000};
167 #if 0
168 static float N072[3] = {0.000000 ,1.000000 ,0.000000};
169 static float N073[3] = {0.000000 ,1.000000 ,0.000000};
170 static float N074[3] = {0.000000 ,-1.000000 ,0.000000};
171 static float N075[3] = {-0.242536 ,0.000000 ,-0.970143};
172 static float N076[3] = {-0.010336 ,-0.992225 ,-0.124028};
173 #endif
174 static float N077[3] = {-0.880770 ,0.461448 ,0.106351};
175 static float N078[3] = {-0.880770 ,0.461448 ,0.106351};
176 static float N079[3] = {-0.880770 ,0.461448 ,0.106351};
177 static float N080[3] = {-0.880770 ,0.461448 ,0.106351};
178 static float N081[3] = {-0.571197 ,0.816173 ,0.087152};
179 static float N082[3] = {-0.880770 ,0.461448 ,0.106351};
180 static float N083[3] = {-0.571197 ,0.816173 ,0.087152};
181 static float N084[3] = {-0.571197 ,0.816173 ,0.087152};
182 static float N085[3] = {-0.880770 ,0.461448 ,0.106351};
183 static float N086[3] = {-0.571197 ,0.816173 ,0.087152};
184 static float N087[3] = {-0.880770 ,0.461448 ,0.106351};
185 static float N088[3] = {-0.880770 ,0.461448 ,0.106351};
186 static float N089[3] = {-0.880770 ,0.461448 ,0.106351};
187 static float N090[3] = {-0.880770 ,0.461448 ,0.106351};
188 static float N091[3] = {0.000000 ,1.000000 ,0.000000};
189 static float N092[3] = {0.000000 ,1.000000 ,0.000000};
190 static float N093[3] = {0.000000 ,1.000000 ,0.000000};
191 static float N094[3] = {1.000000 ,0.000000 ,0.000000};
192 static float N095[3] = {-1.000000 ,0.000000 ,0.000000};
193 #if 0
194 static float N096[3] = {0.000000 ,1.000000 ,0.000000};
195 #endif
196 static float N097[3] = {-0.697296 ,0.702881 ,0.140491};
197 static float N098[3] = {0.918864 ,0.340821 ,0.198819};
198 static float N099[3] = {-0.932737 ,0.201195 ,0.299202};
199 static float N100[3] = {0.029517 ,0.981679 ,0.188244};
200 #if 0
201 static float N101[3] = {0.000000 ,1.000000 ,0.000000};
202 #endif
203 static float N102[3] = {0.813521 ,-0.204936 ,0.544229};
204 #if 0
205 static float N103[3] = {0.000000 ,1.000000 ,0.000000};
206 static float N104[3] = {0.000000 ,1.000000 ,0.000000};
207 static float N105[3] = {0.000000 ,1.000000 ,0.000000};
208 static float N106[3] = {0.000000 ,1.000000 ,0.000000};
209 static float N107[3] = {0.000000 ,1.000000 ,0.000000};
210 static float N108[3] = {0.000000 ,1.000000 ,0.000000};
211 static float N109[3] = {0.000000 ,1.000000 ,0.000000};
212 #endif
213 static float N110[3] = {-0.781480 ,-0.384779 ,0.491155};
214 static float N111[3] = {-0.722243 ,0.384927 ,0.574627};
215 static float N112[3] = {-0.752278 ,0.502679 ,0.425901};
216 static float N113[3] = {0.547257 ,0.367910 ,0.751766};
217 static float N114[3] = {0.725949 ,-0.232568 ,0.647233};
218 static float N115[3] = {-0.747182 ,-0.660786 ,0.071280};
219 static float N116[3] = {0.931519 ,0.200748 ,0.303270};
220 static float N117[3] = {-0.828928 ,0.313757 ,0.463071};
221 static float N118[3] = {0.902554 ,-0.370967 ,0.218587};
222 static float N119[3] = {-0.879257 ,-0.441851 ,0.177973};
223 static float N120[3] = {0.642327 ,0.611901 ,0.461512};
224 static float N121[3] = {0.964817 ,-0.202322 ,0.167910};
225 static float N122[3] = {0.000000 ,1.000000 ,0.000000};
226 #if 0
227 static float N123[3] = {-0.980734 ,0.041447 ,0.190900};
228 static float N124[3] = {-0.980734 ,0.041447 ,0.190900};
229 static float N125[3] = {-0.980734 ,0.041447 ,0.190900};
230 static float N126[3] = {0.000000 ,1.000000 ,0.000000};
231 static float N127[3] = {0.000000 ,1.000000 ,0.000000};
232 static float N128[3] = {0.000000 ,1.000000 ,0.000000};
233 static float N129[3] = {0.963250 ,0.004839 ,0.268565};
234 static float N130[3] = {0.963250 ,0.004839 ,0.268565};
235 static float N131[3] = {0.963250 ,0.004839 ,0.268565};
236 static float N132[3] = {0.000000 ,1.000000 ,0.000000};
237 static float N133[3] = {0.000000 ,1.000000 ,0.000000};
238 static float N134[3] = {0.000000 ,1.000000 ,0.000000};
239 #endif
240 static float P001[3] = {5.68, -300.95, 1324.70};
241 static float P002[3] = {338.69, -219.63, 9677.03};
242 static float P003[3] = {12.18, 474.59, 9138.14};
243 #if 0
244 static float P004[3] = {-7.49, -388.91, 10896.74};
245 #endif
246 static float P005[3] = {487.51, 198.05, 9350.78};
247 static float P006[3] = {-457.61, 68.74, 9427.85};
248 static float P007[3] = {156.52, -266.72, 10311.68};
249 static float P008[3] = {-185.56, -266.51, 10310.47};
250 static float P009[3] = {124.39, -261.46, 1942.34};
251 static float P010[3] = {-130.05, -261.46, 1946.03};
252 static float P011[3] = {141.07, -320.11, 1239.38};
253 static float P012[3] = {156.48, -360.12, 2073.41};
254 static float P013[3] = {162.00, -175.88, 2064.44};
255 static float P014[3] = {88.16, -87.72, 2064.02};
256 static float P015[3] = {-65.21, -96.13, 2064.02};
257 static float P016[3] = {-156.48, -180.96, 2064.44};
258 static float P017[3] = {-162.00, -368.93, 2082.39};
259 static float P018[3] = {-88.16, -439.22, 2082.39};
260 static float P019[3] = {65.21, -440.32, 2083.39};
261 static float P020[3] = {246.87, -356.02, 2576.95};
262 static float P021[3] = {253.17, -111.15, 2567.15};
263 static float P022[3] = {132.34, 51.41, 2559.84};
264 static float P023[3] = {-97.88, 40.44, 2567.15};
265 static float P024[3] = {-222.97, -117.49, 2567.15};
266 static float P025[3] = {-252.22, -371.53, 2569.92};
267 static float P026[3] = {-108.44, -518.19, 2586.75};
268 static float P027[3] = {97.88, -524.79, 2586.75};
269 static float P028[3] = {370.03, -421.19, 3419.70};
270 static float P029[3] = {351.15, -16.98, 3423.17};
271 static float P030[3] = {200.66, 248.46, 3430.37};
272 static float P031[3] = {-148.42, 235.02, 3417.91};
273 static float P032[3] = {-360.21, -30.27, 3416.84};
274 static float P033[3] = {-357.90, -414.89, 3407.04};
275 static float P034[3] = {-148.88, -631.35, 3409.90};
276 static float P035[3] = {156.38, -632.59, 3419.70};
277 static float P036[3] = {462.61, -469.21, 4431.51};
278 static float P037[3] = {466.60, 102.25, 4434.98};
279 static float P038[3] = {243.05, 474.34, 4562.02};
280 static float P039[3] = {-191.23, 474.40, 4554.42};
281 static float P040[3] = {-476.12, 111.05, 4451.11};
282 static float P041[3] = {-473.36, -470.74, 4444.78};
283 static float P042[3] = {-266.95, -748.41, 4447.78};
284 static float P043[3] = {211.14, -749.91, 4429.73};
285 static float P044[3] = {680.57, -370.27, 5943.46};
286 static float P045[3] = {834.01, 363.09, 6360.63};
287 static float P046[3] = {371.29, 804.51, 6486.26};
288 static float P047[3] = {-291.43, 797.22, 6494.28};
289 static float P048[3] = {-784.13, 370.75, 6378.01};
290 static float P049[3] = {-743.29, -325.82, 5943.46};
291 static float P050[3] = {-383.24, -804.77, 5943.46};
292 static float P051[3] = {283.47, -846.09, 5943.46};
293 static float iP001[3] = {5.68, -300.95, 1324.70};
294 #if 0
295 static float iP002[3] = {338.69, -219.63, 9677.03};
296 static float iP003[3] = {12.18, 624.93, 8956.39};
297 static float iP004[3] = {-7.49, -388.91, 10896.74};
298 static float iP005[3] = {487.51, 198.05, 9350.78};
299 static float iP006[3] = {-457.61, 199.04, 9353.01};
300 static float iP007[3] = {156.52, -266.72, 10311.68};
301 static float iP008[3] = {-185.56, -266.51, 10310.47};
302 #endif
303 static float iP009[3] = {124.39, -261.46, 1942.34};
304 static float iP010[3] = {-130.05, -261.46, 1946.03};
305 static float iP011[3] = {141.07, -320.11, 1239.38};
306 static float iP012[3] = {156.48, -360.12, 2073.41};
307 static float iP013[3] = {162.00, -175.88, 2064.44};
308 static float iP014[3] = {88.16, -87.72, 2064.02};
309 static float iP015[3] = {-65.21, -96.13, 2064.02};
310 static float iP016[3] = {-156.48, -180.96, 2064.44};
311 static float iP017[3] = {-162.00, -368.93, 2082.39};
312 static float iP018[3] = {-88.16, -439.22, 2082.39};
313 static float iP019[3] = {65.21, -440.32, 2083.39};
314 static float iP020[3] = {246.87, -356.02, 2576.95};
315 static float iP021[3] = {253.17, -111.15, 2567.15};
316 static float iP022[3] = {132.34, 51.41, 2559.84};
317 static float iP023[3] = {-97.88, 40.44, 2567.15};
318 static float iP024[3] = {-222.97, -117.49, 2567.15};
319 static float iP025[3] = {-252.22, -371.53, 2569.92};
320 static float iP026[3] = {-108.44, -518.19, 2586.75};
321 static float iP027[3] = {97.88, -524.79, 2586.75};
322 static float iP028[3] = {370.03, -421.19, 3419.70};
323 static float iP029[3] = {351.15, -16.98, 3423.17};
324 static float iP030[3] = {200.66, 248.46, 3430.37};
325 static float iP031[3] = {-148.42, 235.02, 3417.91};
326 static float iP032[3] = {-360.21, -30.27, 3416.84};
327 static float iP033[3] = {-357.90, -414.89, 3407.04};
328 static float iP034[3] = {-148.88, -631.35, 3409.90};
329 static float iP035[3] = {156.38, -632.59, 3419.70};
330 static float iP036[3] = {462.61, -469.21, 4431.51};
331 static float iP037[3] = {466.60, 102.25, 4434.98};
332 static float iP038[3] = {243.05, 474.34, 4562.02};
333 static float iP039[3] = {-191.23, 474.40, 4554.42};
334 static float iP040[3] = {-476.12, 111.05, 4451.11};
335 static float iP041[3] = {-473.36, -470.74, 4444.78};
336 static float iP042[3] = {-266.95, -748.41, 4447.78};
337 static float iP043[3] = {211.14, -749.91, 4429.73};
338 static float iP044[3] = {680.57, -370.27, 5943.46};
339 static float iP045[3] = {834.01, 363.09, 6360.63};
340 static float iP046[3] = {371.29, 804.51, 6486.26};
341 static float iP047[3] = {-291.43, 797.22, 6494.28};
342 static float iP048[3] = {-784.13, 370.75, 6378.01};
343 static float iP049[3] = {-743.29, -325.82, 5943.46};
344 static float iP050[3] = {-383.24, -804.77, 5943.46};
345 static float iP051[3] = {283.47, -846.09, 5943.46};
346 static float P052[3] = {599.09, -300.15, 7894.03};
347 static float P053[3] = {735.48, 306.26, 7911.92};
348 static float P054[3] = {246.22, 558.53, 8460.50};
349 static float P055[3] = {-230.41, 559.84, 8473.23};
350 static float P056[3] = {-698.66, 320.83, 7902.59};
351 static float P057[3] = {-643.29, -299.16, 7902.59};
352 static float P058[3] = {-341.47, -719.30, 7902.59};
353 static float P059[3] = {252.57, -756.12, 7902.59};
354 static float P060[3] = {458.39, -265.31, 9355.44};
355 #if 0
356 static float P061[3] = {433.38, -161.90, 9503.03};
357 #endif
358 static float P062[3] = {224.04, 338.75, 9450.30};
359 static float P063[3] = {-165.71, 341.04, 9462.35};
360 static float P064[3] = {-298.11, 110.13, 10180.37};
361 static float P065[3] = {-473.99, -219.71, 9355.44};
362 static float P066[3] = {-211.97, -479.87, 9355.44};
363 static float P067[3] = {192.86, -491.45, 9348.73};
364 static float P068[3] = {-136.29, -319.84, 1228.73};
365 static float P069[3] = {1111.17, -314.14, 1314.19};
366 static float P070[3] = {-1167.34, -321.61, 1319.45};
367 static float P071[3] = {1404.86, -306.66, 1235.45};
368 static float P072[3] = {-1409.73, -314.14, 1247.66};
369 static float P073[3] = {1254.01, -296.87, 1544.58};
370 static float P074[3] = {-1262.09, -291.70, 1504.26};
371 static float P075[3] = {965.71, -269.26, 1742.65};
372 static float P076[3] = {-900.97, -276.74, 1726.07};
373 static float iP068[3] = {-136.29, -319.84, 1228.73};
374 static float iP069[3] = {1111.17, -314.14, 1314.19};
375 static float iP070[3] = {-1167.34, -321.61, 1319.45};
376 static float iP071[3] = {1404.86, -306.66, 1235.45};
377 static float iP072[3] = {-1409.73, -314.14, 1247.66};
378 static float iP073[3] = {1254.01, -296.87, 1544.58};
379 static float iP074[3] = {-1262.09, -291.70, 1504.26};
380 static float iP075[3] = {965.71, -269.26, 1742.65};
381 static float iP076[3] = {-900.97, -276.74, 1726.07};
382 static float P077[3] = {1058.00, -448.81, 8194.66};
383 static float P078[3] = {-1016.51, -456.43, 8190.62};
384 static float P079[3] = {-1515.96, -676.45, 7754.93};
385 static float P080[3] = {1856.75, -830.34, 7296.56};
386 static float P081[3] = {1472.16, -497.38, 7399.68};
387 static float P082[3] = {-1775.26, -829.51, 7298.46};
388 static float P083[3] = {911.09, -252.51, 7510.99};
389 static float P084[3] = {-1451.94, -495.62, 7384.30};
390 static float P085[3] = {1598.75, -669.26, 7769.90};
391 static float P086[3] = {-836.53, -250.08, 7463.25};
392 static float P087[3] = {722.87, -158.18, 8006.41};
393 static float P088[3] = {-688.86, -162.28, 7993.89};
394 static float P089[3] = {-626.92, -185.30, 8364.98};
395 static float P090[3] = {647.72, -189.46, 8354.99};
396 static float P091[3] = {0.00, 835.01, 5555.62};
397 static float P092[3] = {0.00, 1350.18, 5220.86};
398 static float P093[3] = {0.00, 1422.94, 5285.27};
399 static float P094[3] = {0.00, 1296.75, 5650.19};
400 static float P095[3] = {0.00, 795.63, 6493.88};
401 static float iP091[3] = {0.00, 835.01, 5555.62};
402 static float iP092[3] = {0.00, 1350.18, 5220.86};
403 static float iP093[3] = {0.00, 1422.94, 5285.27};
404 static float iP094[3] = {0.00, 1296.75, 5650.19};
405 static float iP095[3] = {0.00, 795.63, 6493.88};
406 #if 0
407 static float P096[3] = {-447.38, -165.99, 9499.60};
408 #endif
409 static float P097[3] = {-194.91, -357.14, 10313.32};
410 static float P098[3] = {135.35, -357.66, 10307.94};
411 static float iP097[3] = {-194.91, -357.14, 10313.32};
412 static float iP098[3] = {135.35, -357.66, 10307.94};
413 static float P099[3] = {-380.53, -221.14, 9677.98};
414 static float P100[3] = {0.00, 412.99, 9629.33};
415 #if 0
416 static float P101[3] = {5.70, 567.00, 7862.98};
417 #endif
418 static float P102[3] = {59.51, -412.55, 10677.58};
419 static float iP102[3] = {59.51, -412.55, 10677.58};
420 static float P103[3] = {6.50, 484.74, 9009.94};
421 #if 0
422 static float P104[3] = {-9.86, 567.62, 7858.65};
423 #endif
424 static float P105[3] = {-41.86, 476.51, 9078.17};
425 #if 0
426 static float P106[3] = {22.75, 568.13, 7782.83};
427 static float P107[3] = {58.93, 568.42, 7775.94};
428 #endif
429 static float P108[3] = {49.20, 476.83, 9078.24};
430 #if 0
431 static float P109[3] = {99.21, 566.00, 7858.65};
432 #endif
433 static float P110[3] = {-187.62, -410.04, 10674.12};
434 static float iP110[3] = {-187.62, -410.04, 10674.12};
435 static float P111[3] = {-184.25, -318.70, 10723.88};
436 static float iP111[3] = {-184.25, -318.70, 10723.88};
437 static float P112[3] = {-179.61, -142.81, 10670.26};
438 static float P113[3] = {57.43, -147.94, 10675.26};
439 static float P114[3] = {54.06, -218.90, 10712.44};
440 static float P115[3] = {-186.35, -212.09, 10713.76};
441 static float P116[3] = {205.90, -84.61, 10275.97};
442 static float P117[3] = {-230.96, -83.26, 10280.09};
443 static float iP118[3] = {216.78, -509.17, 10098.94};
444 static float iP119[3] = {-313.21, -510.79, 10102.62};
445 static float P118[3] = {216.78, -509.17, 10098.94};
446 static float P119[3] = {-313.21, -510.79, 10102.62};
447 static float P120[3] = {217.95, 96.34, 10161.62};
448 static float P121[3] = {71.99, -319.74, 10717.70};
449 static float iP121[3] = {71.99, -319.74, 10717.70};
450 static float P122[3] = {0.00, 602.74, 5375.84};
451 static float iP122[3] = {0.00, 602.74, 5375.84};
452 static float P123[3] = {-448.94, -203.14, 9499.60};
453 static float P124[3] = {-442.64, -185.20, 9528.07};
454 static float P125[3] = {-441.07, -148.05, 9528.07};
455 static float P126[3] = {-443.43, -128.84, 9499.60};
456 static float P127[3] = {-456.87, -146.78, 9466.67};
457 static float P128[3] = {-453.68, -183.93, 9466.67};
458 static float P129[3] = {428.43, -124.08, 9503.03};
459 static float P130[3] = {419.73, -142.14, 9534.56};
460 static float P131[3] = {419.92, -179.96, 9534.56};
461 static float P132[3] = {431.20, -199.73, 9505.26};
462 static float P133[3] = {442.28, -181.67, 9475.96};
463 static float P134[3] = {442.08, -143.84, 9475.96};
464 /* *INDENT-ON* */
465
466
467
468 static void
469 Dolphin001(GLenum cap)
470 {
471         glNormal3fv(N071);
472         glBegin(cap);
473         glVertex3fv(P001);
474         glVertex3fv(P068);
475         glVertex3fv(P010);
476         glEnd();
477         glBegin(cap);
478         glVertex3fv(P068);
479         glVertex3fv(P076);
480         glVertex3fv(P010);
481         glEnd();
482         glBegin(cap);
483         glVertex3fv(P068);
484         glVertex3fv(P070);
485         glVertex3fv(P076);
486         glEnd();
487         glBegin(cap);
488         glVertex3fv(P076);
489         glVertex3fv(P070);
490         glVertex3fv(P074);
491         glEnd();
492         glBegin(cap);
493         glVertex3fv(P070);
494         glVertex3fv(P072);
495         glVertex3fv(P074);
496         glEnd();
497         glNormal3fv(N119);
498         glBegin(cap);
499         glVertex3fv(P072);
500         glVertex3fv(P070);
501         glVertex3fv(P074);
502         glEnd();
503         glBegin(cap);
504         glVertex3fv(P074);
505         glVertex3fv(P070);
506         glVertex3fv(P076);
507         glEnd();
508         glBegin(cap);
509         glVertex3fv(P070);
510         glVertex3fv(P068);
511         glVertex3fv(P076);
512         glEnd();
513         glBegin(cap);
514         glVertex3fv(P076);
515         glVertex3fv(P068);
516         glVertex3fv(P010);
517         glEnd();
518         glBegin(cap);
519         glVertex3fv(P068);
520         glVertex3fv(P001);
521         glVertex3fv(P010);
522         glEnd();
523 }
524
525 static void
526 Dolphin002(GLenum cap)
527 {
528         glNormal3fv(N071);
529         glBegin(cap);
530         glVertex3fv(P011);
531         glVertex3fv(P001);
532         glVertex3fv(P009);
533         glEnd();
534         glBegin(cap);
535         glVertex3fv(P075);
536         glVertex3fv(P011);
537         glVertex3fv(P009);
538         glEnd();
539         glBegin(cap);
540         glVertex3fv(P069);
541         glVertex3fv(P011);
542         glVertex3fv(P075);
543         glEnd();
544         glBegin(cap);
545         glVertex3fv(P069);
546         glVertex3fv(P075);
547         glVertex3fv(P073);
548         glEnd();
549         glBegin(cap);
550         glVertex3fv(P071);
551         glVertex3fv(P069);
552         glVertex3fv(P073);
553         glEnd();
554         glNormal3fv(N119);
555         glBegin(cap);
556         glVertex3fv(P001);
557         glVertex3fv(P011);
558         glVertex3fv(P009);
559         glEnd();
560         glBegin(cap);
561         glVertex3fv(P009);
562         glVertex3fv(P011);
563         glVertex3fv(P075);
564         glEnd();
565         glBegin(cap);
566         glVertex3fv(P011);
567         glVertex3fv(P069);
568         glVertex3fv(P075);
569         glEnd();
570         glBegin(cap);
571         glVertex3fv(P069);
572         glVertex3fv(P073);
573         glVertex3fv(P075);
574         glEnd();
575         glBegin(cap);
576         glVertex3fv(P069);
577         glVertex3fv(P071);
578         glVertex3fv(P073);
579         glEnd();
580 }
581
582 static void
583 Dolphin003(GLenum cap)
584 {
585         glBegin(cap);
586         glNormal3fv(N018);
587         glVertex3fv(P018);
588         glNormal3fv(N001);
589         glVertex3fv(P001);
590         glNormal3fv(N019);
591         glVertex3fv(P019);
592         glEnd();
593         glBegin(cap);
594         glNormal3fv(N019);
595         glVertex3fv(P019);
596         glNormal3fv(N001);
597         glVertex3fv(P001);
598         glNormal3fv(N012);
599         glVertex3fv(P012);
600         glEnd();
601         glBegin(cap);
602         glNormal3fv(N017);
603         glVertex3fv(P017);
604         glNormal3fv(N001);
605         glVertex3fv(P001);
606         glNormal3fv(N018);
607         glVertex3fv(P018);
608         glEnd();
609         glBegin(cap);
610         glNormal3fv(N001);
611         glVertex3fv(P001);
612         glNormal3fv(N017);
613         glVertex3fv(P017);
614         glNormal3fv(N016);
615         glVertex3fv(P016);
616         glEnd();
617         glBegin(cap);
618         glNormal3fv(N001);
619         glVertex3fv(P001);
620         glNormal3fv(N013);
621         glVertex3fv(P013);
622         glNormal3fv(N012);
623         glVertex3fv(P012);
624         glEnd();
625         glBegin(cap);
626         glNormal3fv(N001);
627         glVertex3fv(P001);
628         glNormal3fv(N016);
629         glVertex3fv(P016);
630         glNormal3fv(N015);
631         glVertex3fv(P015);
632         glEnd();
633         glBegin(cap);
634         glNormal3fv(N001);
635         glVertex3fv(P001);
636         glNormal3fv(N014);
637         glVertex3fv(P014);
638         glNormal3fv(N013);
639         glVertex3fv(P013);
640         glEnd();
641         glBegin(cap);
642         glNormal3fv(N001);
643         glVertex3fv(P001);
644         glNormal3fv(N015);
645         glVertex3fv(P015);
646         glNormal3fv(N014);
647         glVertex3fv(P014);
648         glEnd();
649 }
650
651 static void
652 Dolphin004(GLenum cap)
653 {
654         glBegin(cap);
655         glNormal3fv(N014);
656         glVertex3fv(P014);
657         glNormal3fv(N015);
658         glVertex3fv(P015);
659         glNormal3fv(N023);
660         glVertex3fv(P023);
661         glNormal3fv(N022);
662         glVertex3fv(P022);
663         glEnd();
664         glBegin(cap);
665         glNormal3fv(N015);
666         glVertex3fv(P015);
667         glNormal3fv(N016);
668         glVertex3fv(P016);
669         glNormal3fv(N024);
670         glVertex3fv(P024);
671         glNormal3fv(N023);
672         glVertex3fv(P023);
673         glEnd();
674         glBegin(cap);
675         glNormal3fv(N016);
676         glVertex3fv(P016);
677         glNormal3fv(N017);
678         glVertex3fv(P017);
679         glNormal3fv(N025);
680         glVertex3fv(P025);
681         glNormal3fv(N024);
682         glVertex3fv(P024);
683         glEnd();
684         glBegin(cap);
685         glNormal3fv(N017);
686         glVertex3fv(P017);
687         glNormal3fv(N018);
688         glVertex3fv(P018);
689         glNormal3fv(N026);
690         glVertex3fv(P026);
691         glNormal3fv(N025);
692         glVertex3fv(P025);
693         glEnd();
694         glBegin(cap);
695         glNormal3fv(N013);
696         glVertex3fv(P013);
697         glNormal3fv(N014);
698         glVertex3fv(P014);
699         glNormal3fv(N022);
700         glVertex3fv(P022);
701         glNormal3fv(N021);
702         glVertex3fv(P021);
703         glEnd();
704         glBegin(cap);
705         glNormal3fv(N012);
706         glVertex3fv(P012);
707         glNormal3fv(N013);
708         glVertex3fv(P013);
709         glNormal3fv(N021);
710         glVertex3fv(P021);
711         glNormal3fv(N020);
712         glVertex3fv(P020);
713         glEnd();
714         glBegin(cap);
715         glNormal3fv(N018);
716         glVertex3fv(P018);
717         glNormal3fv(N019);
718         glVertex3fv(P019);
719         glNormal3fv(N027);
720         glVertex3fv(P027);
721         glNormal3fv(N026);
722         glVertex3fv(P026);
723         glEnd();
724         glBegin(cap);
725         glNormal3fv(N019);
726         glVertex3fv(P019);
727         glNormal3fv(N012);
728         glVertex3fv(P012);
729         glNormal3fv(N020);
730         glVertex3fv(P020);
731         glNormal3fv(N027);
732         glVertex3fv(P027);
733         glEnd();
734 }
735
736 static void
737 Dolphin005(GLenum cap)
738 {
739         glBegin(cap);
740         glNormal3fv(N022);
741         glVertex3fv(P022);
742         glNormal3fv(N023);
743         glVertex3fv(P023);
744         glNormal3fv(N031);
745         glVertex3fv(P031);
746         glNormal3fv(N030);
747         glVertex3fv(P030);
748         glEnd();
749         glBegin(cap);
750         glNormal3fv(N021);
751         glVertex3fv(P021);
752         glNormal3fv(N022);
753         glVertex3fv(P022);
754         glNormal3fv(N030);
755         glVertex3fv(P030);
756         glEnd();
757         glBegin(cap);
758         glNormal3fv(N021);
759         glVertex3fv(P021);
760         glNormal3fv(N030);
761         glVertex3fv(P030);
762         glNormal3fv(N029);
763         glVertex3fv(P029);
764         glEnd();
765         glBegin(cap);
766         glNormal3fv(N023);
767         glVertex3fv(P023);
768         glNormal3fv(N024);
769         glVertex3fv(P024);
770         glNormal3fv(N031);
771         glVertex3fv(P031);
772         glEnd();
773         glBegin(cap);
774         glNormal3fv(N024);
775         glVertex3fv(P024);
776         glNormal3fv(N032);
777         glVertex3fv(P032);
778         glNormal3fv(N031);
779         glVertex3fv(P031);
780         glEnd();
781         glBegin(cap);
782         glNormal3fv(N024);
783         glVertex3fv(P024);
784         glNormal3fv(N025);
785         glVertex3fv(P025);
786         glNormal3fv(N032);
787         glVertex3fv(P032);
788         glEnd();
789         glBegin(cap);
790         glNormal3fv(N025);
791         glVertex3fv(P025);
792         glNormal3fv(N033);
793         glVertex3fv(P033);
794         glNormal3fv(N032);
795         glVertex3fv(P032);
796         glEnd();
797         glBegin(cap);
798         glNormal3fv(N020);
799         glVertex3fv(P020);
800         glNormal3fv(N021);
801         glVertex3fv(P021);
802         glNormal3fv(N029);
803         glVertex3fv(P029);
804         glEnd();
805         glBegin(cap);
806         glNormal3fv(N020);
807         glVertex3fv(P020);
808         glNormal3fv(N029);
809         glVertex3fv(P029);
810         glNormal3fv(N028);
811         glVertex3fv(P028);
812         glEnd();
813         glBegin(cap);
814         glNormal3fv(N027);
815         glVertex3fv(P027);
816         glNormal3fv(N020);
817         glVertex3fv(P020);
818         glNormal3fv(N028);
819         glVertex3fv(P028);
820         glEnd();
821         glBegin(cap);
822         glNormal3fv(N027);
823         glVertex3fv(P027);
824         glNormal3fv(N028);
825         glVertex3fv(P028);
826         glNormal3fv(N035);
827         glVertex3fv(P035);
828         glEnd();
829         glBegin(cap);
830         glNormal3fv(N025);
831         glVertex3fv(P025);
832         glNormal3fv(N026);
833         glVertex3fv(P026);
834         glNormal3fv(N033);
835         glVertex3fv(P033);
836         glEnd();
837         glBegin(cap);
838         glNormal3fv(N033);
839         glVertex3fv(P033);
840         glNormal3fv(N026);
841         glVertex3fv(P026);
842         glNormal3fv(N034);
843         glVertex3fv(P034);
844         glEnd();
845         glBegin(cap);
846         glNormal3fv(N026);
847         glVertex3fv(P026);
848         glNormal3fv(N027);
849         glVertex3fv(P027);
850         glNormal3fv(N035);
851         glVertex3fv(P035);
852         glNormal3fv(N034);
853         glVertex3fv(P034);
854         glEnd();
855 }
856
857 static void
858 Dolphin006(GLenum cap)
859 {
860         glBegin(cap);
861         glNormal3fv(N092);
862         glVertex3fv(P092);
863         glNormal3fv(N093);
864         glVertex3fv(P093);
865         glNormal3fv(N094);
866         glVertex3fv(P094);
867         glEnd();
868         glBegin(cap);
869         glNormal3fv(N093);
870         glVertex3fv(P093);
871         glNormal3fv(N092);
872         glVertex3fv(P092);
873         glNormal3fv(N094);
874         glVertex3fv(P094);
875         glEnd();
876         glBegin(cap);
877         glNormal3fv(N092);
878         glVertex3fv(P092);
879         glNormal3fv(N091);
880         glVertex3fv(P091);
881         glNormal3fv(N095);
882         glVertex3fv(P095);
883         glNormal3fv(N094);
884         glVertex3fv(P094);
885         glEnd();
886         glBegin(cap);
887         glNormal3fv(N091);
888         glVertex3fv(P091);
889         glNormal3fv(N092);
890         glVertex3fv(P092);
891         glNormal3fv(N094);
892         glVertex3fv(P094);
893         glNormal3fv(N095);
894         glVertex3fv(P095);
895         glEnd();
896         glBegin(cap);
897         glNormal3fv(N122);
898         glVertex3fv(P122);
899         glNormal3fv(N095);
900         glVertex3fv(P095);
901         glNormal3fv(N091);
902         glVertex3fv(P091);
903         glEnd();
904         glBegin(cap);
905         glNormal3fv(N122);
906         glVertex3fv(P122);
907         glNormal3fv(N091);
908         glVertex3fv(P091);
909         glNormal3fv(N095);
910         glVertex3fv(P095);
911         glEnd();
912 }
913
914 static void
915 Dolphin007(GLenum cap)
916 {
917         glBegin(cap);
918         glNormal3fv(N030);
919         glVertex3fv(P030);
920         glNormal3fv(N031);
921         glVertex3fv(P031);
922         glNormal3fv(N039);
923         glVertex3fv(P039);
924         glNormal3fv(N038);
925         glVertex3fv(P038);
926         glEnd();
927         glBegin(cap);
928         glNormal3fv(N029);
929         glVertex3fv(P029);
930         glNormal3fv(N030);
931         glVertex3fv(P030);
932         glNormal3fv(N038);
933         glVertex3fv(P038);
934         glEnd();
935         glBegin(cap);
936         glNormal3fv(N029);
937         glVertex3fv(P029);
938         glNormal3fv(N038);
939         glVertex3fv(P038);
940         glNormal3fv(N037);
941         glVertex3fv(P037);
942         glEnd();
943         glBegin(cap);
944         glNormal3fv(N028);
945         glVertex3fv(P028);
946         glNormal3fv(N029);
947         glVertex3fv(P029);
948         glNormal3fv(N037);
949         glVertex3fv(P037);
950         glEnd();
951         glBegin(cap);
952         glNormal3fv(N028);
953         glVertex3fv(P028);
954         glNormal3fv(N037);
955         glVertex3fv(P037);
956         glNormal3fv(N036);
957         glVertex3fv(P036);
958         glEnd();
959         glBegin(cap);
960         glNormal3fv(N035);
961         glVertex3fv(P035);
962         glNormal3fv(N028);
963         glVertex3fv(P028);
964         glNormal3fv(N036);
965         glVertex3fv(P036);
966         glEnd();
967         glBegin(cap);
968         glNormal3fv(N035);
969         glVertex3fv(P035);
970         glNormal3fv(N036);
971         glVertex3fv(P036);
972         glNormal3fv(N043);
973         glVertex3fv(P043);
974         glEnd();
975         glBegin(cap);
976         glNormal3fv(N034);
977         glVertex3fv(P034);
978         glNormal3fv(N035);
979         glVertex3fv(P035);
980         glNormal3fv(N043);
981         glVertex3fv(P043);
982         glNormal3fv(N042);
983         glVertex3fv(P042);
984         glEnd();
985         glBegin(cap);
986         glNormal3fv(N033);
987         glVertex3fv(P033);
988         glNormal3fv(N034);
989         glVertex3fv(P034);
990         glNormal3fv(N042);
991         glVertex3fv(P042);
992         glEnd();
993         glBegin(cap);
994         glNormal3fv(N033);
995         glVertex3fv(P033);
996         glNormal3fv(N042);
997         glVertex3fv(P042);
998         glNormal3fv(N041);
999         glVertex3fv(P041);
1000         glEnd();
1001         glBegin(cap);
1002         glNormal3fv(N031);
1003         glVertex3fv(P031);
1004         glNormal3fv(N032);
1005         glVertex3fv(P032);
1006         glNormal3fv(N039);
1007         glVertex3fv(P039);
1008         glEnd();
1009         glBegin(cap);
1010         glNormal3fv(N039);
1011         glVertex3fv(P039);
1012         glNormal3fv(N032);
1013         glVertex3fv(P032);
1014         glNormal3fv(N040);
1015         glVertex3fv(P040);
1016         glEnd();
1017         glBegin(cap);
1018         glNormal3fv(N032);
1019         glVertex3fv(P032);
1020         glNormal3fv(N033);
1021         glVertex3fv(P033);
1022         glNormal3fv(N040);
1023         glVertex3fv(P040);
1024         glEnd();
1025         glBegin(cap);
1026         glNormal3fv(N040);
1027         glVertex3fv(P040);
1028         glNormal3fv(N033);
1029         glVertex3fv(P033);
1030         glNormal3fv(N041);
1031         glVertex3fv(P041);
1032         glEnd();
1033 }
1034
1035 static void
1036 Dolphin008(GLenum cap)
1037 {
1038         glBegin(cap);
1039         glNormal3fv(N042);
1040         glVertex3fv(P042);
1041         glNormal3fv(N043);
1042         glVertex3fv(P043);
1043         glNormal3fv(N051);
1044         glVertex3fv(P051);
1045         glNormal3fv(N050);
1046         glVertex3fv(P050);
1047         glEnd();
1048         glBegin(cap);
1049         glNormal3fv(N043);
1050         glVertex3fv(P043);
1051         glNormal3fv(N036);
1052         glVertex3fv(P036);
1053         glNormal3fv(N051);
1054         glVertex3fv(P051);
1055         glEnd();
1056         glBegin(cap);
1057         glNormal3fv(N051);
1058         glVertex3fv(P051);
1059         glNormal3fv(N036);
1060         glVertex3fv(P036);
1061         glNormal3fv(N044);
1062         glVertex3fv(P044);
1063         glEnd();
1064         glBegin(cap);
1065         glNormal3fv(N041);
1066         glVertex3fv(P041);
1067         glNormal3fv(N042);
1068         glVertex3fv(P042);
1069         glNormal3fv(N050);
1070         glVertex3fv(P050);
1071         glEnd();
1072         glBegin(cap);
1073         glNormal3fv(N041);
1074         glVertex3fv(P041);
1075         glNormal3fv(N050);
1076         glVertex3fv(P050);
1077         glNormal3fv(N049);
1078         glVertex3fv(P049);
1079         glEnd();
1080         glBegin(cap);
1081         glNormal3fv(N036);
1082         glVertex3fv(P036);
1083         glNormal3fv(N037);
1084         glVertex3fv(P037);
1085         glNormal3fv(N044);
1086         glVertex3fv(P044);
1087         glEnd();
1088         glBegin(cap);
1089         glNormal3fv(N044);
1090         glVertex3fv(P044);
1091         glNormal3fv(N037);
1092         glVertex3fv(P037);
1093         glNormal3fv(N045);
1094         glVertex3fv(P045);
1095         glEnd();
1096         glBegin(cap);
1097         glNormal3fv(N040);
1098         glVertex3fv(P040);
1099         glNormal3fv(N041);
1100         glVertex3fv(P041);
1101         glNormal3fv(N049);
1102         glVertex3fv(P049);
1103         glEnd();
1104         glBegin(cap);
1105         glNormal3fv(N040);
1106         glVertex3fv(P040);
1107         glNormal3fv(N049);
1108         glVertex3fv(P049);
1109         glNormal3fv(N048);
1110         glVertex3fv(P048);
1111         glEnd();
1112         glBegin(cap);
1113         glNormal3fv(N039);
1114         glVertex3fv(P039);
1115         glNormal3fv(N040);
1116         glVertex3fv(P040);
1117         glNormal3fv(N048);
1118         glVertex3fv(P048);
1119         glEnd();
1120         glBegin(cap);
1121         glNormal3fv(N039);
1122         glVertex3fv(P039);
1123         glNormal3fv(N048);
1124         glVertex3fv(P048);
1125         glNormal3fv(N047);
1126         glVertex3fv(P047);
1127         glEnd();
1128         glBegin(cap);
1129         glNormal3fv(N037);
1130         glVertex3fv(P037);
1131         glNormal3fv(N038);
1132         glVertex3fv(P038);
1133         glNormal3fv(N045);
1134         glVertex3fv(P045);
1135         glEnd();
1136         glBegin(cap);
1137         glNormal3fv(N038);
1138         glVertex3fv(P038);
1139         glNormal3fv(N046);
1140         glVertex3fv(P046);
1141         glNormal3fv(N045);
1142         glVertex3fv(P045);
1143         glEnd();
1144         glBegin(cap);
1145         glNormal3fv(N038);
1146         glVertex3fv(P038);
1147         glNormal3fv(N039);
1148         glVertex3fv(P039);
1149         glNormal3fv(N047);
1150         glVertex3fv(P047);
1151         glNormal3fv(N046);
1152         glVertex3fv(P046);
1153         glEnd();
1154 }
1155
1156 static void
1157 Dolphin009(GLenum cap)
1158 {
1159         glBegin(cap);
1160         glNormal3fv(N050);
1161         glVertex3fv(P050);
1162         glNormal3fv(N051);
1163         glVertex3fv(P051);
1164         glNormal3fv(N059);
1165         glVertex3fv(P059);
1166         glNormal3fv(N058);
1167         glVertex3fv(P058);
1168         glEnd();
1169         glBegin(cap);
1170         glNormal3fv(N051);
1171         glVertex3fv(P051);
1172         glNormal3fv(N044);
1173         glVertex3fv(P044);
1174         glNormal3fv(N059);
1175         glVertex3fv(P059);
1176         glEnd();
1177         glBegin(cap);
1178         glNormal3fv(N059);
1179         glVertex3fv(P059);
1180         glNormal3fv(N044);
1181         glVertex3fv(P044);
1182         glNormal3fv(N052);
1183         glVertex3fv(P052);
1184         glEnd();
1185         glBegin(cap);
1186         glNormal3fv(N044);
1187         glVertex3fv(P044);
1188         glNormal3fv(N045);
1189         glVertex3fv(P045);
1190         glNormal3fv(N053);
1191         glVertex3fv(P053);
1192         glEnd();
1193         glBegin(cap);
1194         glNormal3fv(N044);
1195         glVertex3fv(P044);
1196         glNormal3fv(N053);
1197         glVertex3fv(P053);
1198         glNormal3fv(N052);
1199         glVertex3fv(P052);
1200         glEnd();
1201         glBegin(cap);
1202         glNormal3fv(N049);
1203         glVertex3fv(P049);
1204         glNormal3fv(N050);
1205         glVertex3fv(P050);
1206         glNormal3fv(N058);
1207         glVertex3fv(P058);
1208         glEnd();
1209         glBegin(cap);
1210         glNormal3fv(N049);
1211         glVertex3fv(P049);
1212         glNormal3fv(N058);
1213         glVertex3fv(P058);
1214         glNormal3fv(N057);
1215         glVertex3fv(P057);
1216         glEnd();
1217         glBegin(cap);
1218         glNormal3fv(N048);
1219         glVertex3fv(P048);
1220         glNormal3fv(N049);
1221         glVertex3fv(P049);
1222         glNormal3fv(N057);
1223         glVertex3fv(P057);
1224         glEnd();
1225         glBegin(cap);
1226         glNormal3fv(N048);
1227         glVertex3fv(P048);
1228         glNormal3fv(N057);
1229         glVertex3fv(P057);
1230         glNormal3fv(N056);
1231         glVertex3fv(P056);
1232         glEnd();
1233         glBegin(cap);
1234         glNormal3fv(N047);
1235         glVertex3fv(P047);
1236         glNormal3fv(N048);
1237         glVertex3fv(P048);
1238         glNormal3fv(N056);
1239         glVertex3fv(P056);
1240         glEnd();
1241         glBegin(cap);
1242         glNormal3fv(N047);
1243         glVertex3fv(P047);
1244         glNormal3fv(N056);
1245         glVertex3fv(P056);
1246         glNormal3fv(N055);
1247         glVertex3fv(P055);
1248         glEnd();
1249         glBegin(cap);
1250         glNormal3fv(N045);
1251         glVertex3fv(P045);
1252         glNormal3fv(N046);
1253         glVertex3fv(P046);
1254         glNormal3fv(N053);
1255         glVertex3fv(P053);
1256         glEnd();
1257         glBegin(cap);
1258         glNormal3fv(N046);
1259         glVertex3fv(P046);
1260         glNormal3fv(N054);
1261         glVertex3fv(P054);
1262         glNormal3fv(N053);
1263         glVertex3fv(P053);
1264         glEnd();
1265         glBegin(cap);
1266         glNormal3fv(N046);
1267         glVertex3fv(P046);
1268         glNormal3fv(N047);
1269         glVertex3fv(P047);
1270         glNormal3fv(N055);
1271         glVertex3fv(P055);
1272         glNormal3fv(N054);
1273         glVertex3fv(P054);
1274         glEnd();
1275 }
1276
1277 static void
1278 Dolphin010(GLenum cap)
1279 {
1280         glBegin(cap);
1281         glNormal3fv(N080);
1282         glVertex3fv(P080);
1283         glNormal3fv(N081);
1284         glVertex3fv(P081);
1285         glNormal3fv(N085);
1286         glVertex3fv(P085);
1287         glEnd();
1288         glBegin(cap);
1289         glNormal3fv(N081);
1290         glVertex3fv(P081);
1291         glNormal3fv(N083);
1292         glVertex3fv(P083);
1293         glNormal3fv(N085);
1294         glVertex3fv(P085);
1295         glEnd();
1296         glBegin(cap);
1297         glNormal3fv(N085);
1298         glVertex3fv(P085);
1299         glNormal3fv(N083);
1300         glVertex3fv(P083);
1301         glNormal3fv(N077);
1302         glVertex3fv(P077);
1303         glEnd();
1304         glBegin(cap);
1305         glNormal3fv(N083);
1306         glVertex3fv(P083);
1307         glNormal3fv(N087);
1308         glVertex3fv(P087);
1309         glNormal3fv(N077);
1310         glVertex3fv(P077);
1311         glEnd();
1312         glBegin(cap);
1313         glNormal3fv(N077);
1314         glVertex3fv(P077);
1315         glNormal3fv(N087);
1316         glVertex3fv(P087);
1317         glNormal3fv(N090);
1318         glVertex3fv(P090);
1319         glEnd();
1320         glBegin(cap);
1321         glNormal3fv(N081);
1322         glVertex3fv(P081);
1323         glNormal3fv(N080);
1324         glVertex3fv(P080);
1325         glNormal3fv(N085);
1326         glVertex3fv(P085);
1327         glEnd();
1328         glBegin(cap);
1329         glNormal3fv(N083);
1330         glVertex3fv(P083);
1331         glNormal3fv(N081);
1332         glVertex3fv(P081);
1333         glNormal3fv(N085);
1334         glVertex3fv(P085);
1335         glEnd();
1336         glBegin(cap);
1337         glNormal3fv(N083);
1338         glVertex3fv(P083);
1339         glNormal3fv(N085);
1340         glVertex3fv(P085);
1341         glNormal3fv(N077);
1342         glVertex3fv(P077);
1343         glEnd();
1344         glBegin(cap);
1345         glNormal3fv(N087);
1346         glVertex3fv(P087);
1347         glNormal3fv(N083);
1348         glVertex3fv(P083);
1349         glNormal3fv(N077);
1350         glVertex3fv(P077);
1351         glEnd();
1352         glBegin(cap);
1353         glNormal3fv(N087);
1354         glVertex3fv(P087);
1355         glNormal3fv(N077);
1356         glVertex3fv(P077);
1357         glNormal3fv(N090);
1358         glVertex3fv(P090);
1359         glEnd();
1360 }
1361
1362 static void
1363 Dolphin011(GLenum cap)
1364 {
1365         glBegin(cap);
1366         glNormal3fv(N082);
1367         glVertex3fv(P082);
1368         glNormal3fv(N084);
1369         glVertex3fv(P084);
1370         glNormal3fv(N079);
1371         glVertex3fv(P079);
1372         glEnd();
1373         glBegin(cap);
1374         glNormal3fv(N084);
1375         glVertex3fv(P084);
1376         glNormal3fv(N086);
1377         glVertex3fv(P086);
1378         glNormal3fv(N079);
1379         glVertex3fv(P079);
1380         glEnd();
1381         glBegin(cap);
1382         glNormal3fv(N079);
1383         glVertex3fv(P079);
1384         glNormal3fv(N086);
1385         glVertex3fv(P086);
1386         glNormal3fv(N078);
1387         glVertex3fv(P078);
1388         glEnd();
1389         glBegin(cap);
1390         glNormal3fv(N086);
1391         glVertex3fv(P086);
1392         glNormal3fv(N088);
1393         glVertex3fv(P088);
1394         glNormal3fv(N078);
1395         glVertex3fv(P078);
1396         glEnd();
1397         glBegin(cap);
1398         glNormal3fv(N078);
1399         glVertex3fv(P078);
1400         glNormal3fv(N088);
1401         glVertex3fv(P088);
1402         glNormal3fv(N089);
1403         glVertex3fv(P089);
1404         glEnd();
1405         glBegin(cap);
1406         glNormal3fv(N088);
1407         glVertex3fv(P088);
1408         glNormal3fv(N086);
1409         glVertex3fv(P086);
1410         glNormal3fv(N089);
1411         glVertex3fv(P089);
1412         glEnd();
1413         glBegin(cap);
1414         glNormal3fv(N089);
1415         glVertex3fv(P089);
1416         glNormal3fv(N086);
1417         glVertex3fv(P086);
1418         glNormal3fv(N078);
1419         glVertex3fv(P078);
1420         glEnd();
1421         glBegin(cap);
1422         glNormal3fv(N086);
1423         glVertex3fv(P086);
1424         glNormal3fv(N084);
1425         glVertex3fv(P084);
1426         glNormal3fv(N078);
1427         glVertex3fv(P078);
1428         glEnd();
1429         glBegin(cap);
1430         glNormal3fv(N078);
1431         glVertex3fv(P078);
1432         glNormal3fv(N084);
1433         glVertex3fv(P084);
1434         glNormal3fv(N079);
1435         glVertex3fv(P079);
1436         glEnd();
1437         glBegin(cap);
1438         glNormal3fv(N084);
1439         glVertex3fv(P084);
1440         glNormal3fv(N082);
1441         glVertex3fv(P082);
1442         glNormal3fv(N079);
1443         glVertex3fv(P079);
1444         glEnd();
1445 }
1446
1447 static void
1448 Dolphin012(GLenum cap)
1449 {
1450         glBegin(cap);
1451         glNormal3fv(N058);
1452         glVertex3fv(P058);
1453         glNormal3fv(N059);
1454         glVertex3fv(P059);
1455         glNormal3fv(N067);
1456         glVertex3fv(P067);
1457         glNormal3fv(N066);
1458         glVertex3fv(P066);
1459         glEnd();
1460         glBegin(cap);
1461         glNormal3fv(N059);
1462         glVertex3fv(P059);
1463         glNormal3fv(N052);
1464         glVertex3fv(P052);
1465         glNormal3fv(N060);
1466         glVertex3fv(P060);
1467         glEnd();
1468         glBegin(cap);
1469         glNormal3fv(N059);
1470         glVertex3fv(P059);
1471         glNormal3fv(N060);
1472         glVertex3fv(P060);
1473         glNormal3fv(N067);
1474         glVertex3fv(P067);
1475         glEnd();
1476         glBegin(cap);
1477         glNormal3fv(N058);
1478         glVertex3fv(P058);
1479         glNormal3fv(N066);
1480         glVertex3fv(P066);
1481         glNormal3fv(N065);
1482         glVertex3fv(P065);
1483         glEnd();
1484         glBegin(cap);
1485         glNormal3fv(N058);
1486         glVertex3fv(P058);
1487         glNormal3fv(N065);
1488         glVertex3fv(P065);
1489         glNormal3fv(N057);
1490         glVertex3fv(P057);
1491         glEnd();
1492         glBegin(cap);
1493         glNormal3fv(N056);
1494         glVertex3fv(P056);
1495         glNormal3fv(N057);
1496         glVertex3fv(P057);
1497         glNormal3fv(N065);
1498         glVertex3fv(P065);
1499         glEnd();
1500         glBegin(cap);
1501         glNormal3fv(N056);
1502         glVertex3fv(P056);
1503         glNormal3fv(N065);
1504         glVertex3fv(P065);
1505         glNormal3fv(N006);
1506         glVertex3fv(P006);
1507         glEnd();
1508         glBegin(cap);
1509         glNormal3fv(N056);
1510         glVertex3fv(P056);
1511         glNormal3fv(N006);
1512         glVertex3fv(P006);
1513         glNormal3fv(N063);
1514         glVertex3fv(P063);
1515         glEnd();
1516         glBegin(cap);
1517         glNormal3fv(N056);
1518         glVertex3fv(P056);
1519         glNormal3fv(N063);
1520         glVertex3fv(P063);
1521         glNormal3fv(N055);
1522         glVertex3fv(P055);
1523         glEnd();
1524         glBegin(cap);
1525         glNormal3fv(N054);
1526         glVertex3fv(P054);
1527         glNormal3fv(N062);
1528         glVertex3fv(P062);
1529         glNormal3fv(N005);
1530         glVertex3fv(P005);
1531         glEnd();
1532         glBegin(cap);
1533         glNormal3fv(N054);
1534         glVertex3fv(P054);
1535         glNormal3fv(N005);
1536         glVertex3fv(P005);
1537         glNormal3fv(N053);
1538         glVertex3fv(P053);
1539         glEnd();
1540         glBegin(cap);
1541         glNormal3fv(N052);
1542         glVertex3fv(P052);
1543         glNormal3fv(N053);
1544         glVertex3fv(P053);
1545         glNormal3fv(N005);
1546         glVertex3fv(P005);
1547         glNormal3fv(N060);
1548         glVertex3fv(P060);
1549         glEnd();
1550 }
1551
1552 static void
1553 Dolphin013(GLenum cap)
1554 {
1555         glBegin(cap);
1556         glNormal3fv(N116);
1557         glVertex3fv(P116);
1558         glNormal3fv(N117);
1559         glVertex3fv(P117);
1560         glNormal3fv(N112);
1561         glVertex3fv(P112);
1562         glNormal3fv(N113);
1563         glVertex3fv(P113);
1564         glEnd();
1565         glBegin(cap);
1566         glNormal3fv(N114);
1567         glVertex3fv(P114);
1568         glNormal3fv(N113);
1569         glVertex3fv(P113);
1570         glNormal3fv(N112);
1571         glVertex3fv(P112);
1572         glNormal3fv(N115);
1573         glVertex3fv(P115);
1574         glEnd();
1575         glBegin(cap);
1576         glNormal3fv(N114);
1577         glVertex3fv(P114);
1578         glNormal3fv(N116);
1579         glVertex3fv(P116);
1580         glNormal3fv(N113);
1581         glVertex3fv(P113);
1582         glEnd();
1583         glBegin(cap);
1584         glNormal3fv(N114);
1585         glVertex3fv(P114);
1586         glNormal3fv(N007);
1587         glVertex3fv(P007);
1588         glNormal3fv(N116);
1589         glVertex3fv(P116);
1590         glEnd();
1591         glBegin(cap);
1592         glNormal3fv(N007);
1593         glVertex3fv(P007);
1594         glNormal3fv(N002);
1595         glVertex3fv(P002);
1596         glNormal3fv(N116);
1597         glVertex3fv(P116);
1598         glEnd();
1599         glBegin(cap);
1600         glVertex3fv(P002);
1601         glVertex3fv(P007);
1602         glVertex3fv(P008);
1603         glVertex3fv(P099);
1604         glEnd();
1605         glBegin(cap);
1606         glVertex3fv(P007);
1607         glVertex3fv(P114);
1608         glVertex3fv(P115);
1609         glVertex3fv(P008);
1610         glEnd();
1611         glBegin(cap);
1612         glNormal3fv(N117);
1613         glVertex3fv(P117);
1614         glNormal3fv(N099);
1615         glVertex3fv(P099);
1616         glNormal3fv(N008);
1617         glVertex3fv(P008);
1618         glEnd();
1619         glBegin(cap);
1620         glNormal3fv(N117);
1621         glVertex3fv(P117);
1622         glNormal3fv(N008);
1623         glVertex3fv(P008);
1624         glNormal3fv(N112);
1625         glVertex3fv(P112);
1626         glEnd();
1627         glBegin(cap);
1628         glNormal3fv(N112);
1629         glVertex3fv(P112);
1630         glNormal3fv(N008);
1631         glVertex3fv(P008);
1632         glNormal3fv(N115);
1633         glVertex3fv(P115);
1634         glEnd();
1635 }
1636
1637 static void
1638 Dolphin014(GLenum cap)
1639 {
1640         glBegin(cap);
1641         glNormal3fv(N111);
1642         glVertex3fv(P111);
1643         glNormal3fv(N110);
1644         glVertex3fv(P110);
1645         glNormal3fv(N102);
1646         glVertex3fv(P102);
1647         glNormal3fv(N121);
1648         glVertex3fv(P121);
1649         glEnd();
1650         glBegin(cap);
1651         glNormal3fv(N111);
1652         glVertex3fv(P111);
1653         glNormal3fv(N097);
1654         glVertex3fv(P097);
1655         glNormal3fv(N110);
1656         glVertex3fv(P110);
1657         glEnd();
1658         glBegin(cap);
1659         glNormal3fv(N097);
1660         glVertex3fv(P097);
1661         glNormal3fv(N119);
1662         glVertex3fv(P119);
1663         glNormal3fv(N110);
1664         glVertex3fv(P110);
1665         glEnd();
1666         glBegin(cap);
1667         glNormal3fv(N097);
1668         glVertex3fv(P097);
1669         glNormal3fv(N099);
1670         glVertex3fv(P099);
1671         glNormal3fv(N119);
1672         glVertex3fv(P119);
1673         glEnd();
1674         glBegin(cap);
1675         glNormal3fv(N099);
1676         glVertex3fv(P099);
1677         glNormal3fv(N065);
1678         glVertex3fv(P065);
1679         glNormal3fv(N119);
1680         glVertex3fv(P119);
1681         glEnd();
1682         glBegin(cap);
1683         glNormal3fv(N065);
1684         glVertex3fv(P065);
1685         glNormal3fv(N066);
1686         glVertex3fv(P066);
1687         glNormal3fv(N119);
1688         glVertex3fv(P119);
1689         glEnd();
1690         glBegin(cap);
1691         glVertex3fv(P098);
1692         glVertex3fv(P097);
1693         glVertex3fv(P111);
1694         glVertex3fv(P121);
1695         glEnd();
1696         glBegin(cap);
1697         glVertex3fv(P002);
1698         glVertex3fv(P099);
1699         glVertex3fv(P097);
1700         glVertex3fv(P098);
1701         glEnd();
1702         glBegin(cap);
1703         glNormal3fv(N110);
1704         glVertex3fv(P110);
1705         glNormal3fv(N119);
1706         glVertex3fv(P119);
1707         glNormal3fv(N118);
1708         glVertex3fv(P118);
1709         glNormal3fv(N102);
1710         glVertex3fv(P102);
1711         glEnd();
1712         glBegin(cap);
1713         glNormal3fv(N119);
1714         glVertex3fv(P119);
1715         glNormal3fv(N066);
1716         glVertex3fv(P066);
1717         glNormal3fv(N067);
1718         glVertex3fv(P067);
1719         glNormal3fv(N118);
1720         glVertex3fv(P118);
1721         glEnd();
1722         glBegin(cap);
1723         glNormal3fv(N067);
1724         glVertex3fv(P067);
1725         glNormal3fv(N060);
1726         glVertex3fv(P060);
1727         glNormal3fv(N002);
1728         glVertex3fv(P002);
1729         glEnd();
1730         glBegin(cap);
1731         glNormal3fv(N067);
1732         glVertex3fv(P067);
1733         glNormal3fv(N002);
1734         glVertex3fv(P002);
1735         glNormal3fv(N118);
1736         glVertex3fv(P118);
1737         glEnd();
1738         glBegin(cap);
1739         glNormal3fv(N118);
1740         glVertex3fv(P118);
1741         glNormal3fv(N002);
1742         glVertex3fv(P002);
1743         glNormal3fv(N098);
1744         glVertex3fv(P098);
1745         glEnd();
1746         glBegin(cap);
1747         glNormal3fv(N118);
1748         glVertex3fv(P118);
1749         glNormal3fv(N098);
1750         glVertex3fv(P098);
1751         glNormal3fv(N102);
1752         glVertex3fv(P102);
1753         glEnd();
1754         glBegin(cap);
1755         glNormal3fv(N102);
1756         glVertex3fv(P102);
1757         glNormal3fv(N098);
1758         glVertex3fv(P098);
1759         glNormal3fv(N121);
1760         glVertex3fv(P121);
1761         glEnd();
1762 }
1763
1764 static void
1765 Dolphin015(GLenum cap)
1766 {
1767         glBegin(cap);
1768         glNormal3fv(N055);
1769         glVertex3fv(P055);
1770         glNormal3fv(N003);
1771         glVertex3fv(P003);
1772         glNormal3fv(N054);
1773         glVertex3fv(P054);
1774         glEnd();
1775         glBegin(cap);
1776         glNormal3fv(N003);
1777         glVertex3fv(P003);
1778         glNormal3fv(N055);
1779         glVertex3fv(P055);
1780         glNormal3fv(N063);
1781         glVertex3fv(P063);
1782         glEnd();
1783         glBegin(cap);
1784         glNormal3fv(N003);
1785         glVertex3fv(P003);
1786         glNormal3fv(N063);
1787         glVertex3fv(P063);
1788         glNormal3fv(N100);
1789         glVertex3fv(P100);
1790         glEnd();
1791         glBegin(cap);
1792         glNormal3fv(N003);
1793         glVertex3fv(P003);
1794         glNormal3fv(N100);
1795         glVertex3fv(P100);
1796         glNormal3fv(N054);
1797         glVertex3fv(P054);
1798         glEnd();
1799         glBegin(cap);
1800         glNormal3fv(N054);
1801         glVertex3fv(P054);
1802         glNormal3fv(N100);
1803         glVertex3fv(P100);
1804         glNormal3fv(N062);
1805         glVertex3fv(P062);
1806         glEnd();
1807         glBegin(cap);
1808         glNormal3fv(N100);
1809         glVertex3fv(P100);
1810         glNormal3fv(N064);
1811         glVertex3fv(P064);
1812         glNormal3fv(N120);
1813         glVertex3fv(P120);
1814         glEnd();
1815         glBegin(cap);
1816         glNormal3fv(N100);
1817         glVertex3fv(P100);
1818         glNormal3fv(N063);
1819         glVertex3fv(P063);
1820         glNormal3fv(N064);
1821         glVertex3fv(P064);
1822         glEnd();
1823         glBegin(cap);
1824         glNormal3fv(N063);
1825         glVertex3fv(P063);
1826         glNormal3fv(N006);
1827         glVertex3fv(P006);
1828         glNormal3fv(N064);
1829         glVertex3fv(P064);
1830         glEnd();
1831         glBegin(cap);
1832         glNormal3fv(N064);
1833         glVertex3fv(P064);
1834         glNormal3fv(N006);
1835         glVertex3fv(P006);
1836         glNormal3fv(N099);
1837         glVertex3fv(P099);
1838         glEnd();
1839         glBegin(cap);
1840         glNormal3fv(N064);
1841         glVertex3fv(P064);
1842         glNormal3fv(N099);
1843         glVertex3fv(P099);
1844         glNormal3fv(N117);
1845         glVertex3fv(P117);
1846         glEnd();
1847         glBegin(cap);
1848         glNormal3fv(N120);
1849         glVertex3fv(P120);
1850         glNormal3fv(N064);
1851         glVertex3fv(P064);
1852         glNormal3fv(N117);
1853         glVertex3fv(P117);
1854         glNormal3fv(N116);
1855         glVertex3fv(P116);
1856         glEnd();
1857         glBegin(cap);
1858         glNormal3fv(N006);
1859         glVertex3fv(P006);
1860         glNormal3fv(N065);
1861         glVertex3fv(P065);
1862         glNormal3fv(N099);
1863         glVertex3fv(P099);
1864         glEnd();
1865         glBegin(cap);
1866         glNormal3fv(N062);
1867         glVertex3fv(P062);
1868         glNormal3fv(N100);
1869         glVertex3fv(P100);
1870         glNormal3fv(N120);
1871         glVertex3fv(P120);
1872         glEnd();
1873         glBegin(cap);
1874         glNormal3fv(N005);
1875         glVertex3fv(P005);
1876         glNormal3fv(N062);
1877         glVertex3fv(P062);
1878         glNormal3fv(N120);
1879         glVertex3fv(P120);
1880         glEnd();
1881         glBegin(cap);
1882         glNormal3fv(N005);
1883         glVertex3fv(P005);
1884         glNormal3fv(N120);
1885         glVertex3fv(P120);
1886         glNormal3fv(N002);
1887         glVertex3fv(P002);
1888         glEnd();
1889         glBegin(cap);
1890         glNormal3fv(N002);
1891         glVertex3fv(P002);
1892         glNormal3fv(N120);
1893         glVertex3fv(P120);
1894         glNormal3fv(N116);
1895         glVertex3fv(P116);
1896         glEnd();
1897         glBegin(cap);
1898         glNormal3fv(N060);
1899         glVertex3fv(P060);
1900         glNormal3fv(N005);
1901         glVertex3fv(P005);
1902         glNormal3fv(N002);
1903         glVertex3fv(P002);
1904         glEnd();
1905 }
1906
1907 static void
1908 Dolphin016(GLenum cap)
1909 {
1910
1911         glDisable(GL_DEPTH_TEST);
1912         glBegin(cap);
1913         glVertex3fv(P123);
1914         glVertex3fv(P124);
1915         glVertex3fv(P125);
1916         glVertex3fv(P126);
1917         glVertex3fv(P127);
1918         glVertex3fv(P128);
1919         glEnd();
1920         glBegin(cap);
1921         glVertex3fv(P129);
1922         glVertex3fv(P130);
1923         glVertex3fv(P131);
1924         glVertex3fv(P132);
1925         glVertex3fv(P133);
1926         glVertex3fv(P134);
1927         glEnd();
1928         glBegin(cap);
1929         glVertex3fv(P103);
1930         glVertex3fv(P105);
1931         glVertex3fv(P108);
1932         glEnd();
1933         glEnable(GL_DEPTH_TEST);
1934 }
1935
1936 void
1937 DrawDolphin(fishRec * fish, int wire)
1938 {
1939         float       seg0, seg1, seg2, seg3, seg4, seg5, seg6, seg7;
1940         float       pitch, thrash, chomp;
1941         GLenum      cap;
1942
1943         fish->htail = (int) (fish->htail - (int) (10.0 * fish->v)) % 360;
1944
1945         thrash = 70.0 * fish->v;
1946
1947         seg0 = 1.0 * thrash * sin((fish->htail) * RRAD);
1948         seg3 = 1.0 * thrash * sin((fish->htail) * RRAD);
1949         seg1 = 2.0 * thrash * sin((fish->htail + 4.0) * RRAD);
1950         seg2 = 3.0 * thrash * sin((fish->htail + 6.0) * RRAD);
1951         seg4 = 4.0 * thrash * sin((fish->htail + 10.0) * RRAD);
1952         seg5 = 4.5 * thrash * sin((fish->htail + 15.0) * RRAD);
1953         seg6 = 5.0 * thrash * sin((fish->htail + 20.0) * RRAD);
1954         seg7 = 6.0 * thrash * sin((fish->htail + 30.0) * RRAD);
1955
1956         pitch = fish->v * sin((fish->htail + 180.0) * RRAD);
1957
1958         if (fish->v > 2.0) {
1959                 chomp = -(fish->v - 2.0) * 200.0;
1960         }
1961         chomp = 100.0;
1962
1963         P012[1] = iP012[1] + seg5;
1964         P013[1] = iP013[1] + seg5;
1965         P014[1] = iP014[1] + seg5;
1966         P015[1] = iP015[1] + seg5;
1967         P016[1] = iP016[1] + seg5;
1968         P017[1] = iP017[1] + seg5;
1969         P018[1] = iP018[1] + seg5;
1970         P019[1] = iP019[1] + seg5;
1971
1972         P020[1] = iP020[1] + seg4;
1973         P021[1] = iP021[1] + seg4;
1974         P022[1] = iP022[1] + seg4;
1975         P023[1] = iP023[1] + seg4;
1976         P024[1] = iP024[1] + seg4;
1977         P025[1] = iP025[1] + seg4;
1978         P026[1] = iP026[1] + seg4;
1979         P027[1] = iP027[1] + seg4;
1980
1981         P028[1] = iP028[1] + seg2;
1982         P029[1] = iP029[1] + seg2;
1983         P030[1] = iP030[1] + seg2;
1984         P031[1] = iP031[1] + seg2;
1985         P032[1] = iP032[1] + seg2;
1986         P033[1] = iP033[1] + seg2;
1987         P034[1] = iP034[1] + seg2;
1988         P035[1] = iP035[1] + seg2;
1989
1990         P036[1] = iP036[1] + seg1;
1991         P037[1] = iP037[1] + seg1;
1992         P038[1] = iP038[1] + seg1;
1993         P039[1] = iP039[1] + seg1;
1994         P040[1] = iP040[1] + seg1;
1995         P041[1] = iP041[1] + seg1;
1996         P042[1] = iP042[1] + seg1;
1997         P043[1] = iP043[1] + seg1;
1998
1999         P044[1] = iP044[1] + seg0;
2000         P045[1] = iP045[1] + seg0;
2001         P046[1] = iP046[1] + seg0;
2002         P047[1] = iP047[1] + seg0;
2003         P048[1] = iP048[1] + seg0;
2004         P049[1] = iP049[1] + seg0;
2005         P050[1] = iP050[1] + seg0;
2006         P051[1] = iP051[1] + seg0;
2007
2008         P009[1] = iP009[1] + seg6;
2009         P010[1] = iP010[1] + seg6;
2010         P075[1] = iP075[1] + seg6;
2011         P076[1] = iP076[1] + seg6;
2012
2013         P001[1] = iP001[1] + seg7;
2014         P011[1] = iP011[1] + seg7;
2015         P068[1] = iP068[1] + seg7;
2016         P069[1] = iP069[1] + seg7;
2017         P070[1] = iP070[1] + seg7;
2018         P071[1] = iP071[1] + seg7;
2019         P072[1] = iP072[1] + seg7;
2020         P073[1] = iP073[1] + seg7;
2021         P074[1] = iP074[1] + seg7;
2022
2023         P091[1] = iP091[1] + seg3;
2024         P092[1] = iP092[1] + seg3;
2025         P093[1] = iP093[1] + seg3;
2026         P094[1] = iP094[1] + seg3;
2027         P095[1] = iP095[1] + seg3;
2028         P122[1] = iP122[1] + seg3 * 1.5;
2029
2030         P097[1] = iP097[1] + chomp;
2031         P098[1] = iP098[1] + chomp;
2032         P102[1] = iP102[1] + chomp;
2033         P110[1] = iP110[1] + chomp;
2034         P111[1] = iP111[1] + chomp;
2035         P121[1] = iP121[1] + chomp;
2036         P118[1] = iP118[1] + chomp;
2037         P119[1] = iP119[1] + chomp;
2038
2039         glPushMatrix();
2040
2041         glRotatef(pitch, 1.0, 0.0, 0.0);
2042
2043         glTranslatef(0.0, 0.0, 7000.0);
2044
2045         glRotatef(180.0, 0.0, 1.0, 0.0);
2046
2047         glEnable(GL_CULL_FACE);
2048         cap = wire ? GL_LINE_LOOP : GL_POLYGON;
2049         Dolphin014(cap);
2050         Dolphin010(cap);
2051         Dolphin009(cap);
2052         Dolphin012(cap);
2053         Dolphin013(cap);
2054         Dolphin006(cap);
2055         Dolphin002(cap);
2056         Dolphin001(cap);
2057         Dolphin003(cap);
2058         Dolphin015(cap);
2059         Dolphin004(cap);
2060         Dolphin005(cap);
2061         Dolphin007(cap);
2062         Dolphin008(cap);
2063         Dolphin011(cap);
2064         Dolphin016(cap);
2065         glDisable(GL_CULL_FACE);
2066
2067         glPopMatrix();
2068 }
2069 #endif