<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "http://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 =' http://www.web3d.org/specifications/x3d-3.3.xsd '>
<head>
<meta name='titlecontent='SeaWebBuoyExample.x3d'/>
<meta name='descriptioncontent='An example scene with 2 SeaWeb buoys.'/>
<meta name='creatorcontent='Oliver Tan and Don Brutzman'/>
<meta name='createdcontent='7 June 2004'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='subjectcontent='SeaWeb, buoy, repeater'/>
<meta name='identifiercontent=' https://savage.nps.edu/Savage/CommunicationsAndSensors/SeaWeb/SeaWebBuoyExample.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../../license.html'/>
</head>
<!-- -->
<!-- Issue in Xj3D: org.web3d.vrml.lang.InvalidFieldConnectionException: The source field(TransmissionDuration2.triggerValue) type SFInt32 and destination field(SeaWebBuoyInstance1.set_transmissionDuration) type SFTime don't match. Line: 92 Column: 143 -->
<Scene>
<WorldInfo title='SeaWebBuoyExample.x3d'/>
<ExternProtoDeclare name='SeaWebBuoy'
  url=' "SeaWebBuoyPrototype.x3d#SeaWebBuoy" "https://savage.nps.edu/Savage/CommunicationsAndSensors/SeaWeb/SeaWebBuoyPrototype.x3d#SeaWebBuoy" "SeaWebBuoyPrototype.wrl#SeaWebBuoy" "https://savage.nps.edu/Savage/CommunicationsAndSensors/SeaWeb/SeaWebBuoyPrototype.wrl#SeaWebBuoy" '>
<field name='set_positiontype='SFVec3faccessType='inputOnly'
 appinfo='Position of buoy.'/>

<field name='positiontype='SFVec3faccessType='initializeOnly'
 appinfo='Position of buoy.'/>

<field name='set_targetPositiontype='SFVec3faccessType='inputOnly'
 appinfo='Position of target of transmission.'/>

<field name='targetPositiontype='SFVec3faccessType='initializeOnly'
 appinfo='Position of target of transmission.'/>

<field name='set_targetIdNumbertype='SFInt32accessType='inputOnly'
 appinfo='Id number of target.'/>

<field name='targetIdNumbertype='SFInt32accessType='initializeOnly'
 appinfo='Id number of target.'/>

<field name='set_enabledtype='SFBoolaccessType='inputOnly'
 appinfo='Enable buoy for transmission.'/>

<field name='enabledtype='SFBoolaccessType='initializeOnly'
 appinfo='Enable buoy for transmission.'/>

<field name='set_activatedtype='SFBoolaccessType='inputOnly'
 appinfo='Start transmission.'/>

<field name='activatedtype='SFBoolaccessType='initializeOnly'
 appinfo='Start transmission.'/>

<field name='set_transmissionDurationtype='SFTimeaccessType='inputOnly'
 appinfo='Duration in seconds needed to transmit message (does not include transmissionTimeDelay or propagation delay).'/>

<field name='transmissionDurationtype='SFTimeaccessType='initializeOnly'
 appinfo='Duration in seconds needed to transmit message (does not include transmissionTimeDelay or propagation delay).'/>

<field name='set_transmissionTimeDelaytype='SFTimeaccessType='inputOnly'
 appinfo='Time delay before transmission begins.'/>

<field name='transmissionTimeDelaytype='SFTimeaccessType='initializeOnly'
 appinfo='Time delay before transmission begins.'/>

<field name='set_directionalTransmissiontype='SFBoolaccessType='inputOnly'
 appinfo='Select between directional (true) or omni-directional (false) transmission.'/>

<field name='directionalTransmissiontype='SFBoolaccessType='initializeOnly'
 appinfo='Select between directional (true) or omni-directional (false) transmission.'/>

<field name='set_buoyTypetype='SFStringaccessType='inputOnly'
 appinfo='Determine which buoy type to use. "Racom" for Racom Buoy. "Telesonar" for Telesonar Repeater.'/>

<field name='buoyTypetype='SFStringaccessType='initializeOnly'
 appinfo='Determine which buoy type to use. "Racom" for Racom Buoy. "Telesonar" for Telesonar Repeater.'/>

