#
# (c) Copyright 1993, 1994, Silicon Graphics, Inc.
# ALL RIGHTS RESERVED
# Permission to use, copy, modify, and distribute this software for
# any purpose and without fee is hereby granted, provided that the above
# copyright notice appear in all copies and that both the copyright notice
# and this permission notice appear in supporting documentation, and that
# the name of Silicon Graphics, Inc. not be used in advertising
# or publicity pertaining to distribution of the software without specific,
# written prior permission.
#
# THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
# AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
# INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
# FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT SHALL SILICON
# GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
# SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
# KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
# LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
# THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC.  HAS BEEN
# ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
# ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
# POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
#
# US Government Users Restricted Rights
# Use, duplication, or disclosure by the Government is subject to
# restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
# (c)(1)(ii) of the Rights in Technical Data and Computer Software
# clause at DFARS 252.227-7013 and/or in similar or successor
# clauses in the FAR or the DOD or NASA FAR Supplement.
# Unpublished-- rights reserved under the copyright laws of the
# United States.  Contractor/manufacturer is Silicon Graphics,
# Inc., 2011 N.  Shoreline Blvd., Mountain View, CA 94039-7311.
#
# OpenGL(TM) is a trademark of Silicon Graphics, Inc.
#

set sN002 {0.000077  -0.020611  0.999788}
set sN003 {0.961425  0.258729  -0.093390}
set sN004 {0.510811  -0.769633  -0.383063}
set sN005 {0.400123  0.855734  -0.328055}
set sN006 {-0.770715  0.610204  -0.183440}
set sN007 {-0.915597  -0.373345  -0.149316}
set sN008 {-0.972788  0.208921  -0.100179}
set sN009 {-0.939713  -0.312268  -0.139383}
set sN010 {-0.624138  -0.741047  -0.247589}
set sN011 {0.591434  -0.768401  -0.244471}
set sN012 {0.935152  -0.328495  -0.132598}
set sN013 {0.997102  0.074243  -0.016593}
set sN014 {0.969995  0.241712  -0.026186}
set sN015 {0.844539  0.502628  -0.184714}
set sN016 {-0.906608  0.386308  -0.169787}
set sN017 {-0.970016  0.241698  -0.025516}
set sN018 {-0.998652  0.050493  -0.012045}
set sN019 {-0.942685  -0.333051  -0.020556}
set sN020 {-0.660944  -0.750276  0.015480}
set sN021 {0.503549  -0.862908  -0.042749}
set sN022 {0.953202  -0.302092  -0.012089}
set sN023 {0.998738  0.023574  0.044344}
set sN024 {0.979297  0.193272  0.060202}
set sN025 {0.798300  0.464885  0.382883}
set sN026 {-0.756590  0.452403  0.472126}
set sN027 {-0.953855  0.293003  0.065651}
set sN028 {-0.998033  0.040292  0.048028}
set sN029 {-0.977079  -0.204288  0.059858}
set sN030 {-0.729117  -0.675304  0.111140}
set sN031 {0.598361  -0.792753  0.116221}
set sN032 {0.965192  -0.252991  0.066332}
set sN033 {0.998201  -0.002790  0.059892}
set sN034 {0.978657  0.193135  0.070207}
set sN035 {0.718815  0.680392  0.142733}
set sN036 {-0.383096  0.906212  0.178936}
set sN037 {-0.952831  0.292590  0.080647}
set sN038 {-0.997680  0.032417  0.059861}
set sN039 {-0.982629  -0.169881  0.074700}
set sN040 {-0.695424  -0.703466  0.146700}
set sN041 {0.359323  -0.915531  0.180805}
set sN042 {0.943356  -0.319387  0.089842}
set sN043 {0.998272  -0.032435  0.048993}
set sN044 {0.978997  0.193205  0.065084}
set sN045 {0.872144  0.470094  -0.135565}
set sN046 {-0.664282  0.737945  -0.119027}
set sN047 {-0.954508  0.288570  0.075107}
set sN048 {-0.998273  0.032406  0.048993}
set sN049 {-0.979908  -0.193579  0.048038}
set sN050 {-0.858736  -0.507202  -0.072938}
set sN051 {0.643545  -0.763887  -0.048237}
set sN052 {0.955580  -0.288954  0.058068}
set sN058 {0.000050  0.793007  -0.609213}
set sN059 {0.913510  0.235418  -0.331779}
set sN060 {-0.807970  0.495000  -0.319625}
set sN061 {0.000000  0.784687  -0.619892}
set sN062 {0.000000  -1.000000  0.000000}
set sN063 {0.000000  1.000000  0.000000}
set sN064 {0.000000  1.000000  0.000000}
set sN065 {0.000000  1.000000  0.000000}
set sN066 {-0.055784  0.257059  0.964784}
set sN069 {-0.000505  -0.929775  -0.368127}
set sN070 {0.000000  1.000000  0.000000}
set sP002 {0.00  -36.59  5687.72}
set sP003 {90.00  114.73  724.38}
set sP004 {58.24  -146.84  262.35}
set sP005 {27.81  231.52  510.43}
set sP006 {-27.81  230.43  509.76}
set sP007 {-46.09  -146.83  265.84}
set sP008 {-90.00  103.84  718.53}
set sP009 {-131.10  -165.92  834.85}
set sP010 {-27.81  -285.31  500.00}
set sP011 {27.81  -285.32  500.00}
set sP012 {147.96  -170.89  845.50}
set sP013 {180.00  0.00  2000.00}
set sP014 {145.62  352.67  2000.00}
set sP015 {55.62  570.63  2000.00}
set sP016 {-55.62  570.64  2000.00}
set sP017 {-145.62  352.68  2000.00}
set sP018 {-180.00  0.01  2000.00}
set sP019 {-178.20  -352.66  2001.61}
set sP020 {-55.63  -570.63  2000.00}
set sP021 {55.62  -570.64  2000.00}
set sP022 {179.91  -352.69  1998.39}
set sP023 {150.00  0.00  3000.00}
set sP024 {121.35  293.89  3000.00}
set sP025 {46.35  502.93  2883.09}
set sP026 {-46.35  497.45  2877.24}
set sP027 {-121.35  293.90  3000.00}
set sP028 {-150.00  0.00  3000.00}
set sP029 {-152.21  -304.84  2858.68}
set sP030 {-46.36  -475.52  3000.00}
set sP031 {46.35  -475.53  3000.00}
set sP032 {155.64  -304.87  2863.50}
set sP033 {90.00  0.00  4000.00}
set sP034 {72.81  176.33  4000.00}
set sP035 {27.81  285.32  4000.00}
set sP036 {-27.81  285.32  4000.00}
set sP037 {-72.81  176.34  4000.00}
set sP038 {-90.00  0.00  4000.00}
set sP039 {-72.81  -176.33  4000.00}
set sP040 {-27.81  -285.31  4000.00}
set sP041 {27.81  -285.32  4000.00}
set sP042 {72.81  -176.34  4000.00}
set sP043 {30.00  0.00  5000.00}
set sP044 {24.27  58.78  5000.00}
set sP045 {9.27  95.11  5000.00}
set sP046 {-9.27  95.11  5000.00}
set sP047 {-24.27  58.78  5000.00}
set sP048 {-30.00  0.00  5000.00}
set sP049 {-24.27  -58.78  5000.00}
set sP050 {-9.27  -95.10  5000.00}
set sP051 {9.27  -95.11  5000.00}
set sP052 {24.27  -58.78  5000.00}
set sP058 {0.00  1212.72  2703.08}
set sP059 {50.36  0.00  108.14}
set sP060 {-22.18  0.00  108.14}
set sP061 {0.00  1181.61  6344.65}
set sP062 {516.45  -887.08  2535.45}
set sP063 {-545.69  -879.31  2555.63}
set sP064 {618.89  -1005.64  2988.32}
set sP065 {-635.37  -1014.79  2938.68}
set sP066 {0.00  1374.43  3064.18}
set sP069 {0.00  -418.25  5765.04}
set sP070 {0.00  1266.91  6629.60}
set sP071 {-139.12  -124.96  997.98}
set sP072 {-139.24  -110.18  1020.68}
set sP073 {-137.33  -94.52  1022.63}
set sP074 {-137.03  -79.91  996.89}
set sP075 {-135.21  -91.48  969.14}
set sP076 {-135.39  -110.87  968.76}
set sP077 {150.23  -78.44  995.53}
set sP078 {152.79  -92.76  1018.46}
set sP079 {154.19  -110.20  1020.55}
set sP080 {151.33  -124.15  993.77}
set sP081 {150.49  -111.19  969.86}
set sP082 {150.79  -92.41  969.70}
set isP002 {0.00  -36.59  5687.72}
set isP004 {58.24  -146.84  262.35}
set isP007 {-46.09  -146.83  265.84}
set isP010 {-27.81  -285.31  500.00}
set isP011 {27.81  -285.32  500.00}
set isP023 {150.00  0.00  3000.00}
set isP024 {121.35  293.89  3000.00}
set isP025 {46.35  502.93  2883.09}
set isP026 {-46.35  497.45  2877.24}
set isP027 {-121.35  293.90  3000.00}
set isP028 {-150.00  0.00  3000.00}
set isP029 {-121.35  -304.84  2853.86}
set isP030 {-46.36  -475.52  3000.00}
set isP031 {46.35  -475.53  3000.00}
set isP032 {121.35  -304.87  2853.86}
set isP033 {90.00  0.00  4000.00}
set isP034 {72.81  176.33  4000.00}
set isP035 {27.81  285.32  4000.00}
set isP036 {-27.81  285.32  4000.00}
set isP037 {-72.81  176.34  4000.00}
set isP038 {-90.00  0.00  4000.00}
set isP039 {-72.81  -176.33  4000.00}
set isP040 {-27.81  -285.31  4000.00}
set isP041 {27.81  -285.32  4000.00}
set isP042 {72.81  -176.34  4000.00}
set isP043 {30.00  0.00  5000.00}
set isP044 {24.27  58.78  5000.00}
set isP045 {9.27  95.11  5000.00}
set isP046 {-9.27  95.11  5000.00}
set isP047 {-24.27  58.78  5000.00}
set isP048 {-30.00  0.00  5000.00}
set isP049 {-24.27  -58.78  5000.00}
set isP050 {-9.27  -95.10  5000.00}
set isP051 {9.27  -95.11  5000.00}
set isP052 {24.27  -58.78  5000.00}
set isP061 {0.00  1181.61  6344.65}
set isP069 {0.00  -418.25  5765.04}
set isP070 {0.00  1266.91  6629.60}

