3329
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 }
|