X3D Model Documentation: CollisionCourses.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2 
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
  3  <X3D profile='Immersive' version='3.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'>
  4       <head>
  5            <!-- =============================== -->
  6            <!-- Track reconstruction spreadsheet and programs -->
  7            <!-- ================================ -->
  8            <!-- MV Ehime Maru and USS GREENEVILLE references -->
  9            <meta name='titlecontent=' CollisionCourses.x3d '/>
 10            <meta name='descriptioncontent='Animate ship tracks showing collision by USS GREENVILLE with MV EHIME MARU. We hope that studying lessons learned this incident might help prevent future accidents.'/>
 11            <meta name='creatorcontent='Don Brutzman and UW3303 students'/>
 12            <meta name='createdcontent='16 May 2001'/>
 13            <meta name='modifiedcontent='28 January 2024'/>
 14            <meta name='referencecontent=' CollisionUssGreenevilleMvEhimeMaru.html '/>
 15            <meta name='referencecontent=' CollisionUssGreenevilleMvEhimeMaru.ppt '/>
 16            <meta name='referencecontent='UW 3303 reconstruction worklist.doc'/>
 17            <meta name='referencecontent='CalculateTrackLegWaypoints.m'/>
 18            <meta name='referencecontent='CalculateTrackLegWaypoints.out'/>
 19            <meta name='referencecontent=' ExcelPlottingData.txt '/>
 20            <meta name='referencecontent='TrackOrders.xls'/>
 21            <meta name='referencecontent='TrackCalculations.m'/>
 22            <meta name='referencecontent=' Greeneville_Track_Reconstruction.pdf '/>
 23            <meta name='drawingcontent='popup.greeneville.size.gif'/>
 24            <meta name='drawingcontent='10308_nat_subHAWAIIch.gif'/>
 25            <meta name='drawingcontent='http://www.nytimes.com/images/2001/03/08/national/010308_nat_subHAWAIIch.gif'/>
 26            <meta name='Imagecontent='PR_030101-2.gif'/>
 27            <meta name='Imagecontent='PR_030101-3.gif'/>
 28            <meta name='Imagecontent='PR_030101-4.gif'/>
 29            <meta name='referencecontent=' http://www.ntsb.gov/Pressrel/2001/010302.htm '/>
 30            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CollisionUssGreenevilleMvEhimeMaru/CollisionCourses.x3d '/>
 31            <meta name='subjectcontent='3D simulation Collision Ehime Maru USS GREENEVILLE'/>
 32            <meta name='generatorcontent='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 33            <meta name='referencecontent='TrackCalculations.m'/>
 34            <meta name='referencecontent='TrackOrders.xls'/>
 35            <meta name='referencecontent=' http://www.cpf.navy.mil/cpfnews/coidownloadmain.html '/>
 36            <meta name='referencecontent=' Greeneville_Track_Reconstruction.pdf '/>
 37            <meta name='referencecontent=' http://www.cpf.navy.mil/pages/legal/foia/Greeneville_Track_Reconstruction.pdf '/>
 38            <meta name='referencecontent='popup.greeneville.size.gif'/>
 39            <meta name='referencecontent='http://www.cnn.com/interactive/world/0102/sub.size.comparison/popup.greeneville.size.gif'/>
 40            <meta name='licensecontent='../../license.html'/>
 41       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: AerialView, ConsoleOutputViewPositionOrientation, CoordinateAxes, DvdControllerClock, EhimeMaruInterpolator, EhimeMaruTransform, GreenevilleInterpolator, GreenevilleSeaStateTransform, GreenevilleTransform, MasterClock, oceanSurface, SurfaceMovementFilter, ViewPoints

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4

