X3D Model Documentation: BuoyCommunicationsGridExample.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
  3  <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'>
  4       <head>
  5            <meta name='titlecontent=' BuoyCommunicationsGridExample.x3d '/>
  6            <meta name='descriptioncontent='Takes a communication-message input from a traversing vehicle (such as an AUV or submarine), then sets up the route/relay time delays, directions, animation and visualization of SeaWeb buoy communications among each other, all the way to the SeaWeb RACOM RF-relay buoy at the surface.'/>
  7            <meta name='creatorcontent='Don Brutzman and MV4205 class'/>
  8            <meta name='createdcontent='8 June 2004'/>
  9            <meta name='modifiedcontent='2 January 2025'/>
 10            <meta name='subjectcontent='Buoy, SeaWeb'/>
 11            <meta name='referencecontent='BuoyCommunicationsGridExampleRoutingTable.xls'/>
 12            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/SeaWeb/BuoyCommunicationsGridExample.x3d '/>
 13            <meta name='generatorcontent='X3D-Edit, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 14            <meta name='licensecontent='../../license.html'/>
 15       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: AnimationControl, BuoyCommsGrid, BuoyCommunicationsGridGroup, Manta4, MantaGroup, MantaTransform, MantaWaypointInterpolator, MasterDvdClock, SeaWebBuoy0, SeaWebBuoy1, SeaWebBuoy10, SeaWebBuoy11, SeaWebBuoy12, SeaWebBuoy13, SeaWebBuoy14, SeaWebBuoy15, SeaWebBuoy2, SeaWebBuoy3, SeaWebBuoy4, SeaWebBuoy5, SeaWebBuoy6, SeaWebBuoy7, SeaWebBuoy8, SeaWebBuoy9, SeaWebBuoyNodes, SolarAuv, SolarAuvGroup, SolarAuvMessageScript, SolarAuvMessageSendClock, SolarAuvTransform, SolarAuvWaypointInterpolator, TransitingVehiclesGroup, ViewPositionOrientationHUD

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2

