X3D Model Documentation: SonobuoyFieldScenario.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='title' content='SonobuoyFieldScenario.x3d'/>
  6            <meta name='description' content='Representative tactical visualization of a DICASS sonobuoy field.'/>
  7            <meta name='creator' content='Don Brutzman'/>
  8            <meta name='created' content='31 January 2003'/>
  9            <meta name='modified' content='2 January 2025'/>
 10            <meta name=' warning ' content=' problem with X3DOM, further debugging needed '/>
 11            <meta name='coordinateSystem' content='x=East, z=North, y=Up'/>
 12            <meta name='subject' content='sonobouy field'/>
 13            <meta name='Image' content='GridView.jpg'/>
 14            <meta name='Image' content='SeaHawkRadioCommand.jpg'/>
 15            <meta name='Image' content='SeaHawkView.jpg'/>
 16            <meta name='Image' content='SeaHawkViewPing.jpg'/>
 17            <meta name='Image' content='SonobuoyFieldScenario-1.jpg'/>
 18            <meta name='Image' content='SonobuoyFieldScenario-2.jpg'/>
 19            <meta name='Image' content='SonobuoyFieldScenario-3.jpg'/>
 20            <meta name='Image' content='SonobuoyView.jpg'/>
 21            <meta name='identifier' content='https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/SonobuoyFieldScenario.x3d'/>
 22            <meta name='generator' content='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
 23            <meta name='license' content='../../license.html'/>
 24       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: AuthoringAssist, BackgroundEnvironment, ConsoleOutputViewPositionOrientation, CoordinateAxes, CrossHairInstance, DICASS-1-1, DICASS-1-2, DICASS-1-3, DICASS-1-4, DICASS-2-1, DICASS-2-2, DICASS-2-3, DICASS-2-4, DICASS-3-1, DICASS-3-2, DICASS-3-3, DICASS-3-4, DICASS-4-1, DICASS-4-2, DICASS-4-3, DICASS-4-4, ExternProtoDeclareReferences, Grid10kmBy10km, HelicopterGroup, HelicopterOrbitClock, HelicopterOrbitTrack, HeloToSonobuoyCommunication, LocationBuoy1-1, LocationBuoy1-2, LocationBuoy1-3, LocationBuoy1-4, LocationBuoy2-1, LocationBuoy2-2, LocationBuoy2-3, LocationBuoy2-4, LocationBuoy3-1, LocationBuoy3-2, LocationBuoy3-3, LocationBuoy3-4, LocationBuoy4-1, LocationBuoy4-2, LocationBuoy4-3, LocationBuoy4-4, OpenOcean, PingBuoySequenceClock, RadioBeamInterpolator, RadioBeamOrientation, RadioCommandTimer, RadioContactSequencer, SandyShallowBottom, SeahawkHelicopterTransform, SonobuoyCommunications, SonobuoyFieldLayout, SonobuoyFieldScenarioScript, TopDown

Index for Viewpoint node: TopDown

