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