Index for ExternProtoDeclare definitions: BuoyCommunicationsGrid, CameraCompass36, DvdController, GridXZ, SeaWebBuoy, WaypointInterpolator
-->
 16       <Scene>
 17            <!-- ========== -->
 18            <!-- ExternProtoDeclare statements precede the scene elements utilizing them -->
 19            <!-- ========== -->
 20            <WorldInfo title='BuoyCommunicationsGridExample.x3d'/>
 21            <ExternProtoDeclare name='BuoyCommunicationsGridappinfo='BuoyCommunicationsGrid prototype takes a communication-message input from a traversing vehicle (such as an AUV or submarine) then sets up the route/relay time delays directions animation and visualization of SeaWeb buoy communications among each other all the way to the SeaWeb RACOM RF-relay buoy at the surface.'   url=' "BuoyCommunicationsGridPrototype.x3d#BuoyCommunicationsGrid" "../../../Savage/CommunicationsAndSensors/SeaWeb/BuoyCommunicationsGridPrototype.x3d#BuoyCommunicationsGrid" "https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/SeaWeb/BuoyCommunicationsGridPrototype.x3d#BuoyCommunicationsGrid" "BuoyCommunicationsGridPrototype.wrl#BuoyCommunicationsGrid" "../../../Savage/CommunicationsAndSensors/SeaWeb/BuoyCommunicationsGridPrototype.wrl#BuoyCommunicationsGrid" "https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/SeaWeb/BuoyCommunicationsGridPrototype.wrl#BuoyCommunicationsGrid" '>
 22                 <field name='buoyArraytype='MFNodeaccessType='initializeOnly'
                appinfo='array of SeaWebBuoy nodes index starting at 0'/>
 23                 <field name='buoyCommunicationsRoutingTabletype='MFInt32accessType='initializeOnly'
                appinfo='2D array of routing connectivity for buoys consisting either of index of next buoy in line -1 for same buoy or else 0 for no route connection. legal values range [-1..n-1] for n buoys.'/>
 24                 <field name='set_senderPositiontype='SFVec3faccessType='inputOnly'
                appinfo='set position of entity sending the message'/>
 25                 <field name='senderPositiontype='SFVec3faccessType='initializeOnly'
                appinfo='position of entity sending the message'/>
 26                 <field name='set_receiverPositiontype='SFVec3faccessType='inputOnly'
                appinfo='set position of entity receiving the message'/>
 27                 <field name='receiverPositiontype='SFVec3faccessType='initializeOnly'
                appinfo='position of entity receiving the message'/>
 28                 <field name='set_textMessagetype='MFStringaccessType='inputOnly'/>
 29                 <field name='textMessagetype='MFStringaccessType='initializeOnly'/>
 30                 <field name='sendMessagetype='SFBoolaccessType='inputOnly'
                appinfo='send it! (note: maybe should rename as activate)'/>
 31            </ExternProtoDeclare>
 32            <!-- ========== -->
 33            <ExternProtoDeclare name='CameraCompass36appinfo='Circular set of compass bearings that follow the active viewpoint set at 360/36 = 10 degree intervals. North = +X axis East = +Z axis up = +Y axis.'   url=' "../../../Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.x3d#CameraCompass36" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.x3d#CameraCompass36" "../../../Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.wrl#CameraCompass36" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.wrl#CameraCompass36" '>
 34                 <field name='enabledtype='SFBoolaccessType='inputOutput'/>
 35                 <field name='positionOffsetFromCameratype='SFVec3faccessType='inputOutput'/>
 36                 <field name='markerColortype='SFColoraccessType='inputOutput'/>
 37                 <field name='labelColortype='SFColoraccessType='inputOutput'/>
 38            </ExternProtoDeclare>
 39            <ExternProtoDeclare name='DvdControllerappinfo="Digital Virtual Display (DVD) Controller Prototype definition to control a scenario's animation timing"   url=' "../../../Savage/Tools/HeadsUpDisplays/DvdControllerPrototype.x3d#DvdController" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/DvdControllerPrototype.x3d#DvdController" "../../../Savage/Tools/HeadsUpDisplays/DvdControllerPrototype.wrl#DvdController" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/DvdControllerPrototype.wrl#DvdController" '>
 40                 <field name='descriptiontype='SFStringaccessType='initializeOnly'
                appinfo='Short description of what is animated by this DvdController.'/>
 41                 <field name='playEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='Whether or not play mode is enabled including during startup.'/>
 42                 <field name='displayModetype='SFStringaccessType='initializeOnly'
                appinfo='Initializes how control buttons and slider are displayed. The control buttons include DIS control (i.e. Master Ghost Local) and Playback control (i.e. Reset to Start Fast Rewind Rewind Pause Play Fast Forward Reset to End). Possible values are (case sensitive): ALL DIS_ONLY PLAYBACK_ONLY SLIDER_ONLY DIS_PLAYBACK DIS_SLIDER PLAYBACK_SLIDER and NONE.'/>
 43                 <field name='setDisplayModetype='SFStringaccessType='inputOnly'
                appinfo='Sets how control buttons and slider are displayed. The control buttons include DIS control (i.e. Master Ghost Local) and Playback control (i.e. Reset to Start Fast Rewind Rewind Pause Play Fast Forward Reset to End). Possible values are (case sensitive): ALL DIS_ONLY PLAYBACK_ONLY SLIDER_ONLY DIS_PLAYBACK DIS_SLIDER PLAYBACK_SLIDER and NONE.'/>
 44                 <field name='buttonColortype='SFColoraccessType='initializeOnly'
                appinfo='Default button color.'/>
 45                 <field name='selectedButtonColortype='SFColoraccessType='initializeOnly'
                appinfo='Button color when selected by user.'/>
 46                 <field name='labelColortype='SFColoraccessType='initializeOnly'
                appinfo='Default label color.'/>
 47                 <field name='selectedLabelColortype='SFColoraccessType='initializeOnly'
                appinfo='Label color when selected by user.'/>
 48                 <field name='locationOffsettype='SFVec3faccessType='initializeOnly'
                appinfo='Modified screen location and distance (for size).'/>
 49                 <field name='clockEnabledtype='SFBoolaccessType='initializeOnly'/>
 50                 <field name='cycleIntervaltype='SFTimeaccessType='initializeOnly'
                appinfo='Time for complete loop cycle in seconds.'/>
 51                 <field name='set_cycleIntervaltype='SFTimeaccessType='inputOnly'/>
 52                 <field name='cycleInterval_changedtype='SFTimeaccessType='outputOnly'/>
 53                 <field name='speedFactortype='SFFloataccessType='initializeOnly'
                appinfo='Factor used to determine the speed increase/decrease for Fast Rewind and Fast Forward action.'/>
 54                 <field name='isActivetype='SFBoolaccessType='outputOnly'/>
 55                 <field name='startTime_changedtype='SFTimeaccessType='outputOnly'/>
 56                 <field name='stopTime_changedtype='SFTimeaccessType='outputOnly'/>
 57                 <field name='time_changedtype='SFTimeaccessType='outputOnly'/>
 58                 <field name='fraction_changedtype='SFFloataccessType='outputOnly'/>
 59                 <field name='secondsElapsedtype='SFTimeaccessType='outputOnly'/>
 60                 <field name='isMastertype='SFBoolaccessType='outputOnly'
                appinfo='isMaster isRemote and isLocal are booleans represent a 3-way toggle. Only one of them can have a true value at any time.'/>
 61                 <field name='isRemotetype='SFBoolaccessType='outputOnly'
                appinfo='isMaster isRemote and isLocal are booleans represent a 3-way toggle. Only one of them can have a true value at any time.'/>
 62                 <field name='isLocaltype='SFBoolaccessType='outputOnly'
                appinfo='isMaster isRemote and isLocal are booleans represent a 3-way toggle. Only one of them can have a true value at any time.'/>
 63                 <field name='isPausedtype='SFBoolaccessType='outputOnly'
                appinfo='isPaused and isRunning always have opposite values. When isPaused is true isRunning will be false and vice versa.'/>
 64                 <field name='isRunningtype='SFBoolaccessType='outputOnly'
                appinfo='isPaused and isRunning always have opposite values. When isPaused is true isRunning will be false and vice versa.'/>
 65                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='Enable/disable console output for troubleshooting.'/>
 66                 <field name='testTimeValtype='SFTimeaccessType='initializeOnly'/>
 67            </ExternProtoDeclare>
 68            <ExternProtoDeclare name='GridXZappinfo='Line grid authoring tool to enable precise measurement of objects in 3D space - fixed position. Oriented along XZ plane size 20m by 20m.'   url=' "../../../Savage/Tools/Authoring/GridXZPrototype.x3d#GridXZ" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/GridXZPrototype.x3d#GridXZ" "../../../Savage/Tools/Authoring/GridXZPrototype.wrl#GridXZ" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/GridXZPrototype.wrl#GridXZ" '>
 69                 <field name='descriptiontype='SFStringaccessType='initializeOnly'
                appinfo='Purpose of this grid displayed for overall Viewpoint'/>
 70                 <field name='labelColortype='SFColoraccessType='inputOutput'
                appinfo='color for descriptive labels at grid edges and corners'/>
 71                 <field name='scaletype='SFVec3faccessType='inputOutput'
                appinfo='default unscaled size: 10m by 10m'/>
 72                 <field name='originLabeltype='MFStringaccessType='inputOutput'/>
 73                 <field name='WestLabeltype='MFStringaccessType='inputOutput'
                appinfo='-X axis'/>
 74                 <field name='NorthWestLabeltype='MFStringaccessType='inputOutput'/>
 75                 <field name='NorthLabeltype='MFStringaccessType='inputOutput'
                appinfo='-Z axis'/>
 76                 <field name='NorthEastLabeltype='MFStringaccessType='inputOutput'/>
 77                 <field name='EastLabeltype='MFStringaccessType='inputOutput'
                appinfo='+X axis'/>
 78                 <field name='SouthEastLabeltype='MFStringaccessType='inputOutput'/>
 79                 <field name='SouthLabeltype='MFStringaccessType='inputOutput'
                appinfo='+Z axis'/>
 80                 <field name='SouthWestLabeltype='MFStringaccessType='inputOutput'/>
 81                 <field name='labelsOffsettype='SFVec3faccessType='inputOutput'
                appinfo='label location offset (in meters) to improve readability'/>
 82            </ExternProtoDeclare>
 83            <ExternProtoDeclare name='SeaWebBuoyappinfo='SeaWeb acoustic-radio gateway communications buoy'   url=' "../../../Savage/CommunicationsAndSensors/SeaWeb/SeaWebBuoyPrototype.x3d#SeaWebBuoy" "https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/SeaWeb/SeaWebBuoyPrototype.x3d#SeaWebBuoy" "../../../Savage/CommunicationsAndSensors/SeaWeb/SeaWebBuoyPrototype.wrl#SeaWebBuoy" "https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/SeaWeb/SeaWebBuoyPrototype.wrl#SeaWebBuoy" '>
 84                 <field name='set_positiontype='SFVec3faccessType='inputOnly'
                appinfo='Position of buoy.'/>
 85                 <field name='positiontype='SFVec3faccessType='initializeOnly'
                appinfo='Position of buoy.'/>
 86                 <field name='set_targetPositiontype='SFVec3faccessType='inputOnly'
                appinfo='Position of target of transmission.'/>
 87                 <field name='targetPositiontype='SFVec3faccessType='initializeOnly'
                appinfo='Position of target of transmission.'/>
 88                 <field name='targetIdNumbertype='SFInt32accessType='initializeOnly'
                appinfo='Id number of target.'/>
 89                 <field name='set_targetIdNumbertype='SFInt32accessType='inputOnly'
                appinfo='Id number of target.'/>
 90                 <field name='set_enabledtype='SFBoolaccessType='inputOnly'
                appinfo='Enable buoy for transmission.'/>
 91                 <field name='enabledtype='SFBoolaccessType='initializeOnly'
                appinfo='Enable buoy for transmission.'/>
 92                 <field name='set_activatedtype='SFBoolaccessType='inputOnly'
                appinfo='Start transmission.'/>
 93                 <field name='activatedtype='SFBoolaccessType='initializeOnly'
                appinfo='Start transmission.'/>
 94                 <field name='set_transmissionDurationtype='SFFloataccessType='inputOnly'
                appinfo='Duration in seconds needed to transmit message (does not include transmissionTimeDelay or propagation delay).'/>
 95                 <field name='transmissionDurationtype='SFFloataccessType='initializeOnly'
                appinfo='Duration in seconds needed to transmit message (does not include transmissionTimeDelay or propagation delay).'/>
 96                 <field name='transmissionTimeDelaytype='SFTimeaccessType='initializeOnly'
                appinfo='Time delay before transmission begins.'/>
 97                 <field name='set_transmissionTimeDelaytype='SFTimeaccessType='inputOnly'
                appinfo='Time delay before transmission begins.'/>
 98                 <field name='set_directionalTransmissiontype='SFBoolaccessType='inputOnly'
                appinfo='Select between directional (true) or omni-directional (false) transmission.'/>
 99                 <field name='directionalTransmissiontype='SFBoolaccessType='initializeOnly'
                appinfo='Select between directional (true) or omni-directional (false) transmission.'/>
