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