proc Fish001 {} {
    glBegin $::GL_POLYGON
    glNormal3fv $::sN005
    glVertex3fv $::sP005
    glNormal3fv $::sN059
    glVertex3fv $::sP059
    glNormal3fv $::sN060
    glVertex3fv $::sP060
    glNormal3fv $::sN006
    glVertex3fv $::sP006
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN015
    glVertex3fv $::sP015
    glNormal3fv $::sN005
    glVertex3fv $::sP005
    glNormal3fv $::sN006
    glVertex3fv $::sP006
    glNormal3fv $::sN016
    glVertex3fv $::sP016
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN006
    glVertex3fv $::sP006
    glNormal3fv $::sN060
    glVertex3fv $::sP060
    glNormal3fv $::sN008
    glVertex3fv $::sP008
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN016
    glVertex3fv $::sP016
    glNormal3fv $::sN006
    glVertex3fv $::sP006
    glNormal3fv $::sN008
    glVertex3fv $::sP008
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN016
    glVertex3fv $::sP016
    glNormal3fv $::sN008
    glVertex3fv $::sP008
    glNormal3fv $::sN017
    glVertex3fv $::sP017
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN017
    glVertex3fv $::sP017
    glNormal3fv $::sN008
    glVertex3fv $::sP008
    glNormal3fv $::sN018
    glVertex3fv $::sP018
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN008
    glVertex3fv $::sP008
    glNormal3fv $::sN009
    glVertex3fv $::sP009
    glNormal3fv $::sN018
    glVertex3fv $::sP018
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN008
    glVertex3fv $::sP008
    glNormal3fv $::sN060
    glVertex3fv $::sP060
    glNormal3fv $::sN009
    glVertex3fv $::sP009
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN007
    glVertex3fv $::sP007
    glNormal3fv $::sN010
    glVertex3fv $::sP010
    glNormal3fv $::sN009
    glVertex3fv $::sP009
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN009
    glVertex3fv $::sP009
    glNormal3fv $::sN019
    glVertex3fv $::sP019
    glNormal3fv $::sN018
    glVertex3fv $::sP018
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN009
    glVertex3fv $::sP009
    glNormal3fv $::sN010
    glVertex3fv $::sP010
    glNormal3fv $::sN019
    glVertex3fv $::sP019
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN010
    glVertex3fv $::sP010
    glNormal3fv $::sN020
    glVertex3fv $::sP020
    glNormal3fv $::sN019
    glVertex3fv $::sP019
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN010
    glVertex3fv $::sP010
    glNormal3fv $::sN011
    glVertex3fv $::sP011
    glNormal3fv $::sN021
    glVertex3fv $::sP021
    glNormal3fv $::sN020
    glVertex3fv $::sP020
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN004
    glVertex3fv $::sP004
    glNormal3fv $::sN011
    glVertex3fv $::sP011
    glNormal3fv $::sN010
    glVertex3fv $::sP010
    glNormal3fv $::sN007
    glVertex3fv $::sP007
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN004
    glVertex3fv $::sP004
    glNormal3fv $::sN012
    glVertex3fv $::sP012
    glNormal3fv $::sN011
    glVertex3fv $::sP011
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN012
    glVertex3fv $::sP012
    glNormal3fv $::sN022
    glVertex3fv $::sP022
    glNormal3fv $::sN011
    glVertex3fv $::sP011
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN011
    glVertex3fv $::sP011
    glNormal3fv $::sN022
    glVertex3fv $::sP022
    glNormal3fv $::sN021
    glVertex3fv $::sP021
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN059
    glVertex3fv $::sP059
    glNormal3fv $::sN005
    glVertex3fv $::sP005
    glNormal3fv $::sN015
    glVertex3fv $::sP015
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN015
    glVertex3fv $::sP015
    glNormal3fv $::sN014
    glVertex3fv $::sP014
    glNormal3fv $::sN003
    glVertex3fv $::sP003
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN015
    glVertex3fv $::sP015
    glNormal3fv $::sN003
    glVertex3fv $::sP003
    glNormal3fv $::sN059
    glVertex3fv $::sP059
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN014
    glVertex3fv $::sP014
    glNormal3fv $::sN013
    glVertex3fv $::sP013
    glNormal3fv $::sN003
    glVertex3fv $::sP003
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN003
    glVertex3fv $::sP003
    glNormal3fv $::sN012
    glVertex3fv $::sP012
    glNormal3fv $::sN059
    glVertex3fv $::sP059
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN013
    glVertex3fv $::sP013
    glNormal3fv $::sN012
    glVertex3fv $::sP012
    glNormal3fv $::sN003
    glVertex3fv $::sP003
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN013
    glVertex3fv $::sP013
    glNormal3fv $::sN022
    glVertex3fv $::sP022
    glNormal3fv $::sN012
    glVertex3fv $::sP012
    glEnd
    glBegin $::GL_POLYGON
    glVertex3fv $::sP071
    glVertex3fv $::sP072
    glVertex3fv $::sP073
    glVertex3fv $::sP074
    glVertex3fv $::sP075
    glVertex3fv $::sP076
    glEnd
    glBegin $::GL_POLYGON
    glVertex3fv $::sP077
    glVertex3fv $::sP078
    glVertex3fv $::sP079
    glVertex3fv $::sP080
    glVertex3fv $::sP081
    glVertex3fv $::sP082
    glEnd
}