Index for ExternProtoDeclare definitions: BeamCylinder, CrossHair, DICASS, GridXZ, ViewPositionOrientation, WaypointInterpolator
-->
 25       <Scene>
 26            <WorldInfo title='SonobuoyFieldScenario.x3d'/>
 27            <NavigationInfo speed='100' visibilityLimit='40000'/>
 28            <Viewpoint DEF='TopDown' description='Looking down from above - TODO check visibilityLimit' orientation='1 0 0 -1.550799' position='0 2000 10'/>
 29            <Group DEF='BackgroundEnvironment'>
 30                 <!-- topmost Background node is bound and active -->
 31                 <Background DEF='OpenOcean' groundAngle='0.05 1.309 1.570796' groundColor='0 0 0 0 0.2 0.4 0.05 0.25 0.6 0.1 0.2 0.4' skyAngle='0.05 0.1 1.309 1.571' skyColor='0.8 0.8 0.2 0.1 0.1 0.6 0.1 0.1 0.6 0.1 0.25 0.8 0.6 0.6 0.9'/>
 32                 <Background DEF='SandyShallowBottom' groundAngle='0.05 1.52 1.56 1.570796' groundColor='0.2 0.2 0 0.3 0.3 0 0.5 0.5 0.3 0.1 0.3 0.4 0 0.2 0.4' skyAngle='0.05 0.1 1.309 1.571' skyColor='0.8 0.8 0.2 0.1 0.1 0.6 0.1 0.1 0.6 0.1 0.25 0.8 0.6 0.6 0.9'/>
 33                 <Background groundAngle='1.309 1.570796' groundColor='0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0 0.2 0.7 0 0.5 1 1 1 1'/>
 34            </Group>
 35            <Group DEF='ExternProtoDeclareReferences'>
 36                 <ExternProtoDeclare name='BeamCylinder' appinfo='Produce wireframe or transparent beam cylinders. Typical uses include propeller/thruster water flow or line-of-sight sonar/radar/light beams. Negative range values invert base and apex at same relative location. Default: beam with apex at (0 0 0) and base of radius 1 in x-z plane at (1 0 0).'   url=' "../../CommunicationsAndSensors/Beam/BeamCylinderPrototype.x3d#BeamCylinder" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Beam/BeamCylinderPrototype.x3d#BeamCylinder" "../../CommunicationsAndSensors/Beam/BeamCylinderPrototype.wrl#BeamCylinder" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Beam/BeamCylinderPrototype.wrl#BeamCylinder" '>
 37                      <field name='name' type='SFString' accessType='initializeOnly'
                     appinfo='Assigning a name to a BeamCylinder aids tracing'/>
 38                      <field name='contact' type='SFBool' accessType='inputOnly'
                     appinfo='(communications) is transmitted signal in contact with receiver or (sensor) is a target return detected?'/>
 39                      <field name='range' type='SFFloat' accessType='inputOnly'
                     appinfo='distance in meters along x axis'/>
 40                      <field name='defaultRange' type='SFFloat' accessType='initializeOnly'
                     appinfo='distance in meters used until eventIn range sent'/>
 41                      <field name='wireframe' type='SFBool' accessType='initializeOnly'
                     appinfo='whether wireframe beam is drawn'/>
 42                      <field name='solid' type='SFBool' accessType='initializeOnly'
                     appinfo='whether solid beam is drawn'/>
 43                      <field name='beamHeight' type='SFFloat' accessType='initializeOnly'
                     appinfo='meters across vertical y axis'/>
 44                      <field name='beamWidth' type='SFFloat' accessType='initializeOnly'
                     appinfo='meters across horizontal z axis'/>
 45                      <field name='contactColor' type='SFColor' accessType='initializeOnly'
                     appinfo='rendering color when contact=true'/>
 46                      <field name='noContactColor' type='SFColor' accessType='initializeOnly'
                     appinfo='rendering color when contact=false'/>
 47                      <field name='transparency' type='SFFloat' accessType='inputOutput'
                     appinfo='1 = fully transparent wireframe only'/>
 48                 </ExternProtoDeclare>
 49                 <ExternProtoDeclare name='CrossHair' appinfo='CrossHair prototype provides a heads-up display (HUD) crosshair at the view center, which is useful for assessing NavigationInfo lookAt point'   url=' "../../../Savage/Tools/HeadsUpDisplays/CrossHairPrototype.x3d#CrossHair" "https://savage.nps.edu/Savage/Tools/HeadsUpDisplays/CrossHairPrototype.x3d#CrossHair" "../../../Savage/Tools/HeadsUpDisplays/CrossHairPrototype.wrl#CrossHair" "https://savage.nps.edu/Savage/Tools/HeadsUpDisplays/CrossHairPrototype.wrl#CrossHair" '>
 50                      <field name='enabled' type='SFBool' accessType='initializeOnly'
                     appinfo='whether CrossHair prototype is enabled or not'/>
 51                      <field name='set_enabled' type='SFBool' accessType='inputOnly'
                     appinfo='control whether enabled/disabled'/>
 52                      <field name='markerColor' type='SFColor' accessType='inputOutput'
                     appinfo='color of CrossHair marker'/>
 53                      <field name='scale' type='SFVec3f' accessType='inputOutput'
                     appinfo='size of CrossHair in meters'/>
 54                      <field name='positionOffsetFromCamera' type='SFVec3f' accessType='inputOutput'
                     appinfo='distance in front of HUD viewpoint'/>
 55                 </ExternProtoDeclare>
 56                 <ExternProtoDeclare name='DICASS' appinfo='AN/SSQ-62B/C/D/E Directional Command Activated Sonobuoy System (DICASS) Sonobuoy'   url=' "DicassPrototype.x3d#DICASS" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/DicassPrototype.x3d#DICASS" "DicassPrototype.wrl#DICASS" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/DicassPrototype.wrl#DICASS" '>
 57                      <field name='ID' type='MFString' accessType='inputOutput'
                     appinfo='identifier label for this buoy'/>
 58                      <field name='version' type='SFString' accessType='initializeOnly'
                     appinfo='default value: AN/SSQ-62B'/>
 59                      <field name='initialPositionXZ' type='SFVec2f' accessType='initializeOnly'
                     appinfo='local surface coordinates X=North Z=East'/>
 60                      <field name='orderedPositionXZ' type='SFVec2f' accessType='inputOnly'
                     appinfo='local surface coordinates X=North Z=East'/>
 61                      <field name='initialDepth' type='SFFloat' accessType='initializeOnly'
                     appinfo='meters depth use negative numbers for subsurface'/>
 62                      <field name='orderedDepth' type='SFFloat' accessType='inputOnly'
                     appinfo='meters depth use negative numbers for subsurface'/>
 63                      <field name='bindViewpoint' type='SFBool' accessType='inputOnly'
                     appinfo='trigger event to bind/unbind viewpoint'/>
 64                      <field name='location_changed' type='SFVec3f' accessType='outputOnly'
                     appinfo='local coordinates X=North Y=altitude Z=East'/>
 65                      <field name='maxRange' type='SFFloat' accessType='initializeOnly'
                     appinfo='maximum audible sonar detection range meters'/>
 66                      <field name='pingDuration' type='SFTime' accessType='outputOnly'
                     appinfo='pingDuration corresponds to maxRange at 1500m/sec sound speed'/>
 67                      <field name='startPing' type='SFBool' accessType='inputOnly'
                     appinfo='trigger event to start single ping'/>
 68                      <field name='startContinuousPings' type='SFBool' accessType='inputOnly'
                     appinfo='trigger event to start continuous ping sequence'/>
 69                      <field name='linkText' type='MFString' accessType='inputOutput'
                     appinfo='Can add linkable text for further information'/>
 70                      <field name='linkUrl' type='MFString' accessType='inputOutput'
                     appinfo='url for linkable text'/>
 71                      <field name='linkTargetWindow' type='MFString' accessType='inputOutput'
                     appinfo='target window for linkable text'/>
 72                      <field name='soundSpeed' type='SFFloat' accessType='initializeOnly'
                     appinfo='in-water sound speed m/s, default value 1500'
                     documentation='https://en.wikipedia.org/wiki/Speed_of_sound#Seawater'/>
 73                 </ExternProtoDeclare>
 74                 <ExternProtoDeclare name='GridXZ' appinfo='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://savage.nps.edu/Savage/Tools/Authoring/GridXZPrototype.x3d#GridXZ" "../../../Savage/Tools/Authoring/GridXZPrototype.wrl#GridXZ" "https://savage.nps.edu/Savage/Tools/Authoring/GridXZPrototype.wrl#GridXZ" '>
 75                      <field name='description' type='SFString' accessType='initializeOnly'
                     appinfo='Purpose of this grid displayed for overall Viewpoint'/>
 76                      <field name='labelColor' type='SFColor' accessType='inputOutput'
                     appinfo='color for descriptive labels at grid edges and corners'/>
 77                      <field name='scale' type='SFVec3f' accessType='inputOutput'
                     appinfo='default unscaled size: 10m by 10m'/>
 78                      <field name='originLabel' type='MFString' accessType='inputOutput'/>
 79                      <field name='WestLabel' type='MFString' accessType='inputOutput'
                     appinfo='-X axis'/>
 80                      <field name='NorthWestLabel' type='MFString' accessType='inputOutput'/>
 81                      <field name='NorthLabel' type='MFString' accessType='inputOutput'
                     appinfo='-Z axis'/>
 82                      <field name='NorthEastLabel' type='MFString' accessType='inputOutput'/>
 83                      <field name='EastLabel' type='MFString' accessType='inputOutput'
                     appinfo='+X axis'/>
 84                      <field name='SouthEastLabel' type='MFString' accessType='inputOutput'/>
 85                      <field name='SouthLabel' type='MFString' accessType='inputOutput'
                     appinfo='+Z axis'/>
 86                      <field name='SouthWestLabel' type='MFString' accessType='inputOutput'/>
 87                      <field name='labelsOffset' type='SFVec3f' accessType='inputOutput'
                     appinfo='label location offset (in meters) to improve readability'/>
 88                 </ExternProtoDeclare>
 89                 <ExternProtoDeclare name='ViewPositionOrientation' appinfo='ViewPositionOrientation provides provides console output of local position and orientation as user navigates'   url=' "../../Tools/Authoring/ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "https://savage.nps.edu/Savage/Tools/Authoring/ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "../../Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation" "https://savage.nps.edu/Savage/Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation" '>
 90                      <field name='enabled' type='SFBool' accessType='inputOutput'
                     appinfo='Whether or not ViewPositionOrientation sends output to console'/>
 91                      <field name='traceEnabled' type='SFBool' accessType='initializeOnly'
                     appinfo='Output internal trace messages for debugging this node, intended for developer use only'/>
 92                      <field name='set_traceEnabled' type='SFBool' accessType='inputOnly'
                     appinfo='Ability to turn output tracing on/off at runtime'/>
 93                      <field name='position_changed' type='SFVec3f' accessType='outputOnly'
                     appinfo='Output local position'/>
 94                      <field name='orientation_changed' type='SFRotation' accessType='outputOnly'
                     appinfo='Output local orientation'/>
 95                      <field name='outputViewpointString' type='MFString' accessType='outputOnly'
                     appinfo='MFString value of new Viewpoint'/>
 96                 </ExternProtoDeclare>
 97                 <ExternProtoDeclare name='WaypointInterpolator' appinfo='Reads waypoints and legSpeeds/legDurations/defaultSpeed to provide a customizable position/orientation interpolator.'   url=' "../../../Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator" "https://savage.nps.edu/Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator" "../../../Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator" "https://savage.nps.edu/Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator" '>
 98                      <!-- Priority of use: legSpeeds (m/sec), legDurations (seconds), defaultSpeed (m/sec) -->
 99                      <!-- interpolation fields -->