Index for ExternProtoDeclare definitions: DvdController, HiddenViewpoint, SeaStateExtrusion, ViewPositionOrientation, WaypointInterpolator
-->
 42       <Scene>
 43            <!-- Coordinate system: origin is collision point 21°05'N 157°50'W (21.0917N, -157.8183W) y=vertical (depth negative) meters | | | x=latitude=north meters | / | / | / |/ *- - - > z=longitude meters -->
 44            <!-- Prototype and external prototype declarations must precede scene definition. -->
 45            <WorldInfo title='CollisionCourses.x3d'/>
 46            <ExternProtoDeclare name='HiddenViewpointappinfo='Hidden viewpoint becomes active (binds) upon pointer selection to reveal an interesting view with an optionally label'   url=' "../../../Savage/Tools/Animation/HiddenViewpointPrototype.x3d#HiddenViewpoint" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/HiddenViewpointPrototype.x3d#HiddenViewpoint" "../../../Savage/Tools/Animation/HiddenViewpointPrototype.wrl#HiddenViewpoint" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/HiddenViewpointPrototype.wrl#HiddenViewpoint" '>
 47                 <field name='positiontype='SFVec3faccessType='inputOutput'/>
 48                 <field name='rotationtype='SFRotationaccessType='inputOutput'/>
 49                 <field name='sensorRadiustype='SFFloataccessType='initializeOnly'/>
 50                 <field name='labeltype='MFStringaccessType='inputOutput'/>
 51                 <field name='labelOffsettype='SFVec3faccessType='inputOutput'/>
 52                 <field name='labelFontSizetype='SFFloataccessType='initializeOnly'/>
 53                 <field name='labelColortype='SFColoraccessType='inputOutput'/>
 54                 <field name='activatetype='SFBoolaccessType='inputOnly'/>
 55            </ExternProtoDeclare>
 56            <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" '>
 57                 <!-- Priority of use: legSpeeds (m/sec), legDurations (seconds), defaultSpeed (m/sec) -->
 58                 <field name='descriptiontype='SFStringaccessType='initializeOnly'
                appinfo='Short description of what is animated by this WaypointInterpolator.'/>
 59                 <field name='waypointstype='MFVec3faccessType='initializeOnly'
                appinfo='Waypoints being traversed with interpolation of intermediate positions and orientations.'/>
 60                 <field name='add_waypointtype='SFVec3faccessType='inputOnly'
                appinfo='Add another single waypoint to array of waypoints recalculate interpolator values.'/>
 61                 <field name='set_waypointstype='MFVec3faccessType='inputOnly'
                appinfo='Replace all waypoints recalculate interpolator values.'/>
 62                 <field name='pitchUpDownForVerticalWaypointstype='SFBoolaccessType='initializeOnly'
                appinfo='Whether to pitch child geometry (such as a vehicle) up or down to match vertical slope'/>
 63                 <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.'/>
 64                 <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.'/>
 65                 <field name='defaultSpeedtype='SFFloataccessType='initializeOnly'
                appinfo='Units m/sec.'/>
 66                 <field name='turningRatetype='SFFloataccessType='initializeOnly'
                appinfo='turningRate (degrees/second) also determines standoff distance prior to waypoint where turn commences. If 0 turns are instantaneous.'/>
 67                 <field name='totalDurationtype='SFTimeaccessType='outputOnly'
                appinfo='Output calculation summing all leg durations, useful for setting TimeSensor cycleInterval. Units in seconds.'/>
 68                 <!-- interpolation fields -->
 69                 <field name='set_fractiontype='SFFloataccessType='inputOnly'
                appinfo='exposed PositionInterpolator and OrientationInterpolator setting'/>
 70                 <field name='position_changedtype='SFVec3faccessType='outputOnly'
                appinfo='exposed PositionInterpolator setting'/>
 71                 <field name='orientation_changedtype='SFRotationaccessType='outputOnly'
                appinfo='exposed OrientationInterpolator setting'/>
 72                 <!-- display-related fields -->
 73                 <field name='lineColortype='SFColoraccessType='inputOutput'
                appinfo='default color for non-active line segments'/>
 74                 <field name='highlightSegmentColortype='SFColoraccessType='inputOutput'
                appinfo='active segment highlight color'/>
 75                 <field name='transparencytype='SFFloataccessType='inputOutput'
                appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/>
 76                 <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)'/>
 77                 <field name='heightLabeltype='SFStringaccessType='initializeOnly'
                appinfo='allowed values: altitude depth (negate Y value) none'/>
 78                 <field name='labelOffsettype='SFVec3faccessType='initializeOnly'
                appinfo='heightLabel relative location'/>
 79                 <field name='labelFontSizetype='SFFloataccessType='initializeOnly'
                appinfo='heightLabel text size'/>
 80                 <field name='labelColortype='SFColoraccessType='initializeOnly'
                appinfo='heightLabel text color'/>
 81                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='enable console output to trace script computations and prototype progress'/>
 82                 <field name='outputInitializationComputationstype='SFBoolaccessType='initializeOnly'
                appinfo='Output the number of waypoints totalDistance and totalDuration to console upon initialization'/>
 83                 <field name='verticalDropLineColortype='SFColoraccessType='inputOutput'
                appinfo='default color for vertical drop-line segments'/>
 84                 <field name='verticalDropLineTransparencytype='SFFloataccessType='inputOutput'
                appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/>
 85            </ExternProtoDeclare>
 86            <ExternProtoDeclare name='ViewPositionOrientation'   url=' "../../Tools/Authoring/ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "../../Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation" '>
 87                 <field name='enabledtype='SFBoolaccessType='inputOutput'/>
 88                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'/>
 89                 <field name='set_traceEnabledtype='SFBoolaccessType='inputOnly'/>
 90                 <field name='position_changedtype='SFVec3faccessType='outputOnly'/>
 91                 <field name='orientation_changedtype='SFRotationaccessType='outputOnly'/>
 92                 <field name='outputViewpointStringtype='MFStringaccessType='outputOnly'/>
 93            </ExternProtoDeclare>
 94            <ExternProtoDeclare name='SeaStateExtrusion'   url=' "../../Environment/SeaState/SeaStateExtrusionPrototype.x3d#SeaStateExtrusion" "https://www.web3d.org/x3d/content/examples/Savage/Environment/SeaState/SeaStateExtrusionPrototype.x3d#SeaStateExtrusion" "../../Environment/SeaState/SeaStateExtrusionPrototype.wrl#SeaStateExtrusion" "https://www.web3d.org/x3d/content/examples/Savage/Environment/SeaState/SeaStateExtrusionPrototype.wrl#SeaStateExtrusion" '>
 95                 <field name='shipPitchtype='SFRotationaccessType='outputOnly'/>
 96                 <field name='shipRolltype='SFRotationaccessType='outputOnly'/>
 97            </ExternProtoDeclare>
 98            <ExternProtoDeclare name='DvdControllerappinfo="Digital Virtual Display (DVD) Controller Prototype definition to control a scenario's animation timing"   url=' "../../Tools/HeadsUpDisplays/DvdControllerPrototype.x3d#DvdController" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/DvdControllerPrototype.x3d#DvdController" "../../Tools/HeadsUpDisplays/DvdControllerPrototype.wrl#DvdController" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/DvdControllerPrototype.wrl#DvdController" '>
 99                 <field name='descriptiontype='SFStringaccessType='initializeOnly'
                appinfo='Short description of what is animated by this DvdController.'/>
