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