100                 <field name='set_buoyTypetype='SFStringaccessType='inputOnly'
                appinfo='Determine which buoy type to use. "Racom" for Racom Buoy. "Telesonar" for Telesonar Repeater.'/>
101                 <field name='buoyTypetype='SFStringaccessType='initializeOnly'
                appinfo='Determine which buoy type to use. "Racom" for Racom Buoy. "Telesonar" for Telesonar Repeater.'/>
102                 <field name='set_textMessagetype='MFStringaccessType='inputOnly'/>
103                 <field name='textMessagetype='MFStringaccessType='initializeOnly'/>
104                 <field name='textMessageColortype='SFColoraccessType='inputOutput'/>
105                 <field name='set_descriptiontype='SFStringaccessType='inputOnly'/>
106                 <field name='descriptiontype='SFStringaccessType='initializeOnly'/>
107                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'/>
108                 <field name='set_soundSpeedInWatertype='SFFloataccessType='inputOnly'
                appinfo='Sound speed in water default value 1500 m/s'/>
109                 <field name='soundSpeedInWatertype='SFFloataccessType='initializeOnly'
                appinfo='Sound speed in water default value 1500 m/s'/>
110            </ExternProtoDeclare>
111            <ExternProtoDeclare name='WaypointInterpolatorappinfo='Reads waypoints and legSpeeds/legDurations/defaultSpeed to provide a customizable position/orientation interpolator.'   url=' "../../../Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator" "../../../Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator" '>
112                 <!-- Priority of use: legSpeeds (m/sec), legDurations (seconds), defaultSpeed (m/sec) -->
113                 <field name='descriptiontype='SFStringaccessType='initializeOnly'
                appinfo='Short description of what is animated by this WaypointInterpolator.'/>
114                 <field name='waypointstype='MFVec3faccessType='initializeOnly'
                appinfo='Waypoints being traversed with interpolation of intermediate positions and orientations.'/>
115                 <field name='add_waypointtype='SFVec3faccessType='inputOnly'
                appinfo='Add another single waypoint to array of waypoints recalculate interpolator values.'/>
116                 <field name='set_waypointstype='MFVec3faccessType='inputOnly'
                appinfo='Replace all waypoints recalculate interpolator values.'/>
117                 <field name='pitchUpDownForVerticalWaypointstype='SFBoolaccessType='initializeOnly'
                appinfo='Whether to pitch child geometry (such as a vehicle) up or down to match vertical slope'/>
118                 <field name='legSpeedstype='MFFloataccessType='initializeOnly'
                appinfo='Units m/sec. If used array lengths for legSpeeds and legDurations must be one less than number of waypoints.'/>
119                 <field name='legDurationstype='MFTimeaccessType='initializeOnly'
                appinfo='Units in seconds. If used array lengths for legSpeeds and legDurations must be one less than number of waypoints.'/>