100                      <!-- display-related fields -->
101                      <field name='description' type='SFString' accessType='initializeOnly'
                     appinfo='Short description of what is animated by this WaypointInterpolator.'/>
102                      <field name='waypoints' type='MFVec3f' accessType='initializeOnly'
                     appinfo='Waypoints being traversed with interpolation of intermediate positions and orientations.'/>
103                      <field name='add_waypoint' type='SFVec3f' accessType='inputOnly'
                     appinfo='Add another single waypoint to array of waypoints recalculate interpolator values.'/>
104                      <field name='set_waypoints' type='MFVec3f' accessType='inputOnly'
                     appinfo='Replace all waypoints recalculate interpolator values.'/>
105                      <field name='pitchUpDownForVerticalWaypoints' type='SFBool' accessType='initializeOnly'
                     appinfo='Whether to pitch child geometry (such as a vehicle) up or down to match vertical slope'/>
106                      <field name='legSpeeds' type='MFFloat' accessType='initializeOnly'
                     appinfo='Units m/sec. If used, array lengths for legSpeeds and legDurations must be one less than number of waypoints.'/>
107                      <field name='legDurations' type='MFTime' accessType='initializeOnly'
                     appinfo='Units in seconds. If used, array lengths for legSpeeds and legDurations must be one less than number of waypoints.'/>
108                      <field name='defaultSpeed' type='SFFloat' accessType='initializeOnly'
                     appinfo='Units m/sec.'/>
109                      <field name='turningRate' type='SFFloat' accessType='initializeOnly'
                     appinfo='turningRate (degrees/second) also determines standoff distance prior to waypoint where turn commences. If 0 turns are instantaneous.'/>
110                      <field name='totalDuration' type='SFTime' accessType='outputOnly'
                     appinfo='Output calculation summing all leg durations, useful for setting TimeSensor cycleInterval. Units in seconds.'/>
111                      <field name='set_fraction' type='SFFloat' accessType='inputOnly'
                     appinfo='exposed PositionInterpolator and OrientationInterpolator setting'/>
112                      <field name='position_changed' type='SFVec3f' accessType='outputOnly'
                     appinfo='exposed PositionInterpolator setting'/>
113                      <field name='orientation_changed' type='SFRotation' accessType='outputOnly'
                     appinfo='exposed OrientationInterpolator setting'/>
114                      <field name='lineColor' type='SFColor' accessType='inputOutput'
                     appinfo='default color for non-active line segments'/>
115                      <field name='highlightSegmentColor' type='SFColor' accessType='inputOutput'
                     appinfo='active segment highlight color'/>
116                      <field name='transparency' type='SFFloat' accessType='inputOutput'
                     appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/>
117                      <field name='labelDisplayMode' type='SFString' accessType='initializeOnly'
                     appinfo='allowed values: none; waypoints (produce labels at each waypoint); or interpolation (produce single moving label at interpolator time course speed location)'/>
118                      <field name='heightLabel' type='SFString' accessType='initializeOnly'
                     appinfo='allowed values: altitude depth (negate Y value) none'/>
119                      <field name='labelOffset' type='SFVec3f' accessType='initializeOnly'
                     appinfo='heightLabel relative location'/>
120                      <field name='labelFontSize' type='SFFloat' accessType='initializeOnly'
                     appinfo='heightLabel text size'/>
121                      <field name='labelColor' type='SFColor' accessType='initializeOnly'
                     appinfo='heightLabel text color'/>