100                 <field name='playEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='Whether or not play mode is enabled including during startup.'/>
101                 <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.'/>
102                 <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.'/>
103                 <field name='buttonColortype='SFColoraccessType='initializeOnly'
                appinfo='Default button color.'/>
104                 <field name='selectedButtonColortype='SFColoraccessType='initializeOnly'
                appinfo='Button color when selected by user.'/>
105                 <field name='labelColortype='SFColoraccessType='initializeOnly'
                appinfo='Default label color.'/>
106                 <field name='selectedLabelColortype='SFColoraccessType='initializeOnly'
                appinfo='Label color when selected by user.'/>
107                 <field name='locationOffsettype='SFVec3faccessType='initializeOnly'
                appinfo='Modified screen location and distance (for size).'/>
108                 <field name='clockEnabledtype='SFBoolaccessType='initializeOnly'/>
109                 <field name='cycleIntervaltype='SFTimeaccessType='initializeOnly'
                appinfo='Time for complete loop cycle in seconds.'/>
110                 <field name='set_cycleIntervaltype='SFTimeaccessType='inputOnly'/>
111                 <field name='cycleInterval_changedtype='SFTimeaccessType='outputOnly'/>
112                 <field name='speedFactortype='SFFloataccessType='initializeOnly'
                appinfo='Factor used to determine the speed increase/decrease for Fast Rewind and Fast Forward action.'/>
113                 <field name='isActivetype='SFBoolaccessType='outputOnly'/>
114                 <field name='startTime_changedtype='SFTimeaccessType='outputOnly'/>
115                 <field name='stopTime_changedtype='SFTimeaccessType='outputOnly'/>
116                 <field name='time_changedtype='SFTimeaccessType='outputOnly'/>
117                 <field name='fraction_changedtype='SFFloataccessType='outputOnly'/>
118                 <field name='secondsElapsedtype='SFTimeaccessType='outputOnly'/>
119                 <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.'/>
120                 <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.'/>
121                 <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.'/>
122                 <field name='isPausedtype='SFBoolaccessType='outputOnly'
                appinfo='isPaused and isRunning always have opposite values. When isPaused is true isRunning will be false and vice versa.'/>
123                 <field name='isRunningtype='SFBoolaccessType='outputOnly'
                appinfo='isPaused and isRunning always have opposite values. When isPaused is true isRunning will be false and vice versa.'/>
124                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='Enable/disable console output for troubleshooting.'/>
125                 <field name='testTimeValtype='SFTimeaccessType='initializeOnly'/>
126            </ExternProtoDeclare>
127            <!-- =================================== -->
128            <!-- Begin actual scene here. Top-level viewpoint, navigation and control nodes. -->
129            <NavigationInfo speed='1000visibilityLimit='100000'/>
130            <Background groundAngle='1.309 1.570796groundColor='0 0 .6 0 0 .4 0 0 .6skyAngle='1.309 1.571skyColor='0.0 0.2 0.7 0.0 0.5 1.0 0.6 0.6 0.6'/>
131            <Viewpoint description='Operating areaorientation='0.032 .985 .167 3.578position='-20000 20000 -50000'/>
132            <!-- ViewPositionOrientation is a prototype lets us find good viewpoints for inclusion in the scene -->
133            <ProtoInstance name='ViewPositionOrientationDEF='ConsoleOutputViewPositionOrientation'>
134                 <fieldValue name='enabledvalue='false'/>
135            </ProtoInstance>
136            <!-- =================================== -->
137            <!-- Sea state -->
138 
          <!-- ROUTE information for GreenevilleSeaStateTransform node:  [from SurfaceMovementFilter.output2dPosition to set_translation ] -->
          <Transform DEF='GreenevilleSeaStateTransform'>