proc Fish002 {} {
    glBegin $::GL_POLYGON
    glNormal3fv $::sN013
    glVertex3fv $::sP013
    glNormal3fv $::sN014
    glVertex3fv $::sP014
    glNormal3fv $::sN024
    glVertex3fv $::sP024
    glNormal3fv $::sN023
    glVertex3fv $::sP023
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN014
    glVertex3fv $::sP014
    glNormal3fv $::sN015
    glVertex3fv $::sP015
    glNormal3fv $::sN025
    glVertex3fv $::sP025
    glNormal3fv $::sN024
    glVertex3fv $::sP024
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN016
    glVertex3fv $::sP016
    glNormal3fv $::sN017
    glVertex3fv $::sP017
    glNormal3fv $::sN027
    glVertex3fv $::sP027
    glNormal3fv $::sN026
    glVertex3fv $::sP026
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN017
    glVertex3fv $::sP017
    glNormal3fv $::sN018
    glVertex3fv $::sP018
    glNormal3fv $::sN028
    glVertex3fv $::sP028
    glNormal3fv $::sN027
    glVertex3fv $::sP027
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN020
    glVertex3fv $::sP020
    glNormal3fv $::sN021
    glVertex3fv $::sP021
    glNormal3fv $::sN031
    glVertex3fv $::sP031
    glNormal3fv $::sN030
    glVertex3fv $::sP030
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN013
    glVertex3fv $::sP013
    glNormal3fv $::sN023
    glVertex3fv $::sP023
    glNormal3fv $::sN022
    glVertex3fv $::sP022
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN022
    glVertex3fv $::sP022
    glNormal3fv $::sN023
    glVertex3fv $::sP023
    glNormal3fv $::sN032
    glVertex3fv $::sP032
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN022
    glVertex3fv $::sP022
    glNormal3fv $::sN032
    glVertex3fv $::sP032
    glNormal3fv $::sN031
    glVertex3fv $::sP031
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN022
    glVertex3fv $::sP022
    glNormal3fv $::sN031
    glVertex3fv $::sP031
    glNormal3fv $::sN021
    glVertex3fv $::sP021
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN018
    glVertex3fv $::sP018
    glNormal3fv $::sN019
    glVertex3fv $::sP019
    glNormal3fv $::sN029
    glVertex3fv $::sP029
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN018
    glVertex3fv $::sP018
    glNormal3fv $::sN029
    glVertex3fv $::sP029
    glNormal3fv $::sN028
    glVertex3fv $::sP028
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN019
    glVertex3fv $::sP019
    glNormal3fv $::sN020
    glVertex3fv $::sP020
    glNormal3fv $::sN030
    glVertex3fv $::sP030
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN019
    glVertex3fv $::sP019
    glNormal3fv $::sN030
    glVertex3fv $::sP030
    glNormal3fv $::sN029
    glVertex3fv $::sP029
    glEnd
}

