home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / samples / opengl / glutdemo / whale.c < prev   
C/C++ Source or Header  |  1999-05-11  |  52KB  |  1,833 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.019249 ,0.011340 ,-0.999750};
  42. static float N002[3] = {-0.132579 ,0.954547 ,0.266952};
  43. static float N003[3] = {-0.196061 ,0.980392 ,-0.019778};
  44. static float N004[3] = {0.695461 ,0.604704 ,0.388158};
  45. static float N005[3] = {0.870600 ,0.425754 ,0.246557};
  46. static float N006[3] = {-0.881191 ,0.392012 ,0.264251};
  47. static float N007[3] = {0.000000 ,1.000000 ,0.000000};
  48. static float N008[3] = {-0.341437 ,0.887477 ,0.309523};
  49. static float N009[3] = {0.124035 ,-0.992278 ,0.000000};
  50. static float N010[3] = {0.242536 ,0.000000 ,-0.970143};
  51. static float N011[3] = {0.588172 ,0.000000 ,0.808736};
  52. static float N012[3] = {0.929824 ,-0.340623 ,-0.139298};
  53. static float N013[3] = {0.954183 ,0.267108 ,-0.134865};
  54. static float N014[3] = {0.495127 ,0.855436 ,-0.151914};
  55. static float N015[3] = {-0.390199 ,0.906569 ,-0.160867};
  56. static float N016[3] = {-0.923605 ,0.354581 ,-0.145692};
  57. static float N017[3] = {-0.955796 ,-0.260667 ,-0.136036};
  58. static float N018[3] = {-0.501283 ,-0.853462 ,-0.142540};
  59. static float N019[3] = {0.405300 ,-0.901974 ,-0.148913};
  60. static float N020[3] = {0.909913 ,-0.392746 ,-0.133451};
  61. static float N021[3] = {0.936494 ,0.331147 ,-0.115414};
  62. static float N022[3] = {0.600131 ,0.793724 ,-0.099222};
  63. static float N023[3] = {-0.231556 ,0.968361 ,-0.093053};
  64. static float N024[3] = {-0.844369 ,0.525330 ,-0.105211};
  65. static float N025[3] = {-0.982725 ,-0.136329 ,-0.125164};
  66. static float N026[3] = {-0.560844 ,-0.822654 ,-0.093241};
  67. static float N027[3] = {0.263884 ,-0.959981 ,-0.093817};
  68. static float N028[3] = {0.842057 ,-0.525192 ,-0.122938};
  69. static float N029[3] = {0.921620 ,0.367565 ,-0.124546};
  70. static float N030[3] = {0.613927 ,0.784109 ,-0.090918};
  71. static float N031[3] = {-0.448754 ,0.888261 ,-0.098037};
  72. static float N032[3] = {-0.891865 ,0.434376 ,-0.126077};
  73. static float N033[3] = {-0.881447 ,-0.448017 ,-0.149437};
  74. static float N034[3] = {-0.345647 ,-0.922057 ,-0.174183};
  75. static float N035[3] = {0.307998 ,-0.941371 ,-0.137688};
  76. static float N036[3] = {0.806316 ,-0.574647 ,-0.140124};
  77. static float N037[3] = {0.961346 ,0.233646 ,-0.145681};
  78. static float N038[3] = {0.488451 ,0.865586 ,-0.110351};
  79. static float N039[3] = {-0.374290 ,0.921953 ,-0.099553};
  80. static float N040[3] = {-0.928504 ,0.344533 ,-0.138485};
  81. static float N041[3] = {-0.918419 ,-0.371792 ,-0.135189};
  82. static float N042[3] = {-0.520666 ,-0.833704 ,-0.183968};
  83. static float N043[3] = {0.339204 ,-0.920273 ,-0.195036};
  84. static float N044[3] = {0.921475 ,-0.387382 ,-0.028636};
  85. static float N045[3] = {0.842465 ,0.533335 ,-0.076204};
  86. static float N046[3] = {0.380110 ,0.924939 ,0.002073};
  87. static float N047[3] = {-0.276128 ,0.961073 ,-0.009579};
  88. static float N048[3] = {-0.879684 ,0.473001 ,-0.049250};
  89. static float N049[3] = {-0.947184 ,-0.317614 ,-0.044321};
  90. static float N050[3] = {-0.642059 ,-0.764933 ,-0.051363};
  91. static float N051[3] = {0.466794 ,-0.880921 ,-0.077990};
  92. static float N052[3] = {0.898509 ,-0.432277 ,0.076279};
  93. static float N053[3] = {0.938985 ,0.328141 ,0.103109};
  94. static float N054[3] = {0.442420 ,0.895745 ,0.043647};
  95. static float N055[3] = {-0.255163 ,0.966723 ,0.018407};
  96. static float N056[3] = {-0.833769 ,0.540650 ,0.111924};
  97. static float N057[3] = {-0.953653 ,-0.289939 ,0.080507};
  98. static float N058[3] = {-0.672357 ,-0.730524 ,0.119461};
  99. static float N059[3] = {0.522249 ,-0.846652 ,0.102157};
  100. static float N060[3] = {0.885868 ,-0.427631 ,0.179914};
  101. static float N061[3] = {0.000000 ,1.000000 ,0.000000};
  102. static float N062[3] = {0.648942 ,0.743116 ,0.163255};
  103. static float N063[3] = {-0.578967 ,0.807730 ,0.111219};
  104. static float N064[3] = {0.000000 ,1.000000 ,0.000000};
  105. static float N065[3] = {-0.909864 ,-0.352202 ,0.219321};
  106. static float N066[3] = {-0.502541 ,-0.818090 ,0.279610};
  107. static float N067[3] = {0.322919 ,-0.915358 ,0.240504};
  108. static float N068[3] = {0.242536 ,0.000000 ,-0.970143};
  109. static float N069[3] = {0.000000 ,1.000000 ,0.000000};
  110. static float N070[3] = {0.000000 ,1.000000 ,0.000000};
  111. static float N071[3] = {0.000000 ,1.000000 ,0.000000};
  112. static float N072[3] = {0.000000 ,1.000000 ,0.000000};
  113. static float N073[3] = {0.000000 ,1.000000 ,0.000000};
  114. static float N074[3] = {0.000000 ,1.000000 ,0.000000};
  115. static float N075[3] = {0.031220 ,0.999025 ,-0.031220};
  116. static float N076[3] = {0.000000 ,1.000000 ,0.000000};
  117. static float N077[3] = {0.446821 ,0.893642 ,0.041889};
  118. static float N078[3] = {0.863035 ,-0.100980 ,0.494949};
  119. static float N079[3] = {0.585597 ,-0.808215 ,0.062174};
  120. static float N080[3] = {0.000000 ,1.000000 ,0.000000};
  121. static float N081[3] = {1.000000 ,0.000000 ,0.000000};
  122. static float N082[3] = {0.000000 ,1.000000 ,0.000000};
  123. static float N083[3] = {-1.000000 ,0.000000 ,0.000000};
  124. static float N084[3] = {-0.478893 ,0.837129 ,-0.264343};
  125. static float N085[3] = {0.000000 ,1.000000 ,0.000000};
  126. static float N086[3] = {0.763909 ,0.539455 ,-0.354163};
  127. static float N087[3] = {0.446821 ,0.893642 ,0.041889};
  128. static float N088[3] = {0.385134 ,-0.908288 ,0.163352};
  129. static float N089[3] = {-0.605952 ,0.779253 ,-0.159961};
  130. static float N090[3] = {0.000000 ,1.000000 ,0.000000};
  131. static float N091[3] = {0.000000 ,1.000000 ,0.000000};
  132. static float N092[3] = {0.000000 ,1.000000 ,0.000000};
  133. static float N093[3] = {0.000000 ,1.000000 ,0.000000};
  134. static float N094[3] = {1.000000 ,0.000000 ,0.000000};
  135. static float N095[3] = {-1.000000 ,0.000000 ,0.000000};
  136. static float N096[3] = {0.644444 ,-0.621516 ,0.445433};
  137. static float N097[3] = {-0.760896 ,-0.474416 ,0.442681};
  138. static float N098[3] = {0.636888 ,-0.464314 ,0.615456};
  139. static float N099[3] = {-0.710295 ,0.647038 ,0.277168};
  140. static float N100[3] = {0.009604 ,0.993655 ,0.112063};
  141. static float N101[3] = {0.000000 ,1.000000 ,0.000000};
  142. static float N102[3] = {0.000000 ,1.000000 ,0.000000};
  143. static float N103[3] = {0.000000 ,1.000000 ,0.000000};
  144. static float N104[3] = {0.031837 ,0.999285 ,0.020415};
  145. static float N105[3] = {0.031837 ,0.999285 ,0.020415};
  146. static float N106[3] = {0.031837 ,0.999285 ,0.020415};
  147. static float N107[3] = {0.014647 ,0.999648 ,0.022115};
  148. static float N108[3] = {0.014647 ,0.999648 ,0.022115};
  149. static float N109[3] = {0.014647 ,0.999648 ,0.022115};
  150. static float N110[3] = {-0.985141 ,0.039475 ,0.167149};
  151. static float N111[3] = {-0.985141 ,0.039475 ,0.167149};
  152. static float N112[3] = {-0.985141 ,0.039475 ,0.167149};
  153. static float N113[3] = {0.000000 ,1.000000 ,0.000000};
  154. static float N114[3] = {0.000000 ,1.000000 ,0.000000};
  155. static float N115[3] = {0.000000 ,1.000000 ,0.000000};
  156. static float N116[3] = {0.000000 ,1.000000 ,0.000000};
  157. static float N117[3] = {0.000000 ,1.000000 ,0.000000};
  158. static float N118[3] = {0.000000 ,1.000000 ,0.000000};
  159. static float N119[3] = {0.000000 ,1.000000 ,0.000000};
  160. static float N120[3] = {0.000000 ,1.000000 ,0.000000};
  161. static float N121[3] = {0.000000 ,1.000000 ,0.000000};
  162. static float iP001[3] = {18.74, 13.19, 3.76};
  163. static float P001[3] = {18.74, 13.19, 3.76};
  164. static float P002[3] = {0.00, 390.42, 10292.57};
  165. static float P003[3] = {55.80, 622.31, 8254.35};
  166. static float P004[3] = {20.80, 247.66, 10652.13};
  167. static float P005[3] = {487.51, 198.05, 9350.78};
  168. static float P006[3] = {-457.61, 199.04, 9353.01};
  169. static float P007[3] = {0.00, 259.00, 10276.27};
  170. static float P008[3] = {-34.67, 247.64, 10663.71};
  171. static float iP009[3] = {97.46, 67.63, 593.82};
  172. static float iP010[3] = {-84.33, 67.63, 588.18};
  173. static float iP011[3] = {118.69, 8.98, -66.91};
  174. static float P009[3] = {97.46, 67.63, 593.82};
  175. static float P010[3] = {-84.33, 67.63, 588.18};
  176. static float P011[3] = {118.69, 8.98, -66.91};
  177. static float iP012[3] = {156.48, -31.95, 924.54};
  178. static float iP013[3] = {162.00, 110.22, 924.54};
  179. static float iP014[3] = {88.16, 221.65, 924.54};
  180. static float iP015[3] = {-65.21, 231.16, 924.54};
  181. static float iP016[3] = {-156.48, 121.97, 924.54};
  182. static float iP017[3] = {-162.00, -23.93, 924.54};
  183. static float iP018[3] = {-88.16, -139.10, 924.54};
  184. static float iP019[3] = {65.21, -148.61, 924.54};
  185. static float iP020[3] = {246.87, -98.73, 1783.04};
  186. static float iP021[3] = {253.17, 127.76, 1783.04};
  187. static float iP022[3] = {132.34, 270.77, 1783.04};
  188. static float iP023[3] = {-97.88, 285.04, 1783.04};
  189. static float iP024[3] = {-222.97, 139.80, 1783.04};
  190. static float iP025[3] = {-225.29, -86.68, 1783.04};
  191. static float iP026[3] = {-108.44, -224.15, 1783.04};
  192. static float iP027[3] = {97.88, -221.56, 1783.04};
  193. static float iP028[3] = {410.55, -200.66, 3213.87};
  194. static float iP029[3] = {432.19, 148.42, 3213.87};
  195. static float iP030[3] = {200.66, 410.55, 3213.87};
  196. static float iP031[3] = {-148.42, 432.19, 3213.87};
  197. static float iP032[3] = {-407.48, 171.88, 3213.87};
  198. static float iP033[3] = {-432.19, -148.42, 3213.87};
  199. static float iP034[3] = {-148.88, -309.74, 3213.87};
  200. static float iP035[3] = {156.38, -320.17, 3213.87};
  201. static float iP036[3] = {523.39, -303.81, 4424.57};
  202. static float iP037[3] = {574.66, 276.84, 4424.57};
  203. static float iP038[3] = {243.05, 492.50, 4424.57};
  204. static float iP039[3] = {-191.23, 520.13, 4424.57};
  205. static float iP040[3] = {-523.39, 304.01, 4424.57};
  206. static float iP041[3] = {-574.66, -231.83, 4424.57};
  207. static float iP042[3] = {-266.95, -578.17, 4424.57};
  208. static float iP043[3] = {211.14, -579.67, 4424.57};
  209. static float iP044[3] = {680.57, -370.27, 5943.46};
  210. static float iP045[3] = {834.01, 363.09, 5943.46};
  211. static float iP046[3] = {371.29, 614.13, 5943.46};
  212. static float iP047[3] = {-291.43, 621.86, 5943.46};
  213. static float iP048[3] = {-784.13, 362.60, 5943.46};
  214. static float iP049[3] = {-743.29, -325.82, 5943.46};
  215. static float iP050[3] = {-383.24, -804.77, 5943.46};
  216. static float iP051[3] = {283.47, -846.09, 5943.46};
  217. static float P012[3] = {156.48, -31.95, 924.54};
  218. static float P013[3] = {162.00, 110.22, 924.54};
  219. static float P014[3] = {88.16, 221.65, 924.54};
  220. static float P015[3] = {-65.21, 231.16, 924.54};
  221. static float P016[3] = {-156.48, 121.97, 924.54};
  222. static float P017[3] = {-162.00, -23.93, 924.54};
  223. static float P018[3] = {-88.16, -139.10, 924.54};
  224. static float P019[3] = {65.21, -148.61, 924.54};
  225. static float P020[3] = {246.87, -98.73, 1783.04};
  226. static float P021[3] = {253.17, 127.76, 1783.04};
  227. static float P022[3] = {132.34, 270.77, 1783.04};
  228. static float P023[3] = {-97.88, 285.04, 1783.04};
  229. static float P024[3] = {-222.97, 139.80, 1783.04};
  230. static float P025[3] = {-225.29, -86.68, 1783.04};
  231. static float P026[3] = {-108.44, -224.15, 1783.04};
  232. static float P027[3] = {97.88, -221.56, 1783.04};
  233. static float P028[3] = {410.55, -200.66, 3213.87};
  234. static float P029[3] = {432.19, 148.42, 3213.87};
  235. static float P030[3] = {200.66, 410.55, 3213.87};
  236. static float P031[3] = {-148.42, 432.19, 3213.87};
  237. static float P032[3] = {-407.48, 171.88, 3213.87};
  238. static float P033[3] = {-432.19, -148.42, 3213.87};
  239. static float P034[3] = {-148.88, -309.74, 3213.87};
  240. static float P035[3] = {156.38, -320.17, 3213.87};
  241. static float P036[3] = {523.39, -303.81, 4424.57};
  242. static float P037[3] = {574.66, 276.84, 4424.57};
  243. static float P038[3] = {243.05, 492.50, 4424.57};
  244. static float P039[3] = {-191.23, 520.13, 4424.57};
  245. static float P040[3] = {-523.39, 304.01, 4424.57};
  246. static float P041[3] = {-574.66, -231.83, 4424.57};
  247. static float P042[3] = {-266.95, -578.17, 4424.57};
  248. static float P043[3] = {211.14, -579.67, 4424.57};
  249. static float P044[3] = {680.57, -370.27, 5943.46};
  250. static float P045[3] = {834.01, 363.09, 5943.46};
  251. static float P046[3] = {371.29, 614.13, 5943.46};
  252. static float P047[3] = {-291.43, 621.86, 5943.46};
  253. static float P048[3] = {-784.13, 362.60, 5943.46};
  254. static float P049[3] = {-743.29, -325.82, 5943.46};
  255. static float P050[3] = {-383.24, -804.77, 5943.46};
  256. static float P051[3] = {283.47, -846.09, 5943.46};
  257. static float P052[3] = {599.09, -332.24, 7902.59};
  258. static float P053[3] = {735.48, 306.26, 7911.92};
  259. static float P054[3] = {321.55, 558.53, 7902.59};
  260. static float P055[3] = {-260.54, 559.84, 7902.59};
  261. static float P056[3] = {-698.66, 320.83, 7902.59};
  262. static float P057[3] = {-643.29, -299.16, 7902.59};
  263. static float P058[3] = {-341.47, -719.30, 7902.59};
  264. static float P059[3] = {252.57, -756.12, 7902.59};
  265. static float P060[3] = {458.39, -265.31, 9355.44};
  266. static float iP061[3] = {353.63, 138.70, 10214.20};
  267. static float P061[3] = {353.63, 138.70, 10214.20};
  268. static float P062[3] = {224.04, 438.98, 9364.77};
  269. static float P063[3] = {-165.71, 441.27, 9355.44};
  270. static float iP064[3] = {-326.40, 162.04, 10209.54};
  271. static float P064[3] = {-326.40, 162.04, 10209.54};
  272. static float P065[3] = {-473.99, -219.71, 9355.44};
  273. static float P066[3] = {-211.97, -479.87, 9355.44};
  274. static float P067[3] = {192.86, -504.03, 9355.44};
  275. static float iP068[3] = {-112.44, 9.25, -64.42};
  276. static float iP069[3] = {1155.63, 0.00, -182.46};
  277. static float iP070[3] = {-1143.13, 0.00, -181.54};
  278. static float iP071[3] = {1424.23, 0.00, -322.09};
  279. static float iP072[3] = {-1368.01, 0.00, -310.38};
  280. static float iP073[3] = {1255.57, 2.31, 114.05};
  281. static float iP074[3] = {-1149.38, 0.00, 117.12};
  282. static float iP075[3] = {718.36, 0.00, 433.36};
  283. static float iP076[3] = {-655.90, 0.00, 433.36};
  284. static float P068[3] = {-112.44, 9.25, -64.42};
  285. static float P069[3] = {1155.63, 0.00, -182.46};
  286. static float P070[3] = {-1143.13, 0.00, -181.54};
  287. static float P071[3] = {1424.23, 0.00, -322.09};
  288. static float P072[3] = {-1368.01, 0.00, -310.38};
  289. static float P073[3] = {1255.57, 2.31, 114.05};
  290. static float P074[3] = {-1149.38, 0.00, 117.12};
  291. static float P075[3] = {718.36, 0.00, 433.36};
  292. static float P076[3] = {-655.90, 0.00, 433.36};
  293. static float P077[3] = {1058.00, -2.66, 7923.51};
  294. static float P078[3] = {-1016.51, -15.47, 7902.87};
  295. static float P079[3] = {-1363.99, -484.50, 7593.38};
  296. static float P080[3] = {1478.09, -861.47, 7098.12};
  297. static float P081[3] = {1338.06, -284.68, 7024.15};
  298. static float P082[3] = {-1545.51, -860.64, 7106.60};
  299. static float P083[3] = {1063.19, -70.46, 7466.60};
  300. static float P084[3] = {-1369.18, -288.11, 7015.34};
  301. static float P085[3] = {1348.44, -482.50, 7591.41};
  302. static float P086[3] = {-1015.45, -96.80, 7474.86};
  303. static float P087[3] = {731.04, 148.38, 7682.58};
  304. static float P088[3] = {-697.03, 151.82, 7668.81};
  305. static float P089[3] = {-686.82, 157.09, 7922.29};
  306. static float P090[3] = {724.73, 147.75, 7931.39};
  307. static float iP091[3] = {0.00, 327.10, 2346.55};
  308. static float iP092[3] = {0.00, 552.28, 2311.31};
  309. static float iP093[3] = {0.00, 721.16, 2166.41};
  310. static float iP094[3] = {0.00, 693.42, 2388.80};
  311. static float iP095[3] = {0.00, 389.44, 2859.97};
  312. static float P091[3] = {0.00, 327.10, 2346.55};
  313. static float P092[3] = {0.00, 552.28, 2311.31};
  314. static float P093[3] = {0.00, 721.16, 2166.41};
  315. static float P094[3] = {0.00, 693.42, 2388.80};
  316. static float P095[3] = {0.00, 389.44, 2859.97};
  317. static float iP096[3] = {222.02, -183.67, 10266.89};
  318. static float iP097[3] = {-128.90, -182.70, 10266.89};
  319. static float iP098[3] = {41.04, 88.31, 10659.36};
  320. static float iP099[3] = {-48.73, 88.30, 10659.36};
  321. static float P096[3] = {222.02, -183.67, 10266.89};
  322. static float P097[3] = {-128.90, -182.70, 10266.89};
  323. static float P098[3] = {41.04, 88.31, 10659.36};
  324. static float P099[3] = {-48.73, 88.30, 10659.36};
  325. static float P100[3] = {0.00, 603.42, 9340.68};
  326. static float P101[3] = {5.70, 567.00, 7862.98};
  327. static float P102[3] = {521.61, 156.61, 9162.34};
  328. static float P103[3] = {83.68, 566.67, 7861.26};
  329. static float P104[3] = {-9.86, 567.62, 7858.65};
  330. static float P105[3] = {31.96, 565.27, 7908.46};
  331. static float P106[3] = {22.75, 568.13, 7782.83};
  332. static float P107[3] = {58.93, 568.42, 7775.94};
  333. static float P108[3] = {55.91, 565.59, 7905.86};
  334. static float P109[3] = {99.21, 566.00, 7858.65};
  335. static float P110[3] = {-498.83, 148.14, 9135.10};
  336. static float P111[3] = {-495.46, 133.24, 9158.48};
  337. static float P112[3] = {-490.82, 146.23, 9182.76};
  338. static float P113[3] = {-489.55, 174.11, 9183.66};
  339. static float P114[3] = {-492.92, 189.00, 9160.28};
  340. static float P115[3] = {-497.56, 176.02, 9136.00};
  341. static float P116[3] = {526.54, 169.68, 9137.70};
  342. static float P117[3] = {523.49, 184.85, 9161.42};
  343. static float P118[3] = {518.56, 171.78, 9186.06};
  344. static float P119[3] = {516.68, 143.53, 9186.98};
  345. static float P120[3] = {519.73, 128.36, 9163.26};
  346. static float P121[3] = {524.66, 141.43, 9138.62};
  347. /* *INDENT-ON* */
  348.  
  349. void
  350. Whale001(void)
  351. {
  352.  
  353.     glBegin(GL_POLYGON);
  354.     glNormal3fv(N001);
  355.     glVertex3fv(P001);
  356.     glNormal3fv(N068);
  357.     glVertex3fv(P068);
  358.     glNormal3fv(N010);
  359.     glVertex3fv(P010);
  360.     glEnd();
  361.     glBegin(GL_POLYGON);
  362.     glNormal3fv(N068);
  363.     glVertex3fv(P068);
  364.     glNormal3fv(N076);
  365.     glVertex3fv(P076);
  366.     glNormal3fv(N010);
  367.     glVertex3fv(P010);
  368.     glEnd();
  369.     glBegin(GL_POLYGON);
  370.     glNormal3fv(N068);
  371.     glVertex3fv(P068);
  372.     glNormal3fv(N070);
  373.     glVertex3fv(P070);
  374.     glNormal3fv(N076);
  375.     glVertex3fv(P076);
  376.     glEnd();
  377.     glBegin(GL_POLYGON);
  378.     glNormal3fv(N076);
  379.     glVertex3fv(P076);
  380.     glNormal3fv(N070);
  381.     glVertex3fv(P070);
  382.     glNormal3fv(N074);
  383.     glVertex3fv(P074);
  384.     glEnd();
  385.     glBegin(GL_POLYGON);
  386.     glNormal3fv(N070);
  387.     glVertex3fv(P070);
  388.     glNormal3fv(N072);
  389.     glVertex3fv(P072);
  390.     glNormal3fv(N074);
  391.     glVertex3fv(P074);
  392.     glEnd();
  393.     glBegin(GL_POLYGON);
  394.     glNormal3fv(N072);
  395.     glVertex3fv(P072);
  396.     glNormal3fv(N070);
  397.     glVertex3fv(P070);
  398.     glNormal3fv(N074);
  399.     glVertex3fv(P074);
  400.     glEnd();
  401.     glBegin(GL_POLYGON);
  402.     glNormal3fv(N074);
  403.     glVertex3fv(P074);
  404.     glNormal3fv(N070);
  405.     glVertex3fv(P070);
  406.     glNormal3fv(N076);
  407.     glVertex3fv(P076);
  408.     glEnd();
  409.     glBegin(GL_POLYGON);
  410.     glNormal3fv(N070);
  411.     glVertex3fv(P070);
  412.     glNormal3fv(N068);
  413.     glVertex3fv(P068);
  414.     glNormal3fv(N076);
  415.     glVertex3fv(P076);
  416.     glEnd();
  417.     glBegin(GL_POLYGON);
  418.     glNormal3fv(N076);
  419.     glVertex3fv(P076);
  420.     glNormal3fv(N068);
  421.     glVertex3fv(P068);
  422.     glNormal3fv(N010);
  423.     glVertex3fv(P010);
  424.     glEnd();
  425.     glBegin(GL_POLYGON);
  426.     glNormal3fv(N068);
  427.     glVertex3fv(P068);
  428.     glNormal3fv(N001);
  429.     glVertex3fv(P001);
  430.     glNormal3fv(N010);
  431.     glVertex3fv(P010);
  432.     glEnd();
  433. }
  434.  
  435. void
  436. Whale002(void)
  437. {
  438.     glBegin(GL_POLYGON);
  439.     glNormal3fv(N011);
  440.     glVertex3fv(P011);
  441.     glNormal3fv(N001);
  442.     glVertex3fv(P001);
  443.     glNormal3fv(N009);
  444.     glVertex3fv(P009);
  445.     glEnd();
  446.     glBegin(GL_POLYGON);
  447.     glNormal3fv(N075);
  448.     glVertex3fv(P075);
  449.     glNormal3fv(N011);
  450.     glVertex3fv(P011);
  451.     glNormal3fv(N009);
  452.     glVertex3fv(P009);
  453.     glEnd();
  454.     glBegin(GL_POLYGON);
  455.     glNormal3fv(N069);
  456.     glVertex3fv(P069);
  457.     glNormal3fv(N011);
  458.     glVertex3fv(P011);
  459.     glNormal3fv(N075);
  460.     glVertex3fv(P075);
  461.     glEnd();
  462.     glBegin(GL_POLYGON);
  463.     glNormal3fv(N069);
  464.     glVertex3fv(P069);
  465.     glNormal3fv(N075);
  466.     glVertex3fv(P075);
  467.     glNormal3fv(N073);
  468.     glVertex3fv(P073);
  469.     glEnd();
  470.     glBegin(GL_POLYGON);
  471.     glNormal3fv(N071);
  472.     glVertex3fv(P071);
  473.     glNormal3fv(N069);
  474.     glVertex3fv(P069);
  475.     glNormal3fv(N073);
  476.     glVertex3fv(P073);
  477.     glEnd();
  478.     glBegin(GL_POLYGON);
  479.     glNormal3fv(N001);
  480.     glVertex3fv(P001);
  481.     glNormal3fv(N011);
  482.     glVertex3fv(P011);
  483.     glNormal3fv(N009);
  484.     glVertex3fv(P009);
  485.     glEnd();
  486.     glBegin(GL_POLYGON);
  487.     glNormal3fv(N009);
  488.     glVertex3fv(P009);
  489.     glNormal3fv(N011);
  490.     glVertex3fv(P011);
  491.     glNormal3fv(N075);
  492.     glVertex3fv(P075);
  493.     glEnd();
  494.     glBegin(GL_POLYGON);
  495.     glNormal3fv(N011);
  496.     glVertex3fv(P011);
  497.     glNormal3fv(N069);
  498.     glVertex3fv(P069);
  499.     glNormal3fv(N075);
  500.     glVertex3fv(P075);
  501.     glEnd();
  502.     glBegin(GL_POLYGON);
  503.     glNormal3fv(N069);
  504.     glVertex3fv(P069);
  505.     glNormal3fv(N073);
  506.     glVertex3fv(P073);
  507.     glNormal3fv(N075);
  508.     glVertex3fv(P075);
  509.     glEnd();
  510.     glBegin(GL_POLYGON);
  511.     glNormal3fv(N069);
  512.     glVertex3fv(P069);
  513.     glNormal3fv(N071);
  514.     glVertex3fv(P071);
  515.     glNormal3fv(N073);
  516.     glVertex3fv(P073);
  517.     glEnd();
  518. }
  519.  
  520. void
  521. Whale003(void)
  522. {
  523.     glBegin(GL_POLYGON);
  524.     glNormal3fv(N018);
  525.     glVertex3fv(P018);
  526.     glNormal3fv(N001);
  527.     glVertex3fv(P001);
  528.     glNormal3fv(N019);
  529.     glVertex3fv(P019);
  530.     glEnd();
  531.     glBegin(GL_POLYGON);
  532.     glNormal3fv(N019);
  533.     glVertex3fv(P019);
  534.     glNormal3fv(N001);
  535.     glVertex3fv(P001);
  536.     glNormal3fv(N012);
  537.     glVertex3fv(P012);
  538.     glEnd();
  539.     glBegin(GL_POLYGON);
  540.     glNormal3fv(N017);
  541.     glVertex3fv(P017);
  542.     glNormal3fv(N001);
  543.     glVertex3fv(P001);
  544.     glNormal3fv(N018);
  545.     glVertex3fv(P018);
  546.     glEnd();
  547.     glBegin(GL_POLYGON);
  548.     glNormal3fv(N001);
  549.     glVertex3fv(P001);
  550.     glNormal3fv(N017);
  551.     glVertex3fv(P017);
  552.     glNormal3fv(N016);
  553.     glVertex3fv(P016);
  554.     glEnd();
  555.     glBegin(GL_POLYGON);
  556.     glNormal3fv(N001);
  557.     glVertex3fv(P001);
  558.     glNormal3fv(N013);
  559.     glVertex3fv(P013);
  560.     glNormal3fv(N012);
  561.     glVertex3fv(P012);
  562.     glEnd();
  563.     glBegin(GL_POLYGON);
  564.     glNormal3fv(N001);
  565.     glVertex3fv(P001);
  566.     glNormal3fv(N016);
  567.     glVertex3fv(P016);
  568.     glNormal3fv(N015);
  569.     glVertex3fv(P015);
  570.     glEnd();
  571.     glBegin(GL_POLYGON);
  572.     glNormal3fv(N001);
  573.     glVertex3fv(P001);
  574.     glNormal3fv(N014);
  575.     glVertex3fv(P014);
  576.     glNormal3fv(N013);
  577.     glVertex3fv(P013);
  578.     glEnd();
  579.     glBegin(GL_POLYGON);
  580.     glNormal3fv(N001);
  581.     glVertex3fv(P001);
  582.     glNormal3fv(N015);
  583.     glVertex3fv(P015);
  584.     glNormal3fv(N014);
  585.     glVertex3fv(P014);
  586.     glEnd();
  587. }
  588.  
  589. void
  590. Whale004(void)
  591. {
  592.     glBegin(GL_POLYGON);
  593.     glNormal3fv(N014);
  594.     glVertex3fv(P014);
  595.     glNormal3fv(N015);
  596.     glVertex3fv(P015);
  597.     glNormal3fv(N023);
  598.     glVertex3fv(P023);
  599.     glNormal3fv(N022);
  600.     glVertex3fv(P022);
  601.     glEnd();
  602.     glBegin(GL_POLYGON);
  603.     glNormal3fv(N015);
  604.     glVertex3fv(P015);
  605.     glNormal3fv(N016);
  606.     glVertex3fv(P016);
  607.     glNormal3fv(N024);
  608.     glVertex3fv(P024);
  609.     glNormal3fv(N023);
  610.     glVertex3fv(P023);
  611.     glEnd();
  612.     glBegin(GL_POLYGON);
  613.     glNormal3fv(N016);
  614.     glVertex3fv(P016);
  615.     glNormal3fv(N017);
  616.     glVertex3fv(P017);
  617.     glNormal3fv(N025);
  618.     glVertex3fv(P025);
  619.     glNormal3fv(N024);
  620.     glVertex3fv(P024);
  621.     glEnd();
  622.     glBegin(GL_POLYGON);
  623.     glNormal3fv(N017);
  624.     glVertex3fv(P017);
  625.     glNormal3fv(N018);
  626.     glVertex3fv(P018);
  627.     glNormal3fv(N026);
  628.     glVertex3fv(P026);
  629.     glNormal3fv(N025);
  630.     glVertex3fv(P025);
  631.     glEnd();
  632.     glBegin(GL_POLYGON);
  633.     glNormal3fv(N013);
  634.     glVertex3fv(P013);
  635.     glNormal3fv(N014);
  636.     glVertex3fv(P014);
  637.     glNormal3fv(N022);
  638.     glVertex3fv(P022);
  639.     glNormal3fv(N021);
  640.     glVertex3fv(P021);
  641.     glEnd();
  642.     glBegin(GL_POLYGON);
  643.     glNormal3fv(N012);
  644.     glVertex3fv(P012);
  645.     glNormal3fv(N013);
  646.     glVertex3fv(P013);
  647.     glNormal3fv(N021);
  648.     glVertex3fv(P021);
  649.     glNormal3fv(N020);
  650.     glVertex3fv(P020);
  651.     glEnd();
  652.     glBegin(GL_POLYGON);
  653.     glNormal3fv(N018);
  654.     glVertex3fv(P018);
  655.     glNormal3fv(N019);
  656.     glVertex3fv(P019);
  657.     glNormal3fv(N027);
  658.     glVertex3fv(P027);
  659.     glNormal3fv(N026);
  660.     glVertex3fv(P026);
  661.     glEnd();
  662.     glBegin(GL_POLYGON);
  663.     glNormal3fv(N019);
  664.     glVertex3fv(P019);
  665.     glNormal3fv(N012);
  666.     glVertex3fv(P012);
  667.     glNormal3fv(N020);
  668.     glVertex3fv(P020);
  669.     glNormal3fv(N027);
  670.     glVertex3fv(P027);
  671.     glEnd();
  672. }
  673.  
  674. void
  675. Whale005(void)
  676. {
  677.     glBegin(GL_POLYGON);
  678.     glNormal3fv(N022);
  679.     glVertex3fv(P022);
  680.     glNormal3fv(N023);
  681.     glVertex3fv(P023);
  682.     glNormal3fv(N031);
  683.     glVertex3fv(P031);
  684.     glNormal3fv(N030);
  685.     glVertex3fv(P030);
  686.     glEnd();
  687.     glBegin(GL_POLYGON);
  688.     glNormal3fv(N021);
  689.     glVertex3fv(P021);
  690.     glNormal3fv(N022);
  691.     glVertex3fv(P022);
  692.     glNormal3fv(N030);
  693.     glVertex3fv(P030);
  694.     glEnd();
  695.     glBegin(GL_POLYGON);
  696.     glNormal3fv(N021);
  697.     glVertex3fv(P021);
  698.     glNormal3fv(N030);
  699.     glVertex3fv(P030);
  700.     glNormal3fv(N029);
  701.     glVertex3fv(P029);
  702.     glEnd();
  703.     glBegin(GL_POLYGON);
  704.     glNormal3fv(N023);
  705.     glVertex3fv(P023);
  706.     glNormal3fv(N024);
  707.     glVertex3fv(P024);
  708.     glNormal3fv(N031);
  709.     glVertex3fv(P031);
  710.     glEnd();
  711.     glBegin(GL_POLYGON);
  712.     glNormal3fv(N024);
  713.     glVertex3fv(P024);
  714.     glNormal3fv(N032);
  715.     glVertex3fv(P032);
  716.     glNormal3fv(N031);
  717.     glVertex3fv(P031);
  718.     glEnd();
  719.     glBegin(GL_POLYGON);
  720.     glNormal3fv(N024);
  721.     glVertex3fv(P024);
  722.     glNormal3fv(N025);
  723.     glVertex3fv(P025);
  724.     glNormal3fv(N032);
  725.     glVertex3fv(P032);
  726.     glEnd();
  727.     glBegin(GL_POLYGON);
  728.     glNormal3fv(N025);
  729.     glVertex3fv(P025);
  730.     glNormal3fv(N033);
  731.     glVertex3fv(P033);
  732.     glNormal3fv(N032);
  733.     glVertex3fv(P032);
  734.     glEnd();
  735.     glBegin(GL_POLYGON);
  736.     glNormal3fv(N020);
  737.     glVertex3fv(P020);
  738.     glNormal3fv(N021);
  739.     glVertex3fv(P021);
  740.     glNormal3fv(N029);
  741.     glVertex3fv(P029);
  742.     glEnd();
  743.     glBegin(GL_POLYGON);
  744.     glNormal3fv(N020);
  745.     glVertex3fv(P020);
  746.     glNormal3fv(N029);
  747.     glVertex3fv(P029);
  748.     glNormal3fv(N028);
  749.     glVertex3fv(P028);
  750.     glEnd();
  751.     glBegin(GL_POLYGON);
  752.     glNormal3fv(N027);
  753.     glVertex3fv(P027);
  754.     glNormal3fv(N020);
  755.     glVertex3fv(P020);
  756.     glNormal3fv(N028);
  757.     glVertex3fv(P028);
  758.     glEnd();
  759.     glBegin(GL_POLYGON);
  760.     glNormal3fv(N027);
  761.     glVertex3fv(P027);
  762.     glNormal3fv(N028);
  763.     glVertex3fv(P028);
  764.     glNormal3fv(N035);
  765.     glVertex3fv(P035);
  766.     glEnd();
  767.     glBegin(GL_POLYGON);
  768.     glNormal3fv(N025);
  769.     glVertex3fv(P025);
  770.     glNormal3fv(N026);
  771.     glVertex3fv(P026);
  772.     glNormal3fv(N033);
  773.     glVertex3fv(P033);
  774.     glEnd();
  775.     glBegin(GL_POLYGON);
  776.     glNormal3fv(N033);
  777.     glVertex3fv(P033);
  778.     glNormal3fv(N026);
  779.     glVertex3fv(P026);
  780.     glNormal3fv(N034);
  781.     glVertex3fv(P034);
  782.     glEnd();
  783.     glBegin(GL_POLYGON);
  784.     glNormal3fv(N026);
  785.     glVertex3fv(P026);
  786.     glNormal3fv(N027);
  787.     glVertex3fv(P027);
  788.     glNormal3fv(N035);
  789.     glVertex3fv(P035);
  790.     glNormal3fv(N034);
  791.     glVertex3fv(P034);
  792.     glEnd();
  793. }
  794.  
  795. void
  796. Whale006(void)
  797. {
  798.     glBegin(GL_POLYGON);
  799.     glNormal3fv(N092);
  800.     glVertex3fv(P092);
  801.     glNormal3fv(N093);
  802.     glVertex3fv(P093);
  803.     glNormal3fv(N094);
  804.     glVertex3fv(P094);
  805.     glEnd();
  806.     glBegin(GL_POLYGON);
  807.     glNormal3fv(N093);
  808.     glVertex3fv(P093);
  809.     glNormal3fv(N092);
  810.     glVertex3fv(P092);
  811.     glNormal3fv(N094);
  812.     glVertex3fv(P094);
  813.     glEnd();
  814.     glBegin(GL_POLYGON);
  815.     glNormal3fv(N092);
  816.     glVertex3fv(P092);
  817.     glNormal3fv(N091);
  818.     glVertex3fv(P091);
  819.     glNormal3fv(N095);
  820.     glVertex3fv(P095);
  821.     glNormal3fv(N094);
  822.     glVertex3fv(P094);
  823.     glEnd();
  824.     glBegin(GL_POLYGON);
  825.     glNormal3fv(N091);
  826.     glVertex3fv(P091);
  827.     glNormal3fv(N092);
  828.     glVertex3fv(P092);
  829.     glNormal3fv(N094);
  830.     glVertex3fv(P094);
  831.     glNormal3fv(N095);
  832.     glVertex3fv(P095);
  833.     glEnd();
  834. }
  835.  
  836. void
  837. Whale007(void)
  838. {
  839.     glBegin(GL_POLYGON);
  840.     glNormal3fv(N030);
  841.     glVertex3fv(P030);
  842.     glNormal3fv(N031);
  843.     glVertex3fv(P031);
  844.     glNormal3fv(N039);
  845.     glVertex3fv(P039);
  846.     glNormal3fv(N038);
  847.     glVertex3fv(P038);
  848.     glEnd();
  849.     glBegin(GL_POLYGON);
  850.     glNormal3fv(N029);
  851.     glVertex3fv(P029);
  852.     glNormal3fv(N030);
  853.     glVertex3fv(P030);
  854.     glNormal3fv(N038);
  855.     glVertex3fv(P038);
  856.     glEnd();
  857.     glBegin(GL_POLYGON);
  858.     glNormal3fv(N029);
  859.     glVertex3fv(P029);
  860.     glNormal3fv(N038);
  861.     glVertex3fv(P038);
  862.     glNormal3fv(N037);
  863.     glVertex3fv(P037);
  864.     glEnd();
  865.     glBegin(GL_POLYGON);
  866.     glNormal3fv(N028);
  867.     glVertex3fv(P028);
  868.     glNormal3fv(N029);
  869.     glVertex3fv(P029);
  870.     glNormal3fv(N037);
  871.     glVertex3fv(P037);
  872.     glEnd();
  873.     glBegin(GL_POLYGON);
  874.     glNormal3fv(N028);
  875.     glVertex3fv(P028);
  876.     glNormal3fv(N037);
  877.     glVertex3fv(P037);
  878.     glNormal3fv(N036);
  879.     glVertex3fv(P036);
  880.     glEnd();
  881.     glBegin(GL_POLYGON);
  882.     glNormal3fv(N035);
  883.     glVertex3fv(P035);
  884.     glNormal3fv(N028);
  885.     glVertex3fv(P028);
  886.     glNormal3fv(N036);
  887.     glVertex3fv(P036);
  888.     glEnd();
  889.     glBegin(GL_POLYGON);
  890.     glNormal3fv(N035);
  891.     glVertex3fv(P035);
  892.     glNormal3fv(N036);
  893.     glVertex3fv(P036);
  894.     glNormal3fv(N043);
  895.     glVertex3fv(P043);
  896.     glEnd();
  897.     glBegin(GL_POLYGON);
  898.     glNormal3fv(N034);
  899.     glVertex3fv(P034);
  900.     glNormal3fv(N035);
  901.     glVertex3fv(P035);
  902.     glNormal3fv(N043);
  903.     glVertex3fv(P043);
  904.     glNormal3fv(N042);
  905.     glVertex3fv(P042);
  906.     glEnd();
  907.     glBegin(GL_POLYGON);
  908.     glNormal3fv(N033);
  909.     glVertex3fv(P033);
  910.     glNormal3fv(N034);
  911.     glVertex3fv(P034);
  912.     glNormal3fv(N042);
  913.     glVertex3fv(P042);
  914.     glEnd();
  915.     glBegin(GL_POLYGON);
  916.     glNormal3fv(N033);
  917.     glVertex3fv(P033);
  918.     glNormal3fv(N042);
  919.     glVertex3fv(P042);
  920.     glNormal3fv(N041);
  921.     glVertex3fv(P041);
  922.     glEnd();
  923.     glBegin(GL_POLYGON);
  924.     glNormal3fv(N031);
  925.     glVertex3fv(P031);
  926.     glNormal3fv(N032);
  927.     glVertex3fv(P032);
  928.     glNormal3fv(N039);
  929.     glVertex3fv(P039);
  930.     glEnd();
  931.     glBegin(GL_POLYGON);
  932.     glNormal3fv(N039);
  933.     glVertex3fv(P039);
  934.     glNormal3fv(N032);
  935.     glVertex3fv(P032);
  936.     glNormal3fv(N040);
  937.     glVertex3fv(P040);
  938.     glEnd();
  939.     glBegin(GL_POLYGON);
  940.     glNormal3fv(N032);
  941.     glVertex3fv(P032);
  942.     glNormal3fv(N033);
  943.     glVertex3fv(P033);
  944.     glNormal3fv(N040);
  945.     glVertex3fv(P040);
  946.     glEnd();
  947.     glBegin(GL_POLYGON);
  948.     glNormal3fv(N040);
  949.     glVertex3fv(P040);
  950.     glNormal3fv(N033);
  951.     glVertex3fv(P033);
  952.     glNormal3fv(N041);
  953.     glVertex3fv(P041);
  954.     glEnd();
  955. }
  956.  
  957. void
  958. Whale008(void)
  959. {
  960.     glBegin(GL_POLYGON);
  961.     glNormal3fv(N042);
  962.     glVertex3fv(P042);
  963.     glNormal3fv(N043);
  964.     glVertex3fv(P043);
  965.     glNormal3fv(N051);
  966.     glVertex3fv(P051);
  967.     glNormal3fv(N050);
  968.     glVertex3fv(P050);
  969.     glEnd();
  970.     glBegin(GL_POLYGON);
  971.     glNormal3fv(N043);
  972.     glVertex3fv(P043);
  973.     glNormal3fv(N036);
  974.     glVertex3fv(P036);
  975.     glNormal3fv(N051);
  976.     glVertex3fv(P051);
  977.     glEnd();
  978.     glBegin(GL_POLYGON);
  979.     glNormal3fv(N051);
  980.     glVertex3fv(P051);
  981.     glNormal3fv(N036);
  982.     glVertex3fv(P036);
  983.     glNormal3fv(N044);
  984.     glVertex3fv(P044);
  985.     glEnd();
  986.     glBegin(GL_POLYGON);
  987.     glNormal3fv(N041);
  988.     glVertex3fv(P041);
  989.     glNormal3fv(N042);
  990.     glVertex3fv(P042);
  991.     glNormal3fv(N050);
  992.     glVertex3fv(P050);
  993.     glEnd();
  994.     glBegin(GL_POLYGON);
  995.     glNormal3fv(N041);
  996.     glVertex3fv(P041);
  997.     glNormal3fv(N050);
  998.     glVertex3fv(P050);
  999.     glNormal3fv(N049);
  1000.     glVertex3fv(P049);
  1001.     glEnd();
  1002.     glBegin(GL_POLYGON);
  1003.     glNormal3fv(N036);
  1004.     glVertex3fv(P036);
  1005.     glNormal3fv(N037);
  1006.     glVertex3fv(P037);
  1007.     glNormal3fv(N044);
  1008.     glVertex3fv(P044);
  1009.     glEnd();
  1010.     glBegin(GL_POLYGON);
  1011.     glNormal3fv(N044);
  1012.     glVertex3fv(P044);
  1013.     glNormal3fv(N037);
  1014.     glVertex3fv(P037);
  1015.     glNormal3fv(N045);
  1016.     glVertex3fv(P045);
  1017.     glEnd();
  1018.     glBegin(GL_POLYGON);
  1019.     glNormal3fv(N040);
  1020.     glVertex3fv(P040);
  1021.     glNormal3fv(N041);
  1022.     glVertex3fv(P041);
  1023.     glNormal3fv(N049);
  1024.     glVertex3fv(P049);
  1025.     glEnd();
  1026.     glBegin(GL_POLYGON);
  1027.     glNormal3fv(N040);
  1028.     glVertex3fv(P040);
  1029.     glNormal3fv(N049);
  1030.     glVertex3fv(P049);
  1031.     glNormal3fv(N048);
  1032.     glVertex3fv(P048);
  1033.     glEnd();
  1034.     glBegin(GL_POLYGON);
  1035.     glNormal3fv(N039);
  1036.     glVertex3fv(P039);
  1037.     glNormal3fv(N040);
  1038.     glVertex3fv(P040);
  1039.     glNormal3fv(N048);
  1040.     glVertex3fv(P048);
  1041.     glEnd();
  1042.     glBegin(GL_POLYGON);
  1043.     glNormal3fv(N039);
  1044.     glVertex3fv(P039);
  1045.     glNormal3fv(N048);
  1046.     glVertex3fv(P048);
  1047.     glNormal3fv(N047);
  1048.     glVertex3fv(P047);
  1049.     glEnd();
  1050.     glBegin(GL_POLYGON);
  1051.     glNormal3fv(N037);
  1052.     glVertex3fv(P037);
  1053.     glNormal3fv(N038);
  1054.     glVertex3fv(P038);
  1055.     glNormal3fv(N045);
  1056.     glVertex3fv(P045);
  1057.     glEnd();
  1058.     glBegin(GL_POLYGON);
  1059.     glNormal3fv(N038);
  1060.     glVertex3fv(P038);
  1061.     glNormal3fv(N046);
  1062.     glVertex3fv(P046);
  1063.     glNormal3fv(N045);
  1064.     glVertex3fv(P045);
  1065.     glEnd();
  1066.     glBegin(GL_POLYGON);
  1067.     glNormal3fv(N038);
  1068.     glVertex3fv(P038);
  1069.     glNormal3fv(N039);
  1070.     glVertex3fv(P039);
  1071.     glNormal3fv(N047);
  1072.     glVertex3fv(P047);
  1073.     glNormal3fv(N046);
  1074.     glVertex3fv(P046);
  1075.     glEnd();
  1076. }
  1077.  
  1078. void
  1079. Whale009(void)
  1080. {
  1081.     glBegin(GL_POLYGON);
  1082.     glNormal3fv(N050);
  1083.     glVertex3fv(P050);
  1084.     glNormal3fv(N051);
  1085.     glVertex3fv(P051);
  1086.     glNormal3fv(N059);
  1087.     glVertex3fv(P059);
  1088.     glNormal3fv(N058);
  1089.     glVertex3fv(P058);
  1090.     glEnd();
  1091.     glBegin(GL_POLYGON);
  1092.     glNormal3fv(N051);
  1093.     glVertex3fv(P051);
  1094.     glNormal3fv(N044);
  1095.     glVertex3fv(P044);
  1096.     glNormal3fv(N059);
  1097.     glVertex3fv(P059);
  1098.     glEnd();
  1099.     glBegin(GL_POLYGON);
  1100.     glNormal3fv(N059);
  1101.     glVertex3fv(P059);
  1102.     glNormal3fv(N044);
  1103.     glVertex3fv(P044);
  1104.     glNormal3fv(N052);
  1105.     glVertex3fv(P052);
  1106.     glEnd();
  1107.     glBegin(GL_POLYGON);
  1108.     glNormal3fv(N044);
  1109.     glVertex3fv(P044);
  1110.     glNormal3fv(N045);
  1111.     glVertex3fv(P045);
  1112.     glNormal3fv(N053);
  1113.     glVertex3fv(P053);
  1114.     glEnd();
  1115.     glBegin(GL_POLYGON);
  1116.     glNormal3fv(N044);
  1117.     glVertex3fv(P044);
  1118.     glNormal3fv(N053);
  1119.     glVertex3fv(P053);
  1120.     glNormal3fv(N052);
  1121.     glVertex3fv(P052);
  1122.     glEnd();
  1123.     glBegin(GL_POLYGON);
  1124.     glNormal3fv(N049);
  1125.     glVertex3fv(P049);
  1126.     glNormal3fv(N050);
  1127.     glVertex3fv(P050);
  1128.     glNormal3fv(N058);
  1129.     glVertex3fv(P058);
  1130.     glEnd();
  1131.     glBegin(GL_POLYGON);
  1132.     glNormal3fv(N049);
  1133.     glVertex3fv(P049);
  1134.     glNormal3fv(N058);
  1135.     glVertex3fv(P058);
  1136.     glNormal3fv(N057);
  1137.     glVertex3fv(P057);
  1138.     glEnd();
  1139.     glBegin(GL_POLYGON);
  1140.     glNormal3fv(N048);
  1141.     glVertex3fv(P048);
  1142.     glNormal3fv(N049);
  1143.     glVertex3fv(P049);
  1144.     glNormal3fv(N057);
  1145.     glVertex3fv(P057);
  1146.     glEnd();
  1147.     glBegin(GL_POLYGON);
  1148.     glNormal3fv(N048);
  1149.     glVertex3fv(P048);
  1150.     glNormal3fv(N057);
  1151.     glVertex3fv(P057);
  1152.     glNormal3fv(N056);
  1153.     glVertex3fv(P056);
  1154.     glEnd();
  1155.     glBegin(GL_POLYGON);
  1156.     glNormal3fv(N047);
  1157.     glVertex3fv(P047);
  1158.     glNormal3fv(N048);
  1159.     glVertex3fv(P048);
  1160.     glNormal3fv(N056);
  1161.     glVertex3fv(P056);
  1162.     glEnd();
  1163.     glBegin(GL_POLYGON);
  1164.     glNormal3fv(N047);
  1165.     glVertex3fv(P047);
  1166.     glNormal3fv(N056);
  1167.     glVertex3fv(P056);
  1168.     glNormal3fv(N055);
  1169.     glVertex3fv(P055);
  1170.     glEnd();
  1171.     glBegin(GL_POLYGON);
  1172.     glNormal3fv(N045);
  1173.     glVertex3fv(P045);
  1174.     glNormal3fv(N046);
  1175.     glVertex3fv(P046);
  1176.     glNormal3fv(N053);
  1177.     glVertex3fv(P053);
  1178.     glEnd();
  1179.     glBegin(GL_POLYGON);
  1180.     glNormal3fv(N046);
  1181.     glVertex3fv(P046);
  1182.     glNormal3fv(N054);
  1183.     glVertex3fv(P054);
  1184.     glNormal3fv(N053);
  1185.     glVertex3fv(P053);
  1186.     glEnd();
  1187.     glBegin(GL_POLYGON);
  1188.     glNormal3fv(N046);
  1189.     glVertex3fv(P046);
  1190.     glNormal3fv(N047);
  1191.     glVertex3fv(P047);
  1192.     glNormal3fv(N055);
  1193.     glVertex3fv(P055);
  1194.     glNormal3fv(N054);
  1195.     glVertex3fv(P054);
  1196.     glEnd();
  1197. }
  1198.  
  1199. void
  1200. Whale010(void)
  1201. {
  1202.     glBegin(GL_POLYGON);
  1203.     glNormal3fv(N080);
  1204.     glVertex3fv(P080);
  1205.     glNormal3fv(N081);
  1206.     glVertex3fv(P081);
  1207.     glNormal3fv(N085);
  1208.     glVertex3fv(P085);
  1209.     glEnd();
  1210.     glBegin(GL_POLYGON);
  1211.     glNormal3fv(N081);
  1212.     glVertex3fv(P081);
  1213.     glNormal3fv(N083);
  1214.     glVertex3fv(P083);
  1215.     glNormal3fv(N085);
  1216.     glVertex3fv(P085);
  1217.     glEnd();
  1218.     glBegin(GL_POLYGON);
  1219.     glNormal3fv(N085);
  1220.     glVertex3fv(P085);
  1221.     glNormal3fv(N083);
  1222.     glVertex3fv(P083);
  1223.     glNormal3fv(N077);
  1224.     glVertex3fv(P077);
  1225.     glEnd();
  1226.     glBegin(GL_POLYGON);
  1227.     glNormal3fv(N083);
  1228.     glVertex3fv(P083);
  1229.     glNormal3fv(N087);
  1230.     glVertex3fv(P087);
  1231.     glNormal3fv(N077);
  1232.     glVertex3fv(P077);
  1233.     glEnd();
  1234.     glBegin(GL_POLYGON);
  1235.     glNormal3fv(N077);
  1236.     glVertex3fv(P077);
  1237.     glNormal3fv(N087);
  1238.     glVertex3fv(P087);
  1239.     glNormal3fv(N090);
  1240.     glVertex3fv(P090);
  1241.     glEnd();
  1242.     glBegin(GL_POLYGON);
  1243.     glNormal3fv(N081);
  1244.     glVertex3fv(P081);
  1245.     glNormal3fv(N080);
  1246.     glVertex3fv(P080);
  1247.     glNormal3fv(N085);
  1248.     glVertex3fv(P085);
  1249.     glEnd();
  1250.     glBegin(GL_POLYGON);
  1251.     glNormal3fv(N083);
  1252.     glVertex3fv(P083);
  1253.     glNormal3fv(N081);
  1254.     glVertex3fv(P081);
  1255.     glNormal3fv(N085);
  1256.     glVertex3fv(P085);
  1257.     glEnd();
  1258.     glBegin(GL_POLYGON);
  1259.     glNormal3fv(N083);
  1260.     glVertex3fv(P083);
  1261.     glNormal3fv(N085);
  1262.     glVertex3fv(P085);
  1263.     glNormal3fv(N077);
  1264.     glVertex3fv(P077);
  1265.     glEnd();
  1266.     glBegin(GL_POLYGON);
  1267.     glNormal3fv(N087);
  1268.     glVertex3fv(P087);
  1269.     glNormal3fv(N083);
  1270.     glVertex3fv(P083);
  1271.     glNormal3fv(N077);
  1272.     glVertex3fv(P077);
  1273.     glEnd();
  1274.     glBegin(GL_POLYGON);
  1275.     glNormal3fv(N087);
  1276.     glVertex3fv(P087);
  1277.     glNormal3fv(N077);
  1278.     glVertex3fv(P077);
  1279.     glNormal3fv(N090);
  1280.     glVertex3fv(P090);
  1281.     glEnd();
  1282. }
  1283.  
  1284. void
  1285. Whale011(void)
  1286. {
  1287.     glBegin(GL_POLYGON);
  1288.     glNormal3fv(N082);
  1289.     glVertex3fv(P082);
  1290.     glNormal3fv(N084);
  1291.     glVertex3fv(P084);
  1292.     glNormal3fv(N079);
  1293.     glVertex3fv(P079);
  1294.     glEnd();
  1295.     glBegin(GL_POLYGON);
  1296.     glNormal3fv(N084);
  1297.     glVertex3fv(P084);
  1298.     glNormal3fv(N086);
  1299.     glVertex3fv(P086);
  1300.     glNormal3fv(N079);
  1301.     glVertex3fv(P079);
  1302.     glEnd();
  1303.     glBegin(GL_POLYGON);
  1304.     glNormal3fv(N079);
  1305.     glVertex3fv(P079);
  1306.     glNormal3fv(N086);
  1307.     glVertex3fv(P086);
  1308.     glNormal3fv(N078);
  1309.     glVertex3fv(P078);
  1310.     glEnd();
  1311.     glBegin(GL_POLYGON);
  1312.     glNormal3fv(N086);
  1313.     glVertex3fv(P086);
  1314.     glNormal3fv(N088);
  1315.     glVertex3fv(P088);
  1316.     glNormal3fv(N078);
  1317.     glVertex3fv(P078);
  1318.     glEnd();
  1319.     glBegin(GL_POLYGON);
  1320.     glNormal3fv(N078);
  1321.     glVertex3fv(P078);
  1322.     glNormal3fv(N088);
  1323.     glVertex3fv(P088);
  1324.     glNormal3fv(N089);
  1325.     glVertex3fv(P089);
  1326.     glEnd();
  1327.     glBegin(GL_POLYGON);
  1328.     glNormal3fv(N088);
  1329.     glVertex3fv(P088);
  1330.     glNormal3fv(N086);
  1331.     glVertex3fv(P086);
  1332.     glNormal3fv(N089);
  1333.     glVertex3fv(P089);
  1334.     glEnd();
  1335.     glBegin(GL_POLYGON);
  1336.     glNormal3fv(N089);
  1337.     glVertex3fv(P089);
  1338.     glNormal3fv(N086);
  1339.     glVertex3fv(P086);
  1340.     glNormal3fv(N078);
  1341.     glVertex3fv(P078);
  1342.     glEnd();
  1343.     glBegin(GL_POLYGON);
  1344.     glNormal3fv(N086);
  1345.     glVertex3fv(P086);
  1346.     glNormal3fv(N084);
  1347.     glVertex3fv(P084);
  1348.     glNormal3fv(N078);
  1349.     glVertex3fv(P078);
  1350.     glEnd();
  1351.     glBegin(GL_POLYGON);
  1352.     glNormal3fv(N078);
  1353.     glVertex3fv(P078);
  1354.     glNormal3fv(N084);
  1355.     glVertex3fv(P084);
  1356.     glNormal3fv(N079);
  1357.     glVertex3fv(P079);
  1358.     glEnd();
  1359.     glBegin(GL_POLYGON);
  1360.     glNormal3fv(N084);
  1361.     glVertex3fv(P084);
  1362.     glNormal3fv(N082);
  1363.     glVertex3fv(P082);
  1364.     glNormal3fv(N079);
  1365.     glVertex3fv(P079);
  1366.     glEnd();
  1367. }
  1368.  
  1369. void
  1370. Whale012(void)
  1371. {
  1372.     glBegin(GL_POLYGON);
  1373.     glNormal3fv(N058);
  1374.     glVertex3fv(P058);
  1375.     glNormal3fv(N059);
  1376.     glVertex3fv(P059);
  1377.     glNormal3fv(N067);
  1378.     glVertex3fv(P067);
  1379.     glNormal3fv(N066);
  1380.     glVertex3fv(P066);
  1381.     glEnd();
  1382.     glBegin(GL_POLYGON);
  1383.     glNormal3fv(N059);
  1384.     glVertex3fv(P059);
  1385.     glNormal3fv(N052);
  1386.     glVertex3fv(P052);
  1387.     glNormal3fv(N060);
  1388.     glVertex3fv(P060);
  1389.     glEnd();
  1390.     glBegin(GL_POLYGON);
  1391.     glNormal3fv(N059);
  1392.     glVertex3fv(P059);
  1393.     glNormal3fv(N060);
  1394.     glVertex3fv(P060);
  1395.     glNormal3fv(N067);
  1396.     glVertex3fv(P067);
  1397.     glEnd();
  1398.     glBegin(GL_POLYGON);
  1399.     glNormal3fv(N058);
  1400.     glVertex3fv(P058);
  1401.     glNormal3fv(N066);
  1402.     glVertex3fv(P066);
  1403.     glNormal3fv(N065);
  1404.     glVertex3fv(P065);
  1405.     glEnd();
  1406.     glBegin(GL_POLYGON);
  1407.     glNormal3fv(N058);
  1408.     glVertex3fv(P058);
  1409.     glNormal3fv(N065);
  1410.     glVertex3fv(P065);
  1411.     glNormal3fv(N057);
  1412.     glVertex3fv(P057);
  1413.     glEnd();
  1414.     glBegin(GL_POLYGON);
  1415.     glNormal3fv(N056);
  1416.     glVertex3fv(P056);
  1417.     glNormal3fv(N057);
  1418.     glVertex3fv(P057);
  1419.     glNormal3fv(N065);
  1420.     glVertex3fv(P065);
  1421.     glEnd();
  1422.     glBegin(GL_POLYGON);
  1423.     glNormal3fv(N056);
  1424.     glVertex3fv(P056);
  1425.     glNormal3fv(N065);
  1426.     glVertex3fv(P065);
  1427.     glNormal3fv(N006);
  1428.     glVertex3fv(P006);
  1429.     glEnd();
  1430.     glBegin(GL_POLYGON);
  1431.     glNormal3fv(N056);
  1432.     glVertex3fv(P056);
  1433.     glNormal3fv(N006);
  1434.     glVertex3fv(P006);
  1435.     glNormal3fv(N063);
  1436.     glVertex3fv(P063);
  1437.     glEnd();
  1438.     glBegin(GL_POLYGON);
  1439.     glNormal3fv(N056);
  1440.     glVertex3fv(P056);
  1441.     glNormal3fv(N063);
  1442.     glVertex3fv(P063);
  1443.     glNormal3fv(N055);
  1444.     glVertex3fv(P055);
  1445.     glEnd();
  1446.     glBegin(GL_POLYGON);
  1447.     glNormal3fv(N054);
  1448.     glVertex3fv(P054);
  1449.     glNormal3fv(N062);
  1450.     glVertex3fv(P062);
  1451.     glNormal3fv(N005);
  1452.     glVertex3fv(P005);
  1453.     glEnd();
  1454.     glBegin(GL_POLYGON);
  1455.     glNormal3fv(N054);
  1456.     glVertex3fv(P054);
  1457.     glNormal3fv(N005);
  1458.     glVertex3fv(P005);
  1459.     glNormal3fv(N053);
  1460.     glVertex3fv(P053);
  1461.     glEnd();
  1462.     glBegin(GL_POLYGON);
  1463.     glNormal3fv(N053);
  1464.     glVertex3fv(P053);
  1465.     glNormal3fv(N005);
  1466.     glVertex3fv(P005);
  1467.     glNormal3fv(N060);
  1468.     glVertex3fv(P060);
  1469.     glEnd();
  1470.     glBegin(GL_POLYGON);
  1471.     glNormal3fv(N053);
  1472.     glVertex3fv(P053);
  1473.     glNormal3fv(N060);
  1474.     glVertex3fv(P060);
  1475.     glNormal3fv(N052);
  1476.     glVertex3fv(P052);
  1477.     glEnd();
  1478. }
  1479.  
  1480. void
  1481. Whale013(void)
  1482. {
  1483.     glBegin(GL_POLYGON);
  1484.     glNormal3fv(N066);
  1485.     glVertex3fv(P066);
  1486.     glNormal3fv(N067);
  1487.     glVertex3fv(P067);
  1488.     glNormal3fv(N096);
  1489.     glVertex3fv(P096);
  1490.     glNormal3fv(N097);
  1491.     glVertex3fv(P097);
  1492.     glEnd();
  1493.     glBegin(GL_POLYGON);
  1494.     glNormal3fv(N097);
  1495.     glVertex3fv(P097);
  1496.     glNormal3fv(N096);
  1497.     glVertex3fv(P096);
  1498.     glNormal3fv(N098);
  1499.     glVertex3fv(P098);
  1500.     glNormal3fv(N099);
  1501.     glVertex3fv(P099);
  1502.     glEnd();
  1503.     glBegin(GL_POLYGON);
  1504.     glNormal3fv(N065);
  1505.     glVertex3fv(P065);
  1506.     glNormal3fv(N066);
  1507.     glVertex3fv(P066);
  1508.     glNormal3fv(N097);
  1509.     glVertex3fv(P097);
  1510.     glEnd();
  1511.     glBegin(GL_POLYGON);
  1512.     glNormal3fv(N067);
  1513.     glVertex3fv(P067);
  1514.     glNormal3fv(N060);
  1515.     glVertex3fv(P060);
  1516.     glNormal3fv(N096);
  1517.     glVertex3fv(P096);
  1518.     glEnd();
  1519.     glBegin(GL_POLYGON);
  1520.     glNormal3fv(N060);
  1521.     glVertex3fv(P060);
  1522.     glNormal3fv(N005);
  1523.     glVertex3fv(P005);
  1524.     glNormal3fv(N096);
  1525.     glVertex3fv(P096);
  1526.     glEnd();
  1527.     glBegin(GL_POLYGON);
  1528.     glNormal3fv(N096);
  1529.     glVertex3fv(P096);
  1530.     glNormal3fv(N005);
  1531.     glVertex3fv(P005);
  1532.     glNormal3fv(N098);
  1533.     glVertex3fv(P098);
  1534.     glEnd();
  1535.     glBegin(GL_POLYGON);
  1536.     glNormal3fv(N006);
  1537.     glVertex3fv(P006);
  1538.     glNormal3fv(N065);
  1539.     glVertex3fv(P065);
  1540.     glNormal3fv(N097);
  1541.     glVertex3fv(P097);
  1542.     glEnd();
  1543.     glBegin(GL_POLYGON);
  1544.     glNormal3fv(N006);
  1545.     glVertex3fv(P006);
  1546.     glNormal3fv(N097);
  1547.     glVertex3fv(P097);
  1548.     glNormal3fv(N099);
  1549.     glVertex3fv(P099);
  1550.     glEnd();
  1551.     glBegin(GL_POLYGON);
  1552.     glVertex3fv(P005);
  1553.     glVertex3fv(P006);
  1554.     glVertex3fv(P099);
  1555.     glVertex3fv(P098);
  1556.     glEnd();
  1557. }
  1558.  
  1559. void
  1560. Whale014(void)
  1561. {
  1562.     glBegin(GL_POLYGON);
  1563.     glNormal3fv(N062);
  1564.     glVertex3fv(P062);
  1565.     glNormal3fv(N004);
  1566.     glVertex3fv(P004);
  1567.     glNormal3fv(N005);
  1568.     glVertex3fv(P005);
  1569.     glEnd();
  1570.     glBegin(GL_POLYGON);
  1571.     glVertex3fv(P006);
  1572.     glVertex3fv(P005);
  1573.     glVertex3fv(P004);
  1574.     glVertex3fv(P008);
  1575.     glEnd();
  1576.     glBegin(GL_POLYGON);
  1577.     glNormal3fv(N063);
  1578.     glVertex3fv(P063);
  1579.     glNormal3fv(N006);
  1580.     glVertex3fv(P006);
  1581.     glNormal3fv(N002);
  1582.     glVertex3fv(P002);
  1583.     glEnd();
  1584.     glBegin(GL_POLYGON);
  1585.     glNormal3fv(N002);
  1586.     glVertex3fv(P002);
  1587.     glNormal3fv(N006);
  1588.     glVertex3fv(P006);
  1589.     glNormal3fv(N008);
  1590.     glVertex3fv(P008);
  1591.     glEnd();
  1592.     glBegin(GL_POLYGON);
  1593.     glNormal3fv(N002);
  1594.     glVertex3fv(P002);
  1595.     glNormal3fv(N008);
  1596.     glVertex3fv(P008);
  1597.     glNormal3fv(N004);
  1598.     glVertex3fv(P004);
  1599.     glEnd();
  1600.     glBegin(GL_POLYGON);
  1601.     glNormal3fv(N062);
  1602.     glVertex3fv(P062);
  1603.     glNormal3fv(N002);
  1604.     glVertex3fv(P002);
  1605.     glNormal3fv(N004);
  1606.     glVertex3fv(P004);
  1607.     glEnd();
  1608. }
  1609.  
  1610. void
  1611. Whale015(void)
  1612. {
  1613.     glBegin(GL_POLYGON);
  1614.     glNormal3fv(N055);
  1615.     glVertex3fv(P055);
  1616.     glNormal3fv(N003);
  1617.     glVertex3fv(P003);
  1618.     glNormal3fv(N054);
  1619.     glVertex3fv(P054);
  1620.     glEnd();
  1621.     glBegin(GL_POLYGON);
  1622.     glNormal3fv(N003);
  1623.     glVertex3fv(P003);
  1624.     glNormal3fv(N055);
  1625.     glVertex3fv(P055);
  1626.     glNormal3fv(N063);
  1627.     glVertex3fv(P063);
  1628.     glEnd();
  1629.     glBegin(GL_POLYGON);
  1630.     glNormal3fv(N003);
  1631.     glVertex3fv(P003);
  1632.     glNormal3fv(N063);
  1633.     glVertex3fv(P063);
  1634.     glNormal3fv(N100);
  1635.     glVertex3fv(P100);
  1636.     glEnd();
  1637.     glBegin(GL_POLYGON);
  1638.     glNormal3fv(N003);
  1639.     glVertex3fv(P003);
  1640.     glNormal3fv(N100);
  1641.     glVertex3fv(P100);
  1642.     glNormal3fv(N054);
  1643.     glVertex3fv(P054);
  1644.     glEnd();
  1645.     glBegin(GL_POLYGON);
  1646.     glNormal3fv(N054);
  1647.     glVertex3fv(P054);
  1648.     glNormal3fv(N100);
  1649.     glVertex3fv(P100);
  1650.     glNormal3fv(N062);
  1651.     glVertex3fv(P062);
  1652.     glEnd();
  1653.     glBegin(GL_POLYGON);
  1654.     glNormal3fv(N100);
  1655.     glVertex3fv(P100);
  1656.     glNormal3fv(N063);
  1657.     glVertex3fv(P063);
  1658.     glNormal3fv(N002);
  1659.     glVertex3fv(P002);
  1660.     glEnd();
  1661.     glBegin(GL_POLYGON);
  1662.     glNormal3fv(N100);
  1663.     glVertex3fv(P100);
  1664.     glNormal3fv(N002);
  1665.     glVertex3fv(P002);
  1666.     glNormal3fv(N062);
  1667.     glVertex3fv(P062);
  1668.     glEnd();
  1669. }
  1670.  
  1671. void
  1672. Whale016(void)
  1673. {
  1674.     glBegin(GL_POLYGON);
  1675.     glVertex3fv(P104);
  1676.     glVertex3fv(P105);
  1677.     glVertex3fv(P106);
  1678.     glEnd();
  1679.     glBegin(GL_POLYGON);
  1680.     glVertex3fv(P107);
  1681.     glVertex3fv(P108);
  1682.     glVertex3fv(P109);
  1683.     glEnd();
  1684.     glBegin(GL_POLYGON);
  1685.     glVertex3fv(P110);
  1686.     glVertex3fv(P111);
  1687.     glVertex3fv(P112);
  1688.     glVertex3fv(P113);
  1689.     glVertex3fv(P114);
  1690.     glVertex3fv(P115);
  1691.     glEnd();
  1692.     glBegin(GL_POLYGON);
  1693.     glVertex3fv(P116);
  1694.     glVertex3fv(P117);
  1695.     glVertex3fv(P118);
  1696.     glVertex3fv(P119);
  1697.     glVertex3fv(P120);
  1698.     glVertex3fv(P121);
  1699.     glEnd();
  1700. }
  1701.  
  1702. void
  1703. DrawWhale(fishRec * fish)
  1704. {
  1705.     float seg0, seg1, seg2, seg3, seg4, seg5, seg6, seg7;
  1706.     float pitch, thrash, chomp;
  1707.  
  1708.     fish->htail = (int) (fish->htail - (int) (5.0 * fish->v)) % 360;
  1709.  
  1710.     thrash = 70.0 * fish->v;
  1711.  
  1712.     seg0 = 1.5 * thrash * sin((fish->htail) * RRAD);
  1713.     seg1 = 2.5 * thrash * sin((fish->htail + 10.0) * RRAD);
  1714.     seg2 = 3.7 * thrash * sin((fish->htail + 15.0) * RRAD);
  1715.     seg3 = 4.8 * thrash * sin((fish->htail + 23.0) * RRAD);
  1716.     seg4 = 6.0 * thrash * sin((fish->htail + 28.0) * RRAD);
  1717.     seg5 = 6.5 * thrash * sin((fish->htail + 35.0) * RRAD);
  1718.     seg6 = 6.5 * thrash * sin((fish->htail + 40.0) * RRAD);
  1719.     seg7 = 6.5 * thrash * sin((fish->htail + 55.0) * RRAD);
  1720.  
  1721.     pitch = fish->v * sin((fish->htail - 160.0) * RRAD);
  1722.  
  1723.     chomp = 0.0;
  1724.     if (fish->v > 2.0) {
  1725.         chomp = -(fish->v - 2.0) * 200.0;
  1726.     }
  1727.     P012[1] = iP012[1] + seg5;
  1728.     P013[1] = iP013[1] + seg5;
  1729.     P014[1] = iP014[1] + seg5;
  1730.     P015[1] = iP015[1] + seg5;
  1731.     P016[1] = iP016[1] + seg5;
  1732.     P017[1] = iP017[1] + seg5;
  1733.     P018[1] = iP018[1] + seg5;
  1734.     P019[1] = iP019[1] + seg5;
  1735.  
  1736.     P020[1] = iP020[1] + seg4;
  1737.     P021[1] = iP021[1] + seg4;
  1738.     P022[1] = iP022[1] + seg4;
  1739.     P023[1] = iP023[1] + seg4;
  1740.     P024[1] = iP024[1] + seg4;
  1741.     P025[1] = iP025[1] + seg4;
  1742.     P026[1] = iP026[1] + seg4;
  1743.     P027[1] = iP027[1] + seg4;
  1744.  
  1745.     P028[1] = iP028[1] + seg2;
  1746.     P029[1] = iP029[1] + seg2;
  1747.     P030[1] = iP030[1] + seg2;
  1748.     P031[1] = iP031[1] + seg2;
  1749.     P032[1] = iP032[1] + seg2;
  1750.     P033[1] = iP033[1] + seg2;
  1751.     P034[1] = iP034[1] + seg2;
  1752.     P035[1] = iP035[1] + seg2;
  1753.  
  1754.     P036[1] = iP036[1] + seg1;
  1755.     P037[1] = iP037[1] + seg1;
  1756.     P038[1] = iP038[1] + seg1;
  1757.     P039[1] = iP039[1] + seg1;
  1758.     P040[1] = iP040[1] + seg1;
  1759.     P041[1] = iP041[1] + seg1;
  1760.     P042[1] = iP042[1] + seg1;
  1761.     P043[1] = iP043[1] + seg1;
  1762.  
  1763.     P044[1] = iP044[1] + seg0;
  1764.     P045[1] = iP045[1] + seg0;
  1765.     P046[1] = iP046[1] + seg0;
  1766.     P047[1] = iP047[1] + seg0;
  1767.     P048[1] = iP048[1] + seg0;
  1768.     P049[1] = iP049[1] + seg0;
  1769.     P050[1] = iP050[1] + seg0;
  1770.     P051[1] = iP051[1] + seg0;
  1771.  
  1772.     P009[1] = iP009[1] + seg6;
  1773.     P010[1] = iP010[1] + seg6;
  1774.     P075[1] = iP075[1] + seg6;
  1775.     P076[1] = iP076[1] + seg6;
  1776.  
  1777.     P001[1] = iP001[1] + seg7;
  1778.     P011[1] = iP011[1] + seg7;
  1779.     P068[1] = iP068[1] + seg7;
  1780.     P069[1] = iP069[1] + seg7;
  1781.     P070[1] = iP070[1] + seg7;
  1782.     P071[1] = iP071[1] + seg7;
  1783.     P072[1] = iP072[1] + seg7;
  1784.     P073[1] = iP073[1] + seg7;
  1785.     P074[1] = iP074[1] + seg7;
  1786.  
  1787.     P091[1] = iP091[1] + seg3 * 1.1;
  1788.     P092[1] = iP092[1] + seg3;
  1789.     P093[1] = iP093[1] + seg3;
  1790.     P094[1] = iP094[1] + seg3;
  1791.     P095[1] = iP095[1] + seg3 * 0.9;
  1792.  
  1793.     P099[1] = iP099[1] + chomp;
  1794.     P098[1] = iP098[1] + chomp;
  1795.     P064[1] = iP064[1] + chomp;
  1796.     P061[1] = iP061[1] + chomp;
  1797.     P097[1] = iP097[1] + chomp;
  1798.     P096[1] = iP096[1] + chomp;
  1799.  
  1800.     glPushMatrix();
  1801.  
  1802.     glRotatef(pitch, 1.0, 0.0, 0.0);
  1803.  
  1804.     glTranslatef(0.0, 0.0, 8000.0);
  1805.  
  1806.     glRotatef(180.0, 0.0, 1.0, 0.0);
  1807.  
  1808.     glScalef(3.0, 3.0, 3.0);
  1809.  
  1810.     glEnable(GL_CULL_FACE);
  1811.  
  1812.     Whale001();
  1813.     Whale002();
  1814.     Whale003();
  1815.     Whale004();
  1816.     Whale005();
  1817.     Whale006();
  1818.     Whale007();
  1819.     Whale008();
  1820.     Whale009();
  1821.     Whale010();
  1822.     Whale011();
  1823.     Whale012();
  1824.     Whale013();
  1825.     Whale014();
  1826.     Whale015();
  1827.     Whale016();
  1828.  
  1829.     glDisable(GL_CULL_FACE);
  1830.  
  1831.     glPopMatrix();
  1832. }
  1833.