120                 <field name='defaultSpeedtype='SFFloataccessType='initializeOnly'
                appinfo='Units m/sec.'/>
121                 <field name='turningRatetype='SFFloataccessType='initializeOnly'
                appinfo='turningRate (degrees/second) also determines standoff distance prior to waypoint where turn commences. If 0 turns are instantaneous.'/>
122                 <field name='totalDurationtype='SFTimeaccessType='outputOnly'
                appinfo='Output calculation summing all leg durations, useful for setting TimeSensor cycleInterval. Units in seconds.'/>
123                 <!-- interpolation fields -->
124                 <field name='set_fractiontype='SFFloataccessType='inputOnly'
                appinfo='exposed PositionInterpolator and OrientationInterpolator setting'/>
125                 <field name='position_changedtype='SFVec3faccessType='outputOnly'
                appinfo='exposed PositionInterpolator setting'/>
126                 <field name='orientation_changedtype='SFRotationaccessType='outputOnly'
                appinfo='exposed OrientationInterpolator setting'/>
127                 <!-- display-related fields -->
128                 <field name='lineColortype='SFColoraccessType='inputOutput'
                appinfo='default color for non-active line segments'/>
129                 <field name='highlightSegmentColortype='SFColoraccessType='inputOutput'
                appinfo='active segment highlight color'/>
130                 <field name='transparencytype='SFFloataccessType='inputOutput'
                appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/>
131                 <field name='labelDisplayModetype='SFStringaccessType='initializeOnly'
                appinfo='allowed values: none; waypoints (produce labels at each waypoint); or interpolation (produce single moving label at interpolator time course speed location)'/>
132                 <field name='heightLabeltype='SFStringaccessType='initializeOnly'
                appinfo='allowed values: altitude depth (negate Y value) none'/>
133                 <field name='labelOffsettype='SFVec3faccessType='initializeOnly'
                appinfo='heightLabel relative location'/>
134                 <field name='labelFontSizetype='SFFloataccessType='initializeOnly'
                appinfo='heightLabel text size'/>
135                 <field name='labelColortype='SFColoraccessType='initializeOnly'
                appinfo='heightLabel text color'/>
136                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='enable console output to trace script computations and prototype progress'/>
137                 <field name='outputInitializationComputationstype='SFBoolaccessType='initializeOnly'
                appinfo='Output the number of waypoints totalDistance and totalDuration to console upon initialization'/>
138                 <field name='verticalDropLineColortype='SFColoraccessType='inputOutput'
                appinfo='default color for vertical drop-line segments'/>
139                 <field name='verticalDropLineTransparencytype='SFFloataccessType='inputOutput'
                appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/>
140            </ExternProtoDeclare>
141            <!-- ========== -->
142            <NavigationInfo avatarSize='2 1.6 0.75speed='1000'/>
143            <Transform rotation='0 1 0 -1.578translation='5000 15000 5000'>
144                 <Viewpoint description='Buoy communications grid (15000m up)orientation='1 0 0 -1.578position='0 0 0'/>
145            </Transform>
146            <Inline DEF='ViewPositionOrientationHUD'   url=' "../../../Savage/Tools/HeadsUpDisplays/ViewPositionOrientationHUD.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/ViewPositionOrientationHUD.x3d" "../../../Savage/Tools/HeadsUpDisplays/ViewPositionOrientationHUD.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/ViewPositionOrientationHUD.wrl" '/>
147            <ProtoInstance name='GridXZ'>
148                 <fieldValue name='descriptionvalue='Sonobuoy Field Scenario'/>
149                 <fieldValue name='labelColorvalue='0.8 0.8 1'/>
150                 <fieldValue name='scalevalue='1000 1000 1000'/>
151                 <fieldValue name='originLabelvalue='"origin"'/>
152                 <fieldValue name='WestLabelvalue='"West" "-Z"'/>
153                 <fieldValue name='NorthWestLabelvalue='"10000 0 -10000"'/>
154                 <fieldValue name='NorthLabelvalue='"North" "+X"'/>
155                 <fieldValue name='NorthEastLabelvalue='"10000 0 10000"'/>
156                 <fieldValue name='EastLabelvalue='"East" "+Z"'/>
157                 <fieldValue name='SouthEastLabelvalue='"-10000 0 10000"'/>
158                 <fieldValue name='SouthLabelvalue='"South" "-X"'/>
159                 <fieldValue name='SouthWestLabelvalue='"-10000 0 -10000"'/>
160            </ProtoInstance>
161            <ProtoInstance name='CameraCompass36'>
162                 <fieldValue name='enabledvalue='true'/>
163                 <fieldValue name='positionOffsetFromCameravalue='0 5 0'/>
164                 <fieldValue name='markerColorvalue='0.9 0.9 0.9'/>
165                 <fieldValue name='labelColorvalue='0.9 0.9 0.9'/>
166            </ProtoInstance>
167            <Group DEF='SeaWebBuoyNodes'>
168 
               <!-- ProtoInstance SeaWebBuoy0 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy0'>
169                      <fieldValue name='buoyTypevalue='Racom'/>
170                      <fieldValue name='positionvalue='6000 -100 0'/>
171                      <fieldValue name='descriptionvalue='SeaWebBuoy0'/>
172                 </ProtoInstance>
173 
               <!-- ProtoInstance SeaWebBuoy1 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy1'>
174                      <fieldValue name='buoyTypevalue='Telesonar'/>
175                      <fieldValue name='positionvalue='6000 -100 2000'/>
176                      <fieldValue name='descriptionvalue='SeaWebBuoy1'/>
177                 </ProtoInstance>
178 
               <!-- ProtoInstance SeaWebBuoy2 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy2'>
179                      <fieldValue name='buoyTypevalue='Telesonar'/>
180                      <fieldValue name='positionvalue='6000 -100 4000'/>
181                      <fieldValue name='descriptionvalue='SeaWebBuoy2'/>
182                 </ProtoInstance>
183 
               <!-- ProtoInstance SeaWebBuoy3 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy3'>