139                 <Transform translation='0 0 -1000'>
140                      <Group DEF='ViewPoints'>
141                           <Transform DEF='AerialViewrotation='0 1 0 1.8translation='15 50 -5'>
142                                <Transform rotation='0 1 0 0.75'>
143                                     <Viewpoint description='Sea State aerial vieworientation='1 0 0 -0.35'/>
144                                </Transform>
145                           </Transform>
146                      </Group>
147                      <ProtoInstance name='SeaStateExtrusion'/>
148                 </Transform>
149                 <!-- semi-transparent flat plate at surface -->
150                 <Switch whichChoice='-1'>
151                      <Shape DEF='oceanSurface'>
152                           <!-- IndexedFaceSet subdivided to enable view-frustrum culling for performance improvement -->
153                           <!-- area 10Km in X by 10Km in Z -->
154                           <IndexedFaceSet solid='falsecoordIndex='0 1 2 3 0 -1 0 3 4 5 0 -1 0 5 6 7 0 -1 0 7 8 1 0 -1'>
155                                <Coordinate point='0 0 0 0 0 25000 25000 0 25000 25000 0 0 25000 0 -25000 0 0 -25000 -25000 0 -25000 -25000 0 0 -25000 0 25000'/>
156                           </IndexedFaceSet>
157                           <Appearance>
158                                <Material diffuseColor='0 .2 .5transparency='0.05'/>
159                           </Appearance>
160                      </Shape>
161                 </Switch>
162            </Transform>
163            <!-- =================================== -->
164            <!-- USS GREENEVILLE -->
165            <Group>
166 
               <!-- ROUTE information for GreenevilleTransform node:  [from GreenevilleInterpolator.position_changed to set_translation ] [from GreenevilleInterpolator.orientation_changed to set_rotation ] -->
               <Transform DEF='GreenevilleTransform'>
167                      <Inline   url=' "../../Submarines/SsnLosAngelesUnitedStates/688.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Submarines/SsnLosAngelesUnitedStates/688.x3d" "../../Submarines/SsnLosAngelesUnitedStates/688.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Submarines/SsnLosAngelesUnitedStates/688.wrl" '/>
168                      <Viewpoint description='USS Greenevilleorientation='0 1 0 -1.57position='-150 6 0'/>
169                 </Transform>
170 
171                      <!-- initial waypoint time 1330, final waypoint time 1343.25 -->
172                      <fieldValue name='descriptionvalue='GreenevilleInterpolator'/>
173                      <fieldValue name='waypointsvalue='-18256.7 -198.1 -2429.6 -17778.3 -198.1 -2429.6 -17330.7 -198.1 -2429.6 -16816.3 -121.9 -2429.6 -16502.5 -121.9 -2429.6 -15494.2 -198.1 -2429.6 -14907.7 -198.1 -2429.6 -14161.8 -198.1 -2429.6 -14064.0 -198.1 -2429.6 -14439.6 -198.1 -3080.1 -14449.9 -198.1 -3097.9 -14555.3 -198.1 -3280.6 -14864.0 -198.1 -3815.2 -14169.5 -198.1 -3815.2 -14025.4 -121.9 -3815.2 -13634.5 -121.9 -3815.2 -12806.2 -198.1 -3815.2 -12471.8 -198.1 -3815.2 -9611.5 -198.1 -3815.2 -9128.0 -198.1 -3815.2 -8059.6 -198.1 -3426.3 -6894.6 -198.1 -3002.3 -6445.0 -198.1 -2838.7 -6029.3 -198.1 -2687.3 -4279.3 -198.1 -2050.4 -4245.5 -121.9 -2038.1 -2805.0 -121.9 -2038.1 -1711.9 -121.9 -2038.1 -1869.5 -121.9 -1905.8 -2667.5 -121.9 -1236.2 -2510.4 -121.9 -1293.4 -2027.0 -121.9 -1469.3 -1422.7 -121.9 -1689.3 -1776.4 -121.9 -1076.7 -2104.3 -121.9 -508.7 -2123.6 -121.9 -475.2 -1875.6 -121.9 -565.5 -1462.3 -121.9 -715.9 -1407.2 -45.7 -736.0 -1352.0 -45.7 -756.1 -1326.8 -45.7 -765.3 -993.8 -45.7 -886.5 -692.1 -45.7 -996.3 -371.6 -45.7 -1112.9 -389.0 -45.7 -1082.9 -498.9 -45.7 -892.4 -524.0 -45.7 -849.0 -533.6 -45.7 -832.3 -562.6 -45.7 -782.1 -620.5 -45.7 -681.9 -720.8 -18.3 -508.1 -767.1 -18.3 -427.9 -817.2 -17.7 -341.1 -826.9 -17.4 -324.4 -848.1 -17.4 -287.6 -855.8 -19.5 -274.2 -877.9 -24.1 -237.6 -946.4 -54.6 -118.8 -432.9 -121.9 -305.7 -400.5 -122.5 -280.4 -278.1 -122.5 -194.7 0.0 -6.1 0.0'/>
174                      <!-- 1 knot = 0.514444444 meters/second, 11 knots = 5.66 meters/second -->
175                      <fieldValue name='legDurationsvalue='93.0 87.0 100.0 61.0 196.0 114.0 145.0 19.0 146.0 4.0 41.0 120.0 135.0 28.0 76.0 161.0 65.0 556.0 94.0 221.0 241.0 93.0 86.0 362.0 7.0 112.0 85.0 16.0 81.0 13.0 40.0 50.0 55.0 51.0 3.0 27.0 45.0 6.0 9.0 4.0 53.0 48.0 51.0 9.0 57.0 13.0 5.0 15.0 30.0 52.0 24.0 26.0 5.0 11.0 4.0 13.0 31.0 83.0 6.0 22.0 50.0'/>
176                      <fieldValue name='turningRatevalue='5'/>
177                      <fieldValue name='pitchUpDownForVerticalWaypointsvalue='true'/>
178                      <fieldValue name='labelDisplayModevalue='interpolation'/>
179                      <fieldValue name='heightLabelvalue='depth'/>
180                      <fieldValue name='lineColorvalue='0 0.8 0.8'/>
181                      <fieldValue name='highlightSegmentColorvalue='0.8 0.6 0.2'/>
182                      <fieldValue name='labelColorvalue='0 0.8 0.8'/>
183                      <fieldValue name='labelOffsetvalue='0 20 0'/>
184                      <fieldValue name='labelFontSizevalue='6'/>
185                      <fieldValue name='traceEnabledvalue='false'/>
186                 </ProtoInstance>
187                 < ROUTE  fromNode='GreenevilleInterpolator' fromField='position_changed' toNode='GreenevilleTransform' toField='set_translation'/>
188                 < ROUTE  fromNode='GreenevilleInterpolator' fromField='orientation_changed' toNode='GreenevilleTransform' toField='set_rotation'/>
189                 <!-- Move sea state extrusion to stay located over submarine -->
190 
               <!-- ROUTE information for SurfaceMovementFilter node:  [from GreenevilleInterpolator.position_changed to input3dPosition ] [from output2dPosition to GreenevilleSeaStateTransform.set_translation ] -->
               <Script DEF='SurfaceMovementFilter'>
