<?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 profile='Immersive' version='3.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.0.xsd'>
  <head>
    <meta content='CircleFishLodPrototype.x3d' name='title'/>
    <meta content='Modifies a CircleFish prototype by adding Level of Detail (LOD).' name='description'/>
    <meta content='Ildeniz Duman' name='creator'/>
    <meta content='Scott Tufts' name='translator'/>
    <meta content='1998' name='created'/>
    <meta content='11 December 2001' name='translated'/>
    <meta content='28 December 2002' name='modified'/>
    <meta content='http://www.web3d.org/x3d/content/examples/Basic/KelpForestExhibit/CircleFishLodPrototype.x3d' name='identifier'/>
    <meta content='X3D-Edit, http://www.web3d.org/x3d/content/README.X3D-Edit.html' name='generator'/>
    <meta content='../../license.html' name='license'/>
  </head>
  <Scene>
    <ExternProtoDeclare name='CircleFish' url='"CircleFishPrototype.wrl#CircleFish"&#10;"http://www.web3d.org/x3d/content/KelpForestExhibit/CircleFishPrototype.wrl#CircleFish"&#10;"CircleFishPrototype.x3d#CircleFish"&#10;"http://www.web3d.org/x3d/content/KelpForestExhibit/CircleFishPrototype.x3d#CircleFish"'>
      <field accessType='inputOutput' name='skinTextureUrl' type='MFString'/>
      <field accessType='inputOutput' name='fishScale' type='SFVec3f'/>
      <field accessType='inputOutput' name='fishColor' type='SFColor'/>
      <field accessType='inputOutput' name='finColor' type='SFColor'/>
      <field accessType='inputOutput' name='positionKey' type='MFFloat'/>
      <field accessType='inputOutput' name='positionKeyValue' type='MFVec3f'/>
      <field accessType='inputOutput' name='orientationKey' type='MFFloat'/>
      <field accessType='inputOutput' name='orientationKeyValue' type='MFRotation'/>
      <field accessType='inputOutput' name='orbitTime' type='SFTime'/>
    </ExternProtoDeclare>
    <ProtoDeclare name='CircleFishLod'>
      <ProtoInterface>
        <field accessType='inputOutput' name='skinTextureUrl' type='MFString'/>
        <field accessType='inputOutput' name='fishScale' type='SFVec3f' value='1 1 1'/>
        <field accessType='inputOutput' name='fishColor' type='SFColor' value='0.5 0.5 0.5'/>
        <field accessType='inputOutput' name='finColor' type='SFColor' value='0.5 0.5 0.5'/>
        <field accessType='inputOutput' name='positionKey' type='MFFloat' value='0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.750, 0.875,1'/>
        <field accessType='inputOutput' name='positionKeyValue' type='MFVec3f' value='1.5 0.5 0, 1.3 0 -0.8, 0 -0.5 -1.0, -1.3 0 -0.8, -1.5 0.5 0, -1.3 0 0.8, 0 -0.5 1.0, 1.3 0 0.8, 1.5 0.5 0'/>
        <field accessType='inputOutput' name='orientationKey' type='MFFloat' value='0.0, 0.25,  0.5,  0.750, 1'/>
        <field accessType='inputOutput' name='orientationKeyValue' type='MFRotation' value='0 1 0 -3.14, 0 1 0 -1.57, 0 1 0 0, 0 1 0 1.57, 0 1 0 3.14'/>
        <field accessType='inputOutput' name='orbitTime' type='SFTime' value='45'/>
      </ProtoInterface>
      <ProtoBody>
        <LOD range='20 40'>
          <ProtoInstance DEF='NearInstance' name='CircleFish'>
            <IS>
              <connect nodeField='skinTextureUrl' protoField='skinTextureUrl'/>
              <connect nodeField='fishScale' protoField='fishScale'/>
              <connect nodeField='fishColor' protoField='fishColor'/>
              <connect nodeField='finColor' protoField='finColor'/>
              <connect nodeField='positionKey' protoField='positionKey'/>
              <connect nodeField='positionKeyValue' protoField='positionKeyValue'/>
              <connect nodeField='orientationKey' protoField='orientationKey'/>
              <connect nodeField='orientationKeyValue' protoField='orientationKeyValue'/>
              <connect nodeField='orbitTime' protoField='orbitTime'/>
            </IS>
          </ProtoInstance>
          <!-- no skinTexture at midRange for better performance -->
          <ProtoInstance DEF='MidRangeInstance' name='CircleFish'>
            <IS>
              <connect nodeField='fishScale' protoField='fishScale'/>
              <connect nodeField='fishColor' protoField='fishColor'/>
              <connect nodeField='finColor' protoField='finColor'/>
              <connect nodeField='positionKey' protoField='positionKey'/>
              <connect nodeField='positionKeyValue' protoField='positionKeyValue'/>
              <connect nodeField='orientationKey' protoField='orientationKey'/>
              <connect nodeField='orientationKeyValue' protoField='orientationKeyValue'/>
              <connect nodeField='orbitTime' protoField='orbitTime'/>
            </IS>
          </ProtoInstance>
          <WorldInfo info='null node'/>
        </LOD>
      </ProtoBody>
    </ProtoDeclare>
    <!-- ==================== -->
    <Anchor description='CircleFishLodExample' parameter='target=_blank' url='"CircleFishLodExample.wrl"&#10;"http://www.web3d.org/x3d/content/KelpForestExhibit/CircleFishLodExample.wrl"&#10;"CircleFishLodExample.x3d"&#10;"http://www.web3d.org/x3d/content/KelpForestExhibit/CircleFishLodExample.x3d"'>
      <Shape>
        <Appearance>
          <Material diffuseColor='0 1 1' emissiveColor='0 1 1'/>
        </Appearance>
        <Text string='"CircleFishLodPrototype.wrl"&#10;"is a Prototype (PROTO) definition file."&#10;""&#10;"To see an example scene using this new node,"&#10;"click this text and view"&#10;"CircleFishLodExample.wrl"'>
          <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.7'/>
        </Text>
      </Shape>
    </Anchor>
  </Scene>
</X3D>