184                      <fieldValue name='buoyTypevalue='Telesonar'/>
185                      <fieldValue name='positionvalue='6000 -100 6000'/>
186                      <fieldValue name='descriptionvalue='SeaWebBuoy3'/>
187                 </ProtoInstance>
188 
               <!-- ProtoInstance SeaWebBuoy4 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy4'>
189                      <fieldValue name='buoyTypevalue='Telesonar'/>
190                      <fieldValue name='positionvalue='4000 -100 0'/>
191                      <fieldValue name='descriptionvalue='SeaWebBuoy4'/>
192                 </ProtoInstance>
193 
               <!-- ProtoInstance SeaWebBuoy5 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy5'>
194                      <fieldValue name='buoyTypevalue='Telesonar'/>
195                      <fieldValue name='positionvalue='4000 -100 2000'/>
196                      <fieldValue name='descriptionvalue='SeaWebBuoy5'/>
197                 </ProtoInstance>
198 
               <!-- ProtoInstance SeaWebBuoy6 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy6'>
199                      <fieldValue name='buoyTypevalue='Telesonar'/>
200                      <fieldValue name='positionvalue='4000 -100 4000'/>
201                      <fieldValue name='descriptionvalue='SeaWebBuoy6'/>
202                 </ProtoInstance>
203 
               <!-- ProtoInstance SeaWebBuoy7 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy7'>
204                      <fieldValue name='buoyTypevalue='Telesonar'/>
205                      <fieldValue name='positionvalue='4000 -100 6000'/>
206                      <fieldValue name='descriptionvalue='SeaWebBuoy7'/>
207                 </ProtoInstance>
208 
               <!-- ProtoInstance SeaWebBuoy8 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy8'>
209                      <fieldValue name='buoyTypevalue='Telesonar'/>
210                      <fieldValue name='positionvalue='2000 -100 0'/>
211                      <fieldValue name='descriptionvalue='SeaWebBuoy8'/>
212                 </ProtoInstance>
213 
               <!-- ProtoInstance SeaWebBuoy9 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy9'>
214                      <fieldValue name='buoyTypevalue='Telesonar'/>
215                      <fieldValue name='positionvalue='2000 -100 2000'/>
216                      <fieldValue name='descriptionvalue='SeaWebBuoy9'/>
217                 </ProtoInstance>
218 
               <!-- ProtoInstance SeaWebBuoy10 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy10'>
219                      <fieldValue name='buoyTypevalue='Telesonar'/>
220                      <fieldValue name='positionvalue='2000 -100 4000'/>
221                      <fieldValue name='descriptionvalue='SeaWebBuoy10'/>
222                 </ProtoInstance>
223 
               <!-- ProtoInstance SeaWebBuoy11 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy11'>
224                      <fieldValue name='buoyTypevalue='Telesonar'/>
225                      <fieldValue name='positionvalue='2000 -100 6000'/>
226                      <fieldValue name='descriptionvalue='SeaWebBuoy11'/>
227                 </ProtoInstance>
228 
               <!-- ProtoInstance SeaWebBuoy12 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy12'>
229                      <fieldValue name='buoyTypevalue='Telesonar'/>
230                      <fieldValue name='positionvalue='0 -100 0'/>
231                      <fieldValue name='descriptionvalue='SeaWebBuoy12'/>
232                 </ProtoInstance>
233 
               <!-- ProtoInstance SeaWebBuoy13 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy13'>
234                      <fieldValue name='buoyTypevalue='Telesonar'/>
235                      <fieldValue name='positionvalue='0 -100 2000'/>
236                      <fieldValue name='descriptionvalue='SeaWebBuoy13'/>
237                 </ProtoInstance>
238 
               <!-- ProtoInstance SeaWebBuoy14 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy14'>
239                      <fieldValue name='buoyTypevalue='Telesonar'/>
240                      <fieldValue name='positionvalue='0 -100 4000'/>
241                      <fieldValue name='descriptionvalue='SeaWebBuoy14'/>
242                 </ProtoInstance>
243 
               <!-- ProtoInstance SeaWebBuoy15 is a DEF node that has 1 USE node: USE_1 -->
               <ProtoInstance name='SeaWebBuoyDEF='SeaWebBuoy15'>