191                      <field name='input3dPositiontype='SFVec3faccessType='inputOnly'/>
192                      <field name='output2dPositiontype='SFVec3faccessType='outputOnly'/>
  <![CDATA[
        
ecmascript:

function input3dPosition (position, timestamp)
{
	output2dPosition = new SFVec3f (position.x, 0, position.z);
}

      
]]>
194                 </Script>
195                 < ROUTE  fromNode='GreenevilleInterpolator' fromField='position_changed' toNode='SurfaceMovementFilter' toField='input3dPosition'/>
196                 < ROUTE  fromNode='SurfaceMovementFilter' fromField='output2dPosition' toNode='GreenevilleSeaStateTransform' toField='set_translation'/>
197            </Group>
198            <!-- =================================== -->
199            <!-- MV EHIME MARU -->
200            <Group>
201 
               <!-- ROUTE information for EhimeMaruTransform node:  [from EhimeMaruInterpolator.position_changed to set_translation ] [from EhimeMaruInterpolator.orientation_changed to set_rotation ] -->
               <Transform DEF='EhimeMaruTransform'>
202                      <Inline   url=' "../../ShipsCivilian/Trawlers/EhimeMaru.x3d" "https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/Trawlers/EhimeMaru.x3d" "../../ShipsCivilian/Trawlers/EhimeMaru.wrl" "https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/Trawlers/EhimeMaru.wrl" '/>
203                 </Transform>
204 
205                      <!-- initial waypoint time 1330, final waypoint time 1343.25 -->
206                      <fieldValue name='descriptionvalue='EhimeMaruInterpolator'/>
207                      <fieldValue name='waypointsvalue='20060.7 -3.0 -5001.7 19875.0 -3.0 -4955.4 19701.3 -3.0 -4912.1 19501.6 -3.0 -4862.3 19379.8 -3.0 -4831.9 18988.5 -3.0 -4734.4 18760.9 -3.0 -4677.6 18471.4 -3.0 -4605.4 18433.4 -3.0 -4596.0 18141.9 -3.0 -4523.3 18133.9 -3.0 -4521.3 18052.1 -3.0 -4500.9 17812.5 -3.0 -4441.2 17542.9 -3.0 -4373.9 17389.2 -3.0 -4335.6 16971.9 -3.0 -4231.6 16087.9 -3.0 -4011.2 15731.0 -3.0 -3922.2 12678.1 -3.0 -3161.0 12162.0 -3.0 -3032.3 10948.6 -3.0 -2729.8 9625.3 -3.0 -2399.9 9114.6 -3.0 -2272.5 8642.4 -3.0 -2154.8 6654.8 -3.0 -1659.2 6616.4 -3.0 -1649.6 6001.4 -3.0 -1496.3 5534.7 -3.0 -1379.9 5446.8 -3.0 -1358.0 5002.1 -3.0 -1247.2 4930.7 -3.0 -1229.4 4711.1 -3.0 -1174.6 4436.5 -3.0 -1106.1 4134.5 -3.0 -1030.9 3854.5 -3.0 -961.0 3838.0 -3.0 -956.9 3689.8 -3.0 -920.0 3442.7 -3.0 -858.4 3409.8 -3.0 -850.1 3360.3 -3.0 -837.8 3338.4 -3.0 -832.4 3047.4 -3.0 -759.8 2783.8 -3.0 -694.1 2503.8 -3.0 -624.3 2454.4 -3.0 -611.9 2141.4 -3.0 -533.9 2070.0 -3.0 -516.1 2042.6 -3.0 -509.3 1960.2 -3.0 -488.7 1795.5 -3.0 -447.7 1510.0 -3.0 -376.5 1378.2 -3.0 -343.6 1235.4 -3.0 -308.0 1208.0 -3.0 -301.2 1147.6 -3.0 -286.1 1125.6 -3.0 -280.6 1054.2 -3.0 -262.8 884.0 -3.0 -220.4 428.3 -3.0 -106.8 395.3 -3.0 -98.6 274.5 -3.0 -68.4 0.0 -3.0 0.0'/>
208                      <!-- 1 knot = 0.514444444 meters/second, 11 knots = 5.66 meters/second -->
209                      <fieldValue name='legDurationsvalue='93.0 87.0 100.0 61.0 196.0 114.0 145.0 19.0 146.0 4.0 41.0 120.0 135.0 28.0 76.0 161.0 65.0 556.0 94.0 221.0 241.0 93.0 86.0 362.0 7.0 112.0 85.0 16.0 81.0 13.0 40.0 50.0 55.0 51.0 3.0 27.0 45.0 6.0 9.0 4.0 53.0 48.0 51.0 9.0 57.0 13.0 5.0 15.0 30.0 52.0 24.0 26.0 5.0 11.0 4.0 13.0 31.0 83.0 6.0 22.0 50.0'/>
210                      <fieldValue name='heightLabelvalue='none'/>
211                      <fieldValue name='lineColorvalue='0.4 0.4 0.1'/>
212                      <fieldValue name='highlightSegmentColorvalue='0.8 0.8 0.2'/>
213                      <fieldValue name='labelColorvalue='0.8 0.8 0'/>
214                      <fieldValue name='labelOffsetvalue='0 20 0'/>
215                      <fieldValue name='labelFontSizevalue='6'/>
216                      <fieldValue name='traceEnabledvalue='false'/>
217                 </ProtoInstance>
218                 < ROUTE  fromNode='EhimeMaruInterpolator' fromField='position_changed' toNode='EhimeMaruTransform' toField='set_translation'/>
219                 < ROUTE  fromNode='EhimeMaruInterpolator' fromField='orientation_changed' toNode='EhimeMaruTransform' toField='set_rotation'/>
220            </Group>
221            <!-- =================================== -->
222            <!-- Grid and coordinate axes -->
223            <Group>
224                 <Viewpoint description='Collision pointorientation='-.233 .962 .143 1.1352position='4000 1000 1500'/>
225                 <Transform scale='2500 2500 2500'>
226                      <Inline   url=' "../../../Savage/Tools/Authoring/GridXZ_20x20Fixed.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/GridXZ_20x20Fixed.x3d" "../../../Savage/Tools/Authoring/GridXZ_20x20Fixed.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/GridXZ_20x20Fixed.wrl" '/>
227                 </Transform>
228                 <Transform scale='10 10 10'>
229                      <Inline DEF='CoordinateAxes'   url=' "../../X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/CoordinateAxes.x3d" "../../X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/CoordinateAxes.wrl" '/>
230                 </Transform>
231            </Group>
232            <!-- =================================== -->
233            <!-- Can use either MasterClock or DvdControllerClock -->
234            <TimeSensor DEF='MasterClockloop='true'/>
235 
236                 <fieldValue name='displayModevalue='PLAYBACK_SLIDER'/>
237                 <fieldValue name='playEnabledvalue='true'/>
238                 <fieldValue name='buttonColorvalue='0.655 0.655 0.655'/>
239                 <fieldValue name='selectedButtonColorvalue='0.675 0.675 0.675'/>
240                 <fieldValue name='selectedLabelColorvalue='0.9 0 0'/>
241                 <fieldValue name='locationOffsetvalue='-12 -4 0'/>
242                 <fieldValue name='cycleIntervalvalue='40'/>
243                 <fieldValue name='speedFactorvalue='10.0'/>
244                 <fieldValue name='traceEnabledvalue='false'/>
245            </ProtoInstance>
246            < ROUTE  fromNode='EhimeMaruInterpolator' fromField='totalDuration' toNode='DvdControllerClock' toField='set_cycleInterval'/>
247            < ROUTE  fromNode='DvdControllerClock' fromField='fraction_changed' toNode='GreenevilleInterpolator' toField='set_fraction'/>
248            < ROUTE  fromNode='DvdControllerClock' fromField='fraction_changed' toNode='EhimeMaruInterpolator' toField='set_fraction'/>
249       </Scene>
250  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: AerialView, ConsoleOutputViewPositionOrientation, CoordinateAxes, DvdControllerClock, EhimeMaruInterpolator, EhimeMaruTransform, GreenevilleInterpolator, GreenevilleSeaStateTransform, GreenevilleTransform, MasterClock, oceanSurface, SurfaceMovementFilter, ViewPoints

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4