122                      <field name='traceEnabled' type='SFBool' accessType='initializeOnly'
                     appinfo='enable console output to trace script computations and prototype progress'/>
123                      <field name='outputInitializationComputations' type='SFBool' accessType='initializeOnly'
                     appinfo='Output the number of waypoints totalDistance and totalDuration to console upon initialization'/>
124                      <field name='verticalDropLineColor' type='SFColor' accessType='inputOutput'
                     appinfo='default color for vertical drop-line segments'/>
125                      <field name='verticalDropLineTransparency' type='SFFloat' accessType='inputOutput'
                     appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/>
126                 </ExternProtoDeclare>
127            </Group>
128            <ProtoInstance name='GridXZ'>
129                 <fieldValue name='description' value='Sonobuoy Field Scenario'/>
130                 <fieldValue name='labelColor' value='0.8 0.8 1'/>
131                 <fieldValue name='scale' value='1000 1000 1000'/>
132                 <fieldValue name='originLabel' value='"origin"'/>
133                 <fieldValue name='WestLabel' value='"West" "-Z"'/>
134                 <fieldValue name='NorthWestLabel' value='"10000 0 -10000"'/>
135                 <fieldValue name='NorthLabel' value='"North" "+X"'/>
136                 <fieldValue name='NorthEastLabel' value='"10000 0 10000"'/>
137                 <fieldValue name='EastLabel' value='"East" "+Z"'/>
138                 <fieldValue name='SouthEastLabel' value='"-10000 0 10000"'/>
139                 <fieldValue name='SouthLabel' value='"South" "-X"'/>
140                 <fieldValue name='SouthWestLabel' value='"-10000 0 -10000"'/>
141            </ProtoInstance>
142            <Switch DEF='AuthoringAssist' whichChoice='0'>
143                 <Group>
144                      <Transform scale='10 10 10'>
145                           <Inline DEF='CoordinateAxes'   url=' "../../../Savage/Tools/Authoring/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "https://savage.nps.edu/Savage/Tools/Authoring/CoordinateAxes.x3d" "../../../Savage/Tools/Authoring/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" "https://savage.nps.edu/Savage/Tools/Authoring/CoordinateAxes.wrl" '/>
146                      </Transform>
147                      <ProtoInstance name='ViewPositionOrientation' DEF='ConsoleOutputViewPositionOrientation'>
148                           <fieldValue name='enabled' value='false'/>
149                      </ProtoInstance>
150                      <ProtoInstance name='CrossHair' DEF='CrossHairInstance'>
151                           <fieldValue name='enabled' value='true'/>
152                           <fieldValue name='markerColor' value='1 0.5 0'/>
153                           <fieldValue name='scale' value='1 1 1'/>
154                           <fieldValue name='positionOffsetFromCamera' value='0 0 -6'/>
155                      </ProtoInstance>
156                 </Group>
157                 <Transform DEF='Grid10kmBy10km' scale='1000 1000 1000'>
158                      <Inline   url=' "../../../Savage/Tools/Authoring/GridXZ_20x20Fixed.x3d" "https://savage.nps.edu/Savage/Tools/Authoring/GridXZ_20x20Fixed.x3d" "../../../Savage/Tools/Authoring/GridXZ_20x20Fixed.wrl" "https://savage.nps.edu/Savage/Tools/Authoring/GridXZ_20x20Fixed.wrl" '/>
159                 </Transform>
160            </Switch>
161            <Group DEF='HelicopterGroup'>
162 
               <!-- ROUTE information for SeahawkHelicopterTransform node:  [from HelicopterOrbitTrack.position_changed to set_translation ] [from HelicopterOrbitTrack.orientation_changed to set_rotation ] -->
               <Transform DEF='SeahawkHelicopterTransform'>
163                      <Inline   url=' "../../AircraftHelicopters/SH60-Seahawk-UnitedStates/SH60Seahawk.x3d" "https://savage.nps.edu/Savage/AircraftHelicopters/SH60-Seahawk-UnitedStates/SH60Seahawk.x3d" "../../AircraftHelicopters/SH60-Seahawk-UnitedStates/SH60Seahawk.wrl" "https://savage.nps.edu/Savage/AircraftHelicopters/SH60-Seahawk-UnitedStates/SH60Seahawk.wrl" '/>
164                 </Transform>
165 
               <!-- ROUTE information for HelicopterOrbitClock node:  [from HelicopterOrbitTrack.totalDuration to set_cycleInterval ] [from fraction_changed to HelicopterOrbitTrack.set_fraction ] -->
               <TimeSensor DEF='HelicopterOrbitClock' cycleInterval='211.7' loop='true'/>
166 
               <!-- ProtoInstance HelicopterOrbitTrack is a DEF node that has 1 USE node: USE_1
               <!-- ROUTE information for HelicopterOrbitTrack node:  [from HelicopterOrbitClock.fraction_changed to set_fraction ] [from totalDuration to HelicopterOrbitClock.set_cycleInterval ] [from position_changed to SeahawkHelicopterTransform.set_translation ] [from orientation_changed to SeahawkHelicopterTransform.set_rotation ] [from position_changed to RadioBeamOrientation.set_translation ] -->
               <ProtoInstance name='WaypointInterpolator' DEF='HelicopterOrbitTrack'>
