<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.1//EN"   "http://www.web3d.org/specifications/x3d-3.1.dtd">
<X3D profile='Immersiveversion='3.1xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation=' http://www.web3d.org/specifications/x3d-3.1.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='28 December 2002'/>
<meta name='referencecontent=' http://web.nps.navy.mil/~brutzman/kelp '/>
<meta name='referencecontent='KelpForestDesignPaperWeb3dSymposiumFebruary2002.pdf'/>
<meta name='referencecontent=' http://www.x3dbook.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpForestDesignPaperWeb3dSymposiumFebruary2002.pdf '/>
<meta name='referencecontent=' http://www.x3dbook.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='contactcontent='brutzman@nps.navy.mil'/>
<meta name='identifiercontent=' http://www.x3dbook.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpPrototype.x3d '/>
<meta name='generatorcontent='Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html'/>
<meta name='licensecontent='../license.html'/>
</head>
<!--

Index for ProtoDeclare definition: Kelp
Index for DEF nodes: BLADE, blade_X1, blade_X2, blade_X3, blade_Y1, blade_Y2, blade_Y3, blade_Y4, bladePath1, bladeRotateZ, bladeToTheSide, Blade-Z, bulb, Clock, horizontalStipe, horizontalStipeMover, kelpColor, rotateBlade90, stemShape, stipe, TouchTextForExample, verticalStipeMover
Index for Viewpoint image: Viewpoint_1
-->
<Scene>
<ProtoDeclare name='Kelp'>
<ProtoInterface>
<field name='frontBladeSizetype='SFVec3fvalue='0.7 0.7 0.7accessType='inputOutput'/>
<field name='frontSideBladeHeighttype='SFVec3fvalue='0.0 4.0 0.0accessType='inputOutput'/>
<field name='rightBladeSizetype='SFVec3fvalue='0.7 0.7 0.7accessType='inputOutput'/>
<field name='rightSideBladeHeighttype='SFVec3fvalue='0.0 12.0 0.0accessType='inputOutput'/>
<field name='rearBladeSizetype='SFVec3fvalue='0.4 0.4 0.4accessType='inputOutput'/>
<field name='rearSideBladeHeighttype='SFVec3fvalue='0.0 20.0 0.0accessType='inputOutput'/>
<field name='leftBladeSizetype='SFVec3fvalue='0.4 0.4 0.4accessType='inputOutput'/>
<field name='leftSideBladeHeighttype='SFVec3fvalue='0.0 24.0 0.0accessType='inputOutput'/>
</ProtoInterface>
<ProtoBody>
<Group>
<Transform DEF='stipecenter='0.0 -16.0 0.0rotation='0.0 0.0 0.0 0.0translation='0.0 14.0 0.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>
<!-- horizontalStipe ROUTE:  [from horizontalStipeMover.value_changed to set_rotation ] -->
<Transform DEF='horizontalStipecenter='0.0 16.0 0.0rotation='0.0 0.0 1.0 1.571scale='0.5 0.3 0.5translation='1.3 0.0 0.0'>
<Transform>
<Shape USE='stemShape'/>
</Transform>
<Transform DEF='blade_X1rotation='0.0 1.0 0.0 1.0translation='0.0 12.0 0.0'>
<Transform DEF='bladeRotateZrotation='0.0 0.0 1.0 -1.2'>
<Transform DEF='BLADEcenter='-0.5 0.0 0.0translation='1.0 0.0 0.0'> </Transform>
</Transform>
</Transform>
<Transform DEF='blade_X2rotation='0.0 1.0 0.0 -1.0'>
<Transform USE='bladeRotateZ'/>
</Transform>
<Transform DEF='blade_X3rotation='0.0 1.0 0.0 4.342translation='0.0 -12.0 0.0'>
<Transform USE='bladeRotateZ'/>
</Transform>
</Transform>
<Transform translation='0.0 14.0 0.0'>
<Shape>
<Appearance USE='kelpColor'/>
<Extrusion creaseAngle='1.57crossSection='0.2 0.0 0.184 -0.076 0.142 -0.142 0.076 -0.184 0.0 -0.2 -0.076 -0.184 -0.142 -0.142 -0.184 -0.076 -0.2 -0.0 -0.184 0.076 -0.142 0.142 -0.076 0.184 0.0 0.2 0.076 0.184 0.142 0.142 0.184 0.076 0.2 0.0scale='1.0 1.0 0.8 0.8 0.7 0.7 0.6 0.6 0.5 0.5spine='0.0 0.0 0.0 0.15 0.77 0.0 0.59 1.41 0.0 1.23 1.85 0.0 2.0 2.0 0.0'/>
</Shape>
</Transform>
</Transform>
<Transform DEF='blade_Y1rotation='0.0 0.0 1.0 1.2'>
<IS>
<connect nodeField='scaleprotoField='frontBladeSize'/>
<connect nodeField='translationprotoField='frontSideBladeHeight'/>
</IS>
<Transform USE='BLADE'/>
</Transform>
<Transform DEF='blade_Y2rotation='0.0 1.0 0.0 4.2'>
<IS>
<connect nodeField='scaleprotoField='rightBladeSize'/>
<connect nodeField='translationprotoField='rightSideBladeHeight'/>
</IS>
<Transform DEF='bladeToTheSiderotation='1.0 0.0 0.0 3.142'>
<Transform rotation='0.0 0.0 1.0 -1.2'>
<Transform DEF='rotateBlade90center='-0.5 0.0 0.0rotation='1.0 0.0 0.0 1.571translation='1.0 0.0 0.0'>
<Inline USE='bulb'/>
</Transform>
</Transform>
</Transform>
</Transform>
<Transform DEF='blade_Y3rotation='0.0 1.0 0.0 3.2'>
<IS>
<connect nodeField='scaleprotoField='rearBladeSize'/>
<connect nodeField='translationprotoField='rearSideBladeHeight'/>
</IS>
<Transform DEF='Blade-Zrotation='1.0 0.0 0.0 3.142'>
<Transform rotation='0.0 0.0 1.0 -1.2'>
<Transform USE='BLADE'/>
</Transform>
</Transform>
</Transform>
<Transform DEF='blade_Y4rotation='0.0 1.0 0.0 1.2'>
<IS>
<connect nodeField='scaleprotoField='leftBladeSize'/>
<connect nodeField='translationprotoField='leftSideBladeHeight'/>
</IS>
<Transform USE='bladeToTheSide'/>
</Transform>
<!-- Clock ROUTEs:  [from fraction_changed to horizontalStipeMover.set_fraction ] [from fraction_changed to verticalStipeMover.set_fraction ] -->
<TimeSensor DEF='ClockcycleInterval='5.5loop='true'/>
<!-- horizontalStipeMover ROUTEs:  [from Clock.fraction_changed to set_fraction ] [from value_changed to horizontalStipe.set_rotation ] -->
<OrientationInterpolator DEF='horizontalStipeMoverkey='0.0 0.25 0.5 0.75 1.0keyValue='0.0 0.0 1.0 1.471 0.0 0.0 1.0 1.571 0.0 0.0 1.0 1.671 0.0 0.0 1.0 1.571 0.0 0.0 1.0 1.471'/>
<!-- verticalStipeMover ROUTE:  [from Clock.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='verticalStipeMoverkey='0.0 0.25 0.5 0.75 1.0keyValue='0.0 0.0 1.0 0.1 0.0 0.0 1.0 0.0 0.0 0.0 1.0 -0.1 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.1'/>
<OrientationInterpolator DEF='bladePath1key='0.0 0.5 1.0keyValue='0.0 0.0 1.0 0.3 0.0 0.0 1.0 -0.3 0.0 0.0 1.0 0.3'/>
</Group>
<ROUTE fromNode='ClockfromField='fraction_changedtoNode='horizontalStipeMovertoField='set_fraction'/>
<ROUTE fromNode='ClockfromField='fraction_changedtoNode='verticalStipeMovertoField='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.wrl" "http://www.web3d.org/x3d/content/examples/Basic/course/KelpExamplesNoBase.wrl" "KelpExamplesNoBase.x3d" "http://www.web3d.org/x3d/content/examples/Basic/course/KelpExamplesNoBase.x3d" '>
<Shape>
<Appearance>
<Material diffuseColor='0 1 1emissiveColor='0 1 1'/>
</Appearance>
<Text string='"KelpPrototype.wrl" "is a Prototype (PROTO) definition file." "" "To see an example scene using 3 instances of" "this new node," "click this text and view" "KelpNoBase.wrl"solid='true'>
<FontStyle justify='"MIDDLE" "MIDDLE"size='0.5'/>
</Text>
</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, bladePath1, bladeRotateZ, bladeToTheSide, Blade-Z, bulb, Clock, horizontalStipe, horizontalStipeMover, kelpColor, rotateBlade90, stemShape, stipe, TouchTextForExample, verticalStipeMover
Index for Viewpoint image: Viewpoint_1
-->

<!-- Tag color codes: <Node DEF='idName' attribute='value'/> <Prototype name='ProtoName'> <field name='fieldName'/> </Prototype> -->