Index for ExternProtoDeclare definitions: DvdController, HiddenViewpoint, SeaStateExtrusion, ViewPositionOrientation, WaypointInterpolator
-->
X3D Tooltips element index: Appearance, Background, Coordinate, ExternProtoDeclare, field, fieldValue, Group, head, IndexedFaceSet, Inline, Material, meta, NavigationInfo, ProtoInstance, ROUTE, Scene, Script, Shape, 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 9 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.

MasterClock
TimeSensor
No direct ROUTE connection found for events to/from this node. 

line 147
ProtoInstance
SeaStateExtrusion
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. 

ConsoleOutputViewPositionOrientation
ProtoInstance
ViewPositionOrientation
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=2.
 
ROUTE DvdControllerClock.fraction_changed TO EhimeMaruInterpolator.set_fraction
DvdControllerClock
ProtoInstance
fraction_changed
SFFloat

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

ROUTE
event to
(2)
GreenevilleTransform
Transform
set_rotation
SFRotation
  then
 
 
 
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(2)
GreenevilleTransform
Transform
set_translation
SFVec3f
  then
 
 
 
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(2)
SurfaceMovementFilter
Script
input3dPosition
SFVec3f
then
 
 
 
SurfaceMovementFilter
Script
output2dPosition
SFVec3f