167                      <!-- Priority of use: legSpeeds (m/sec), legDurations (seconds), defaultSpeed (m/sec) -->
168                      <fieldValue name='description' value='SH-60B Seahawk orbit'/>
169                      <fieldValue name='waypoints' value='0 100 0 -1000 100 1000 -1000 500 5000 0 500 6000 5000 500 6000 6000 100 5000 6000 100 0 5000 100 -1000 1000 100 -1000 0 100 0'/>
170                      <fieldValue name='pitchUpDownForVerticalWaypoints' value='false'/>
171                      <fieldValue name='defaultSpeed' value='50'/>
172                      <fieldValue name='turningRate' value='5'/>
173                      <fieldValue name='lineColor' value='0.5 0.5 0'/>
174                      <fieldValue name='highlightSegmentColor' value='1 1 0'/>
175                      <fieldValue name='transparency' value='0'/>
176                      <fieldValue name='labelDisplayMode' value='interpolation'/>
177                      <fieldValue name='heightLabel' value='altitude'/>
178                      <fieldValue name='labelOffset' value='0 3 0'/>
179                      <fieldValue name='labelFontSize' value='0.8'/>
180                      <fieldValue name='labelColor' value='1 1 0'/>
181                      <fieldValue name='traceEnabled' value='false'/>
182                 </ProtoInstance>
183                 < ROUTE  fromNode='HelicopterOrbitTrack' fromField='totalDuration' toNode='HelicopterOrbitClock' toField='set_cycleInterval'/>
184                 < ROUTE  fromNode='HelicopterOrbitClock' fromField='fraction_changed' toNode='HelicopterOrbitTrack' toField='set_fraction'/>
185                 < ROUTE  fromNode='HelicopterOrbitTrack' fromField='position_changed' toNode='SeahawkHelicopterTransform' toField='set_translation'/>
186                 < ROUTE  fromNode='HelicopterOrbitTrack' fromField='orientation_changed' toNode='SeahawkHelicopterTransform' toField='set_rotation'/>
187            </Group>
188            <Group DEF='SonobuoyFieldLayout'>
189                 <Transform DEF='LocationBuoy1-1'>
190 
                    <!-- ProtoInstance DICASS-1-1 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-1-1'>
191                           <fieldValue name='ID' value='"DICASS 1.1"'/>
192                           <fieldValue name='initialPositionXZ' value='1000 1000'/>
193                           <fieldValue name='initialDepth' value='-100'/>
194                           <fieldValue name='maxRange' value='1000'/>
195                      </ProtoInstance>
196                 </Transform>
197                 <Transform DEF='LocationBuoy1-2'>
198 
                    <!-- ProtoInstance DICASS-1-2 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-1-2'>
199                           <fieldValue name='ID' value='"DICASS 1.2"'/>
200                           <fieldValue name='initialPositionXZ' value='1000 2000'/>
201                           <fieldValue name='initialDepth' value='-100'/>
202                           <fieldValue name='maxRange' value='1000'/>
203                      </ProtoInstance>
204                 </Transform>
205                 <Transform DEF='LocationBuoy1-3'>
206 
                    <!-- ProtoInstance DICASS-1-3 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-1-3'>
207                           <fieldValue name='ID' value='"DICASS 1.3"'/>
208                           <fieldValue name='initialPositionXZ' value='1000 3000'/>
209                           <fieldValue name='initialDepth' value='-100'/>
210                           <fieldValue name='maxRange' value='1000'/>
211                      </ProtoInstance>
212                 </Transform>
213                 <Transform DEF='LocationBuoy1-4'>
214 
                    <!-- ProtoInstance DICASS-1-4 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-1-4'>
215                           <fieldValue name='ID' value='"DICASS 1.4"'/>
216                           <fieldValue name='initialPositionXZ' value='1000 4000'/>
217                           <fieldValue name='initialDepth' value='-100'/>
218                           <fieldValue name='maxRange' value='1000'/>
219                      </ProtoInstance>
220                 </Transform>
221                 <Transform DEF='LocationBuoy2-1'>
222 
                    <!-- ProtoInstance DICASS-2-1 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-2-1'>
223                           <fieldValue name='ID' value='"DICASS 2.1"'/>
224                           <fieldValue name='initialPositionXZ' value='2000 1000'/>
225                           <fieldValue name='initialDepth' value='-100'/>
226                           <fieldValue name='maxRange' value='1000'/>
227                      </ProtoInstance>
228                 </Transform>
229                 <Transform DEF='LocationBuoy2-2'>
230 
                    <!-- ProtoInstance DICASS-2-2 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-2-2'>
231                           <fieldValue name='ID' value='"DICASS 2.2"'/>
232                           <fieldValue name='initialPositionXZ' value='2000 2000'/>
233                           <fieldValue name='initialDepth' value='-100'/>
234                           <fieldValue name='maxRange' value='1000'/>
235                      </ProtoInstance>
236                 </Transform>
237                 <Transform DEF='LocationBuoy2-3'>
238 
                    <!-- ProtoInstance DICASS-2-3 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-2-3'>
239                           <fieldValue name='ID' value='"DICASS 2.3"'/>
240                           <fieldValue name='initialPositionXZ' value='2000 3000'/>
241                           <fieldValue name='initialDepth' value='-100'/>
242                           <fieldValue name='maxRange' value='1000'/>
243                      </ProtoInstance>
244                 </Transform>
245                 <Transform DEF='LocationBuoy2-4'>
246 
                    <!-- ProtoInstance DICASS-2-4 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-2-4'>
247                           <fieldValue name='ID' value='"DICASS 2.4"'/>
248                           <fieldValue name='initialPositionXZ' value='2000 4000'/>
249                           <fieldValue name='initialDepth' value='-100'/>
250                           <fieldValue name='maxRange' value='1000'/>
251                      </ProtoInstance>
252                 </Transform>
253                 <Transform DEF='LocationBuoy3-1'>
254 
                    <!-- ProtoInstance DICASS-3-1 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-3-1'>
255                           <fieldValue name='ID' value='"DICASS 3.1"'/>
256                           <fieldValue name='initialPositionXZ' value='3000 1000'/>
257                           <fieldValue name='initialDepth' value='-100'/>
258                           <fieldValue name='maxRange' value='1000'/>
259                      </ProtoInstance>
260                 </Transform>
261                 <Transform DEF='LocationBuoy3-2'>
262 
                    <!-- ProtoInstance DICASS-3-2 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-3-2'>
263                           <fieldValue name='ID' value='"DICASS 3.2"'/>
264                           <fieldValue name='initialPositionXZ' value='3000 2000'/>
265                           <fieldValue name='initialDepth' value='-100'/>
266                           <fieldValue name='maxRange' value='1000'/>
267                      </ProtoInstance>
268                 </Transform>
269                 <Transform DEF='LocationBuoy3-3'>
270 
                    <!-- ProtoInstance DICASS-3-3 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-3-3'>
