<?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>
<meta name='titlecontent='KelpPrototype.x3d'/>
<meta name='descriptioncontent='Creates Kelp Prototype - this file uses Bulb and is used by KelpExamplesNoBase.'/>
<meta name='creatorcontent='Joseph Cannon, Dan DeVos'/>
<meta name='createdcontent='18 March 1999'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='referencecontent=' http://faculty.nps.edu/brutzman/kelp '/>
<meta name='referencecontent='KelpForestDesignPaperWeb3dSymposiumFebruary2002.pdf'/>
<meta name='referencecontent=' https://X3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpForestDesignPaperWeb3dSymposiumFebruary2002.pdf '/>
<meta name='referencecontent=' https://X3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/Teaching3d-KelpForestCaseStudy.pdf '/>
<meta name='accessRightscontent='All content has permissions for free use. Please provide credit to the Naval Postgraduate School (NPS) Modeling Virtual Environments and Simulation (MOVES) Institute.'/>
<meta name='identifiercontent=' https://X3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpPrototype.x3d '/>
<meta name='generatorcontent='Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!-- -->
<Scene>
<WorldInfo title='KelpPrototype.x3d'/>
<ProtoDeclare name='Kelpappinfo='Kelp strands and bulbs with no base'>
<ProtoInterface>
<field name='frontBladeSizetype='SFVec3fvalue='0.7 0.7 0.7accessType='inputOutput'/>
<field name='frontSideBladeHeighttype='SFVec3fvalue='0 4 0accessType='inputOutput'/>
<field name='rightBladeSizetype='SFVec3fvalue='0.7 0.7 0.7accessType='inputOutput'/>
<field name='rightSideBladeHeighttype='SFVec3fvalue='0 12 0accessType='inputOutput'/>
<field name='rearBladeSizetype='SFVec3fvalue='0.4 0.4 0.4accessType='inputOutput'/>
<field name='rearSideBladeHeighttype='SFVec3fvalue='0 20 0accessType='inputOutput'/>
<field name='leftBladeSizetype='SFVec3fvalue='0.4 0.4 0.4accessType='inputOutput'/>
<field name='leftSideBladeHeighttype='SFVec3fvalue='0 24 0accessType='inputOutput'/>
</ProtoInterface>
<ProtoBody>
<Group>
<Transform DEF='stipecenter='0 -16 0translation='0 14 0'>
<Shape DEF='stemShape'>
<Appearance DEF='kelpColor'>
<Material diffuseColor='0.882 0.757 0.184'/>
</Appearance>
<Cylinder bottom='falseheight='28.0radius='0.2top='false'/>
</Shape>
<!-- ROUTE information for horizontalStipe node:  [from horizontalStipeMover.value_changed to set_rotation ] -->
<Transform DEF='horizontalStipecenter='0 16 0rotation='0 0 1 1.5707scale='0.5 0.3 0.5translation='1.3 0 0'>
<Transform>
<Shape USE='stemShape'/>
</Transform>
<Transform DEF='blade_X1rotation='0 1 0 1.0translation='0 12 0'>
<Transform DEF='bladeRotateZrotation='0 0 1 -1.2'> </Transform>
</Transform>
<Transform DEF='blade_X2rotation='0 1 0 -1.0'>
<Transform USE='bladeRotateZ'/>
</Transform>
<Transform DEF='blade_X3rotation='0 1 0 4.342translation='0 -12 0'>
<Transform USE='bladeRotateZ'/>
</Transform>
</Transform>
<Transform translation='0 14 0'>
<Shape>
<Appearance USE='kelpColor'/>
<Extrusion creaseAngle='1.57crossSection='0.2 0 0.184 -0.076 0.142 -0.142 0.076 -0.184 0 -0.2 -0.076 -0.184 -0.142 -0.142 -0.184 -0.076 -0.2 -0 -0.184 0.076 -0.142 0.142 -0.076 0.184 0 0.2 0.076 0.184 0.142 0.142 0.184 0.076 0.2 0scale='1 1 0.8 0.8 0.7 0.7 0.6 0.6 0.5 0.5spine='0 0 0 0.15 0.77 0 0.59 1.41 0 1.23 1.85 0 2 2 0'/>
</Shape>
</Transform>
</Transform>
<Transform DEF='blade_Y1rotation='0 0 1 1.2'>
<IS>
<connect nodeField='scaleprotoField='frontBladeSize'/>
<connect nodeField='translationprotoField='frontSideBladeHeight'/>
</IS>
<Transform USE='BLADE'/>
</Transform>
<Transform DEF='blade_Y2rotation='0 1 0 4.2'>
<IS>
<connect nodeField='scaleprotoField='rightBladeSize'/>
<connect nodeField='translationprotoField='rightSideBladeHeight'/>
</IS>
<Transform DEF='bladeToTheSiderotation='1 0 0 3.142'>
<Transform rotation='0 0 1 -1.2'>
<Transform DEF='rotateBlade90center='-0.5 0 0rotation='1 0 0 1.5707translation='1 0 0'>
<Inline USE='bulb'/>
</Transform>
</Transform>
</Transform>
</Transform>
<Transform DEF='blade_Y3rotation='0 1 0 3.2'>
<IS>
<connect nodeField='scaleprotoField='rearBladeSize'/>
<connect nodeField='translationprotoField='rearSideBladeHeight'/>
</IS>
<Transform DEF='Blade-Zrotation='1 0 0 3.142'>
<Transform rotation='0 0 1 -1.2'>
<Transform USE='BLADE'/>
</Transform>
</Transform>
</Transform>
<Transform DEF='blade_Y4rotation='0 1 0 1.2'>
<IS>
<connect nodeField='scaleprotoField='leftBladeSize'/>
<connect nodeField='translationprotoField='leftSideBladeHeight'/>
</IS>
<Transform USE='bladeToTheSide'/>
</Transform>
<!-- ROUTE information for Clock node:  [from fraction_changed to horizontalStipeMover.set_fraction ] -->
<TimeSensor DEF='ClockcycleInterval='5.5loop='true'/>
<!-- ROUTE information for horizontalStipeMover node:  [from Clock.fraction_changed to set_fraction ] [from value_changed to horizontalStipe.set_rotation ] -->
<OrientationInterpolator DEF='horizontalStipeMoverkey='0 0.25 0.5 0.75 1.0keyValue='0 0 1 1.471 0 0 1 1.571 0 0 1 1.671 0 0 1 1.571 0 0 1 1.471'/>
</Group>
<ROUTE fromNode='ClockfromField='fraction_changedtoNode='horizontalStipeMovertoField='set_fraction'/>
<ROUTE fromNode='horizontalStipeMoverfromField='value_changedtoNode='horizontalStipetoField='set_rotation'/>
</ProtoBody>
</ProtoDeclare>
<!-- Example use of this prototype is in KelpNoBase.x3d, .wrl -->
<Viewpoint description='click message to view exampleposition='0 0 8'/>
<!-- Redirection text in case a user examines this PROTO file via a 3D browser: -->
<Anchor DEF='TouchTextForExampledescription='KelpNoBaseparameter='"target=_blank"'
  url=' "KelpExamplesNoBase.x3d" "https://X3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpExamplesNoBase.x3d" "KelpExamplesNoBase.wrl" "https://X3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpExamplesNoBase.wrl" '>
