1 /* atlantis --- Shows moving 3D sea animals */
3 #if !defined( lint ) && !defined( SABER )
4 static const char sccsid[] = "@(#)dolphin.c 1.2 98/06/16 xlockmore";
8 /* Copyright (c) E. Lassauge, 1998. */
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.
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.
23 * The original code for this mode was written by Mark J. Kilgard
24 * as a demo for openGL programming.
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.
30 * Thanks goes also to Brian Paul for making it possible and inexpensive
31 * to use OpenGL at home.
33 * My e-mail address is lassauge@sagem.fr
35 * Eric Lassauge (May-13-1998)
40 * (c) Copyright 1993, 1994, Silicon Graphics, Inc.
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.
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.
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.
73 * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
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};
93 static float N004[3] = {0.000000 ,1.000000 ,0.000000};
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};
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};
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};
154 static float N061[3] = {0.000000 ,1.000000 ,0.000000};
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};
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};
167 static float N071[3] = {0.000000 ,1.000000 ,0.000000};
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};
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};
195 static float N096[3] = {0.000000 ,1.000000 ,0.000000};
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};
202 static float N101[3] = {0.000000 ,1.000000 ,0.000000};
204 static float N102[3] = {0.813521 ,-0.204936 ,0.544229};
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};
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};
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};
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};
245 static float P004[3] = {-7.49, -388.91, 10896.74};
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};
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};
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};
357 static float P061[3] = {433.38, -161.90, 9503.03};
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};
408 static float P096[3] = {-447.38, -165.99, 9499.60};
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};
417 static float P101[3] = {5.70, 567.00, 7862.98};
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};
423 static float P104[3] = {-9.86, 567.62, 7858.65};
425 static float P105[3] = {-41.86, 476.51, 9078.17};
427 static float P106[3] = {22.75, 568.13, 7782.83};
428 static float P107[3] = {58.93, 568.42, 7775.94};
430 static float P108[3] = {49.20, 476.83, 9078.24};
432 static float P109[3] = {99.21, 566.00, 7858.65};
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};
470 Dolphin001(GLenum cap)
527 Dolphin002(GLenum cap)
584 Dolphin003(GLenum cap)
653 Dolphin004(GLenum cap)
738 Dolphin005(GLenum cap)
859 Dolphin006(GLenum cap)
916 Dolphin007(GLenum cap)
1037 Dolphin008(GLenum cap)
1158 Dolphin009(GLenum cap)
1279 Dolphin010(GLenum cap)
1364 Dolphin011(GLenum cap)
1449 Dolphin012(GLenum cap)
1554 Dolphin013(GLenum cap)
1639 Dolphin014(GLenum cap)
1766 Dolphin015(GLenum cap)
1909 Dolphin016(GLenum cap)
1912 glDisable(GL_DEPTH_TEST);
1934 glEnable(GL_DEPTH_TEST);
1938 DrawDolphin(fishRec * fish, int wire)
1940 float seg0, seg1, seg2, seg3, seg4, seg5, seg6, seg7;
1941 float pitch, thrash, chomp;
1944 fish->htail = (int) (fish->htail - (int) (10.0 * fish->v)) % 360;
1946 thrash = 70.0 * fish->v;
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);
1957 pitch = fish->v * sin((fish->htail + 180.0) * RRAD);
1959 if (fish->v > 2.0) {
1960 chomp = -(fish->v - 2.0) * 200.0;
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;
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;
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;
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;
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;
2009 P009[1] = iP009[1] + seg6;
2010 P010[1] = iP010[1] + seg6;
2011 P075[1] = iP075[1] + seg6;
2012 P076[1] = iP076[1] + seg6;
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;
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;
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;
2042 glRotatef(pitch, 1.0, 0.0, 0.0);
2044 glTranslatef(0.0, 0.0, 7000.0);
2046 glRotatef(180.0, 0.0, 1.0, 0.0);
2048 glEnable(GL_CULL_FACE);
2049 cap = wire ? GL_LINE_LOOP : GL_POLYGON;
2066 glDisable(GL_CULL_FACE);