271                           <fieldValue name='ID' value='"DICASS 3.3"'/>
272                           <fieldValue name='initialPositionXZ' value='3000 3000'/>
273                           <fieldValue name='initialDepth' value='-100'/>
274                           <fieldValue name='maxRange' value='1000'/>
275                      </ProtoInstance>
276                 </Transform>
277                 <Transform DEF='LocationBuoy3-4'>
278 
                    <!-- ProtoInstance DICASS-3-4 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-3-4'>
279                           <fieldValue name='ID' value='"DICASS 3.4"'/>
280                           <fieldValue name='initialPositionXZ' value='3000 4000'/>
281                           <fieldValue name='initialDepth' value='-100'/>
282                           <fieldValue name='maxRange' value='1000'/>
283                      </ProtoInstance>
284                 </Transform>
285                 <Transform DEF='LocationBuoy4-1'>
286 
                    <!-- ProtoInstance DICASS-4-1 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-4-1'>
287                           <fieldValue name='ID' value='"DICASS 4.1"'/>
288                           <fieldValue name='initialPositionXZ' value='4000 1000'/>
289                           <fieldValue name='initialDepth' value='-100'/>
290                           <fieldValue name='maxRange' value='1000'/>
291                      </ProtoInstance>
292                 </Transform>
293                 <Transform DEF='LocationBuoy4-2'>
294 
                    <!-- ProtoInstance DICASS-4-2 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-4-2'>
295                           <fieldValue name='ID' value='"DICASS 4.2"'/>
296                           <fieldValue name='initialPositionXZ' value='4000 2000'/>
297                           <fieldValue name='initialDepth' value='-100'/>
298                           <fieldValue name='maxRange' value='1000'/>
299                      </ProtoInstance>
300                 </Transform>
301                 <Transform DEF='LocationBuoy4-3'>
302 
                    <!-- ProtoInstance DICASS-4-3 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-4-3'>
303                           <fieldValue name='ID' value='"DICASS 4.3"'/>
304                           <fieldValue name='initialPositionXZ' value='4000 3000'/>
305                           <fieldValue name='initialDepth' value='-100'/>
306                           <fieldValue name='maxRange' value='1000'/>
307                      </ProtoInstance>
308                 </Transform>
309                 <Transform DEF='LocationBuoy4-4'>
310 
                    <!-- ProtoInstance DICASS-4-4 is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='DICASS' DEF='DICASS-4-4'>
311                           <fieldValue name='ID' value='"DICASS 4.4"'/>
312                           <fieldValue name='initialPositionXZ' value='4000 4000'/>
313                           <fieldValue name='initialDepth' value='-100'/>
314                           <fieldValue name='maxRange' value='1000'/>
315                      </ProtoInstance>
316                 </Transform>
317            </Group>
318            <Group DEF='SonobuoyCommunications'>
319                 <!-- Script SonobuoyFieldScenarioScript controls animation of DICAS sonar pings and helo commands -->
320 
321                      <!-- local Script variables -->
322                      <field name='HelicopterWaypointInterpolator' type='SFNode' accessType='initializeOnly'>
323                           <ProtoInstance USE='HelicopterOrbitTrack'/>
324                      </field>
325                      <field name='BuoyArray' type='MFNode' accessType='initializeOnly'>
326                           <ProtoInstance USE='DICASS-1-1'/>
327                           <ProtoInstance USE='DICASS-1-2'/>
328                           <ProtoInstance USE='DICASS-1-3'/>
329                           <ProtoInstance USE='DICASS-1-4'/>
330                           <ProtoInstance USE='DICASS-2-1'/>
331                           <ProtoInstance USE='DICASS-2-2'/>
332                           <ProtoInstance USE='DICASS-2-3'/>
333                           <ProtoInstance USE='DICASS-2-4'/>
334                           <ProtoInstance USE='DICASS-3-1'/>
335                           <ProtoInstance USE='DICASS-3-2'/>
336                           <ProtoInstance USE='DICASS-3-3'/>
337                           <ProtoInstance USE='DICASS-3-4'/>
338                           <ProtoInstance USE='DICASS-4-1'/>
339                           <ProtoInstance USE='DICASS-4-2'/>
340                           <ProtoInstance USE='DICASS-4-3'/>
341                           <ProtoInstance USE='DICASS-4-4'/>
342                      </field>
343                      <field name='timeNextBouyPing' type='SFTime' accessType='inputOnly'/>
344                      <field name='activeBuoyLocation' type='SFVec3f' accessType='outputOnly'/>
345                      <field name='buoyRange' type='SFFloat' accessType='outputOnly'/>
346                      <field name='keyValueRadioCommandInterpolator' type='MFFloat' accessType='outputOnly'/>
347                      <field name='beamRotation' type='SFRotation' accessType='outputOnly'/>
348                      <field name='sendCommand' type='SFTime' accessType='outputOnly'/>
349                      <field name='currentBuoyNumber' type='SFInt32' value='-1' accessType='initializeOnly'/>
350                      <field name='ID' type='MFString' accessType='initializeOnly'/>
351                      <field name='TRACE' type='SFBool' value='true' accessType='initializeOnly'/>
352                 </Script>
353 
               <!-- ROUTE information for PingBuoySequenceClock node:  [from cycleTime to SonobuoyFieldScenarioScript.timeNextBouyPing ] -->
               <TimeSensor DEF='PingBuoySequenceClock' cycleInterval='5' loop='true'/>
354                 < ROUTE  fromNode='PingBuoySequenceClock' fromField='cycleTime' toNode='SonobuoyFieldScenarioScript' toField='timeNextBouyPing'/>
355 
               <!-- ROUTE information for RadioBeamOrientation node:  [from HelicopterOrbitTrack.position_changed to set_translation ] [from SonobuoyFieldScenarioScript.beamRotation to set_rotation ] -->
               <Transform DEF='RadioBeamOrientation'>