<Shape>
<Appearance>
<Material diffuseColor='0 1 1emissiveColor='0 1 1'/>
</Appearance>
<Text string='"KelpPrototype" "is a Prototype declaration file." "" "To see an example using 3 instances of" "this new node, click this text and view" "KelpNoBase scene"'>
<FontStyle justify='"MIDDLE" "MIDDLE"size='0.5'/>
</Text>
</Shape>
<!-- Selectable Text design pattern has transparent Box and TouchSensor description as a tooltip -->
<Shape>
<Box size='8 3 .001'/>
<Appearance>
<Material transparency='1'/>
</Appearance>
</Shape>
</Anchor>
</Scene>
</X3D>
<!--

Index for ProtoDeclare definition : Kelp

Index for DEF nodes : BLADE, blade_X1, blade_X2, blade_X3, blade_Y1, blade_Y2, blade_Y3, blade_Y4, bladeRotateZ, bladeToTheSide, Blade-Z, bulb, Clock, horizontalStipe, horizontalStipeMover, kelpColor, rotateBlade90, stemShape, stipe, TouchTextForExample

Index for Viewpoint image : Viewpoint_1
-->

<!-- Color key: <X3dNode DEF='idName' field='value'/> matches <XmlElement DEF='idName' attribute='value'/>
(Light blue background: behavior node) (Grey background: inserted documentation) (Magenta background: X3D Extensibility)
    <Prototype name='ProtoName'> <field name='fieldName'/> </Prototype> -->

<!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources and X3D Scene Authoring Hints. -->