244                      <fieldValue name='buoyTypevalue='Racom'/>
245                      <fieldValue name='positionvalue='0 -100 6000'/>
246                      <fieldValue name='descriptionvalue='SeaWebBuoy15'/>
247                 </ProtoInstance>
248            </Group>
249            <Group DEF='BuoyCommunicationsGridGroup'>
250 
251                      <fieldValue name='textMessagevalue='"testing 1 2 3"'/>
252                      <fieldValue name='buoyArray'>
253                           <ProtoInstance USE='SeaWebBuoy0'/>
254                           <ProtoInstance USE='SeaWebBuoy1'/>
255                           <ProtoInstance USE='SeaWebBuoy2'/>
256                           <ProtoInstance USE='SeaWebBuoy3'/>
257                           <ProtoInstance USE='SeaWebBuoy4'/>
258                           <ProtoInstance USE='SeaWebBuoy5'/>
259                           <ProtoInstance USE='SeaWebBuoy6'/>
260                           <ProtoInstance USE='SeaWebBuoy7'/>
261                           <ProtoInstance USE='SeaWebBuoy8'/>
262                           <ProtoInstance USE='SeaWebBuoy9'/>
263                           <ProtoInstance USE='SeaWebBuoy10'/>
264                           <ProtoInstance USE='SeaWebBuoy11'/>
265                           <ProtoInstance USE='SeaWebBuoy12'/>
266                           <ProtoInstance USE='SeaWebBuoy13'/>
267                           <ProtoInstance USE='SeaWebBuoy14'/>
268                           <ProtoInstance USE='SeaWebBuoy15'/>
269                      </fieldValue>
270                      <fieldValue name='buoyCommunicationsRoutingTablevalue='-1 1 1 1 4 5 5 5 4 5 5 5 4 5 5 5 0 -1 2 2 4 5 6 6 4 5 6 6 4 5 6 6 1 1 -1 3 5 5 6 7 5 5 6 7 5 5 6 7 2 2 2 -1 6 6 6 7 6 6 6 7 6 6 6 7 0 1 1 1 -1 5 5 5 8 9 9 9 8 9 9 9 0 1 2 2 4 -1 6 6 8 9 10 10 8 9 10 10 1 1 2 3 5 5 -1 7 9 9 10 11 9 9 10 11 2 2 2 3 6 6 6 -1 10 10 10 11 10 10 10 11 4 5 5 5 4 5 5 5 -1 9 9 9 12 13 13 13 4 5 6 6 4 5 6 6 8 -1 10 10 12 13 14 14 5 5 6 7 5 5 6 7 9 9 -1 11 13 13 14 15 6 6 6 7 6 6 6 7 10 10 10 -1 14 14 14 15 8 9 9 9 8 9 9 9 8 9 9 9 -1 13 13 13 8 9 10 10 8 9 10 10 8 9 10 10 12 -1 14 14 9 9 10 11 9 9 10 11 9 9 10 11 13 13 -1 15 10 10 10 11 10 10 10 11 10 10 10 11 14 14 14 -1'/>
271                 </ProtoInstance>
272            </Group>
273            <Group DEF='AnimationControl'>
274 
275                      <fieldValue name='displayModevalue='PLAYBACK_SLIDER'/>
276                      <fieldValue name='playEnabledvalue='true'/>
277                      <fieldValue name='buttonColorvalue='0.655 0.655 0.655'/>
278                      <fieldValue name='selectedButtonColorvalue='0.675 0.675 0.675'/>
279                      <fieldValue name='selectedLabelColorvalue='0.9 0 0'/>
280                      <fieldValue name='locationOffsetvalue='-4 3 -10'/>
281                      <fieldValue name='cycleIntervalvalue='60'/>
282                      <fieldValue name='speedFactorvalue='10.0'/>
283                      <fieldValue name='traceEnabledvalue='false'/>
284                 </ProtoInstance>
285            </Group>
286            <Group DEF='TransitingVehiclesGroup'>
287                 <Group DEF='MantaGroup'>
288 
                    <!-- ROUTE information for MantaTransform node:  [from MantaWaypointInterpolator.position_changed to set_translation ] [from MantaWaypointInterpolator.orientation_changed to set_rotation ] -->
                    <Transform DEF='MantaTransform'>
289                           <Viewpoint description='Manta side vieworientation='0 1 0 -1.57position='-20 3 0'/>
290                           <Inline DEF='Manta4'   url=' "../../Robots/UnmannedUnderwaterVehicles/Manta4.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/Manta4.x3d" "../../Robots/UnmannedUnderwaterVehicles/Manta4.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/Manta4.wrl" '/>
291                      </Transform>
292 
293                           <fieldValue name='descriptionvalue='Manta AUV'/>
294                           <fieldValue name='waypointsvalue='1100 -5 6100 1100 -5 8100 7500 -5 8100 7500 -5 1100 6100 -5 1100 1100 -5 6100'/>
295                           <fieldValue name='pitchUpDownForVerticalWaypointsvalue='false'/>
296                           <fieldValue name='defaultSpeedvalue='100'/>
297                           <fieldValue name='lineColorvalue='0.8 0.8 0.2'/>
298                           <fieldValue name='highlightSegmentColorvalue='0.2 0.2 1'/>
299                           <fieldValue name='transparencyvalue='0'/>
300                           <fieldValue name='labelDisplayModevalue='interpolation'/>
301                           <fieldValue name='heightLabelvalue='altitude'/>
302                           <fieldValue name='labelOffsetvalue='0 4 0'/>
303                           <fieldValue name='labelFontSizevalue='0.5'/>
304                           <fieldValue name='labelColorvalue='0.3 0.9 0.3'/>
305                           <fieldValue name='traceEnabledvalue='false'/>
306                      </ProtoInstance>
307                      < ROUTE  fromNode='MasterDvdClock' fromField='fraction_changed' toNode='MantaWaypointInterpolator' toField='set_fraction'/>
308                      <!-- global fix needed: change toField set_cycleInterval -->
309                      < ROUTE  fromNode='MantaWaypointInterpolator' fromField='totalDuration' toNode='MasterDvdClock' toField='set_cycleInterval'/>
310                      < ROUTE  fromNode='MantaWaypointInterpolator' fromField='position_changed' toNode='MantaTransform' toField='set_translation'/>
311                      < ROUTE  fromNode='MantaWaypointInterpolator' fromField='orientation_changed' toNode='MantaTransform' toField='set_rotation'/>
312                      < ROUTE  fromNode='MantaWaypointInterpolator' fromField='position_changed' toNode='BuoyCommsGrid' toField='set_receiverPosition'/>
313                 </Group>
314                 <Group DEF='SolarAuvGroup'>
315 
                    <!-- ROUTE information for SolarAuvTransform node:  [from SolarAuvWaypointInterpolator.position_changed to set_translation ] [from SolarAuvWaypointInterpolator.orientation_changed to set_rotation ] -->
                    <Transform DEF='SolarAuvTransform'>
316                           <Inline DEF='SolarAuv'   url=' "../../Robots/UnmannedUnderwaterVehicles/SolarAUV.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/SolarAUV.x3d" "../../Robots/UnmannedUnderwaterVehicles/SolarAUV.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/SolarAUV.wrl" '/>
317                           <!-- looping clock trigger follows -->
318 
                         <!-- ROUTE information for SolarAuvMessageSendClock node:  [from cycleTime to SolarAuvMessageScript.timeToPrepareMessage ] -->
                         <TimeSensor DEF='SolarAuvMessageSendClockcycleInterval='15loop='true'/>
319 
                         <!-- ROUTE information for SolarAuvMessageScript node:  [from SolarAuvMessageSendClock.cycleTime to timeToPrepareMessage ] [from newMessage to BuoyCommsGrid.set_textMessage ] [from sendMessage to BuoyCommsGrid.sendMessage ] -->
                         <Script DEF='SolarAuvMessageScript'>