356                      < ROUTE  fromNode='HelicopterOrbitTrack' fromField='position_changed' toNode='RadioBeamOrientation' toField='set_translation'/>
357                      < ROUTE  fromNode='SonobuoyFieldScenarioScript' fromField='beamRotation' toNode='RadioBeamOrientation' toField='set_rotation'/>
358 
                    <!-- ROUTE information for HeloToSonobuoyCommunication node:  [from RadioBeamInterpolator.value_changed to range ] [from RadioContactSequencer.value_changed to contact ] -->
                    <ProtoInstance name='BeamCylinder' DEF='HeloToSonobuoyCommunication'>
359                           <fieldValue name='name' value='HeloToBuoyComms'/>
360                           <fieldValue name='defaultRange' value='0.001'/>
361                           <fieldValue name='beamHeight' value='0.25'/>
362                           <fieldValue name='beamWidth' value='0.25'/>
363                           <fieldValue name='transparency' value='0.5'/>
364                           <fieldValue name='wireframe' value='true'/>
365                           <fieldValue name='solid' value='true'/>
366                           <fieldValue name='contactColor' value='0.4 0.4 0'/>
367                           <fieldValue name='noContactColor' value='1.0 0.6 0.1'/>
368                      </ProtoInstance>
369                      <!-- animate radio communication -->
370 
                    <!-- ROUTE information for RadioCommandTimer node:  [from SonobuoyFieldScenarioScript.sendCommand to startTime ] [from fraction_changed to RadioBeamInterpolator.set_fraction ] [from fraction_changed to RadioContactSequencer.set_fraction ] -->
                    <TimeSensor DEF='RadioCommandTimer' cycleInterval='0.5'/>
371                      < ROUTE  fromNode='SonobuoyFieldScenarioScript' fromField='sendCommand' toNode='RadioCommandTimer' toField='startTime'/>
372                      <!-- helo command to buoy (ramp and hold), blank during sonar operation -->
373 
                    <!-- ROUTE information for RadioBeamInterpolator node:  [from SonobuoyFieldScenarioScript.keyValueRadioCommandInterpolator to keyValue ] [from RadioCommandTimer.fraction_changed to set_fraction ] [from value_changed to HeloToSonobuoyCommunication.range ] -->
                    <ScalarInterpolator DEF='RadioBeamInterpolator' key='0 0.5 0.75 0.75 1' keyValue='0 -1000 -1000 0 0'/>
374                      < ROUTE  fromNode='SonobuoyFieldScenarioScript' fromField='keyValueRadioCommandInterpolator' toNode='RadioBeamInterpolator' toField='keyValue'/>
375                      < ROUTE  fromNode='RadioCommandTimer' fromField='fraction_changed' toNode='RadioBeamInterpolator' toField='set_fraction'/>
376                      < ROUTE  fromNode='RadioBeamInterpolator' fromField='value_changed' toNode='HeloToSonobuoyCommunication' toField='range'/>
377                      <!-- change color to indicate command/response sequence -->
378 
                    <!-- ROUTE information for RadioContactSequencer node:  [from RadioCommandTimer.fraction_changed to set_fraction ] [from value_changed to HeloToSonobuoyCommunication.contact ] -->
                    <BooleanSequencer DEF='RadioContactSequencer' key='0 0.5 1' keyValue='false true false'/>
379                      < ROUTE  fromNode='RadioCommandTimer' fromField='fraction_changed' toNode='RadioContactSequencer' toField='set_fraction'/>
380                      < ROUTE  fromNode='RadioContactSequencer' fromField='value_changed' toNode='HeloToSonobuoyCommunication' toField='contact'/>
381                 </Transform>
382            </Group>
383       </Scene>
384  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: AuthoringAssist, BackgroundEnvironment, ConsoleOutputViewPositionOrientation, CoordinateAxes, CrossHairInstance, DICASS-1-1, DICASS-1-2, DICASS-1-3, DICASS-1-4, DICASS-2-1, DICASS-2-2, DICASS-2-3, DICASS-2-4, DICASS-3-1, DICASS-3-2, DICASS-3-3, DICASS-3-4, DICASS-4-1, DICASS-4-2, DICASS-4-3, DICASS-4-4, ExternProtoDeclareReferences, Grid10kmBy10km, HelicopterGroup, HelicopterOrbitClock, HelicopterOrbitTrack, HeloToSonobuoyCommunication, LocationBuoy1-1, LocationBuoy1-2, LocationBuoy1-3, LocationBuoy1-4, LocationBuoy2-1, LocationBuoy2-2, LocationBuoy2-3, LocationBuoy2-4, LocationBuoy3-1, LocationBuoy3-2, LocationBuoy3-3, LocationBuoy3-4, LocationBuoy4-1, LocationBuoy4-2, LocationBuoy4-3, LocationBuoy4-4, OpenOcean, PingBuoySequenceClock, RadioBeamInterpolator, RadioBeamOrientation, RadioCommandTimer, RadioContactSequencer, SandyShallowBottom, SeahawkHelicopterTransform, SonobuoyCommunications, SonobuoyFieldLayout, SonobuoyFieldScenarioScript, TopDown

Index for Viewpoint node: TopDown

Index for ExternProtoDeclare definitions: BeamCylinder, CrossHair, DICASS, GridXZ, ViewPositionOrientation, WaypointInterpolator
-->
X3D Tooltips element index: Background, BooleanSequencer, ExternProtoDeclare, field, fieldValue, Group, head, Inline, meta, NavigationInfo, ProtoInstance, ROUTE, ScalarInterpolator, Scene, Script, Switch, TimeSensor, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table entries with 13 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.

PingBuoySequenceClock
TimeSensor
cycleTime
SFTime
→
ROUTE
event to
(1)
SonobuoyFieldScenarioScript
Script
timeNextBouyPing
SFTime
then
 
 
 
SonobuoyFieldScenarioScript
Script
beamRotation
SFRotation
→
ROUTE
event to
(2)
RadioBeamOrientation
Transform
set_rotation
SFRotation
  then
 
 
 
SonobuoyFieldScenarioScript
Script
keyValueRadioCommandInterpolator
MFFloat
→
ROUTE
event to
(2)
RadioBeamInterpolator
ScalarInterpolator
keyValue
MFFloat
then
 
 
 
