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