ROUTE
event to
(3)
GreenevilleSeaStateTransform
Transform
set_translation
SFVec3f
DvdControllerClock
ProtoInstance
fraction_changed
SFFloat

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

ROUTE
event to
(2)
EhimeMaruTransform
Transform
set_rotation
SFRotation
  then
 
 
 
EhimeMaruInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(2)
EhimeMaruTransform
Transform
set_translation
SFVec3f
  then
 
 
 
EhimeMaruInterpolator
ProtoInstance
totalDuration
SFTime

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

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

ROUTE
event to
(4)
GreenevilleTransform
Transform
set_rotation
SFRotation
  then
 
 
 
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(4)
GreenevilleTransform
Transform
set_translation
SFVec3f
  then
 
 
 
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(4)
SurfaceMovementFilter
Script
input3dPosition
SFVec3f
then
 
 
 
SurfaceMovementFilter
Script
output2dPosition
SFVec3f

ROUTE
event to
(5)
GreenevilleSeaStateTransform
Transform
set_translation
SFVec3f
  then
 
 
 
DvdControllerClock
ProtoInstance
fraction_changed
SFFloat

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

ROUTE
event to
(4)
EhimeMaruTransform
Transform
set_rotation
SFRotation
  then
 
 
 
EhimeMaruInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(4)
EhimeMaruTransform
Transform
set_translation
SFVec3f
  then
 
 
 
EhimeMaruInterpolator
ProtoInstance
totalDuration
SFTime

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

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

ROUTE
event to
(6)
GreenevilleTransform
Transform
set_rotation
SFRotation
  then
 
 
 
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(6)
GreenevilleTransform
Transform
set_translation
SFVec3f
  then
 
 
 
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(6)
SurfaceMovementFilter
Script
input3dPosition
SFVec3f
then
 
 
 
SurfaceMovementFilter
Script
output2dPosition
SFVec3f

ROUTE
event to
(7)
GreenevilleSeaStateTransform
Transform
set_translation
SFVec3f
  then
 
 
 
DvdControllerClock
ProtoInstance
fraction_changed
SFFloat

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

ROUTE
event to
(6)
EhimeMaruTransform
Transform
set_rotation
SFRotation
  then
 
 
 
EhimeMaruInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(6)
EhimeMaruTransform
Transform
set_translation
SFVec3f
  then
 
 
 
EhimeMaruInterpolator
ProtoInstance
totalDuration
SFTime

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

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

ROUTE
event to
(8)
GreenevilleTransform
Transform
set_rotation
SFRotation
  then
 
 
 
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(8)
GreenevilleTransform
Transform
set_translation
SFVec3f
  then
 
 
 
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(8)
SurfaceMovementFilter
Script
input3dPosition
SFVec3f
  then
 
 
 