proc Fish003 {} {
    glBegin $::GL_POLYGON
    glNormal3fv $::sN032
    glVertex3fv $::sP032
    glNormal3fv $::sN023
    glVertex3fv $::sP023
    glNormal3fv $::sN033
    glVertex3fv $::sP033
    glNormal3fv $::sN042
    glVertex3fv $::sP042
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN031
    glVertex3fv $::sP031
    glNormal3fv $::sN032
    glVertex3fv $::sP032
    glNormal3fv $::sN042
    glVertex3fv $::sP042
    glNormal3fv $::sN041
    glVertex3fv $::sP041
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN023
    glVertex3fv $::sP023
    glNormal3fv $::sN024
    glVertex3fv $::sP024
    glNormal3fv $::sN034
    glVertex3fv $::sP034
    glNormal3fv $::sN033
    glVertex3fv $::sP033
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN024
    glVertex3fv $::sP024
    glNormal3fv $::sN025
    glVertex3fv $::sP025
    glNormal3fv $::sN035
    glVertex3fv $::sP035
    glNormal3fv $::sN034
    glVertex3fv $::sP034
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN030
    glVertex3fv $::sP030
    glNormal3fv $::sN031
    glVertex3fv $::sP031
    glNormal3fv $::sN041
    glVertex3fv $::sP041
    glNormal3fv $::sN040
    glVertex3fv $::sP040
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN025
    glVertex3fv $::sP025
    glNormal3fv $::sN026
    glVertex3fv $::sP026
    glNormal3fv $::sN036
    glVertex3fv $::sP036
    glNormal3fv $::sN035
    glVertex3fv $::sP035
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN026
    glVertex3fv $::sP026
    glNormal3fv $::sN027
    glVertex3fv $::sP027
    glNormal3fv $::sN037
    glVertex3fv $::sP037
    glNormal3fv $::sN036
    glVertex3fv $::sP036
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN027
    glVertex3fv $::sP027
    glNormal3fv $::sN028
    glVertex3fv $::sP028
    glNormal3fv $::sN038
    glVertex3fv $::sP038
    glNormal3fv $::sN037
    glVertex3fv $::sP037
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN028
    glVertex3fv $::sP028
    glNormal3fv $::sN029
    glVertex3fv $::sP029
    glNormal3fv $::sN039
    glVertex3fv $::sP039
    glNormal3fv $::sN038
    glVertex3fv $::sP038
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN029
    glVertex3fv $::sP029
    glNormal3fv $::sN030
    glVertex3fv $::sP030
    glNormal3fv $::sN040
    glVertex3fv $::sP040
    glNormal3fv $::sN039
    glVertex3fv $::sP039
    glEnd
}

