home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / OpenGL 1.0 SDK / Source / Examples / aux / atlantis / shark.c < prev    next >
Encoding:
C/C++ Source or Header  |  1999-05-18  |  31.9 KB  |  1,282 lines  |  [TEXT/CWIE]

  1. /**
  2.  * (c) Copyright 1993, 1994, 1995, 1996 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 Fish001(void)
  247. {
  248.     glBegin(GL_QUADS);
  249.     
  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.  
  259.     glNormal3fv(N015);
  260.     glVertex3fv(P015);
  261.     glNormal3fv(N005);
  262.     glVertex3fv(P005);
  263.     glNormal3fv(N006);
  264.     glVertex3fv(P006);
  265.     glNormal3fv(N016);
  266.     glVertex3fv(P016);
  267.     
  268.     glNormal3fv(N010);
  269.     glVertex3fv(P010);
  270.     glNormal3fv(N011);
  271.     glVertex3fv(P011);
  272.     glNormal3fv(N021);
  273.     glVertex3fv(P021);
  274.     glNormal3fv(N020);
  275.     glVertex3fv(P020);
  276.  
  277.     glNormal3fv(N004);
  278.     glVertex3fv(P004);
  279.     glNormal3fv(N011);
  280.     glVertex3fv(P011);
  281.     glNormal3fv(N010);
  282.     glVertex3fv(P010);
  283.     glNormal3fv(N007);
  284.     glVertex3fv(P007);
  285.     
  286.     glEnd();
  287.     glBegin(GL_TRIANGLES);
  288.     
  289.     glNormal3fv(N006);
  290.     glVertex3fv(P006);
  291.     glNormal3fv(N060);
  292.     glVertex3fv(P060);
  293.     glNormal3fv(N008);
  294.     glVertex3fv(P008);
  295.  
  296.     glNormal3fv(N016);
  297.     glVertex3fv(P016);
  298.     glNormal3fv(N006);
  299.     glVertex3fv(P006);
  300.     glNormal3fv(N008);
  301.     glVertex3fv(P008);
  302.  
  303.     glNormal3fv(N016);
  304.     glVertex3fv(P016);
  305.     glNormal3fv(N008);
  306.     glVertex3fv(P008);
  307.     glNormal3fv(N017);
  308.     glVertex3fv(P017);
  309.  
  310.     glNormal3fv(N017);
  311.     glVertex3fv(P017);
  312.     glNormal3fv(N008);
  313.     glVertex3fv(P008);
  314.     glNormal3fv(N018);
  315.     glVertex3fv(P018);
  316.  
  317.     glNormal3fv(N008);
  318.     glVertex3fv(P008);
  319.     glNormal3fv(N009);
  320.     glVertex3fv(P009);
  321.     glNormal3fv(N018);
  322.     glVertex3fv(P018);
  323.  
  324.     glNormal3fv(N008);
  325.     glVertex3fv(P008);
  326.     glNormal3fv(N060);
  327.     glVertex3fv(P060);
  328.     glNormal3fv(N009);
  329.     glVertex3fv(P009);
  330.  
  331.     glNormal3fv(N007);
  332.     glVertex3fv(P007);
  333.     glNormal3fv(N010);
  334.     glVertex3fv(P010);
  335.     glNormal3fv(N009);
  336.     glVertex3fv(P009);
  337.  
  338.     glNormal3fv(N009);
  339.     glVertex3fv(P009);
  340.     glNormal3fv(N019);
  341.     glVertex3fv(P019);
  342.     glNormal3fv(N018);
  343.     glVertex3fv(P018);
  344.  
  345.     glNormal3fv(N009);
  346.     glVertex3fv(P009);
  347.     glNormal3fv(N010);
  348.     glVertex3fv(P010);
  349.     glNormal3fv(N019);
  350.     glVertex3fv(P019);
  351.  
  352.     glNormal3fv(N010);
  353.     glVertex3fv(P010);
  354.     glNormal3fv(N020);
  355.     glVertex3fv(P020);
  356.     glNormal3fv(N019);
  357.     glVertex3fv(P019);
  358.  
  359.     glNormal3fv(N004);
  360.     glVertex3fv(P004);
  361.     glNormal3fv(N012);
  362.     glVertex3fv(P012);
  363.     glNormal3fv(N011);
  364.     glVertex3fv(P011);
  365.  
  366.     glNormal3fv(N012);
  367.     glVertex3fv(P012);
  368.     glNormal3fv(N022);
  369.     glVertex3fv(P022);
  370.     glNormal3fv(N011);
  371.     glVertex3fv(P011);
  372.  
  373.     glNormal3fv(N011);
  374.     glVertex3fv(P011);
  375.     glNormal3fv(N022);
  376.     glVertex3fv(P022);
  377.     glNormal3fv(N021);
  378.     glVertex3fv(P021);
  379.  
  380.     glNormal3fv(N059);
  381.     glVertex3fv(P059);
  382.     glNormal3fv(N005);
  383.     glVertex3fv(P005);
  384.     glNormal3fv(N015);
  385.     glVertex3fv(P015);
  386.  
  387.     glNormal3fv(N015);
  388.     glVertex3fv(P015);
  389.     glNormal3fv(N014);
  390.     glVertex3fv(P014);
  391.     glNormal3fv(N003);
  392.     glVertex3fv(P003);
  393.  
  394.     glNormal3fv(N015);
  395.     glVertex3fv(P015);
  396.     glNormal3fv(N003);
  397.     glVertex3fv(P003);
  398.     glNormal3fv(N059);
  399.     glVertex3fv(P059);
  400.  
  401.     glNormal3fv(N014);
  402.     glVertex3fv(P014);
  403.     glNormal3fv(N013);
  404.     glVertex3fv(P013);
  405.     glNormal3fv(N003);
  406.     glVertex3fv(P003);
  407.  
  408.     glNormal3fv(N003);
  409.     glVertex3fv(P003);
  410.     glNormal3fv(N012);
  411.     glVertex3fv(P012);
  412.     glNormal3fv(N059);
  413.     glVertex3fv(P059);
  414.  
  415.     glNormal3fv(N013);
  416.     glVertex3fv(P013);
  417.     glNormal3fv(N012);
  418.     glVertex3fv(P012);
  419.     glNormal3fv(N003);
  420.     glVertex3fv(P003);
  421.  
  422.     glNormal3fv(N013);
  423.     glVertex3fv(P013);
  424.     glNormal3fv(N022);
  425.     glVertex3fv(P022);
  426.     glNormal3fv(N012);
  427.     glVertex3fv(P012);
  428.  
  429.     glVertex3fv(P071);
  430.     glVertex3fv(P072);
  431.     glVertex3fv(P073);
  432.     glVertex3fv(P074);
  433.     glVertex3fv(P075);
  434.     glVertex3fv(P076);
  435.  
  436.     glVertex3fv(P077);
  437.     glVertex3fv(P078);
  438.     glVertex3fv(P079);
  439.     glVertex3fv(P080);
  440.     glVertex3fv(P081);
  441.     glVertex3fv(P082);
  442.     
  443.     glEnd();
  444. }
  445.  
  446. void Fish002(void)
  447. {
  448.     glBegin(GL_QUADS);
  449.     
  450.     glNormal3fv(N013);
  451.     glVertex3fv(P013);
  452.     glNormal3fv(N014);
  453.     glVertex3fv(P014);
  454.     glNormal3fv(N024);
  455.     glVertex3fv(P024);
  456.     glNormal3fv(N023);
  457.     glVertex3fv(P023);
  458.  
  459.     glNormal3fv(N014);
  460.     glVertex3fv(P014);
  461.     glNormal3fv(N015);
  462.     glVertex3fv(P015);
  463.     glNormal3fv(N025);
  464.     glVertex3fv(P025);
  465.     glNormal3fv(N024);
  466.     glVertex3fv(P024);
  467.  
  468.     glNormal3fv(N016);
  469.     glVertex3fv(P016);
  470.     glNormal3fv(N017);
  471.     glVertex3fv(P017);
  472.     glNormal3fv(N027);
  473.     glVertex3fv(P027);
  474.     glNormal3fv(N026);
  475.     glVertex3fv(P026);
  476.  
  477.     glNormal3fv(N017);
  478.     glVertex3fv(P017);
  479.     glNormal3fv(N018);
  480.     glVertex3fv(P018);
  481.     glNormal3fv(N028);
  482.     glVertex3fv(P028);
  483.     glNormal3fv(N027);
  484.     glVertex3fv(P027);
  485.  
  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.     
  495.     glEnd();
  496.     glBegin(GL_TRIANGLES);
  497.     
  498.     glNormal3fv(N013);
  499.     glVertex3fv(P013);
  500.     glNormal3fv(N023);
  501.     glVertex3fv(P023);
  502.     glNormal3fv(N022);
  503.     glVertex3fv(P022);
  504.  
  505.     glNormal3fv(N022);
  506.     glVertex3fv(P022);
  507.     glNormal3fv(N023);
  508.     glVertex3fv(P023);
  509.     glNormal3fv(N032);
  510.     glVertex3fv(P032);
  511.  
  512.     glNormal3fv(N022);
  513.     glVertex3fv(P022);
  514.     glNormal3fv(N032);
  515.     glVertex3fv(P032);
  516.     glNormal3fv(N031);
  517.     glVertex3fv(P031);
  518.  
  519.     glNormal3fv(N022);
  520.     glVertex3fv(P022);
  521.     glNormal3fv(N031);
  522.     glVertex3fv(P031);
  523.     glNormal3fv(N021);
  524.     glVertex3fv(P021);
  525.  
  526.     glNormal3fv(N018);
  527.     glVertex3fv(P018);
  528.     glNormal3fv(N019);
  529.     glVertex3fv(P019);
  530.     glNormal3fv(N029);
  531.     glVertex3fv(P029);
  532.  
  533.     glNormal3fv(N018);
  534.     glVertex3fv(P018);
  535.     glNormal3fv(N029);
  536.     glVertex3fv(P029);
  537.     glNormal3fv(N028);
  538.     glVertex3fv(P028);
  539.  
  540.     glNormal3fv(N019);
  541.     glVertex3fv(P019);
  542.     glNormal3fv(N020);
  543.     glVertex3fv(P020);
  544.     glNormal3fv(N030);
  545.     glVertex3fv(P030);
  546.  
  547.     glNormal3fv(N019);
  548.     glVertex3fv(P019);
  549.     glNormal3fv(N030);
  550.     glVertex3fv(P030);
  551.     glNormal3fv(N029);
  552.     glVertex3fv(P029);
  553.     
  554.     glEnd();
  555. }
  556.  
  557. void
  558. Fish003(void)
  559. {
  560.     glBegin(GL_QUADS);
  561.     
  562.     glNormal3fv(N032);
  563.     glVertex3fv(P032);
  564.     glNormal3fv(N023);
  565.     glVertex3fv(P023);
  566.     glNormal3fv(N033);
  567.     glVertex3fv(P033);
  568.     glNormal3fv(N042);
  569.     glVertex3fv(P042);
  570.  
  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.  
  580.     glNormal3fv(N023);
  581.     glVertex3fv(P023);
  582.     glNormal3fv(N024);
  583.     glVertex3fv(P024);
  584.     glNormal3fv(N034);
  585.     glVertex3fv(P034);
  586.     glNormal3fv(N033);
  587.     glVertex3fv(P033);
  588.  
  589.     glNormal3fv(N024);
  590.     glVertex3fv(P024);
  591.     glNormal3fv(N025);
  592.     glVertex3fv(P025);
  593.     glNormal3fv(N035);
  594.     glVertex3fv(P035);
  595.     glNormal3fv(N034);
  596.     glVertex3fv(P034);
  597.  
  598.     glNormal3fv(N030);
  599.     glVertex3fv(P030);
  600.     glNormal3fv(N031);
  601.     glVertex3fv(P031);
  602.     glNormal3fv(N041);
  603.     glVertex3fv(P041);
  604.     glNormal3fv(N040);
  605.     glVertex3fv(P040);
  606.  
  607.     glNormal3fv(N025);
  608.     glVertex3fv(P025);
  609.     glNormal3fv(N026);
  610.     glVertex3fv(P026);
  611.     glNormal3fv(N036);
  612.     glVertex3fv(P036);
  613.     glNormal3fv(N035);
  614.     glVertex3fv(P035);
  615.  
  616.     glNormal3fv(N026);
  617.     glVertex3fv(P026);
  618.     glNormal3fv(N027);
  619.     glVertex3fv(P027);
  620.     glNormal3fv(N037);
  621.     glVertex3fv(P037);
  622.     glNormal3fv(N036);
  623.     glVertex3fv(P036);
  624.  
  625.     glNormal3fv(N027);
  626.     glVertex3fv(P027);
  627.     glNormal3fv(N028);
  628.     glVertex3fv(P028);
  629.     glNormal3fv(N038);
  630.     glVertex3fv(P038);
  631.     glNormal3fv(N037);
  632.     glVertex3fv(P037);
  633.  
  634.     glNormal3fv(N028);
  635.     glVertex3fv(P028);
  636.     glNormal3fv(N029);
  637.     glVertex3fv(P029);
  638.     glNormal3fv(N039);
  639.     glVertex3fv(P039);
  640.     glNormal3fv(N038);
  641.     glVertex3fv(P038);
  642.  
  643.     glNormal3fv(N029);
  644.     glVertex3fv(P029);
  645.     glNormal3fv(N030);
  646.     glVertex3fv(P030);
  647.     glNormal3fv(N040);
  648.     glVertex3fv(P040);
  649.     glNormal3fv(N039);
  650.     glVertex3fv(P039);
  651.     
  652.     glEnd();
  653. }
  654.  
  655. void Fish004(void)
  656. {
  657.     glBegin(GL_QUADS);
  658.     
  659.     glNormal3fv(N040);
  660.     glVertex3fv(P040);
  661.     glNormal3fv(N041);
  662.     glVertex3fv(P041);
  663.     glNormal3fv(N051);
  664.     glVertex3fv(P051);
  665.     glNormal3fv(N050);
  666.     glVertex3fv(P050);
  667.  
  668.     glNormal3fv(N041);
  669.     glVertex3fv(P041);
  670.     glNormal3fv(N042);
  671.     glVertex3fv(P042);
  672.     glNormal3fv(N052);
  673.     glVertex3fv(P052);
  674.     glNormal3fv(N051);
  675.     glVertex3fv(P051);
  676.  
  677.     glNormal3fv(N042);
  678.     glVertex3fv(P042);
  679.     glNormal3fv(N033);
  680.     glVertex3fv(P033);
  681.     glNormal3fv(N043);
  682.     glVertex3fv(P043);
  683.     glNormal3fv(N052);
  684.     glVertex3fv(P052);
  685.  
  686.     glNormal3fv(N033);
  687.     glVertex3fv(P033);
  688.     glNormal3fv(N034);
  689.     glVertex3fv(P034);
  690.     glNormal3fv(N044);
  691.     glVertex3fv(P044);
  692.     glNormal3fv(N043);
  693.     glVertex3fv(P043);
  694.  
  695.     glNormal3fv(N034);
  696.     glVertex3fv(P034);
  697.     glNormal3fv(N035);
  698.     glVertex3fv(P035);
  699.     glNormal3fv(N045);
  700.     glVertex3fv(P045);
  701.     glNormal3fv(N044);
  702.     glVertex3fv(P044);
  703.  
  704.     glNormal3fv(N035);
  705.     glVertex3fv(P035);
  706.     glNormal3fv(N036);
  707.     glVertex3fv(P036);
  708.     glNormal3fv(N046);
  709.     glVertex3fv(P046);
  710.     glNormal3fv(N045);
  711.     glVertex3fv(P045);
  712.  
  713.     glNormal3fv(N036);
  714.     glVertex3fv(P036);
  715.     glNormal3fv(N037);
  716.     glVertex3fv(P037);
  717.     glNormal3fv(N047);
  718.     glVertex3fv(P047);
  719.     glNormal3fv(N046);
  720.     glVertex3fv(P046);
  721.  
  722.     glNormal3fv(N037);
  723.     glVertex3fv(P037);
  724.     glNormal3fv(N038);
  725.     glVertex3fv(P038);
  726.     glNormal3fv(N048);
  727.     glVertex3fv(P048);
  728.     glNormal3fv(N047);
  729.     glVertex3fv(P047);
  730.  
  731.     glNormal3fv(N038);
  732.     glVertex3fv(P038);
  733.     glNormal3fv(N039);
  734.     glVertex3fv(P039);
  735.     glNormal3fv(N049);
  736.     glVertex3fv(P049);
  737.     glNormal3fv(N048);
  738.     glVertex3fv(P048);
  739.  
  740.     glNormal3fv(N039);
  741.     glVertex3fv(P039);
  742.     glNormal3fv(N040);
  743.     glVertex3fv(P040);
  744.     glNormal3fv(N050);
  745.     glVertex3fv(P050);
  746.     glNormal3fv(N049);
  747.     glVertex3fv(P049);
  748.     
  749.     glEnd();
  750.     glBegin(GL_TRIANGLES);
  751.     
  752.     glNormal3fv(N070);
  753.     glVertex3fv(P070);
  754.     glNormal3fv(N061);
  755.     glVertex3fv(P061);
  756.     glNormal3fv(N002);
  757.     glVertex3fv(P002);
  758.  
  759.     glNormal3fv(N061);
  760.     glVertex3fv(P061);
  761.     glNormal3fv(N046);
  762.     glVertex3fv(P046);
  763.     glNormal3fv(N002);
  764.     glVertex3fv(P002);
  765.  
  766.     glNormal3fv(N045);
  767.     glVertex3fv(P045);
  768.     glNormal3fv(N046);
  769.     glVertex3fv(P046);
  770.     glNormal3fv(N061);
  771.     glVertex3fv(P061);
  772.  
  773.     glNormal3fv(N002);
  774.     glVertex3fv(P002);
  775.     glNormal3fv(N061);
  776.     glVertex3fv(P061);
  777.     glNormal3fv(N070);
  778.     glVertex3fv(P070);
  779.  
  780.     glNormal3fv(N002);
  781.     glVertex3fv(P002);
  782.     glNormal3fv(N045);
  783.     glVertex3fv(P045);
  784.     glNormal3fv(N061);
  785.     glVertex3fv(P061);
  786.     
  787.     glEnd();
  788. }
  789.  
  790. void Fish005(void)
  791. {
  792.     glBegin(GL_TRIANGLES);
  793.     
  794.     glNormal3fv(N002);
  795.     glVertex3fv(P002);
  796.     glNormal3fv(N044);
  797.     glVertex3fv(P044);
  798.     glNormal3fv(N045);
  799.     glVertex3fv(P045);
  800.  
  801.     glNormal3fv(N002);
  802.     glVertex3fv(P002);
  803.     glNormal3fv(N043);
  804.     glVertex3fv(P043);
  805.     glNormal3fv(N044);
  806.     glVertex3fv(P044);
  807.  
  808.     glNormal3fv(N002);
  809.     glVertex3fv(P002);
  810.     glNormal3fv(N052);
  811.     glVertex3fv(P052);
  812.     glNormal3fv(N043);
  813.     glVertex3fv(P043);
  814.  
  815.     glNormal3fv(N002);
  816.     glVertex3fv(P002);
  817.     glNormal3fv(N051);
  818.     glVertex3fv(P051);
  819.     glNormal3fv(N052);
  820.     glVertex3fv(P052);
  821.  
  822.     glNormal3fv(N002);
  823.     glVertex3fv(P002);
  824.     glNormal3fv(N046);
  825.     glVertex3fv(P046);
  826.     glNormal3fv(N047);
  827.     glVertex3fv(P047);
  828.  
  829.     glNormal3fv(N002);
  830.     glVertex3fv(P002);
  831.     glNormal3fv(N047);
  832.     glVertex3fv(P047);
  833.     glNormal3fv(N048);
  834.     glVertex3fv(P048);
  835.  
  836.     glNormal3fv(N002);
  837.     glVertex3fv(P002);
  838.     glNormal3fv(N048);
  839.     glVertex3fv(P048);
  840.     glNormal3fv(N049);
  841.     glVertex3fv(P049);
  842.  
  843.     glNormal3fv(N002);
  844.     glVertex3fv(P002);
  845.     glNormal3fv(N049);
  846.     glVertex3fv(P049);
  847.     glNormal3fv(N050);
  848.     glVertex3fv(P050);
  849.  
  850.     glNormal3fv(N050);
  851.     glVertex3fv(P050);
  852.     glNormal3fv(N051);
  853.     glVertex3fv(P051);
  854.     glNormal3fv(N069);
  855.     glVertex3fv(P069);
  856.  
  857.     glNormal3fv(N051);
  858.     glVertex3fv(P051);
  859.     glNormal3fv(N002);
  860.     glVertex3fv(P002);
  861.     glNormal3fv(N069);
  862.     glVertex3fv(P069);
  863.  
  864.     glNormal3fv(N050);
  865.     glVertex3fv(P050);
  866.     glNormal3fv(N069);
  867.     glVertex3fv(P069);
  868.     glNormal3fv(N002);
  869.     glVertex3fv(P002);
  870.     
  871.     glEnd();
  872. }
  873.  
  874. void Fish006(void)
  875. {
  876.     glBegin(GL_TRIANGLES);
  877.     
  878.     glNormal3fv(N066);
  879.     glVertex3fv(P066);
  880.     glNormal3fv(N016);
  881.     glVertex3fv(P016);
  882.     glNormal3fv(N026);
  883.     glVertex3fv(P026);
  884.  
  885.     glNormal3fv(N015);
  886.     glVertex3fv(P015);
  887.     glNormal3fv(N066);
  888.     glVertex3fv(P066);
  889.     glNormal3fv(N025);
  890.     glVertex3fv(P025);
  891.  
  892.     glNormal3fv(N025);
  893.     glVertex3fv(P025);
  894.     glNormal3fv(N066);
  895.     glVertex3fv(P066);
  896.     glNormal3fv(N026);
  897.     glVertex3fv(P026);
  898.  
  899.     glNormal3fv(N066);
  900.     glVertex3fv(P066);
  901.     glNormal3fv(N058);
  902.     glVertex3fv(P058);
  903.     glNormal3fv(N016);
  904.     glVertex3fv(P016);
  905.  
  906.     glNormal3fv(N015);
  907.     glVertex3fv(P015);
  908.     glNormal3fv(N058);
  909.     glVertex3fv(P058);
  910.     glNormal3fv(N066);
  911.     glVertex3fv(P066);
  912.  
  913.     glNormal3fv(N058);
  914.     glVertex3fv(P058);
  915.     glNormal3fv(N015);
  916.     glVertex3fv(P015);
  917.     glNormal3fv(N016);
  918.     glVertex3fv(P016);
  919.     
  920.     glEnd();
  921. }
  922.  
  923. void Fish007(void)
  924. {
  925.     glBegin(GL_TRIANGLES);
  926.  
  927.     glNormal3fv(N062);
  928.     glVertex3fv(P062);
  929.     glNormal3fv(N022);
  930.     glVertex3fv(P022);
  931.     glNormal3fv(N032);
  932.     glVertex3fv(P032);
  933.  
  934.     glNormal3fv(N062);
  935.     glVertex3fv(P062);
  936.     glNormal3fv(N032);
  937.     glVertex3fv(P032);
  938.     glNormal3fv(N064);
  939.     glVertex3fv(P064);
  940.  
  941.     glNormal3fv(N022);
  942.     glVertex3fv(P022);
  943.     glNormal3fv(N062);
  944.     glVertex3fv(P062);
  945.     glNormal3fv(N032);
  946.     glVertex3fv(P032);
  947.  
  948.     glNormal3fv(N062);
  949.     glVertex3fv(P062);
  950.     glNormal3fv(N064);
  951.     glVertex3fv(P064);
  952.     glNormal3fv(N032);
  953.     glVertex3fv(P032);
  954.  
  955.     glEnd();
  956. }
  957.  
  958. void Fish008(void)
  959. {
  960.     glBegin(GL_TRIANGLES);
  961.     
  962.     glNormal3fv(N063);
  963.     glVertex3fv(P063);
  964.     glNormal3fv(N019);
  965.     glVertex3fv(P019);
  966.     glNormal3fv(N029);
  967.     glVertex3fv(P029);
  968.  
  969.     glNormal3fv(N019);
  970.     glVertex3fv(P019);
  971.     glNormal3fv(N063);
  972.     glVertex3fv(P063);
  973.     glNormal3fv(N029);
  974.     glVertex3fv(P029);
  975.  
  976.     glNormal3fv(N063);
  977.     glVertex3fv(P063);
  978.     glNormal3fv(N029);
  979.     glVertex3fv(P029);
  980.     glNormal3fv(N065);
  981.     glVertex3fv(P065);
  982.  
  983.     glNormal3fv(N063);
  984.     glVertex3fv(P063);
  985.     glNormal3fv(N065);
  986.     glVertex3fv(P065);
  987.     glNormal3fv(N029);
  988.     glVertex3fv(P029);
  989.     
  990.     glEnd();
  991. }
  992.  
  993. void Fish009(void)
  994. {
  995.     glBegin(GL_QUADS);
  996.     
  997.     glVertex3fv(P059);
  998.     glVertex3fv(P012);
  999.     glVertex3fv(P009);
  1000.     glVertex3fv(P060);
  1001.  
  1002.     glVertex3fv(P012);
  1003.     glVertex3fv(P004);
  1004.     glVertex3fv(P007);
  1005.     glVertex3fv(P009);
  1006.     
  1007.     glEnd();
  1008. }
  1009.  
  1010. void Fish_1(void)
  1011. {
  1012.     Fish004();
  1013.     Fish005();
  1014.     Fish003();
  1015.     Fish007();
  1016.     Fish006();
  1017.     Fish002();
  1018.     Fish008();
  1019.     Fish009();
  1020.     Fish001();
  1021. }
  1022.  
  1023. void Fish_2(void)
  1024. {
  1025.     Fish005();
  1026.     Fish004();
  1027.     Fish003();
  1028.     Fish008();
  1029.     Fish006();
  1030.     Fish002();
  1031.     Fish007();
  1032.     Fish009();
  1033.     Fish001();
  1034. }
  1035.  
  1036. void Fish_3(void)
  1037. {
  1038.     Fish005();
  1039.     Fish004();
  1040.     Fish007();
  1041.     Fish003();
  1042.     Fish002();
  1043.     Fish008();
  1044.     Fish009();
  1045.     Fish001();
  1046.     Fish006();
  1047. }
  1048.  
  1049. void Fish_4(void)
  1050. {
  1051.     Fish005();
  1052.     Fish004();
  1053.     Fish008();
  1054.     Fish003();
  1055.     Fish002();
  1056.     Fish007();
  1057.     Fish009();
  1058.     Fish001();
  1059.     Fish006();
  1060. }
  1061.  
  1062. void Fish_5(void)
  1063. {
  1064.     Fish009();
  1065.     Fish006();
  1066.     Fish007();
  1067.     Fish001();
  1068.     Fish002();
  1069.     Fish003();
  1070.     Fish008();
  1071.     Fish004();
  1072.     Fish005();
  1073. }
  1074.  
  1075. void Fish_6(void)
  1076. {
  1077.     Fish009();
  1078.     Fish006();
  1079.     Fish008();
  1080.     Fish001();
  1081.     Fish002();
  1082.     Fish007();
  1083.     Fish003();
  1084.     Fish004();
  1085.     Fish005();
  1086. }
  1087.  
  1088. void Fish_7(void)
  1089. {
  1090.     Fish009();
  1091.     Fish001();
  1092.     Fish007();
  1093.     Fish005();
  1094.     Fish002();
  1095.     Fish008();
  1096.     Fish003();
  1097.     Fish004();
  1098.     Fish006();
  1099. }
  1100.  
  1101. void Fish_8(void)
  1102. {
  1103.     Fish009();
  1104.     Fish008();
  1105.     Fish001();
  1106.     Fish002();
  1107.     Fish007();
  1108.     Fish003();
  1109.     Fish005();
  1110.     Fish004();
  1111.     Fish006();
  1112. }
  1113.  
  1114. void DrawShark(fishRec * fish)
  1115. {
  1116.     float mat[4][4];
  1117.     int n, htail;
  1118.     float seg1, seg2, seg3, seg4, segup;
  1119.     float thrash, chomp;
  1120.     
  1121.     fish->htail = (int) (fish->htail - (int) (5.0 * fish->v)) % 360;
  1122.  
  1123.     thrash = 50.0 * fish->v;
  1124.  
  1125.     htail = (int) fish->htail;
  1126.     seg1 = 0.6 * thrash * sin_func(htail);
  1127.     seg2 = 1.8 * thrash * sin_func(htail + 45);
  1128.     seg3 = 3.0 * thrash * sin_func(htail + 90);
  1129.     seg4 = 4.0 * thrash * sin_func(htail + 110);
  1130.  
  1131.     chomp = 0.0;
  1132.     if(fish->v > 2.0)
  1133.     {
  1134.         chomp = -(fish->v - 2.0) * 200.0;
  1135.     }
  1136.     
  1137.     P004[1] = iP004[1] + chomp;
  1138.     P007[1] = iP007[1] + chomp;
  1139.     P010[1] = iP010[1] + chomp;
  1140.     P011[1] = iP011[1] + chomp;
  1141.  
  1142.     P023[0] = iP023[0] + seg1;
  1143.     P024[0] = iP024[0] + seg1;
  1144.     P025[0] = iP025[0] + seg1;
  1145.     P026[0] = iP026[0] + seg1;
  1146.     P027[0] = iP027[0] + seg1;
  1147.     P028[0] = iP028[0] + seg1;
  1148.     P029[0] = iP029[0] + seg1;
  1149.     P030[0] = iP030[0] + seg1;
  1150.     P031[0] = iP031[0] + seg1;
  1151.     P032[0] = iP032[0] + seg1;
  1152.     P033[0] = iP033[0] + seg2;
  1153.     P034[0] = iP034[0] + seg2;
  1154.     P035[0] = iP035[0] + seg2;
  1155.     P036[0] = iP036[0] + seg2;
  1156.     P037[0] = iP037[0] + seg2;
  1157.     P038[0] = iP038[0] + seg2;
  1158.     P039[0] = iP039[0] + seg2;
  1159.     P040[0] = iP040[0] + seg2;
  1160.     P041[0] = iP041[0] + seg2;
  1161.     P042[0] = iP042[0] + seg2;
  1162.     P043[0] = iP043[0] + seg3;
  1163.     P044[0] = iP044[0] + seg3;
  1164.     P045[0] = iP045[0] + seg3;
  1165.     P046[0] = iP046[0] + seg3;
  1166.     P047[0] = iP047[0] + seg3;
  1167.     P048[0] = iP048[0] + seg3;
  1168.     P049[0] = iP049[0] + seg3;
  1169.     P050[0] = iP050[0] + seg3;
  1170.     P051[0] = iP051[0] + seg3;
  1171.     P052[0] = iP052[0] + seg3;
  1172.     P002[0] = iP002[0] + seg4;
  1173.     P061[0] = iP061[0] + seg4;
  1174.     P069[0] = iP069[0] + seg4;
  1175.     P070[0] = iP070[0] + seg4;
  1176.  
  1177.     fish->vtail += ((fish->dtheta - fish->vtail) * 0.1);
  1178.  
  1179.     if(fish->vtail > 0.5)
  1180.     {
  1181.         fish->vtail = 0.5;
  1182.     }
  1183.     else if(fish->vtail < -0.5)
  1184.     {
  1185.         fish->vtail = -0.5;
  1186.     }
  1187.     
  1188.     segup = thrash * fish->vtail;
  1189.  
  1190.     P023[1] = iP023[1] + segup;
  1191.     P024[1] = iP024[1] + segup;
  1192.     P025[1] = iP025[1] + segup;
  1193.     P026[1] = iP026[1] + segup;
  1194.     P027[1] = iP027[1] + segup;
  1195.     P028[1] = iP028[1] + segup;
  1196.     P029[1] = iP029[1] + segup;
  1197.     P030[1] = iP030[1] + segup;
  1198.     P031[1] = iP031[1] + segup;
  1199.     P032[1] = iP032[1] + segup;
  1200.     P033[1] = iP033[1] + segup * 5.0;
  1201.     P034[1] = iP034[1] + segup * 5.0;
  1202.     P035[1] = iP035[1] + segup * 5.0;
  1203.     P036[1] = iP036[1] + segup * 5.0;
  1204.     P037[1] = iP037[1] + segup * 5.0;
  1205.     P038[1] = iP038[1] + segup * 5.0;
  1206.     P039[1] = iP039[1] + segup * 5.0;
  1207.     P040[1] = iP040[1] + segup * 5.0;
  1208.     P041[1] = iP041[1] + segup * 5.0;
  1209.     P042[1] = iP042[1] + segup * 5.0;
  1210.     P043[1] = iP043[1] + segup * 12.0;
  1211.     P044[1] = iP044[1] + segup * 12.0;
  1212.     P045[1] = iP045[1] + segup * 12.0;
  1213.     P046[1] = iP046[1] + segup * 12.0;
  1214.     P047[1] = iP047[1] + segup * 12.0;
  1215.     P048[1] = iP048[1] + segup * 12.0;
  1216.     P049[1] = iP049[1] + segup * 12.0;
  1217.     P050[1] = iP050[1] + segup * 12.0;
  1218.     P051[1] = iP051[1] + segup * 12.0;
  1219.     P052[1] = iP052[1] + segup * 12.0;
  1220.     P002[1] = iP002[1] + segup * 17.0;
  1221.     P061[1] = iP061[1] + segup * 17.0;
  1222.     P069[1] = iP069[1] + segup * 17.0;
  1223.     P070[1] = iP070[1] + segup * 17.0;
  1224.  
  1225.     glPushMatrix();
  1226.  
  1227.     glTranslatef(0.0, 0.0, -3000.0);
  1228.  
  1229.     glGetFloatv(GL_MODELVIEW_MATRIX, &mat[0][0]);
  1230.     
  1231.     n = 0;
  1232.     if(mat[0][2] >= 0.0)
  1233.     {
  1234.         n += 1;
  1235.     }
  1236.     
  1237.     if(mat[1][2] >= 0.0)
  1238.     {
  1239.         n += 2;
  1240.     }
  1241.     
  1242.     if(mat[2][2] >= 0.0)
  1243.     {
  1244.         n += 4;
  1245.     }
  1246.     
  1247.     glScalef(2.0, 1.0, 1.0);
  1248.  
  1249.     glEnable(GL_CULL_FACE);
  1250.     switch(n)
  1251.     {
  1252.         case 0:
  1253.             Fish_1();
  1254.             break;
  1255.         case 1:
  1256.             Fish_2();
  1257.             break;
  1258.         case 2:
  1259.             Fish_3();
  1260.             break;
  1261.         case 3:
  1262.             Fish_4();
  1263.             break;
  1264.         case 4:
  1265.             Fish_5();
  1266.             break;
  1267.         case 5:
  1268.             Fish_6();
  1269.             break;
  1270.         case 6:
  1271.             Fish_7();
  1272.             break;
  1273.         case 7:
  1274.             Fish_8();
  1275.             break;
  1276.     }
  1277.     
  1278.     glDisable(GL_CULL_FACE);
  1279.  
  1280.     glPopMatrix();
  1281. }
  1282.