• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * (c) Copyright 1993, 1994, Silicon Graphics, Inc.
3  * ALL RIGHTS RESERVED
4  * Permission to use, copy, modify, and distribute this software for
5  * any purpose and without fee is hereby granted, provided that the above
6  * copyright notice appear in all copies and that both the copyright notice
7  * and this permission notice appear in supporting documentation, and that
8  * the name of Silicon Graphics, Inc. not be used in advertising
9  * or publicity pertaining to distribution of the software without specific,
10  * written prior permission.
11  *
12  * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
13  * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
14  * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
15  * FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT SHALL SILICON
16  * GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
17  * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
18  * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
19  * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
20  * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC.  HAS BEEN
21  * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
22  * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
23  * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
24  *
25  * US Government Users Restricted Rights
26  * Use, duplication, or disclosure by the Government is subject to
27  * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
28  * (c)(1)(ii) of the Rights in Technical Data and Computer Software
29  * clause at DFARS 252.227-7013 and/or in similar or successor
30  * clauses in the FAR or the DOD or NASA FAR Supplement.
31  * Unpublished-- rights reserved under the copyright laws of the
32  * United States.  Contractor/manufacturer is Silicon Graphics,
33  * Inc., 2011 N.  Shoreline Blvd., Mountain View, CA 94039-7311.
34  *
35  * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
36  */
37 #include <GLUT/glut.h>
38 #include <math.h>
39 #include "atlantis.h"
40 /* *INDENT-OFF* */
41 static float N002[3] = {0.000077 ,-0.020611 ,0.999788};
42 static float N003[3] = {0.961425 ,0.258729 ,-0.093390};
43 static float N004[3] = {0.510811 ,-0.769633 ,-0.383063};
44 static float N005[3] = {0.400123 ,0.855734 ,-0.328055};
45 static float N006[3] = {-0.770715 ,0.610204 ,-0.183440};
46 static float N007[3] = {-0.915597 ,-0.373345 ,-0.149316};
47 static float N008[3] = {-0.972788 ,0.208921 ,-0.100179};
48 static float N009[3] = {-0.939713 ,-0.312268 ,-0.139383};
49 static float N010[3] = {-0.624138 ,-0.741047 ,-0.247589};
50 static float N011[3] = {0.591434 ,-0.768401 ,-0.244471};
51 static float N012[3] = {0.935152 ,-0.328495 ,-0.132598};
52 static float N013[3] = {0.997102 ,0.074243 ,-0.016593};
53 static float N014[3] = {0.969995 ,0.241712 ,-0.026186};
54 static float N015[3] = {0.844539 ,0.502628 ,-0.184714};
55 static float N016[3] = {-0.906608 ,0.386308 ,-0.169787};
56 static float N017[3] = {-0.970016 ,0.241698 ,-0.025516};
57 static float N018[3] = {-0.998652 ,0.050493 ,-0.012045};
58 static float N019[3] = {-0.942685 ,-0.333051 ,-0.020556};
59 static float N020[3] = {-0.660944 ,-0.750276 ,0.015480};
60 static float N021[3] = {0.503549 ,-0.862908 ,-0.042749};
61 static float N022[3] = {0.953202 ,-0.302092 ,-0.012089};
62 static float N023[3] = {0.998738 ,0.023574 ,0.044344};
63 static float N024[3] = {0.979297 ,0.193272 ,0.060202};
64 static float N025[3] = {0.798300 ,0.464885 ,0.382883};
65 static float N026[3] = {-0.756590 ,0.452403 ,0.472126};
66 static float N027[3] = {-0.953855 ,0.293003 ,0.065651};
67 static float N028[3] = {-0.998033 ,0.040292 ,0.048028};
68 static float N029[3] = {-0.977079 ,-0.204288 ,0.059858};
69 static float N030[3] = {-0.729117 ,-0.675304 ,0.111140};
70 static float N031[3] = {0.598361 ,-0.792753 ,0.116221};
71 static float N032[3] = {0.965192 ,-0.252991 ,0.066332};
72 static float N033[3] = {0.998201 ,-0.002790 ,0.059892};
73 static float N034[3] = {0.978657 ,0.193135 ,0.070207};
74 static float N035[3] = {0.718815 ,0.680392 ,0.142733};
75 static float N036[3] = {-0.383096 ,0.906212 ,0.178936};
76 static float N037[3] = {-0.952831 ,0.292590 ,0.080647};
77 static float N038[3] = {-0.997680 ,0.032417 ,0.059861};
78 static float N039[3] = {-0.982629 ,-0.169881 ,0.074700};
79 static float N040[3] = {-0.695424 ,-0.703466 ,0.146700};
80 static float N041[3] = {0.359323 ,-0.915531 ,0.180805};
81 static float N042[3] = {0.943356 ,-0.319387 ,0.089842};
82 static float N043[3] = {0.998272 ,-0.032435 ,0.048993};
83 static float N044[3] = {0.978997 ,0.193205 ,0.065084};
84 static float N045[3] = {0.872144 ,0.470094 ,-0.135565};
85 static float N046[3] = {-0.664282 ,0.737945 ,-0.119027};
86 static float N047[3] = {-0.954508 ,0.288570 ,0.075107};
87 static float N048[3] = {-0.998273 ,0.032406 ,0.048993};
88 static float N049[3] = {-0.979908 ,-0.193579 ,0.048038};
89 static float N050[3] = {-0.858736 ,-0.507202 ,-0.072938};
90 static float N051[3] = {0.643545 ,-0.763887 ,-0.048237};
91 static float N052[3] = {0.955580 ,-0.288954 ,0.058068};
92 static float N058[3] = {0.000050 ,0.793007 ,-0.609213};
93 static float N059[3] = {0.913510 ,0.235418 ,-0.331779};
94 static float N060[3] = {-0.807970 ,0.495000 ,-0.319625};
95 static float N061[3] = {0.000000 ,0.784687 ,-0.619892};
96 static float N062[3] = {0.000000 ,-1.000000 ,0.000000};
97 static float N063[3] = {0.000000 ,1.000000 ,0.000000};
98 static float N064[3] = {0.000000 ,1.000000 ,0.000000};
99 static float N065[3] = {0.000000 ,1.000000 ,0.000000};
100 static float N066[3] = {-0.055784 ,0.257059 ,0.964784};
101 static float N069[3] = {-0.000505 ,-0.929775 ,-0.368127};
102 static float N070[3] = {0.000000 ,1.000000 ,0.000000};
103 static float P002[3] = {0.00, -36.59, 5687.72};
104 static float P003[3] = {90.00, 114.73, 724.38};
105 static float P004[3] = {58.24, -146.84, 262.35};
106 static float P005[3] = {27.81, 231.52, 510.43};
107 static float P006[3] = {-27.81, 230.43, 509.76};
108 static float P007[3] = {-46.09, -146.83, 265.84};
109 static float P008[3] = {-90.00, 103.84, 718.53};
110 static float P009[3] = {-131.10, -165.92, 834.85};
111 static float P010[3] = {-27.81, -285.31, 500.00};
112 static float P011[3] = {27.81, -285.32, 500.00};
113 static float P012[3] = {147.96, -170.89, 845.50};
114 static float P013[3] = {180.00, 0.00, 2000.00};
115 static float P014[3] = {145.62, 352.67, 2000.00};
116 static float P015[3] = {55.62, 570.63, 2000.00};
117 static float P016[3] = {-55.62, 570.64, 2000.00};
118 static float P017[3] = {-145.62, 352.68, 2000.00};
119 static float P018[3] = {-180.00, 0.01, 2000.00};
120 static float P019[3] = {-178.20, -352.66, 2001.61};
121 static float P020[3] = {-55.63, -570.63, 2000.00};
122 static float P021[3] = {55.62, -570.64, 2000.00};
123 static float P022[3] = {179.91, -352.69, 1998.39};
124 static float P023[3] = {150.00, 0.00, 3000.00};
125 static float P024[3] = {121.35, 293.89, 3000.00};
126 static float P025[3] = {46.35, 502.93, 2883.09};
127 static float P026[3] = {-46.35, 497.45, 2877.24};
128 static float P027[3] = {-121.35, 293.90, 3000.00};
129 static float P028[3] = {-150.00, 0.00, 3000.00};
130 static float P029[3] = {-152.21, -304.84, 2858.68};
131 static float P030[3] = {-46.36, -475.52, 3000.00};
132 static float P031[3] = {46.35, -475.53, 3000.00};
133 static float P032[3] = {155.64, -304.87, 2863.50};
134 static float P033[3] = {90.00, 0.00, 4000.00};
135 static float P034[3] = {72.81, 176.33, 4000.00};
136 static float P035[3] = {27.81, 285.32, 4000.00};
137 static float P036[3] = {-27.81, 285.32, 4000.00};
138 static float P037[3] = {-72.81, 176.34, 4000.00};
139 static float P038[3] = {-90.00, 0.00, 4000.00};
140 static float P039[3] = {-72.81, -176.33, 4000.00};
141 static float P040[3] = {-27.81, -285.31, 4000.00};
142 static float P041[3] = {27.81, -285.32, 4000.00};
143 static float P042[3] = {72.81, -176.34, 4000.00};
144 static float P043[3] = {30.00, 0.00, 5000.00};
145 static float P044[3] = {24.27, 58.78, 5000.00};
146 static float P045[3] = {9.27, 95.11, 5000.00};
147 static float P046[3] = {-9.27, 95.11, 5000.00};
148 static float P047[3] = {-24.27, 58.78, 5000.00};
149 static float P048[3] = {-30.00, 0.00, 5000.00};
150 static float P049[3] = {-24.27, -58.78, 5000.00};
151 static float P050[3] = {-9.27, -95.10, 5000.00};
152 static float P051[3] = {9.27, -95.11, 5000.00};
153 static float P052[3] = {24.27, -58.78, 5000.00};
154 static float P058[3] = {0.00, 1212.72, 2703.08};
155 static float P059[3] = {50.36, 0.00, 108.14};
156 static float P060[3] = {-22.18, 0.00, 108.14};
157 static float P061[3] = {0.00, 1181.61, 6344.65};
158 static float P062[3] = {516.45, -887.08, 2535.45};
159 static float P063[3] = {-545.69, -879.31, 2555.63};
160 static float P064[3] = {618.89, -1005.64, 2988.32};
161 static float P065[3] = {-635.37, -1014.79, 2938.68};
162 static float P066[3] = {0.00, 1374.43, 3064.18};
163 static float P069[3] = {0.00, -418.25, 5765.04};
164 static float P070[3] = {0.00, 1266.91, 6629.60};
165 static float P071[3] = {-139.12, -124.96, 997.98};
166 static float P072[3] = {-139.24, -110.18, 1020.68};
167 static float P073[3] = {-137.33, -94.52, 1022.63};
168 static float P074[3] = {-137.03, -79.91, 996.89};
169 static float P075[3] = {-135.21, -91.48, 969.14};
170 static float P076[3] = {-135.39, -110.87, 968.76};
171 static float P077[3] = {150.23, -78.44, 995.53};
172 static float P078[3] = {152.79, -92.76, 1018.46};
173 static float P079[3] = {154.19, -110.20, 1020.55};
174 static float P080[3] = {151.33, -124.15, 993.77};
175 static float P081[3] = {150.49, -111.19, 969.86};
176 static float P082[3] = {150.79, -92.41, 969.70};
177 static float iP002[3] = {0.00, -36.59, 5687.72};
178 static float iP004[3] = {58.24, -146.84, 262.35};
179 static float iP007[3] = {-46.09, -146.83, 265.84};
180 static float iP010[3] = {-27.81, -285.31, 500.00};
181 static float iP011[3] = {27.81, -285.32, 500.00};
182 static float iP023[3] = {150.00, 0.00, 3000.00};
183 static float iP024[3] = {121.35, 293.89, 3000.00};
184 static float iP025[3] = {46.35, 502.93, 2883.09};
185 static float iP026[3] = {-46.35, 497.45, 2877.24};
186 static float iP027[3] = {-121.35, 293.90, 3000.00};
187 static float iP028[3] = {-150.00, 0.00, 3000.00};
188 static float iP029[3] = {-121.35, -304.84, 2853.86};
189 static float iP030[3] = {-46.36, -475.52, 3000.00};
190 static float iP031[3] = {46.35, -475.53, 3000.00};
191 static float iP032[3] = {121.35, -304.87, 2853.86};
192 static float iP033[3] = {90.00, 0.00, 4000.00};
193 static float iP034[3] = {72.81, 176.33, 4000.00};
194 static float iP035[3] = {27.81, 285.32, 4000.00};
195 static float iP036[3] = {-27.81, 285.32, 4000.00};
196 static float iP037[3] = {-72.81, 176.34, 4000.00};
197 static float iP038[3] = {-90.00, 0.00, 4000.00};
198 static float iP039[3] = {-72.81, -176.33, 4000.00};
199 static float iP040[3] = {-27.81, -285.31, 4000.00};
200 static float iP041[3] = {27.81, -285.32, 4000.00};
201 static float iP042[3] = {72.81, -176.34, 4000.00};
202 static float iP043[3] = {30.00, 0.00, 5000.00};
203 static float iP044[3] = {24.27, 58.78, 5000.00};
204 static float iP045[3] = {9.27, 95.11, 5000.00};
205 static float iP046[3] = {-9.27, 95.11, 5000.00};
206 static float iP047[3] = {-24.27, 58.78, 5000.00};
207 static float iP048[3] = {-30.00, 0.00, 5000.00};
208 static float iP049[3] = {-24.27, -58.78, 5000.00};
209 static float iP050[3] = {-9.27, -95.10, 5000.00};
210 static float iP051[3] = {9.27, -95.11, 5000.00};
211 static float iP052[3] = {24.27, -58.78, 5000.00};
212 static float iP061[3] = {0.00, 1181.61, 6344.65};
213 static float iP069[3] = {0.00, -418.25, 5765.04};
214 static float iP070[3] = {0.00, 1266.91, 6629.60};
215 /* *INDENT-ON* */
216 
217 void
Fish001(void)218 Fish001(void)
219 {
220     glBegin(GL_POLYGON);
221     glNormal3fv(N005);
222     glVertex3fv(P005);
223     glNormal3fv(N059);
224     glVertex3fv(P059);
225     glNormal3fv(N060);
226     glVertex3fv(P060);
227     glNormal3fv(N006);
228     glVertex3fv(P006);
229     glEnd();
230     glBegin(GL_POLYGON);
231     glNormal3fv(N015);
232     glVertex3fv(P015);
233     glNormal3fv(N005);
234     glVertex3fv(P005);
235     glNormal3fv(N006);
236     glVertex3fv(P006);
237     glNormal3fv(N016);
238     glVertex3fv(P016);
239     glEnd();
240     glBegin(GL_POLYGON);
241     glNormal3fv(N006);
242     glVertex3fv(P006);
243     glNormal3fv(N060);
244     glVertex3fv(P060);
245     glNormal3fv(N008);
246     glVertex3fv(P008);
247     glEnd();
248     glBegin(GL_POLYGON);
249     glNormal3fv(N016);
250     glVertex3fv(P016);
251     glNormal3fv(N006);
252     glVertex3fv(P006);
253     glNormal3fv(N008);
254     glVertex3fv(P008);
255     glEnd();
256     glBegin(GL_POLYGON);
257     glNormal3fv(N016);
258     glVertex3fv(P016);
259     glNormal3fv(N008);
260     glVertex3fv(P008);
261     glNormal3fv(N017);
262     glVertex3fv(P017);
263     glEnd();
264     glBegin(GL_POLYGON);
265     glNormal3fv(N017);
266     glVertex3fv(P017);
267     glNormal3fv(N008);
268     glVertex3fv(P008);
269     glNormal3fv(N018);
270     glVertex3fv(P018);
271     glEnd();
272     glBegin(GL_POLYGON);
273     glNormal3fv(N008);
274     glVertex3fv(P008);
275     glNormal3fv(N009);
276     glVertex3fv(P009);
277     glNormal3fv(N018);
278     glVertex3fv(P018);
279     glEnd();
280     glBegin(GL_POLYGON);
281     glNormal3fv(N008);
282     glVertex3fv(P008);
283     glNormal3fv(N060);
284     glVertex3fv(P060);
285     glNormal3fv(N009);
286     glVertex3fv(P009);
287     glEnd();
288     glBegin(GL_POLYGON);
289     glNormal3fv(N007);
290     glVertex3fv(P007);
291     glNormal3fv(N010);
292     glVertex3fv(P010);
293     glNormal3fv(N009);
294     glVertex3fv(P009);
295     glEnd();
296     glBegin(GL_POLYGON);
297     glNormal3fv(N009);
298     glVertex3fv(P009);
299     glNormal3fv(N019);
300     glVertex3fv(P019);
301     glNormal3fv(N018);
302     glVertex3fv(P018);
303     glEnd();
304     glBegin(GL_POLYGON);
305     glNormal3fv(N009);
306     glVertex3fv(P009);
307     glNormal3fv(N010);
308     glVertex3fv(P010);
309     glNormal3fv(N019);
310     glVertex3fv(P019);
311     glEnd();
312     glBegin(GL_POLYGON);
313     glNormal3fv(N010);
314     glVertex3fv(P010);
315     glNormal3fv(N020);
316     glVertex3fv(P020);
317     glNormal3fv(N019);
318     glVertex3fv(P019);
319     glEnd();
320     glBegin(GL_POLYGON);
321     glNormal3fv(N010);
322     glVertex3fv(P010);
323     glNormal3fv(N011);
324     glVertex3fv(P011);
325     glNormal3fv(N021);
326     glVertex3fv(P021);
327     glNormal3fv(N020);
328     glVertex3fv(P020);
329     glEnd();
330     glBegin(GL_POLYGON);
331     glNormal3fv(N004);
332     glVertex3fv(P004);
333     glNormal3fv(N011);
334     glVertex3fv(P011);
335     glNormal3fv(N010);
336     glVertex3fv(P010);
337     glNormal3fv(N007);
338     glVertex3fv(P007);
339     glEnd();
340     glBegin(GL_POLYGON);
341     glNormal3fv(N004);
342     glVertex3fv(P004);
343     glNormal3fv(N012);
344     glVertex3fv(P012);
345     glNormal3fv(N011);
346     glVertex3fv(P011);
347     glEnd();
348     glBegin(GL_POLYGON);
349     glNormal3fv(N012);
350     glVertex3fv(P012);
351     glNormal3fv(N022);
352     glVertex3fv(P022);
353     glNormal3fv(N011);
354     glVertex3fv(P011);
355     glEnd();
356     glBegin(GL_POLYGON);
357     glNormal3fv(N011);
358     glVertex3fv(P011);
359     glNormal3fv(N022);
360     glVertex3fv(P022);
361     glNormal3fv(N021);
362     glVertex3fv(P021);
363     glEnd();
364     glBegin(GL_POLYGON);
365     glNormal3fv(N059);
366     glVertex3fv(P059);
367     glNormal3fv(N005);
368     glVertex3fv(P005);
369     glNormal3fv(N015);
370     glVertex3fv(P015);
371     glEnd();
372     glBegin(GL_POLYGON);
373     glNormal3fv(N015);
374     glVertex3fv(P015);
375     glNormal3fv(N014);
376     glVertex3fv(P014);
377     glNormal3fv(N003);
378     glVertex3fv(P003);
379     glEnd();
380     glBegin(GL_POLYGON);
381     glNormal3fv(N015);
382     glVertex3fv(P015);
383     glNormal3fv(N003);
384     glVertex3fv(P003);
385     glNormal3fv(N059);
386     glVertex3fv(P059);
387     glEnd();
388     glBegin(GL_POLYGON);
389     glNormal3fv(N014);
390     glVertex3fv(P014);
391     glNormal3fv(N013);
392     glVertex3fv(P013);
393     glNormal3fv(N003);
394     glVertex3fv(P003);
395     glEnd();
396     glBegin(GL_POLYGON);
397     glNormal3fv(N003);
398     glVertex3fv(P003);
399     glNormal3fv(N012);
400     glVertex3fv(P012);
401     glNormal3fv(N059);
402     glVertex3fv(P059);
403     glEnd();
404     glBegin(GL_POLYGON);
405     glNormal3fv(N013);
406     glVertex3fv(P013);
407     glNormal3fv(N012);
408     glVertex3fv(P012);
409     glNormal3fv(N003);
410     glVertex3fv(P003);
411     glEnd();
412     glBegin(GL_POLYGON);
413     glNormal3fv(N013);
414     glVertex3fv(P013);
415     glNormal3fv(N022);
416     glVertex3fv(P022);
417     glNormal3fv(N012);
418     glVertex3fv(P012);
419     glEnd();
420     glBegin(GL_POLYGON);
421     glVertex3fv(P071);
422     glVertex3fv(P072);
423     glVertex3fv(P073);
424     glVertex3fv(P074);
425     glVertex3fv(P075);
426     glVertex3fv(P076);
427     glEnd();
428     glBegin(GL_POLYGON);
429     glVertex3fv(P077);
430     glVertex3fv(P078);
431     glVertex3fv(P079);
432     glVertex3fv(P080);
433     glVertex3fv(P081);
434     glVertex3fv(P082);
435     glEnd();
436 }
437 
438 void
Fish002(void)439 Fish002(void)
440 {
441     glBegin(GL_POLYGON);
442     glNormal3fv(N013);
443     glVertex3fv(P013);
444     glNormal3fv(N014);
445     glVertex3fv(P014);
446     glNormal3fv(N024);
447     glVertex3fv(P024);
448     glNormal3fv(N023);
449     glVertex3fv(P023);
450     glEnd();
451     glBegin(GL_POLYGON);
452     glNormal3fv(N014);
453     glVertex3fv(P014);
454     glNormal3fv(N015);
455     glVertex3fv(P015);
456     glNormal3fv(N025);
457     glVertex3fv(P025);
458     glNormal3fv(N024);
459     glVertex3fv(P024);
460     glEnd();
461     glBegin(GL_POLYGON);
462     glNormal3fv(N016);
463     glVertex3fv(P016);
464     glNormal3fv(N017);
465     glVertex3fv(P017);
466     glNormal3fv(N027);
467     glVertex3fv(P027);
468     glNormal3fv(N026);
469     glVertex3fv(P026);
470     glEnd();
471     glBegin(GL_POLYGON);
472     glNormal3fv(N017);
473     glVertex3fv(P017);
474     glNormal3fv(N018);
475     glVertex3fv(P018);
476     glNormal3fv(N028);
477     glVertex3fv(P028);
478     glNormal3fv(N027);
479     glVertex3fv(P027);
480     glEnd();
481     glBegin(GL_POLYGON);
482     glNormal3fv(N020);
483     glVertex3fv(P020);
484     glNormal3fv(N021);
485     glVertex3fv(P021);
486     glNormal3fv(N031);
487     glVertex3fv(P031);
488     glNormal3fv(N030);
489     glVertex3fv(P030);
490     glEnd();
491     glBegin(GL_POLYGON);
492     glNormal3fv(N013);
493     glVertex3fv(P013);
494     glNormal3fv(N023);
495     glVertex3fv(P023);
496     glNormal3fv(N022);
497     glVertex3fv(P022);
498     glEnd();
499     glBegin(GL_POLYGON);
500     glNormal3fv(N022);
501     glVertex3fv(P022);
502     glNormal3fv(N023);
503     glVertex3fv(P023);
504     glNormal3fv(N032);
505     glVertex3fv(P032);
506     glEnd();
507     glBegin(GL_POLYGON);
508     glNormal3fv(N022);
509     glVertex3fv(P022);
510     glNormal3fv(N032);
511     glVertex3fv(P032);
512     glNormal3fv(N031);
513     glVertex3fv(P031);
514     glEnd();
515     glBegin(GL_POLYGON);
516     glNormal3fv(N022);
517     glVertex3fv(P022);
518     glNormal3fv(N031);
519     glVertex3fv(P031);
520     glNormal3fv(N021);
521     glVertex3fv(P021);
522     glEnd();
523     glBegin(GL_POLYGON);
524     glNormal3fv(N018);
525     glVertex3fv(P018);
526     glNormal3fv(N019);
527     glVertex3fv(P019);
528     glNormal3fv(N029);
529     glVertex3fv(P029);
530     glEnd();
531     glBegin(GL_POLYGON);
532     glNormal3fv(N018);
533     glVertex3fv(P018);
534     glNormal3fv(N029);
535     glVertex3fv(P029);
536     glNormal3fv(N028);
537     glVertex3fv(P028);
538     glEnd();
539     glBegin(GL_POLYGON);
540     glNormal3fv(N019);
541     glVertex3fv(P019);
542     glNormal3fv(N020);
543     glVertex3fv(P020);
544     glNormal3fv(N030);
545     glVertex3fv(P030);
546     glEnd();
547     glBegin(GL_POLYGON);
548     glNormal3fv(N019);
549     glVertex3fv(P019);
550     glNormal3fv(N030);
551     glVertex3fv(P030);
552     glNormal3fv(N029);
553     glVertex3fv(P029);
554     glEnd();
555 }
556 
557 void
Fish003(void)558 Fish003(void)
559 {
560     glBegin(GL_POLYGON);
561     glNormal3fv(N032);
562     glVertex3fv(P032);
563     glNormal3fv(N023);
564     glVertex3fv(P023);
565     glNormal3fv(N033);
566     glVertex3fv(P033);
567     glNormal3fv(N042);
568     glVertex3fv(P042);
569     glEnd();
570     glBegin(GL_POLYGON);
571     glNormal3fv(N031);
572     glVertex3fv(P031);
573     glNormal3fv(N032);
574     glVertex3fv(P032);
575     glNormal3fv(N042);
576     glVertex3fv(P042);
577     glNormal3fv(N041);
578     glVertex3fv(P041);
579     glEnd();
580     glBegin(GL_POLYGON);
581     glNormal3fv(N023);
582     glVertex3fv(P023);
583     glNormal3fv(N024);
584     glVertex3fv(P024);
585     glNormal3fv(N034);
586     glVertex3fv(P034);
587     glNormal3fv(N033);
588     glVertex3fv(P033);
589     glEnd();
590     glBegin(GL_POLYGON);
591     glNormal3fv(N024);
592     glVertex3fv(P024);
593     glNormal3fv(N025);
594     glVertex3fv(P025);
595     glNormal3fv(N035);
596     glVertex3fv(P035);
597     glNormal3fv(N034);
598     glVertex3fv(P034);
599     glEnd();
600     glBegin(GL_POLYGON);
601     glNormal3fv(N030);
602     glVertex3fv(P030);
603     glNormal3fv(N031);
604     glVertex3fv(P031);
605     glNormal3fv(N041);
606     glVertex3fv(P041);
607     glNormal3fv(N040);
608     glVertex3fv(P040);
609     glEnd();
610     glBegin(GL_POLYGON);
611     glNormal3fv(N025);
612     glVertex3fv(P025);
613     glNormal3fv(N026);
614     glVertex3fv(P026);
615     glNormal3fv(N036);
616     glVertex3fv(P036);
617     glNormal3fv(N035);
618     glVertex3fv(P035);
619     glEnd();
620     glBegin(GL_POLYGON);
621     glNormal3fv(N026);
622     glVertex3fv(P026);
623     glNormal3fv(N027);
624     glVertex3fv(P027);
625     glNormal3fv(N037);
626     glVertex3fv(P037);
627     glNormal3fv(N036);
628     glVertex3fv(P036);
629     glEnd();
630     glBegin(GL_POLYGON);
631     glNormal3fv(N027);
632     glVertex3fv(P027);
633     glNormal3fv(N028);
634     glVertex3fv(P028);
635     glNormal3fv(N038);
636     glVertex3fv(P038);
637     glNormal3fv(N037);
638     glVertex3fv(P037);
639     glEnd();
640     glBegin(GL_POLYGON);
641     glNormal3fv(N028);
642     glVertex3fv(P028);
643     glNormal3fv(N029);
644     glVertex3fv(P029);
645     glNormal3fv(N039);
646     glVertex3fv(P039);
647     glNormal3fv(N038);
648     glVertex3fv(P038);
649     glEnd();
650     glBegin(GL_POLYGON);
651     glNormal3fv(N029);
652     glVertex3fv(P029);
653     glNormal3fv(N030);
654     glVertex3fv(P030);
655     glNormal3fv(N040);
656     glVertex3fv(P040);
657     glNormal3fv(N039);
658     glVertex3fv(P039);
659     glEnd();
660 }
661 
662 void
Fish004(void)663 Fish004(void)
664 {
665     glBegin(GL_POLYGON);
666     glNormal3fv(N040);
667     glVertex3fv(P040);
668     glNormal3fv(N041);
669     glVertex3fv(P041);
670     glNormal3fv(N051);
671     glVertex3fv(P051);
672     glNormal3fv(N050);
673     glVertex3fv(P050);
674     glEnd();
675     glBegin(GL_POLYGON);
676     glNormal3fv(N041);
677     glVertex3fv(P041);
678     glNormal3fv(N042);
679     glVertex3fv(P042);
680     glNormal3fv(N052);
681     glVertex3fv(P052);
682     glNormal3fv(N051);
683     glVertex3fv(P051);
684     glEnd();
685     glBegin(GL_POLYGON);
686     glNormal3fv(N042);
687     glVertex3fv(P042);
688     glNormal3fv(N033);
689     glVertex3fv(P033);
690     glNormal3fv(N043);
691     glVertex3fv(P043);
692     glNormal3fv(N052);
693     glVertex3fv(P052);
694     glEnd();
695     glBegin(GL_POLYGON);
696     glNormal3fv(N033);
697     glVertex3fv(P033);
698     glNormal3fv(N034);
699     glVertex3fv(P034);
700     glNormal3fv(N044);
701     glVertex3fv(P044);
702     glNormal3fv(N043);
703     glVertex3fv(P043);
704     glEnd();
705     glBegin(GL_POLYGON);
706     glNormal3fv(N034);
707     glVertex3fv(P034);
708     glNormal3fv(N035);
709     glVertex3fv(P035);
710     glNormal3fv(N045);
711     glVertex3fv(P045);
712     glNormal3fv(N044);
713     glVertex3fv(P044);
714     glEnd();
715     glBegin(GL_POLYGON);
716     glNormal3fv(N035);
717     glVertex3fv(P035);
718     glNormal3fv(N036);
719     glVertex3fv(P036);
720     glNormal3fv(N046);
721     glVertex3fv(P046);
722     glNormal3fv(N045);
723     glVertex3fv(P045);
724     glEnd();
725     glBegin(GL_POLYGON);
726     glNormal3fv(N036);
727     glVertex3fv(P036);
728     glNormal3fv(N037);
729     glVertex3fv(P037);
730     glNormal3fv(N047);
731     glVertex3fv(P047);
732     glNormal3fv(N046);
733     glVertex3fv(P046);
734     glEnd();
735     glBegin(GL_POLYGON);
736     glNormal3fv(N037);
737     glVertex3fv(P037);
738     glNormal3fv(N038);
739     glVertex3fv(P038);
740     glNormal3fv(N048);
741     glVertex3fv(P048);
742     glNormal3fv(N047);
743     glVertex3fv(P047);
744     glEnd();
745     glBegin(GL_POLYGON);
746     glNormal3fv(N038);
747     glVertex3fv(P038);
748     glNormal3fv(N039);
749     glVertex3fv(P039);
750     glNormal3fv(N049);
751     glVertex3fv(P049);
752     glNormal3fv(N048);
753     glVertex3fv(P048);
754     glEnd();
755     glBegin(GL_POLYGON);
756     glNormal3fv(N039);
757     glVertex3fv(P039);
758     glNormal3fv(N040);
759     glVertex3fv(P040);
760     glNormal3fv(N050);
761     glVertex3fv(P050);
762     glNormal3fv(N049);
763     glVertex3fv(P049);
764     glEnd();
765     glBegin(GL_POLYGON);
766     glNormal3fv(N070);
767     glVertex3fv(P070);
768     glNormal3fv(N061);
769     glVertex3fv(P061);
770     glNormal3fv(N002);
771     glVertex3fv(P002);
772     glEnd();
773     glBegin(GL_POLYGON);
774     glNormal3fv(N061);
775     glVertex3fv(P061);
776     glNormal3fv(N046);
777     glVertex3fv(P046);
778     glNormal3fv(N002);
779     glVertex3fv(P002);
780     glEnd();
781     glBegin(GL_POLYGON);
782     glNormal3fv(N045);
783     glVertex3fv(P045);
784     glNormal3fv(N046);
785     glVertex3fv(P046);
786     glNormal3fv(N061);
787     glVertex3fv(P061);
788     glEnd();
789     glBegin(GL_POLYGON);
790     glNormal3fv(N002);
791     glVertex3fv(P002);
792     glNormal3fv(N061);
793     glVertex3fv(P061);
794     glNormal3fv(N070);
795     glVertex3fv(P070);
796     glEnd();
797     glBegin(GL_POLYGON);
798     glNormal3fv(N002);
799     glVertex3fv(P002);
800     glNormal3fv(N045);
801     glVertex3fv(P045);
802     glNormal3fv(N061);
803     glVertex3fv(P061);
804     glEnd();
805 }
806 
807 void
Fish005(void)808 Fish005(void)
809 {
810     glBegin(GL_POLYGON);
811     glNormal3fv(N002);
812     glVertex3fv(P002);
813     glNormal3fv(N044);
814     glVertex3fv(P044);
815     glNormal3fv(N045);
816     glVertex3fv(P045);
817     glEnd();
818     glBegin(GL_POLYGON);
819     glNormal3fv(N002);
820     glVertex3fv(P002);
821     glNormal3fv(N043);
822     glVertex3fv(P043);
823     glNormal3fv(N044);
824     glVertex3fv(P044);
825     glEnd();
826     glBegin(GL_POLYGON);
827     glNormal3fv(N002);
828     glVertex3fv(P002);
829     glNormal3fv(N052);
830     glVertex3fv(P052);
831     glNormal3fv(N043);
832     glVertex3fv(P043);
833     glEnd();
834     glBegin(GL_POLYGON);
835     glNormal3fv(N002);
836     glVertex3fv(P002);
837     glNormal3fv(N051);
838     glVertex3fv(P051);
839     glNormal3fv(N052);
840     glVertex3fv(P052);
841     glEnd();
842     glBegin(GL_POLYGON);
843     glNormal3fv(N002);
844     glVertex3fv(P002);
845     glNormal3fv(N046);
846     glVertex3fv(P046);
847     glNormal3fv(N047);
848     glVertex3fv(P047);
849     glEnd();
850     glBegin(GL_POLYGON);
851     glNormal3fv(N002);
852     glVertex3fv(P002);
853     glNormal3fv(N047);
854     glVertex3fv(P047);
855     glNormal3fv(N048);
856     glVertex3fv(P048);
857     glEnd();
858     glBegin(GL_POLYGON);
859     glNormal3fv(N002);
860     glVertex3fv(P002);
861     glNormal3fv(N048);
862     glVertex3fv(P048);
863     glNormal3fv(N049);
864     glVertex3fv(P049);
865     glEnd();
866     glBegin(GL_POLYGON);
867     glNormal3fv(N002);
868     glVertex3fv(P002);
869     glNormal3fv(N049);
870     glVertex3fv(P049);
871     glNormal3fv(N050);
872     glVertex3fv(P050);
873     glEnd();
874     glBegin(GL_POLYGON);
875     glNormal3fv(N050);
876     glVertex3fv(P050);
877     glNormal3fv(N051);
878     glVertex3fv(P051);
879     glNormal3fv(N069);
880     glVertex3fv(P069);
881     glEnd();
882     glBegin(GL_POLYGON);
883     glNormal3fv(N051);
884     glVertex3fv(P051);
885     glNormal3fv(N002);
886     glVertex3fv(P002);
887     glNormal3fv(N069);
888     glVertex3fv(P069);
889     glEnd();
890     glBegin(GL_POLYGON);
891     glNormal3fv(N050);
892     glVertex3fv(P050);
893     glNormal3fv(N069);
894     glVertex3fv(P069);
895     glNormal3fv(N002);
896     glVertex3fv(P002);
897     glEnd();
898 }
899 
900 void
Fish006(void)901 Fish006(void)
902 {
903     glBegin(GL_POLYGON);
904     glNormal3fv(N066);
905     glVertex3fv(P066);
906     glNormal3fv(N016);
907     glVertex3fv(P016);
908     glNormal3fv(N026);
909     glVertex3fv(P026);
910     glEnd();
911     glBegin(GL_POLYGON);
912     glNormal3fv(N015);
913     glVertex3fv(P015);
914     glNormal3fv(N066);
915     glVertex3fv(P066);
916     glNormal3fv(N025);
917     glVertex3fv(P025);
918     glEnd();
919     glBegin(GL_POLYGON);
920     glNormal3fv(N025);
921     glVertex3fv(P025);
922     glNormal3fv(N066);
923     glVertex3fv(P066);
924     glNormal3fv(N026);
925     glVertex3fv(P026);
926     glEnd();
927     glBegin(GL_POLYGON);
928     glNormal3fv(N066);
929     glVertex3fv(P066);
930     glNormal3fv(N058);
931     glVertex3fv(P058);
932     glNormal3fv(N016);
933     glVertex3fv(P016);
934     glEnd();
935     glBegin(GL_POLYGON);
936     glNormal3fv(N015);
937     glVertex3fv(P015);
938     glNormal3fv(N058);
939     glVertex3fv(P058);
940     glNormal3fv(N066);
941     glVertex3fv(P066);
942     glEnd();
943     glBegin(GL_POLYGON);
944     glNormal3fv(N058);
945     glVertex3fv(P058);
946     glNormal3fv(N015);
947     glVertex3fv(P015);
948     glNormal3fv(N016);
949     glVertex3fv(P016);
950     glEnd();
951 }
952 
953 void
Fish007(void)954 Fish007(void)
955 {
956     glBegin(GL_POLYGON);
957     glNormal3fv(N062);
958     glVertex3fv(P062);
959     glNormal3fv(N022);
960     glVertex3fv(P022);
961     glNormal3fv(N032);
962     glVertex3fv(P032);
963     glEnd();
964     glBegin(GL_POLYGON);
965     glNormal3fv(N062);
966     glVertex3fv(P062);
967     glNormal3fv(N032);
968     glVertex3fv(P032);
969     glNormal3fv(N064);
970     glVertex3fv(P064);
971     glEnd();
972     glBegin(GL_POLYGON);
973     glNormal3fv(N022);
974     glVertex3fv(P022);
975     glNormal3fv(N062);
976     glVertex3fv(P062);
977     glNormal3fv(N032);
978     glVertex3fv(P032);
979     glEnd();
980     glBegin(GL_POLYGON);
981     glNormal3fv(N062);
982     glVertex3fv(P062);
983     glNormal3fv(N064);
984     glVertex3fv(P064);
985     glNormal3fv(N032);
986     glVertex3fv(P032);
987     glEnd();
988 }
989 
990 void
Fish008(void)991 Fish008(void)
992 {
993     glBegin(GL_POLYGON);
994     glNormal3fv(N063);
995     glVertex3fv(P063);
996     glNormal3fv(N019);
997     glVertex3fv(P019);
998     glNormal3fv(N029);
999     glVertex3fv(P029);
1000     glEnd();
1001     glBegin(GL_POLYGON);
1002     glNormal3fv(N019);
1003     glVertex3fv(P019);
1004     glNormal3fv(N063);
1005     glVertex3fv(P063);
1006     glNormal3fv(N029);
1007     glVertex3fv(P029);
1008     glEnd();
1009     glBegin(GL_POLYGON);
1010     glNormal3fv(N063);
1011     glVertex3fv(P063);
1012     glNormal3fv(N029);
1013     glVertex3fv(P029);
1014     glNormal3fv(N065);
1015     glVertex3fv(P065);
1016     glEnd();
1017     glBegin(GL_POLYGON);
1018     glNormal3fv(N063);
1019     glVertex3fv(P063);
1020     glNormal3fv(N065);
1021     glVertex3fv(P065);
1022     glNormal3fv(N029);
1023     glVertex3fv(P029);
1024     glEnd();
1025 }
1026 
1027 void
Fish009(void)1028 Fish009(void)
1029 {
1030     glBegin(GL_POLYGON);
1031     glVertex3fv(P059);
1032     glVertex3fv(P012);
1033     glVertex3fv(P009);
1034     glVertex3fv(P060);
1035     glEnd();
1036     glBegin(GL_POLYGON);
1037     glVertex3fv(P012);
1038     glVertex3fv(P004);
1039     glVertex3fv(P007);
1040     glVertex3fv(P009);
1041     glEnd();
1042 }
1043 
1044 void
Fish_1(void)1045 Fish_1(void)
1046 {
1047     Fish004();
1048     Fish005();
1049     Fish003();
1050     Fish007();
1051     Fish006();
1052     Fish002();
1053     Fish008();
1054     Fish009();
1055     Fish001();
1056 }
1057 
1058 void
Fish_2(void)1059 Fish_2(void)
1060 {
1061     Fish005();
1062     Fish004();
1063     Fish003();
1064     Fish008();
1065     Fish006();
1066     Fish002();
1067     Fish007();
1068     Fish009();
1069     Fish001();
1070 }
1071 
1072 void
Fish_3(void)1073 Fish_3(void)
1074 {
1075     Fish005();
1076     Fish004();
1077     Fish007();
1078     Fish003();
1079     Fish002();
1080     Fish008();
1081     Fish009();
1082     Fish001();
1083     Fish006();
1084 }
1085 
1086 void
Fish_4(void)1087 Fish_4(void)
1088 {
1089     Fish005();
1090     Fish004();
1091     Fish008();
1092     Fish003();
1093     Fish002();
1094     Fish007();
1095     Fish009();
1096     Fish001();
1097     Fish006();
1098 }
1099 
1100 void
Fish_5(void)1101 Fish_5(void)
1102 {
1103     Fish009();
1104     Fish006();
1105     Fish007();
1106     Fish001();
1107     Fish002();
1108     Fish003();
1109     Fish008();
1110     Fish004();
1111     Fish005();
1112 }
1113 
1114 void
Fish_6(void)1115 Fish_6(void)
1116 {
1117     Fish009();
1118     Fish006();
1119     Fish008();
1120     Fish001();
1121     Fish002();
1122     Fish007();
1123     Fish003();
1124     Fish004();
1125     Fish005();
1126 }
1127 
1128 void
Fish_7(void)1129 Fish_7(void)
1130 {
1131     Fish009();
1132     Fish001();
1133     Fish007();
1134     Fish005();
1135     Fish002();
1136     Fish008();
1137     Fish003();
1138     Fish004();
1139     Fish006();
1140 }
1141 
1142 void
Fish_8(void)1143 Fish_8(void)
1144 {
1145     Fish009();
1146     Fish008();
1147     Fish001();
1148     Fish002();
1149     Fish007();
1150     Fish003();
1151     Fish005();
1152     Fish004();
1153     Fish006();
1154 }
1155 
1156 void
DrawShark(fishRec * fish)1157 DrawShark(fishRec * fish)
1158 {
1159     float mat[4][4];
1160     int n;
1161     float seg1, seg2, seg3, seg4, segup;
1162     float thrash, chomp;
1163 
1164     fish->htail = (int) (fish->htail - (int) (5.0 * fish->v)) % 360;
1165 
1166     thrash = 50.0 * fish->v;
1167 
1168     seg1 = 0.6 * thrash * sin(fish->htail * RRAD);
1169     seg2 = 1.8 * thrash * sin((fish->htail + 45.0) * RRAD);
1170     seg3 = 3.0 * thrash * sin((fish->htail + 90.0) * RRAD);
1171     seg4 = 4.0 * thrash * sin((fish->htail + 110.0) * RRAD);
1172 
1173     chomp = 0.0;
1174     if (fish->v > 2.0) {
1175         chomp = -(fish->v - 2.0) * 200.0;
1176     }
1177     P004[1] = iP004[1] + chomp;
1178     P007[1] = iP007[1] + chomp;
1179     P010[1] = iP010[1] + chomp;
1180     P011[1] = iP011[1] + chomp;
1181 
1182     P023[0] = iP023[0] + seg1;
1183     P024[0] = iP024[0] + seg1;
1184     P025[0] = iP025[0] + seg1;
1185     P026[0] = iP026[0] + seg1;
1186     P027[0] = iP027[0] + seg1;
1187     P028[0] = iP028[0] + seg1;
1188     P029[0] = iP029[0] + seg1;
1189     P030[0] = iP030[0] + seg1;
1190     P031[0] = iP031[0] + seg1;
1191     P032[0] = iP032[0] + seg1;
1192     P033[0] = iP033[0] + seg2;
1193     P034[0] = iP034[0] + seg2;
1194     P035[0] = iP035[0] + seg2;
1195     P036[0] = iP036[0] + seg2;
1196     P037[0] = iP037[0] + seg2;
1197     P038[0] = iP038[0] + seg2;
1198     P039[0] = iP039[0] + seg2;
1199     P040[0] = iP040[0] + seg2;
1200     P041[0] = iP041[0] + seg2;
1201     P042[0] = iP042[0] + seg2;
1202     P043[0] = iP043[0] + seg3;
1203     P044[0] = iP044[0] + seg3;
1204     P045[0] = iP045[0] + seg3;
1205     P046[0] = iP046[0] + seg3;
1206     P047[0] = iP047[0] + seg3;
1207     P048[0] = iP048[0] + seg3;
1208     P049[0] = iP049[0] + seg3;
1209     P050[0] = iP050[0] + seg3;
1210     P051[0] = iP051[0] + seg3;
1211     P052[0] = iP052[0] + seg3;
1212     P002[0] = iP002[0] + seg4;
1213     P061[0] = iP061[0] + seg4;
1214     P069[0] = iP069[0] + seg4;
1215     P070[0] = iP070[0] + seg4;
1216 
1217     fish->vtail += ((fish->dtheta - fish->vtail) * 0.1);
1218 
1219     if (fish->vtail > 0.5) {
1220         fish->vtail = 0.5;
1221     } else if (fish->vtail < -0.5) {
1222         fish->vtail = -0.5;
1223     }
1224     segup = thrash * fish->vtail;
1225 
1226     P023[1] = iP023[1] + segup;
1227     P024[1] = iP024[1] + segup;
1228     P025[1] = iP025[1] + segup;
1229     P026[1] = iP026[1] + segup;
1230     P027[1] = iP027[1] + segup;
1231     P028[1] = iP028[1] + segup;
1232     P029[1] = iP029[1] + segup;
1233     P030[1] = iP030[1] + segup;
1234     P031[1] = iP031[1] + segup;
1235     P032[1] = iP032[1] + segup;
1236     P033[1] = iP033[1] + segup * 5.0;
1237     P034[1] = iP034[1] + segup * 5.0;
1238     P035[1] = iP035[1] + segup * 5.0;
1239     P036[1] = iP036[1] + segup * 5.0;
1240     P037[1] = iP037[1] + segup * 5.0;
1241     P038[1] = iP038[1] + segup * 5.0;
1242     P039[1] = iP039[1] + segup * 5.0;
1243     P040[1] = iP040[1] + segup * 5.0;
1244     P041[1] = iP041[1] + segup * 5.0;
1245     P042[1] = iP042[1] + segup * 5.0;
1246     P043[1] = iP043[1] + segup * 12.0;
1247     P044[1] = iP044[1] + segup * 12.0;
1248     P045[1] = iP045[1] + segup * 12.0;
1249     P046[1] = iP046[1] + segup * 12.0;
1250     P047[1] = iP047[1] + segup * 12.0;
1251     P048[1] = iP048[1] + segup * 12.0;
1252     P049[1] = iP049[1] + segup * 12.0;
1253     P050[1] = iP050[1] + segup * 12.0;
1254     P051[1] = iP051[1] + segup * 12.0;
1255     P052[1] = iP052[1] + segup * 12.0;
1256     P002[1] = iP002[1] + segup * 17.0;
1257     P061[1] = iP061[1] + segup * 17.0;
1258     P069[1] = iP069[1] + segup * 17.0;
1259     P070[1] = iP070[1] + segup * 17.0;
1260 
1261     glPushMatrix();
1262 
1263     glTranslatef(0.0, 0.0, -3000.0);
1264 
1265     glGetFloatv(GL_MODELVIEW_MATRIX, &mat[0][0]);
1266     n = 0;
1267     if (mat[0][2] >= 0.0) {
1268         n += 1;
1269     }
1270     if (mat[1][2] >= 0.0) {
1271         n += 2;
1272     }
1273     if (mat[2][2] >= 0.0) {
1274         n += 4;
1275     }
1276     glScalef(2.0, 1.0, 1.0);
1277 
1278     glEnable(GL_CULL_FACE);
1279     switch (n) {
1280     case 0:
1281         Fish_1();
1282         break;
1283     case 1:
1284         Fish_2();
1285         break;
1286     case 2:
1287         Fish_3();
1288         break;
1289     case 3:
1290         Fish_4();
1291         break;
1292     case 4:
1293         Fish_5();
1294         break;
1295     case 5:
1296         Fish_6();
1297         break;
1298     case 6:
1299         Fish_7();
1300         break;
1301     case 7:
1302         Fish_8();
1303         break;
1304     }
1305     glDisable(GL_CULL_FACE);
1306 
1307     glPopMatrix();
1308 }
1309