proc Fish004 {} {
    glBegin $::GL_POLYGON
    glNormal3fv $::sN040
    glVertex3fv $::sP040
    glNormal3fv $::sN041
    glVertex3fv $::sP041
    glNormal3fv $::sN051
    glVertex3fv $::sP051
    glNormal3fv $::sN050
    glVertex3fv $::sP050
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN041
    glVertex3fv $::sP041
    glNormal3fv $::sN042
    glVertex3fv $::sP042
    glNormal3fv $::sN052
    glVertex3fv $::sP052
    glNormal3fv $::sN051
    glVertex3fv $::sP051
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN042
    glVertex3fv $::sP042
    glNormal3fv $::sN033
    glVertex3fv $::sP033
    glNormal3fv $::sN043
    glVertex3fv $::sP043
    glNormal3fv $::sN052
    glVertex3fv $::sP052
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN033
    glVertex3fv $::sP033
    glNormal3fv $::sN034
    glVertex3fv $::sP034
    glNormal3fv $::sN044
    glVertex3fv $::sP044
    glNormal3fv $::sN043
    glVertex3fv $::sP043
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN034
    glVertex3fv $::sP034
    glNormal3fv $::sN035
    glVertex3fv $::sP035
    glNormal3fv $::sN045
    glVertex3fv $::sP045
    glNormal3fv $::sN044
    glVertex3fv $::sP044
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN035
    glVertex3fv $::sP035
    glNormal3fv $::sN036
    glVertex3fv $::sP036
    glNormal3fv $::sN046
    glVertex3fv $::sP046
    glNormal3fv $::sN045
    glVertex3fv $::sP045
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN036
    glVertex3fv $::sP036
    glNormal3fv $::sN037
    glVertex3fv $::sP037
    glNormal3fv $::sN047
    glVertex3fv $::sP047
    glNormal3fv $::sN046
    glVertex3fv $::sP046
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN037
    glVertex3fv $::sP037
    glNormal3fv $::sN038
    glVertex3fv $::sP038
    glNormal3fv $::sN048
    glVertex3fv $::sP048
    glNormal3fv $::sN047
    glVertex3fv $::sP047
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN038
    glVertex3fv $::sP038
    glNormal3fv $::sN039
    glVertex3fv $::sP039
    glNormal3fv $::sN049
    glVertex3fv $::sP049
    glNormal3fv $::sN048
    glVertex3fv $::sP048
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN039
    glVertex3fv $::sP039
    glNormal3fv $::sN040
    glVertex3fv $::sP040
    glNormal3fv $::sN050
    glVertex3fv $::sP050
    glNormal3fv $::sN049
    glVertex3fv $::sP049
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN070
    glVertex3fv $::sP070
    glNormal3fv $::sN061
    glVertex3fv $::sP061
    glNormal3fv $::sN002
    glVertex3fv $::sP002
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN061
    glVertex3fv $::sP061
    glNormal3fv $::sN046
    glVertex3fv $::sP046
    glNormal3fv $::sN002
    glVertex3fv $::sP002
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN045
    glVertex3fv $::sP045
    glNormal3fv $::sN046
    glVertex3fv $::sP046
    glNormal3fv $::sN061
    glVertex3fv $::sP061
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN002
    glVertex3fv $::sP002
    glNormal3fv $::sN061
    glVertex3fv $::sP061
    glNormal3fv $::sN070
    glVertex3fv $::sP070
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN002
    glVertex3fv $::sP002
    glNormal3fv $::sN045
    glVertex3fv $::sP045
    glNormal3fv $::sN061
    glVertex3fv $::sP061
    glEnd
}