<field name='set_textMessagetype='MFStringaccessType='inputOnly'/>
<field name='textMessagetype='MFStringaccessType='initializeOnly'/>
<field name='textMessageColortype='SFColoraccessType='inputOutput'/>
<field name='set_descriptiontype='SFStringaccessType='inputOnly'/>
<field name='descriptiontype='SFStringaccessType='initializeOnly'/>
<field name='traceEnabledtype='SFBoolaccessType='initializeOnly'/>
</ExternProtoDeclare>
<Viewpoint description='SeaWeb buoys: click to test communicationsfieldOfView='0.9position='0 0 35'/>
<!-- ROUTE information for SeaWebBuoyInstance1 node:  [from TransmissionDuration2.triggerValue to set_transmissionDuration ] [from SingleTransmissionTextTouch.isActive to set_activated ] -->
<ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoyInstance1'>
<fieldValue name='positionvalue='-10 0 0'/>
<fieldValue name='targetPositionvalue='10 0 0'/>
<fieldValue name='enabledvalue='true'/>
<fieldValue name='activatedvalue='false'/>
<fieldValue name='transmissionDurationvalue='5'/>
<fieldValue name='transmissionTimeDelayvalue='2'/>
<fieldValue name='directionalTransmissionvalue='false'/>
<fieldValue name='buoyTypevalue='Racom'/>
<fieldValue name='textMessagevalue='"Message left-to-right"'/>
<fieldValue name='textMessageColorvalue='1 0 0'/>
<fieldValue name='descriptionvalue='SeaWeb Racom Buoy'/>
<fieldValue name='traceEnabledvalue='true'/>
</ProtoInstance>
<!-- ROUTE information for SeaWebBuoyInstance2 node:  [from TransmissionDuration1.triggerValue to set_transmissionDuration ] [from SingleTransmissionTextTouch2.isActive to set_activated ] [from TransmissionDurationRL2.triggerValue to set_transmissionDuration ] [from Single3SecRLTransmissionTextTouch.isActive to set_activated ] -->
<ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoyInstance2'>
<fieldValue name='positionvalue='10 0 0'/>
<fieldValue name='targetPositionvalue='-10 0 0'/>
<fieldValue name='enabledvalue='true'/>
<fieldValue name='activatedvalue='false'/>
<fieldValue name='transmissionDurationvalue='5'/>
<fieldValue name='transmissionTimeDelayvalue='0.5'/>
<fieldValue name='directionalTransmissionvalue='true'/>
<fieldValue name='buoyTypevalue='Telesonar'/>
<fieldValue name='textMessagevalue='"Message right-to-left"'/>
<fieldValue name='textMessageColorvalue='0 1 0'/>
<fieldValue name='descriptionvalue='SeaWeb Telesonar Buoy'/>
<fieldValue name='traceEnabledvalue='true'/>
</ProtoInstance>
<Transform rotation='1 0 0 -0.15translation='0 1 25bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Transform translation='-4.5 -3 0bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Billboard axisOfRotation='0 0 0bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Group bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Shape bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Appearance DEF='TextAppearance'>
<Material diffuseColor='.8 .8 0'/>
</Appearance>
<Text string='"Single 4 seconds" "left-right transmission" "with 2 second delay"'>
<FontStyle justify='"MIDDLE" "MIDDLE"size='0.4'/>
</Text>
</Shape>
<Shape bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Appearance DEF='TransparentAppearance'>
<Material transparency='1'/>
</Appearance>
<Box size='3.4 1.3 0.01solid='true'/>
</Shape>
<!-- ROUTE information for SingleTransmissionTextTouch node:  [from isActive to TransmissionDuration2.set_boolean ] [from isActive to SeaWebBuoyInstance1.set_activated ] -->
<TouchSensor DEF='SingleTransmissionTextTouchdescription='SingleTransmissionText'/>
<!-- ROUTE information for TransmissionDuration2 node:  [from SingleTransmissionTextTouch.isActive to set_boolean ] [from triggerValue to SeaWebBuoyInstance1.set_transmissionDuration ] -->
<IntegerTrigger DEF='TransmissionDuration2integerKey='4containerField='children'/>
<ROUTE fromNode='SingleTransmissionTextTouchfromField='isActivetoNode='TransmissionDuration2toField='set_boolean'/>
<ROUTE fromNode='TransmissionDuration2fromField='triggerValuetoNode='SeaWebBuoyInstance1toField='set_transmissionDuration'/>
<ROUTE fromNode='SingleTransmissionTextTouchfromField='isActivetoNode='SeaWebBuoyInstance1toField='set_activated'/>
</Group>
</Billboard>
</Transform>
<Transform translation='0 -3 0bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Billboard axisOfRotation='0 0 0bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Group bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Shape bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Appearance USE='TextAppearance'/>
<Text string='"Single 1 second" "right-left transmission"'>
<FontStyle justify='"MIDDLE" "MIDDLE"size='0.4'/>
</Text>
</Shape>
<Shape bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Appearance USE='TransparentAppearance'/>
<Box size='3.2 1 0.01solid='true'/>
</Shape>
<!-- ROUTE information for SingleTransmissionTextTouch2 node:  [from isActive to TransmissionDuration1.set_boolean ] [from isActive to SeaWebBuoyInstance2.set_activated ] -->
<TouchSensor DEF='SingleTransmissionTextTouch2description='SingleTransmissionText2'/>
<!-- ROUTE information for TransmissionDuration1 node:  [from SingleTransmissionTextTouch2.isActive to set_boolean ] [from triggerValue to SeaWebBuoyInstance2.set_transmissionDuration ] -->
<IntegerTrigger DEF='TransmissionDuration1integerKey='1containerField='children'/>
<ROUTE fromNode='SingleTransmissionTextTouch2fromField='isActivetoNode='TransmissionDuration1toField='set_boolean'/>
<ROUTE fromNode='TransmissionDuration1fromField='triggerValuetoNode='SeaWebBuoyInstance2toField='set_transmissionDuration'/>
<ROUTE fromNode='SingleTransmissionTextTouch2fromField='isActivetoNode='SeaWebBuoyInstance2toField='set_activated'/>
</Group>
</Billboard>
</Transform>
<Transform translation='4.5 -3 0bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Billboard axisOfRotation='0 0 0bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Group bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Shape bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Appearance USE='TextAppearance'/>
<Text string='"Single 3 second" " right-left transmission"'>
<FontStyle justify='"MIDDLE" "MIDDLE"size='0.4'/>
</Text>
</Shape>
<Shape bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Appearance USE='TransparentAppearance'/>
<Box size='3.2 1 0.01solid='true'/>
</Shape>
<!-- ROUTE information for TransmissionDurationRL2 node:  [from Single3SecRLTransmissionTextTouch.isActive to set_boolean ] [from triggerValue to SeaWebBuoyInstance2.set_transmissionDuration ] -->
<IntegerTrigger DEF='TransmissionDurationRL2integerKey='3containerField='children'/>
<!-- ROUTE information for Single3SecRLTransmissionTextTouch node:  [from isActive to TransmissionDurationRL2.set_boolean ] [from isActive to SeaWebBuoyInstance2.set_activated ] -->
<TouchSensor DEF='Single3SecRLTransmissionTextTouchdescription='Single3SecRLTransmissionText'/>
<ROUTE fromNode='Single3SecRLTransmissionTextTouchfromField='isActivetoNode='TransmissionDurationRL2toField='set_boolean'/>
<ROUTE fromNode='TransmissionDurationRL2fromField='triggerValuetoNode='SeaWebBuoyInstance2toField='set_transmissionDuration'/>
<ROUTE fromNode='Single3SecRLTransmissionTextTouchfromField='isActivetoNode='SeaWebBuoyInstance2toField='set_activated'/>
</Group>
</Billboard>
</Transform>
</Transform>
</Scene>
</X3D>
<!--

Index for ExternProtoDeclare definition : SeaWebBuoy

Index for DEF nodes : SeaWebBuoyInstance1, SeaWebBuoyInstance2, Single3SecRLTransmissionTextTouch, SingleTransmissionTextTouch, SingleTransmissionTextTouch2, TextAppearance, TransmissionDuration1, TransmissionDuration2, TransmissionDurationRL2, TransparentAppearance

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> -->

<!-- Additional help information about X3D scenes: X3D Resources, X3D Scene Authoring Hints and X3D Tooltips -->