<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
<X3D profile='Immersive'
version='3.3'
xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance'
xsd:noNamespaceSchemaLocation
='
https://www.web3d.org/specifications/x3d-3.3.xsd
'
>
<head>
</head>
<!--
-->
<Scene>
<ExternProtoDeclare name='CircleFish' appinfo='Simple model of a fish swimming in a cirlce'
url='
"CircleFishPrototype.x3d#CircleFish" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/CircleFishPrototype.x3d#CircleFish" "CircleFishPrototype.wrl#CircleFish" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/CircleFishPrototype.wrl#CircleFish" '
>
<field name='skinTextureUrl' type='MFString' accessType='inputOutput'/>
<field name='fishScale' type='SFVec3f' accessType='inputOutput'/>
<field name='fishColor' type='SFColor' accessType='inputOutput'/>
<field name='finColor' type='SFColor' accessType='inputOutput'/>
<field name='positionKey' type='MFFloat' accessType='inputOutput'/>
<field name='positionKeyValue' type='MFVec3f' accessType='inputOutput'/>
<field name='orientationKey' type='MFFloat' accessType='inputOutput'/>
<field name='orientationKeyValue' type='MFRotation' accessType='inputOutput'/>
<field name='orbitTime' type='SFTime' accessType='inputOutput'/>
</ExternProtoDeclare>
<!-- new LOD prototype extends a previously defined prototype -->
<ProtoDeclare name='CircleFishLod' appinfo='CircleFish prototype with LOD added'
>
<ProtoInterface>
<field name='skinTextureUrl' type='MFString' accessType='inputOutput'/>
<field name='fishScale' type='SFVec3f' value='1 1 1' accessType='inputOutput'/>
<field name='fishColor' type='SFColor' value='0.5 0.5 0.5' accessType='inputOutput'/>
<field name='finColor' type='SFColor' value='0.5 0.5 0.5' accessType='inputOutput'/>
<field name='positionKey' type='MFFloat' value='0.0 0.125 0.25 0.375 0.5 0.625 0.750 0.875 1' accessType='inputOutput'/>
<field 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' accessType='inputOutput'/>
<field name='orientationKey' type='MFFloat' value='0.0 0.25 0.5 0.750 1' accessType='inputOutput'/>
<field 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' accessType='inputOutput'/>
<field name='orbitTime' type='SFTime' value='45' accessType='inputOutput'/>
</ProtoInterface>
<ProtoBody>
<LOD forceTransitions='true' range='20 40'>
<ProtoInstance name='CircleFish' DEF='NearInstance'>
<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>
<ProtoInstance name='CircleFish' DEF='MidRangeInstance'>
<!-- no skinTexture at midRange for better performance -->
<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>
<!-- Disappear at far range -->
<WorldInfo info='"null node"'/>
</LOD>
</ProtoBody>
</ProtoDeclare>
<!-- ==================== -->
<Anchor description='CircleFishLod Example' parameter='"target=_blank"'
url='
CircleFishLodExample.x3d"https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/CircleFishLodExample.x3d" "CircleFishLodExample.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/CircleFishLodExample.wrl" '
>
<Shape>
<Appearance>
<Material diffuseColor='0 1 1' emissiveColor='0 1 1'/>
</Appearance>
<Text string='"CircleFishLodPrototype" "is a Prototype declaration file." "" "To see an example using this new node," "click this text and view" "CircleFishLodExample scene"'>
<FontStyle justify='"MIDDLE" "MIDDLE"' size='0.7'/>
</Text>
</Shape>
<!-- Selectable Text design pattern has transparent Box and TouchSensor description as a tooltip -->
<Shape>
<Box size='12 5 .001'/>
<Appearance>
<Material transparency='1'/>
</Appearance>
</Shape>
</Anchor>
</Scene>
</X3D>
<!--
-->
-->
<!--
Online at
https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/CircleFishLodPrototypeIndex.html
-->
<!--
Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/CircleFishLodPrototype.x3d
-->
<!--
Color legend: X3D terminology
<X3dNode
DEF='idName' field='value'/>
matches XML terminology
<XmlElement
DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
<ProtoInstance
name='ProtoName'>
<field
name='fieldName'/> </ProtoInstance>
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->