proc Fish005 {} {
    glBegin $::GL_POLYGON
    glNormal3fv $::sN002
    glVertex3fv $::sP002
    glNormal3fv $::sN044
    glVertex3fv $::sP044
    glNormal3fv $::sN045
    glVertex3fv $::sP045
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN002
    glVertex3fv $::sP002
    glNormal3fv $::sN043
    glVertex3fv $::sP043
    glNormal3fv $::sN044
    glVertex3fv $::sP044
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN002
    glVertex3fv $::sP002
    glNormal3fv $::sN052
    glVertex3fv $::sP052
    glNormal3fv $::sN043
    glVertex3fv $::sP043
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN002
    glVertex3fv $::sP002
    glNormal3fv $::sN051
    glVertex3fv $::sP051
    glNormal3fv $::sN052
    glVertex3fv $::sP052
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN002
    glVertex3fv $::sP002
    glNormal3fv $::sN046
    glVertex3fv $::sP046
    glNormal3fv $::sN047
    glVertex3fv $::sP047
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN002
    glVertex3fv $::sP002
    glNormal3fv $::sN047
    glVertex3fv $::sP047
    glNormal3fv $::sN048
    glVertex3fv $::sP048
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN002
    glVertex3fv $::sP002
    glNormal3fv $::sN048
    glVertex3fv $::sP048
    glNormal3fv $::sN049
    glVertex3fv $::sP049
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN002
    glVertex3fv $::sP002
    glNormal3fv $::sN049
    glVertex3fv $::sP049
    glNormal3fv $::sN050
    glVertex3fv $::sP050
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN050
    glVertex3fv $::sP050
    glNormal3fv $::sN051
    glVertex3fv $::sP051
    glNormal3fv $::sN069
    glVertex3fv $::sP069
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN051
    glVertex3fv $::sP051
    glNormal3fv $::sN002
    glVertex3fv $::sP002
    glNormal3fv $::sN069
    glVertex3fv $::sP069
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN050
    glVertex3fv $::sP050
    glNormal3fv $::sN069
    glVertex3fv $::sP069
    glNormal3fv $::sN002
    glVertex3fv $::sP002
    glEnd
}

proc Fish006 {} {
    glBegin $::GL_POLYGON
    glNormal3fv $::sN066
    glVertex3fv $::sP066
    glNormal3fv $::sN016
    glVertex3fv $::sP016
    glNormal3fv $::sN026
    glVertex3fv $::sP026
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN015
    glVertex3fv $::sP015
    glNormal3fv $::sN066
    glVertex3fv $::sP066
    glNormal3fv $::sN025
    glVertex3fv $::sP025
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN025
    glVertex3fv $::sP025
    glNormal3fv $::sN066
    glVertex3fv $::sP066
    glNormal3fv $::sN026
    glVertex3fv $::sP026
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN066
    glVertex3fv $::sP066
    glNormal3fv $::sN058
    glVertex3fv $::sP058
    glNormal3fv $::sN016
    glVertex3fv $::sP016
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN015
    glVertex3fv $::sP015
    glNormal3fv $::sN058
    glVertex3fv $::sP058
    glNormal3fv $::sN066
    glVertex3fv $::sP066
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN058
    glVertex3fv $::sP058
    glNormal3fv $::sN015
    glVertex3fv $::sP015
    glNormal3fv $::sN016
    glVertex3fv $::sP016
    glEnd
}

proc Fish007 {} {
    glBegin $::GL_POLYGON
    glNormal3fv $::sN062
    glVertex3fv $::sP062
    glNormal3fv $::sN022
    glVertex3fv $::sP022
    glNormal3fv $::sN032
    glVertex3fv $::sP032
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN062
    glVertex3fv $::sP062
    glNormal3fv $::sN032
    glVertex3fv $::sP032
    glNormal3fv $::sN064
    glVertex3fv $::sP064
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN022
    glVertex3fv $::sP022
    glNormal3fv $::sN062
    glVertex3fv $::sP062
    glNormal3fv $::sN032
    glVertex3fv $::sP032
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN062
    glVertex3fv $::sP062
    glNormal3fv $::sN064
    glVertex3fv $::sP064
    glNormal3fv $::sN032
    glVertex3fv $::sP032
    glEnd
}

proc Fish008 {} {
    glBegin $::GL_POLYGON
    glNormal3fv $::sN063
    glVertex3fv $::sP063
    glNormal3fv $::sN019
    glVertex3fv $::sP019
    glNormal3fv $::sN029
    glVertex3fv $::sP029
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN019
    glVertex3fv $::sP019
    glNormal3fv $::sN063
    glVertex3fv $::sP063
    glNormal3fv $::sN029
    glVertex3fv $::sP029
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN063
    glVertex3fv $::sP063
    glNormal3fv $::sN029
    glVertex3fv $::sP029
    glNormal3fv $::sN065
    glVertex3fv $::sP065
    glEnd
    glBegin $::GL_POLYGON
    glNormal3fv $::sN063
    glVertex3fv $::sP063
    glNormal3fv $::sN065
    glVertex3fv $::sP065
    glNormal3fv $::sN029
    glVertex3fv $::sP029
    glEnd
}