320                                <field name='timeToPrepareMessagetype='SFTimeaccessType='inputOnly'
                               appinfo='trigger when time to create new message'/>
321                                <field name='messageCountertype='SFInt32value='0accessType='initializeOnly'/>
322                                <field name='newMessagetype='MFStringaccessType='outputOnly'
                               appinfo='text of next message to be sent'/>
323                                <field name='sendMessagetype='SFBoolaccessType='outputOnly'/>
  <![CDATA[
            
ecmascript:

function timeToPrepareMessage (value, timestamp)
{
	messageCounter++;
	newMessage[0] ='SolarAUV' + messageCounter; // set
	sendMessage = true; // send
	Browser.println ('[SolarAuvMessageScript] timeToPrepareMessage() complete:' + newMessage[0]);
}

          
]]>
325                           </Script>
326                           < ROUTE  fromNode='SolarAuvMessageSendClock' fromField='cycleTime' toNode='SolarAuvMessageScript' toField='timeToPrepareMessage'/>
327                           < ROUTE  fromNode='SolarAuvMessageScript' fromField='newMessage' toNode='BuoyCommsGrid' toField='set_textMessage'/>
328                           < ROUTE  fromNode='SolarAuvMessageScript' fromField='sendMessage' toNode='BuoyCommsGrid' toField='sendMessage'/>
329                      </Transform>
330 
331                           <fieldValue name='descriptionvalue='Solar AUV'/>
332                           <fieldValue name='waypointsvalue='-1000 -1 -1000 0 -1 0 2000 -1 2000 3000 -1 3000 4000 -1 4000 5000 -1 5000 6000 -1 6000 7000 -1 7000 7000 -1 6000 6000 -1 5000 5000 -1 4000 4000 -1 3000 3000 -1 2000 2000 -1 1000 1000 -1 0 0 -1 -1000 -1000 -1 -1000'/>
333                           <fieldValue name='pitchUpDownForVerticalWaypointsvalue='false'/>
334                           <fieldValue name='defaultSpeedvalue='10'/>
335                           <fieldValue name='lineColorvalue='0.8 0.8 0.2'/>
336                           <fieldValue name='highlightSegmentColorvalue='0.2 0.2 1'/>
337                           <fieldValue name='transparencyvalue='0'/>
338                           <fieldValue name='labelDisplayModevalue='interpolation'/>
339                           <fieldValue name='heightLabelvalue='altitude'/>
340                           <fieldValue name='labelOffsetvalue='0 1 0'/>
341                           <fieldValue name='labelFontSizevalue='0.2'/>
342                           <fieldValue name='labelColorvalue='0.9 0.9 0.3'/>
343                           <fieldValue name='traceEnabledvalue='false'/>
344                      </ProtoInstance>
345                      < ROUTE  fromNode='MasterDvdClock' fromField='fraction_changed' toNode='SolarAuvWaypointInterpolator' toField='set_fraction'/>
346                      < ROUTE  fromNode='SolarAuvWaypointInterpolator' fromField='position_changed' toNode='SolarAuvTransform' toField='set_translation'/>
347                      < ROUTE  fromNode='SolarAuvWaypointInterpolator' fromField='orientation_changed' toNode='SolarAuvTransform' toField='set_rotation'/>
348                      < ROUTE  fromNode='SolarAuvWaypointInterpolator' fromField='position_changed' toNode='BuoyCommsGrid' toField='set_senderPosition'/>
349                 </Group>
350            </Group>
351       </Scene>
352  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: AnimationControl, BuoyCommsGrid, BuoyCommunicationsGridGroup, Manta4, MantaGroup, MantaTransform, MantaWaypointInterpolator, MasterDvdClock, SeaWebBuoy0, SeaWebBuoy1, SeaWebBuoy10, SeaWebBuoy11, SeaWebBuoy12, SeaWebBuoy13, SeaWebBuoy14, SeaWebBuoy15, SeaWebBuoy2, SeaWebBuoy3, SeaWebBuoy4, SeaWebBuoy5, SeaWebBuoy6, SeaWebBuoy7, SeaWebBuoy8, SeaWebBuoy9, SeaWebBuoyNodes, SolarAuv, SolarAuvGroup, SolarAuvMessageScript, SolarAuvMessageSendClock, SolarAuvTransform, SolarAuvWaypointInterpolator, TransitingVehiclesGroup, ViewPositionOrientationHUD

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2

Index for ExternProtoDeclare definitions: BuoyCommunicationsGrid, CameraCompass36, DvdController, GridXZ, SeaWebBuoy, WaypointInterpolator
-->
X3D Tooltips element index: ExternProtoDeclare, field, fieldValue, Group, head, Inline, meta, NavigationInfo, ProtoInstance, ROUTE, Scene, Script, TimeSensor, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table entries with 12 ROUTE connections total, showing X3D event-model relationships for this scene.

Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

SolarAuvMessageSendClock
TimeSensor
cycleTime
SFTime

ROUTE
event to
(1)
SolarAuvMessageScript
Script
timeToPrepareMessage
SFTime
then
 
 
 
SolarAuvMessageScript
Script
newMessage
MFString

ROUTE
event to
(2)
BuoyCommsGrid
ProtoInstance
set_textMessage
MFString
  then
 
 
 
SolarAuvMessageScript
Script
sendMessage
SFBool

ROUTE
event to
(2)
BuoyCommsGrid
ProtoInstance
sendMessage
SFBool

line 147
ProtoInstance
GridXZ
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

line 161
ProtoInstance
CameraCompass36
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

      BuoyCommsGrid
ProtoInstance
BuoyCommunicationsGrid
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

     
The following ROUTE chain begins an event-routing loop! Loop occurs at nodeDepth=3.
 
