<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D version='3.0' profile='Immersive' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.0.xsd'>
  <head>
    <meta content='Sardine.x3d' name='title'/>
    <meta content='One Sardine, three levels of detail.' name='description'/>
    <meta content='Stewart Liles, Sean Hynes' name='creator'/>
    <meta content='25 September 1998' name='created'/>
    <meta content='31 October 2002' name='modified'/>
    <meta content='http://www.web3d.org/x3d/content/examples/Basic/KelpForestExhibit/KelpForestDesignPaperWeb3dSymposiumFebruary2002.pdf' name='reference'/>
    <meta content='http://www.web3d.org/x3d/content/examples/Basic/KelpForestExhibit/Teaching3d-KelpForestCaseStudy.pdf' name='reference'/>
    <meta content='All content has permissions for free use.  &#10;Please provide credit to the Naval Postgraduate School (NPS)&#10;Modeling Virtual Environments and Simulation (MOVES) Institute.' name='accessRights'/>
    <meta content='brutzman@nps.navy.mil' name='contact'/>
    <meta content='http://www.web3d.org/x3d/content/examples/Basic/KelpForestExhibit/Sardine.x3d' name='identifier'/>
    <meta content='X3D-Edit, http://www.web3d.org/x3d/content/README.X3D-Edit.html' name='generator'/>
    <meta name='license' content='../../license.html'/>
  </head>
  <Scene>
    <LOD DEF='Sardines' center='0 0 0' range='15 30 60'>
      <!-- Three levels of detail, then disappears. -->
      <Group DEF='Near'>
        <!-- High resolution sardine. -->
        <Transform scale='.25 .1 .25'>
          <Shape>
            <Appearance>
              <Material diffuseColor='.61 .61 .61' emissiveColor='.5 .5 .5' shininess='.8' specularColor='.76 .76 .76'/>
            </Appearance>
            <IndexedFaceSet DEF='SardineIndex' ccw='false' coordIndex='0 2 1 -1,&#10;0 3 2 -1,&#10;0 4 3 -1,&#10;0 5 4 -1,&#10;0 1 8 -1,&#10;0 8 7 -1,&#10;0 7 6 -1,&#10;0 6 5 -1,&#10;&#10;1 2 10 9 -1,&#10;2 3 11 10 -1,&#10;3 4 12 11 -1,&#10;4 5 13 12 -1,&#10;1 9 16 8 -1,&#10;8 16 15 7 -1,&#10;7 15 14 6 -1,&#10;6 14 13 5 -1,&#10;&#10;9 10 18 17 -1,&#10;10 11 19 18 -1,&#10;11 12 20 19 -1,&#10;12 13 21 20 -1,&#10;9 17 24 16 -1,&#10;16 24 23 15 -1,&#10;15 23 22 14 -1,&#10;14 22 21 13 -1,&#10;&#10;17 18 26 25 -1,&#10;18 19 27 26 -1,&#10;19 20 28 27 -1,&#10;20 21 29 28 -1,&#10;17 25 32 24 -1,&#10;24 32 31 23 -1,&#10;23 31 30 22 -1,&#10;22 30 29 21 -1,&#10;&#10;25 26 34 33 -1,&#10;26 27 35 34 -1,&#10;27 28 36 35 -1,&#10;28 29 37 36 -1,&#10;25 33 40 32 -1,&#10;32 40 39 31 -1,&#10;31 39 38 30 -1,&#10;30 38 37 29 -1,&#10;&#10;33 34 41 -1,&#10;34 35 41 -1,&#10;35 42 41 -1,&#10;35 43 42 -1,&#10;36 43 35 -1,&#10;36 37 43 -1,&#10;&#10;33 41 40 -1,&#10;40 41 39 -1,&#10;39 41 42 -1,&#10;39 42 43 -1,&#10;39 43 37 -1,&#10;38 43 37 -1,&#10;&#10;50 49 48 47 46 45 44 -1,&#10;57 56 55 54 53 52 51 -1,&#10;44 45 52 51 -1,&#10;45 46 53 52 -1,&#10;46 47 54 53 -1,&#10;47 48 55 54 -1,&#10;48 49 56 55 -1,&#10;49 50 57 56 -1' creaseAngle='3.14' solid='false'>
              <Coordinate DEF='Sardine' point='0 0 -1.5,&#10;&#10;0 .5 -1,&#10;-.12 .25 -1,&#10;-.25 0 -1&#10;-.12 -.25 -1,&#10;0 -.5 -1,&#10;.12 -.25 -1,&#10;.25 0 -1,&#10;.12 .25 -1,&#10;&#10;0 1 0,&#10;-.25 .5 0,&#10;-.5 0 0,&#10;-.25 -.5 0,&#10;0 -1 0,&#10;.25 -.5 0,&#10;.5 0 0,&#10;.25 .5 0,&#10;&#10;0 .88 .9,&#10;-.19 .44 .9,&#10;-.37 0 .9,&#10;-.19 -.44 .9,&#10;0 -.88 .9,&#10;.19 -.44 .9,&#10;.37 0 .9,&#10;.19 .44 .9,&#10;&#10;0 .75 1.75,&#10;-.12 .35 1.75,&#10;-.25 0 1.75,&#10;-.12 -.35 1.75,&#10;0 -.75 1.75,&#10;.12 -.35 1.75,&#10;.25 0 1.75,&#10;.12 .35 1.75,&#10;&#10;0 .5 2.5,&#10;-.05 .25 2.5,&#10;-.1 0 2.5,&#10;-.05 -.25 2.5,&#10;0 -.5 2.5,&#10;.05 -.25 2.5,&#10;.1 0 2.5,&#10;.05 .25 2.5,&#10;&#10;1 1.25 3.25,&#10;0 0 3,&#10;0 -1.25 3.25,&#10;&#10;.01 -.7 -1.7&#10;.01 -.75 -2.3,&#10;.01 -.74 -2.325,&#10;.01 -.72 -2.35,&#10;.01 -.7 -2.36,&#10;.01 -.67 -2.35,&#10;.01 -.54 -2.29&#10;&#10;-.01 -.7 -1.7&#10;-.01 -.75 -2.3,&#10;-.01 -.74 -2.325,&#10;-.01 -.72 -2.35,&#10;-.01 -.7 -2.36,&#10;-.01 -.67 -2.35,&#10;-.01 -.54 -2.29'/>
            </IndexedFaceSet>
          </Shape>
          <Transform DEF='LeftEye' translation='-.25 .2 -.55'>
            <Shape DEF='Eye'>
              <Appearance>
                <Material diffuseColor='.1 .1 .1' shininess='.5'/>
              </Appearance>
              <Sphere radius='.1'/>
            </Shape>
          </Transform>
          <Transform DEF='RightEye' translation='.25 .2 -.55'>
            <Shape USE='Eye'/>
          </Transform>
          <Transform DEF='DorsalFin'>
            <Shape>
              <Appearance>
                <Material diffuseColor='.61 .61 .61' emissiveColor='.4 .4 .4' shininess='.7' specularColor='.75 .75 .75' transparency='0'/>
              </Appearance>
              <Extrusion beginCap='true' convex='false' creaseAngle='0.0' crossSection='0 .9 .25,&#10;0 1.3 .5,&#10;0 1.6 .6,&#10;0 1.3 .7,&#10;0 1.1 .8,&#10;0 1 .9,&#10;0 .95 1,&#10;0 .7 1' endCap='true' orientation='0 1 0 0,&#10;0 1 0 0' scale='1 1,&#10;1 1' solid='false' spine='.02 0 0, -.02 0 0'/>
            </Shape>
          </Transform>
          <Transform>
            <Shape>
              <Appearance>
                <Material diffuseColor='.61 .61 .61' emissiveColor='.4 .4 .4' shininess='.4' specularColor='.75 .75 .75'/>
              </Appearance>
              <IndexedFaceSet coordIndex='0 3 2 -1,&#10;1 3 0 -1,&#10;1 0 2 -1,&#10;3 1 2 -1'>
                <Coordinate point='.1 -.65 .5,&#10;.1 -.7 .5,&#10;.1 -.7 .8,&#10;.15 -1.1 1.2'/>
              </IndexedFaceSet>
            </Shape>
            <Shape>
              <Appearance>
                <Material diffuseColor='.61 .61 .61' emissiveColor='.4 .4 .4' shininess='.4' specularColor='.75 .75 .75'/>
              </Appearance>
              <IndexedFaceSet coordIndex='0 3 2 -1,&#10;1 3 0 -1,&#10;1 0 2 -1,&#10;3 1 2 -1'>
                <Coordinate point='-.1 -.65 .5,&#10;-.1 -.7 .5,&#10;-.1 -.7 .8,&#10;-.15 -1.1 1.2'/>
              </IndexedFaceSet>
            </Shape>
          </Transform>
        </Transform>
      </Group>
      <Group DEF='Medium'>
        <!-- Medium resolution sardine. -->
        <Transform scale='.25 .1 .25'>
          <Shape>
            <Appearance>
              <Material diffuseColor='.61 .61 .61' shininess='.9' specularColor='.76 .76 .76'/>
            </Appearance>
            <IndexedFaceSet USE='SardineIndex'/>
          </Shape>
        </Transform>
      </Group>
      <Group DEF='Far'>
        <!-- Low resolution sardine. -->
        <Transform rotation='1 0 0 -1.57' scale='.3 .25 .25'>
          <Shape>
            <Appearance>
              <Material diffuseColor='.7 .7 .7'/>
              <ImageTexture url='"SardineScalesPatch.jpg"&#10;"http://www.web3d.org/x3d/content/examples/Basic/KelpForestExhibit/SardineScalesPatch.jpg"'/>
            </Appearance>
            <Extrusion creaseAngle='1.57' crossSection='-0.1 1.0, &#10;0.1 1,&#10;0.5 0.5,&#10;0.5 -0.5, &#10;0.1 -1,&#10;-0.1 -1,&#10;-0.5 -0.5,&#10;-0.5 0.5,&#10;-0.1 1' scale='0.03 0.03&#10;0.3 0.4,&#10;0.1 0.2,&#10;0.1 0.15,&#10;0.03 0.4' spine='0 2.51  0,&#10;0 1.80  0,&#10;0 0.5  0,&#10;0 0 0,&#10;0 -0.6  0'/>
          </Shape>
        </Transform>
      </Group>
      <WorldInfo info='null'>
        <!-- Lowest resolution node is nothing. -->
      </WorldInfo>
    </LOD>
    <Switch DEF='TestingViewpoints' whichChoice='-1'>
      <!-- Design switch. Set whichChoice to -1, unless you need to see these viewpoints for design purposes. -->
      <Group DEF='TestViewpoints'>
        <Viewpoint description='Hi Res' orientation='0 1 0 1.57' position='2 0 0'/>
        <Viewpoint description='Med Res' orientation='0 1 0 1.57' position='15 0 0 '/>
        <Viewpoint description='Low Res' orientation='0 1 0 1.57' position='30 0 0'/>
      </Group>
    </Switch>
    <LOD DEF='HideViewpointsWhenDistant' center='0 0 0' range='9.999 19.999'>
      <!-- Viewpoints around sardine at very close range, one good viewpoint fairly close to sardine, and no viewpoints further away. -->
      <Group DEF='ExtraViews'>
        <Viewpoint description='Closeup view right' orientation='0 1 0 1.57' position='2 0 0'/>
        <Viewpoint description='Closeup view right face' orientation='0 1 0 2.355' position='2 0 -2'/>
        <Viewpoint description='Closeup view face to face' orientation='0 1 0 3.14' position='0 0 -2'/>
        <Viewpoint description='Closeup view left face' orientation='0 1 0 3.825' position='-2 0 -2'/>
        <Viewpoint description='Closeup view left' orientation='0 1 0 -1.57' position='-2 0 0'/>
        <Viewpoint description='Closeup view left tail' orientation='0 1 0 -0.785' position='-2 0 2'/>
        <Viewpoint description='Closeup view tail' position='0 0 2'/>
        <Viewpoint description='Closeup view right tail' orientation='0 1 0 0.785' position='2 0 2'/>
        <Viewpoint description='Closeup view top looking down' orientation='1 0 0 -1.57' position='0 2 0'/>
        <Viewpoint description='Closeup view bottom looking up' orientation='1 0 0 1.57' position='0 -2 0'/>
      </Group>
      <Group DEF='SingleView'>
        <Viewpoint description='Single viewpoint when fairly close to sardine' orientation='0 1 0 1.57' position='10 0 0'/>
      </Group>
      <Group DEF='NoViewpoint'/>
    </LOD>
    <TimeSensor DEF='Clock' cycleInterval='0.5' loop='true'/>
    <CoordinateInterpolator DEF='FishWiggle' key='0.0, 0.25, 0.50, 0.75, 1.0' keyValue='0 0 -1.5,&#10;&#10;0 .5 -1,&#10;-.12 .25 -1,     &#10;-.25 0 -1,&#10;-.12 -.25 -1,&#10;0 -.5 -1,&#10;.12 -.25 -1,&#10;.25 0 -1,&#10;.12 .25 -1,&#10;        &#10;0 1 0,&#10;-.25 .5 0,&#10;-.5 0 0,&#10;-.25 -.5 0, &#10;0 -1 0, &#10;.25 -.5 0,&#10;.5 0 0,&#10;.25 0.5 0, &#10;    &#10;0 .88 .9,&#10;-.19 .44 .9,&#10;-.37 0 .9,&#10;-.19 -.44 .9,&#10;0 -.88 .9,&#10;.19 -.44 .9,&#10;.37 0 .9,&#10;.19 .44 .9,&#10;      &#10;0 .75 1.75,&#10;-.12 .35 1.75,&#10;-.25 0 1.75,&#10;-.12 -.35 1.75,&#10;0 -.75 1.75,&#10;.12 -.35 1.75,&#10;.25 0 1.75,&#10;.12 .35 1.75,&#10;       &#10;0 .5 2.5,&#10;-.05 .25 2.5,&#10;-.1 0 2.5,&#10;-.05 -.25 2.5,&#10;0 -.5 2.5,&#10;.05 -.25 2.5,&#10;.1 0 2.5,&#10;.05 .25 2.5,&#10;       &#10;0 1.25 3.25,&#10;0 0 3,&#10;0 -1.25 3.25, &#10;&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;&#10;&#10;0 0 -1.5,&#10; &#10;0 .5 -1,&#10;-.12 .25 -1,     &#10;-.25 0 -1,&#10;-.12 -.25 -1,&#10;0 -.5 -1,&#10;.12 -.25 -1,&#10;.25 0 -1,&#10;.12 .25 -1,&#10;    &#10;0 1 0,&#10;-.25 .5 0,&#10;-.5 0 0,&#10;-.25 -.5 0, &#10;0 -1 0, &#10;.25 -.5 0,&#10;.5 0 0,&#10;.25 0.5 0, &#10;     &#10;0 .88 .9,&#10;-.19 .44 .9,&#10;-.37 0 .9,&#10;-.19 -.44 .9,&#10;0 -.88 .9,&#10;.19 -.44 .9,&#10;.37 0 .9,&#10;.19 .44 .9,&#10;&#10;&#10;.2 .75 1.75,&#10;.08 .35 1.75,&#10;-.05 0 1.75,&#10;.08 -.35 1.75,&#10;.2 -.75 1.75,&#10;.32 -.35 1.75,&#10;.45 0 1.75,&#10;.32 .35 1.75,&#10;&#10;&#10;.3 .5 2.5,&#10;.25 .25 2.5,&#10;.15 0 2.5,&#10;.25 -.25 2.5,&#10;.30 -.5 2.5,&#10;.35 -.25 2.5,&#10;.4 0 2.5,&#10;.35 .25 2.5,&#10;&#10;&#10;.50 1.25 3.25,&#10;.50 0 3,&#10;.50 -1.25 3.25,     &#10;&#10;.3 -.5 2.5,&#10;.3 -.5 2.5,&#10;.3 -.5 2.5,&#10;.3 -.5 2.5,&#10;.3 -.5 2.5,&#10;.3 -.5 2.5,&#10;.3 -.5 2.5,&#10;.3 -.5 2.5,&#10;.3 -.5 2.5,&#10;.3 -.5 2.5,&#10;.3 -.5 2.5,&#10;.3 -.5 2.5,&#10;.3 -.5 2.5,&#10;.3 -.5 2.5,&#10;&#10;&#10;0 0 -1.5,&#10;      &#10;0 .5 -1,&#10;-.12 .25 -1,     &#10;-.25 0 -1,&#10;-.12 -.25 -1,&#10;0 -.5 -1,&#10;.12 -.25 -1,&#10;.25 0 -1,&#10;.12 .25 -1,&#10;      &#10;0 1 0,&#10;-.25 .5 0,&#10;-.5 0 0,&#10;-.25 -.5 0, &#10;0 -1 0, &#10;.25 -.5 0,&#10;.5 0 0,&#10;.25 0.5 0, &#10;      &#10;0 .88 .9,&#10;-.19 .44 .9,&#10;-.37 0 .9,&#10;-.19 -.44 .9,&#10;0 -.88 .9,&#10;.19 -.44 .9,&#10;.37 0 .9,&#10;.19 .44 .9,&#10;        &#10;0 .75 1.75,&#10;-.12 .35 1.75,&#10;-.25 0 1.75,&#10;-.12 -.35 1.75,&#10;0 -.75 1.75,&#10;.12 -.35 1.75,&#10;.25 0 1.75,&#10;.12 .35 1.75,&#10;       &#10;0 .5 2.5,&#10;-.05 .25 2.5,&#10;-.1 0 2.5,&#10;-.05 -.25 2.5,&#10;0 -.5 2.5,&#10;.05 -.25 2.5,&#10;.1 0 2.5,&#10;.05 .25 2.5,&#10;       &#10;0 1.25 3.25,&#10;0 0 3,&#10;0 -1.25 3.25,  &#10;&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;&#10;&#10;&#10;0 0 -1.5,&#10;        &#10;0 .5 -1,&#10;-.12 .25 -1,     &#10;-.25 0 -1,&#10;-.12 -.25 -1,&#10;0 -.5 -1,&#10;.12 -.25 -1,&#10;.25 0 -1,&#10;.12 .25 -1,&#10;      &#10;0 1 0,&#10;-.25 .5 0,&#10;-.5 0 0,&#10;-.25 -.5 0, &#10;0 -1 0, &#10;.25 -.5 0,&#10;.5 0 0,&#10;.25 0.5 0, &#10;       &#10;0 .88 .9,&#10;-.19 .44 .9,&#10;-.37 0 .9,&#10;-.19 -.44 .9,&#10;0 -.88 .9,&#10;.19 -.44 .9,&#10;.37 0 .9,&#10;.19 .44 .9,&#10;&#10;&#10;-.20 .75 1.75,&#10;-.32 .35 1.75,&#10;-.45 0 1.75,&#10;-.32 -.35 1.75,&#10;-.20 -.75 1.75,&#10;-.08 -.35 1.75,&#10;.05 0 1.75,&#10;-.08 .35 1.75,&#10;&#10;&#10;-.30 .5 2.5,&#10;-.35 .25 2.5,&#10;-.4 0 2.5,&#10;-.35 -.25 2.5,&#10;-.30 -.5 2.5,&#10;-.25 -.25 2.5,&#10;-.2 0 2.5,&#10;-.25 .25 2.5,&#10;&#10;&#10;-.50 1.25 3.25,&#10;-.50 0 3,&#10;-.50 -1.25 3.25, &#10;&#10;-.3 -.5 2.5,&#10;-.3 -.5 2.5,&#10;-.3 -.5 2.5,&#10;-.3 -.5 2.5,&#10;-.3 -.5 2.5,&#10;-.3 -.5 2.5,&#10;-.3 -.5 2.5,&#10;-.3 -.5 2.5,&#10;-.3 -.5 2.5,&#10;-.3 -.5 2.5,&#10;-.3 -.5 2.5,&#10;-.3 -.5 2.5,&#10;-.3 -.5 2.5,&#10;-.3 -.5 2.5,&#10;&#10;&#10;0 0 -1.5,&#10;    &#10;0 .5 -1,&#10;-.12 .25 -1,     &#10;-.25 0 -1,&#10;-.12 -.25 -1,&#10;0 -.5 -1,&#10;.12 -.25 -1,&#10;.25 0 -1,&#10;.12 .25 -1,&#10;    &#10;0 1 0,&#10;-.25 .5 0,&#10;-.5 0 0,&#10;-.25 -.5 0, &#10;0 -1 0, &#10;.25 -.5 0,&#10;.5 0 0,&#10;.25 0.5 0, &#10;      &#10;0 .88 .9,&#10;-.19 .44 .9,&#10;-.37 0 .9,&#10;-.19 -.44 .9,&#10;0 -.88 .9,&#10;.19 -.44 .9,&#10;.37 0 .9,&#10;.19 .44 .9,&#10;     &#10;0 .75 1.75,&#10;-.12 .35 1.75,&#10;-.25 0 1.75,&#10;-.12 -.35 1.75,&#10;0 -.75 1.75,&#10;.12 -.35 1.75,&#10;.25 0 1.75,&#10;.12 .35 1.75,&#10;        &#10;0 .5 2.5,&#10;-.05 .25 2.5,&#10;-.1 0 2.5,&#10;-.05 -.25 2.5,&#10;0 -.5 2.5,&#10;.05 -.25 2.5,&#10;.1 0 2.5,&#10;.05 .25 2.5,&#10;    &#10;0 1.25 3.25,&#10;0 0 3,&#10;0 -1.25 3.25,&#10;&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5,&#10;0 -.5 2.5'/>
    <ROUTE fromField='fraction_changed' fromNode='Clock' toField='set_fraction' toNode='FishWiggle'/>
    <ROUTE fromField='value_changed' fromNode='FishWiggle' toField='set_point' toNode='Sardine'/>
  </Scene>
</X3D>