proc Fish009 {} {
    glBegin $::GL_POLYGON
    glVertex3fv $::sP059
    glVertex3fv $::sP012
    glVertex3fv $::sP009
    glVertex3fv $::sP060
    glEnd
    glBegin $::GL_POLYGON
    glVertex3fv $::sP012
    glVertex3fv $::sP004
    glVertex3fv $::sP007
    glVertex3fv $::sP009
    glEnd
}

proc Fish_1 {} {
    Fish004
    Fish005
    Fish003
    Fish007
    Fish006
    Fish002
    Fish008
    Fish009
    Fish001
}

proc Fish_2 {} {
    Fish005
    Fish004
    Fish003
    Fish008
    Fish006
    Fish002
    Fish007
    Fish009
    Fish001
}

proc Fish_3 {} {
    Fish005
    Fish004
    Fish007
    Fish003
    Fish002
    Fish008
    Fish009
    Fish001
    Fish006
}

proc Fish_4 {} {
    Fish005
    Fish004
    Fish008
    Fish003
    Fish002
    Fish007
    Fish009
    Fish001
    Fish006
}

proc Fish_5 {} {
    Fish009
    Fish006
    Fish007
    Fish001
    Fish002
    Fish003
    Fish008
    Fish004
    Fish005
}

proc Fish_6 {} {
    Fish009
    Fish006
    Fish008
    Fish001
    Fish002
    Fish007
    Fish003
    Fish004
    Fish005
}

proc Fish_7 {} {
    Fish009
    Fish001
    Fish007
    Fish005
    Fish002
    Fish008
    Fish003
    Fish004
    Fish006
}

proc Fish_8 {} {
    Fish009
    Fish008
    Fish001
    Fish002
    Fish007
    Fish003
    Fish005
    Fish004
    Fish006
}