ROUTE MantaWaypointInterpolator.totalDuration TO MasterDvdClock.set_cycleInterval
MantaWaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(1)
MasterDvdClock
ProtoInstance
set_cycleInterval
SFTime
then
 
 
 
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(2)
MantaWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
MantaWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(3)
MantaTransform
Transform
set_rotation
SFRotation
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(3)
MantaTransform
Transform
set_translation
SFVec3f
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(3)
BuoyCommsGrid
ProtoInstance
set_receiverPosition
SFVec3f
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(3)
MasterDvdClock
ProtoInstance
set_cycleInterval
SFTime
then
 
 
 
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(4)
MantaWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
MantaWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(5)
MantaTransform
Transform
set_rotation
SFRotation
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(5)
MantaTransform
Transform
set_translation
SFVec3f
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(5)
BuoyCommsGrid
ProtoInstance
set_receiverPosition
SFVec3f
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
MasterDvdClock
ProtoInstance
set_cycleInterval
SFTime
then
 
 
 
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(6)
MantaWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
MantaWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(7)
MantaTransform
Transform
set_rotation
SFRotation
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(7)
MantaTransform
Transform
set_translation
SFVec3f
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(7)
BuoyCommsGrid
ProtoInstance
set_receiverPosition
SFVec3f
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
MasterDvdClock
ProtoInstance
set_cycleInterval
SFTime
then
 
 
 
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(8)
MantaWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
  then
 
 
 
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(8)
SolarAuvWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
  then
 
 
 
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(6)
SolarAuvWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(7)
SolarAuvTransform
Transform
set_rotation
SFRotation
  then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(7)
SolarAuvTransform
Transform
set_translation
SFVec3f
  then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(7)
BuoyCommsGrid
ProtoInstance
set_senderPosition
SFVec3f
  then
 
 
 
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(4)
SolarAuvWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(5)
SolarAuvTransform
Transform
set_rotation
SFRotation
  then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(5)
SolarAuvTransform
Transform
set_translation
SFVec3f
  then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(5)
BuoyCommsGrid
ProtoInstance
set_senderPosition
SFVec3f
  then
 
 
 
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(2)
SolarAuvWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(3)
SolarAuvTransform
Transform
set_rotation
SFRotation
  then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(3)
SolarAuvTransform
Transform
set_translation
SFVec3f
  then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(3)
BuoyCommsGrid
ProtoInstance
set_senderPosition
SFVec3f
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(1)
MantaTransform
Transform
set_translation
SFVec3f
MantaWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(1)
MantaTransform
Transform
set_rotation
SFRotation
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(1)
BuoyCommsGrid
ProtoInstance
set_receiverPosition
SFVec3f

     
The following ROUTE chain begins an event-routing loop! Loop occurs at nodeDepth=3.
 
ROUTE MasterDvdClock.fraction_changed TO MantaWaypointInterpolator.set_fraction
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(1)
MantaWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
MantaWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(2)
MantaTransform
Transform
set_rotation
SFRotation
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(2)
MantaTransform
Transform
set_translation
SFVec3f
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(2)
BuoyCommsGrid
ProtoInstance
set_receiverPosition
SFVec3f
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(2)
MasterDvdClock
ProtoInstance
set_cycleInterval
SFTime
then
 
 
 
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(3)
MantaWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
MantaWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(4)
MantaTransform
Transform
set_rotation
SFRotation
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(4)
MantaTransform
Transform
set_translation
SFVec3f
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(4)
BuoyCommsGrid
ProtoInstance
set_receiverPosition
SFVec3f
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(4)
MasterDvdClock
ProtoInstance
set_cycleInterval
SFTime
then
 
 
 
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(5)
MantaWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
MantaWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(6)
MantaTransform
Transform
set_rotation
SFRotation
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(6)
MantaTransform
Transform
set_translation
SFVec3f
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(6)
BuoyCommsGrid
ProtoInstance
set_receiverPosition
SFVec3f
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(6)
MasterDvdClock
ProtoInstance
set_cycleInterval
SFTime
then
 
 
 
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(7)
MantaWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
MantaWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(8)
MantaTransform
Transform
set_rotation
SFRotation
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(8)
MantaTransform
Transform
set_translation
SFVec3f
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(8)
BuoyCommsGrid
ProtoInstance
set_receiverPosition
SFVec3f
  then
 
 
 
MantaWaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(8)
MasterDvdClock
ProtoInstance
set_cycleInterval
SFTime
  then
 
 
 
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(7)
SolarAuvWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(8)
SolarAuvTransform
Transform
set_rotation
SFRotation
  then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(8)
SolarAuvTransform
Transform
set_translation
SFVec3f
  then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(8)
BuoyCommsGrid
ProtoInstance
set_senderPosition
SFVec3f
  then
 
 
 
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(5)
SolarAuvWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(6)
SolarAuvTransform
Transform
set_rotation
SFRotation
  then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(6)
SolarAuvTransform
Transform
set_translation
SFVec3f
  then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(6)
BuoyCommsGrid
ProtoInstance
set_senderPosition
SFVec3f
  then
 
 
 
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(3)
SolarAuvWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(4)
SolarAuvTransform
Transform
set_rotation
SFRotation
  then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(4)
SolarAuvTransform
Transform
set_translation
SFVec3f
  then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(4)
BuoyCommsGrid
ProtoInstance
set_senderPosition
SFVec3f
MasterDvdClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(1)
SolarAuvWaypointInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(2)
SolarAuvTransform
Transform
set_rotation
SFRotation
  then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(2)
SolarAuvTransform
Transform
set_translation
SFVec3f
  then
 
 
 
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(2)
BuoyCommsGrid
ProtoInstance
set_senderPosition
SFVec3f

SeaWebBuoy0
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy1
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy10
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy11
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy12
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy13
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy14
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy15
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy2
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy3
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy4
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy5
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy6
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy7
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy8
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

SeaWebBuoy9
ProtoInstance
SeaWebBuoy
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

      SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(1)
SolarAuvTransform
Transform
set_translation
SFVec3f
SolarAuvWaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(1)
SolarAuvTransform
Transform
set_rotation
SFRotation
SolarAuvWaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(1)
BuoyCommsGrid
ProtoInstance
set_senderPosition
SFVec3f

Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/SeaWeb/BuoyCommunicationsGridExampleIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/SeaWeb/BuoyCommunicationsGridExample.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode  DEF='idNamefield='value'/> matches XML terminology <XmlElement  DEF='idNameattribute='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> -->

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