home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / samples / opengl / glutdemo / shark.c < prev    next >
C/C++ Source or Header  |  1999-05-11  |  37KB  |  1,338 lines

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