proc DrawShark { fishArr ind } {
    upvar 1 $fishArr fish

    set mat [tcl3dVector GLfloat 16]

    set fish($ind,htail) [expr double (int($fish($ind,htail) - int(5.0 * $fish($ind,v))) % 360)]

    set thrash [expr 50.0 * $fish($ind,v)]

    set seg1 [expr 0.6 * $thrash * sin($fish($ind,htail) * $::RRAD)]
    set seg2 [expr 1.8 * $thrash * sin(($fish($ind,htail) + 45.0) * $::RRAD)]
    set seg3 [expr 3.0 * $thrash * sin(($fish($ind,htail) + 90.0) * $::RRAD)]
    set seg4 [expr 4.0 * $thrash * sin(($fish($ind,htail) + 110.0) * $::RRAD)]

    set chomp 0.0
    if {$fish($ind,v) > 2.0} {
        set chomp [expr -1.0 * ($fish($ind,v) - 2.0) * 200.0]
    }
    lset ::sP004 1 [expr [lindex $::isP004 1] + $chomp]
    lset ::sP007 1 [expr [lindex $::isP007 1] + $chomp]
    lset ::sP010 1 [expr [lindex $::isP010 1] + $chomp]
    lset ::sP011 1 [expr [lindex $::isP011 1] + $chomp]

    lset ::sP023 0 [expr [lindex $::isP023 0] + $seg1]
    lset ::sP024 0 [expr [lindex $::isP024 0] + $seg1]
    lset ::sP025 0 [expr [lindex $::isP025 0] + $seg1]
    lset ::sP026 0 [expr [lindex $::isP026 0] + $seg1]
    lset ::sP027 0 [expr [lindex $::isP027 0] + $seg1]
    lset ::sP028 0 [expr [lindex $::isP028 0] + $seg1]
    lset ::sP029 0 [expr [lindex $::isP029 0] + $seg1]
    lset ::sP030 0 [expr [lindex $::isP030 0] + $seg1]
    lset ::sP031 0 [expr [lindex $::isP031 0] + $seg1]
    lset ::sP032 0 [expr [lindex $::isP032 0] + $seg1]
    lset ::sP033 0 [expr [lindex $::isP033 0] + $seg2]
    lset ::sP034 0 [expr [lindex $::isP034 0] + $seg2]
    lset ::sP035 0 [expr [lindex $::isP035 0] + $seg2]
    lset ::sP036 0 [expr [lindex $::isP036 0] + $seg2]
    lset ::sP037 0 [expr [lindex $::isP037 0] + $seg2]
    lset ::sP038 0 [expr [lindex $::isP038 0] + $seg2]
    lset ::sP039 0 [expr [lindex $::isP039 0] + $seg2]
    lset ::sP040 0 [expr [lindex $::isP040 0] + $seg2]
    lset ::sP041 0 [expr [lindex $::isP041 0] + $seg2]
    lset ::sP042 0 [expr [lindex $::isP042 0] + $seg2]
    lset ::sP043 0 [expr [lindex $::isP043 0] + $seg3]
    lset ::sP044 0 [expr [lindex $::isP044 0] + $seg3]
    lset ::sP045 0 [expr [lindex $::isP045 0] + $seg3]
    lset ::sP046 0 [expr [lindex $::isP046 0] + $seg3]
    lset ::sP047 0 [expr [lindex $::isP047 0] + $seg3]
    lset ::sP048 0 [expr [lindex $::isP048 0] + $seg3]
    lset ::sP049 0 [expr [lindex $::isP049 0] + $seg3]
    lset ::sP050 0 [expr [lindex $::isP050 0] + $seg3]
    lset ::sP051 0 [expr [lindex $::isP051 0] + $seg3]
    lset ::sP052 0 [expr [lindex $::isP052 0] + $seg3]
    lset ::sP002 0 [expr [lindex $::isP002 0] + $seg4]
    lset ::sP061 0 [expr [lindex $::isP061 0] + $seg4]
    lset ::sP069 0 [expr [lindex $::isP069 0] + $seg4]
    lset ::sP070 0 [expr [lindex $::isP070 0] + $seg4]

    set fish($ind,vtail) [expr $fish($ind,vtail) + (($fish($ind,dtheta) - $fish($ind,vtail)) * 0.1)]

    if {$fish($ind,vtail) > 0.5} {
        set fish($ind,vtail) 0.5
    } elseif {$fish($ind,vtail) < -0.5} {
        set fish($ind,vtail) -0.5
    }
    set segup [expr $thrash * $fish($ind,vtail)]

    lset ::sP023 1 [expr [lindex $::isP023 1] + $segup]
    lset ::sP024 1 [expr [lindex $::isP024 1] + $segup]
    lset ::sP025 1 [expr [lindex $::isP025 1] + $segup]
    lset ::sP026 1 [expr [lindex $::isP026 1] + $segup]
    lset ::sP027 1 [expr [lindex $::isP027 1] + $segup]
    lset ::sP028 1 [expr [lindex $::isP028 1] + $segup]
    lset ::sP029 1 [expr [lindex $::isP029 1] + $segup]
    lset ::sP030 1 [expr [lindex $::isP030 1] + $segup]
    lset ::sP031 1 [expr [lindex $::isP031 1] + $segup]
    lset ::sP032 1 [expr [lindex $::isP032 1] + $segup]
    lset ::sP033 1 [expr [lindex $::isP033 1] + $segup * 5.0]
    lset ::sP034 1 [expr [lindex $::isP034 1] + $segup * 5.0]
    lset ::sP035 1 [expr [lindex $::isP035 1] + $segup * 5.0]
    lset ::sP036 1 [expr [lindex $::isP036 1] + $segup * 5.0]
    lset ::sP037 1 [expr [lindex $::isP037 1] + $segup * 5.0]
    lset ::sP038 1 [expr [lindex $::isP038 1] + $segup * 5.0]
    lset ::sP039 1 [expr [lindex $::isP039 1] + $segup * 5.0]
    lset ::sP040 1 [expr [lindex $::isP040 1] + $segup * 5.0]
    lset ::sP041 1 [expr [lindex $::isP041 1] + $segup * 5.0]
    lset ::sP042 1 [expr [lindex $::isP042 1] + $segup * 5.0]
    lset ::sP043 1 [expr [lindex $::isP043 1] + $segup * 12.0]
    lset ::sP044 1 [expr [lindex $::isP044 1] + $segup * 12.0]
    lset ::sP045 1 [expr [lindex $::isP045 1] + $segup * 12.0]
    lset ::sP046 1 [expr [lindex $::isP046 1] + $segup * 12.0]
    lset ::sP047 1 [expr [lindex $::isP047 1] + $segup * 12.0]
    lset ::sP048 1 [expr [lindex $::isP048 1] + $segup * 12.0]
    lset ::sP049 1 [expr [lindex $::isP049 1] + $segup * 12.0]
    lset ::sP050 1 [expr [lindex $::isP050 1] + $segup * 12.0]
    lset ::sP051 1 [expr [lindex $::isP051 1] + $segup * 12.0]
    lset ::sP052 1 [expr [lindex $::isP052 1] + $segup * 12.0]
    lset ::sP002 1 [expr [lindex $::isP002 1] + $segup * 17.0]
    lset ::sP061 1 [expr [lindex $::isP061 1] + $segup * 17.0]
    lset ::sP069 1 [expr [lindex $::isP069 1] + $segup * 17.0]
    lset ::sP070 1 [expr [lindex $::isP070 1] + $segup * 17.0]

    glPushMatrix

    glTranslatef 0.0 0.0 -3000.0

    glGetFloatv GL_MODELVIEW_MATRIX $mat
    set n 0
    if {[$mat get [expr 0*4 + 2]] >= 0.0} {
        incr n 1
    }
    if {[$mat get [expr 1*4 + 2]] >= 0.0} {
        incr n 2
    }
    if {[$mat get [expr 2*4 + 2]] >= 0.0} {
        incr n 4
    }
    glScalef 2.0 1.0 1.0

    glEnable GL_CULL_FACE
    if { $n >= 1 && $n <= 8 } {
        Fish_$n
    }
    glDisable GL_CULL_FACE

    glPopMatrix

    $mat delete
}
