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