RadioBeamInterpolator
ScalarInterpolator
value_changed
SFFloat
→
ROUTE
event to
(3)
HeloToSonobuoyCommunication
ProtoInstance
range
SFFloat
  then
 
 
 
SonobuoyFieldScenarioScript
Script
sendCommand
SFTime
→
ROUTE
event to
(2)
RadioCommandTimer
TimeSensor
startTime
SFTime
then
 
 
 
RadioCommandTimer
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(3)
RadioBeamInterpolator
ScalarInterpolator
set_fraction
SFFloat
then
 
 
 
RadioBeamInterpolator
ScalarInterpolator
value_changed
SFFloat
→
ROUTE
event to
(4)
HeloToSonobuoyCommunication
ProtoInstance
range
SFFloat
  then
 
 
 
RadioCommandTimer
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(3)
RadioContactSequencer
BooleanSequencer
set_fraction
SFFloat
then
 
 
 
RadioContactSequencer
BooleanSequencer
value_changed
SFBool
→
ROUTE
event to
(4)
HeloToSonobuoyCommunication
ProtoInstance
contact
SFBool

line 128
ProtoInstance
GridXZ
No ROUTE connection found for output events 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. 

ConsoleOutputViewPositionOrientation
ProtoInstance
ViewPositionOrientation
No ROUTE connection found for output events 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. 

CrossHairInstance
ProtoInstance
CrossHair
No ROUTE connection found for output events 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. 

DICASS-1-1
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-1-2
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-1-3
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-1-4
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-2-1
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-2-2
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-2-3
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-2-4
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-3-1
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-3-2
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-3-3
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-3-4
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-4-1
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-4-2
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-4-3
ProtoInstance
DICASS
No ROUTE connection found for output events 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. 

DICASS-4-4
ProtoInstance
DICASS
No ROUTE connection found for output events 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 HelicopterOrbitTrack.totalDuration TO HelicopterOrbitClock.set_cycleInterval
HelicopterOrbitTrack
ProtoInstance
totalDuration
SFTime
→
ROUTE
event to
(1)
HelicopterOrbitClock
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
HelicopterOrbitClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(2)
HelicopterOrbitTrack
ProtoInstance
set_fraction
SFFloat
then
 
 
 
HelicopterOrbitTrack
ProtoInstance
orientation_changed
SFRotation
→
ROUTE
event to
(3)
SeahawkHelicopterTransform
Transform
set_rotation
SFRotation
  then
 
 
 
HelicopterOrbitTrack
ProtoInstance
position_changed
SFVec3f
→
ROUTE
event to
(3)
SeahawkHelicopterTransform
Transform
set_translation
SFVec3f
  then
 
 
 
HelicopterOrbitTrack
ProtoInstance
position_changed
SFVec3f
→
ROUTE
event to
(3)
RadioBeamOrientation
Transform
set_translation
SFVec3f
  then
 
 
 
HelicopterOrbitTrack
ProtoInstance
totalDuration
SFTime
→
ROUTE
event to
(3)
HelicopterOrbitClock
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
HelicopterOrbitClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(4)
HelicopterOrbitTrack
ProtoInstance
set_fraction
SFFloat
then
 
 
 
HelicopterOrbitTrack
ProtoInstance
orientation_changed
SFRotation
→
ROUTE
event to
(5)
SeahawkHelicopterTransform
Transform
set_rotation
SFRotation
  then
 
 
 
HelicopterOrbitTrack
ProtoInstance
position_changed
SFVec3f
→
ROUTE
event to
(5)
SeahawkHelicopterTransform
Transform
set_translation
SFVec3f
  then
 
 
 
HelicopterOrbitTrack
ProtoInstance
position_changed
SFVec3f
→
ROUTE
event to
(5)
RadioBeamOrientation
Transform
set_translation
SFVec3f
  then
 
 
 
HelicopterOrbitTrack
ProtoInstance
totalDuration
SFTime
→
ROUTE
event to
(5)
HelicopterOrbitClock
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
HelicopterOrbitClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(6)
HelicopterOrbitTrack
ProtoInstance
set_fraction
SFFloat
then
 
 
 
HelicopterOrbitTrack
ProtoInstance
orientation_changed
SFRotation
→
ROUTE
event to
(7)
SeahawkHelicopterTransform
Transform
set_rotation
SFRotation
  then
 
 
 
HelicopterOrbitTrack
ProtoInstance
position_changed
SFVec3f
→
ROUTE
event to
(7)
SeahawkHelicopterTransform
Transform
set_translation
SFVec3f
  then
 
 
 
HelicopterOrbitTrack
ProtoInstance
position_changed
SFVec3f
→
ROUTE
event to
(7)
RadioBeamOrientation
Transform
set_translation
SFVec3f
  then
 
 
 
HelicopterOrbitTrack
ProtoInstance
totalDuration
SFTime
→
ROUTE
event to
(7)
HelicopterOrbitClock
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
HelicopterOrbitClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(8)
HelicopterOrbitTrack
ProtoInstance
set_fraction
SFFloat
HelicopterOrbitTrack
ProtoInstance
position_changed
SFVec3f
→
ROUTE
event to
(1)
SeahawkHelicopterTransform
Transform
set_translation
SFVec3f
HelicopterOrbitTrack
ProtoInstance
orientation_changed
SFRotation
→
ROUTE
event to
(1)
SeahawkHelicopterTransform
Transform
set_rotation
SFRotation
HelicopterOrbitTrack
ProtoInstance
position_changed
SFVec3f
→
ROUTE
event to
(1)
RadioBeamOrientation
Transform
set_translation
SFVec3f

      HeloToSonobuoyCommunication
ProtoInstance
BeamCylinder
No ROUTE connection found for output events 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. 

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://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/SonobuoyFieldScenarioIndex.html -->
<!-- Version control at
https://gitlab.nps.edu/Savage/Savage/CommunicationsAndSensors/Sonobuoys/SonobuoyFieldScenario.x3d -->

<!-- Color-coding 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> -->

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