DvdControllerClock
ProtoInstance
fraction_changed
SFFloat

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

ROUTE
event to
(8)
EhimeMaruTransform
Transform
set_rotation
SFRotation
  then
 
 
 
EhimeMaruInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(8)
EhimeMaruTransform
Transform
set_translation
SFVec3f
  then
 
 
 
EhimeMaruInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(8)
DvdControllerClock
ProtoInstance
set_cycleInterval
SFTime

     
The following ROUTE chain begins an event-routing loop! Loop occurs at nodeDepth=1.
 
ROUTE EhimeMaruInterpolator.totalDuration TO DvdControllerClock.set_cycleInterval
EhimeMaruInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(1)
EhimeMaruTransform
Transform
set_translation
SFVec3f
EhimeMaruInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(1)
EhimeMaruTransform
Transform
set_rotation
SFRotation
EhimeMaruInterpolator
ProtoInstance
totalDuration
SFTime

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

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

ROUTE
event to
(3)
GreenevilleTransform
Transform
set_rotation
SFRotation
  then
 
 
 
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(3)
GreenevilleTransform
Transform
set_translation
SFVec3f
  then
 
 
 
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(3)
SurfaceMovementFilter
Script
input3dPosition
SFVec3f
then
 
 
 
SurfaceMovementFilter
Script
output2dPosition
SFVec3f

ROUTE
event to
(4)
GreenevilleSeaStateTransform
Transform
set_translation
SFVec3f
  then
 
 
 
DvdControllerClock
ProtoInstance
fraction_changed
SFFloat

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

ROUTE
event to
(3)
EhimeMaruTransform
Transform
set_rotation
SFRotation
  then
 
 
 
EhimeMaruInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(3)
EhimeMaruTransform
Transform
set_translation
SFVec3f
  then
 
 
 
EhimeMaruInterpolator
ProtoInstance
totalDuration
SFTime

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

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

ROUTE
event to
(5)
GreenevilleTransform
Transform
set_rotation
SFRotation
  then
 
 
 
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(5)
GreenevilleTransform
Transform
set_translation
SFVec3f
  then
 
 
 
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(5)
SurfaceMovementFilter
Script
input3dPosition
SFVec3f
then
 
 
 
SurfaceMovementFilter
Script
output2dPosition
SFVec3f

ROUTE
event to
(6)
GreenevilleSeaStateTransform
Transform
set_translation
SFVec3f
  then
 
 
 
DvdControllerClock
ProtoInstance
fraction_changed
SFFloat

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

ROUTE
event to
(5)
EhimeMaruTransform
Transform
set_rotation
SFRotation
  then
 
 
 
EhimeMaruInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(5)
EhimeMaruTransform
Transform
set_translation
SFVec3f
  then
 
 
 
EhimeMaruInterpolator
ProtoInstance
totalDuration
SFTime

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

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

ROUTE
event to
(7)
GreenevilleTransform
Transform
set_rotation
SFRotation
  then
 
 
 
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(7)
GreenevilleTransform
Transform
set_translation
SFVec3f
  then
 
 
 
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(7)
SurfaceMovementFilter
Script
input3dPosition
SFVec3f
then
 
 
 
SurfaceMovementFilter
Script
output2dPosition
SFVec3f

ROUTE
event to
(8)
GreenevilleSeaStateTransform
Transform
set_translation
SFVec3f
  then
 
 
 
DvdControllerClock
ProtoInstance
fraction_changed
SFFloat

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

ROUTE
event to
(7)
EhimeMaruTransform
Transform
set_rotation
SFRotation
  then
 
 
 
EhimeMaruInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(7)
EhimeMaruTransform
Transform
set_translation
SFVec3f
  then
 
 
 
EhimeMaruInterpolator
ProtoInstance
totalDuration
SFTime

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

ROUTE
event to
(8)
GreenevilleInterpolator
ProtoInstance
set_fraction
SFFloat
  then
 
 
 
DvdControllerClock
ProtoInstance
fraction_changed
SFFloat

ROUTE
event to
(8)
EhimeMaruInterpolator
ProtoInstance
set_fraction
SFFloat

      GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(1)
GreenevilleTransform
Transform
set_translation
SFVec3f
GreenevilleInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(1)
GreenevilleTransform
Transform
set_rotation
SFRotation
GreenevilleInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(1)
SurfaceMovementFilter
Script
input3dPosition
SFVec3f
then
 
 
 
SurfaceMovementFilter
Script
output2dPosition
SFVec3f

ROUTE
event to
(2)
GreenevilleSeaStateTransform
Transform
set_translation
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/Scenarios/CollisionUssGreenevilleMvEhimeMaru/CollisionCoursesIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Savage/Scenarios/CollisionUssGreenevilleMvEhimeMaru/CollisionCourses.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. -->