X3D Model Documentation: AmphibiousRaid.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            <meta name='titlecontent=' AmphibiousRaid.x3d '/>
  6            <meta name='descriptioncontent='Amphibious Raid shows an exemplar amphibious raid at Red Beach, Camp Pendleton California. It is the primary scenario for the SAVAGE group.'/>
  7            <meta name='creatorcontent='Don Brutzman, Curtis Blais, Jeff Weekley, Jane Wu, Shane Nicklaus, MIke Hunsberger'/>
  8            <meta name='createdcontent='9 April 2001'/>
  9            <meta name='modifiedcontent='28 January 2024'/>
 10            <meta name='referencecontent='../../documents/NicklausNpsRedBeachRaidScenario2001May2.html'/>
 11            <meta name='referencecontent='../../documents/NicklausNpsRedBeachRaidScenario2001May2.ppt'/>
 12            <meta name='Imagecontent='HeloPatrolPendletonBackground.png'/>
 13            <meta name='referencecontent=' AmphibiousRaidWithCommunications.x3d '/>
 14            <meta name=' warning content=' Coordinate system axes need to be aligned properly. '/>
 15            <meta name=' warning content=' Future work: add pushbutton to enable/disable ViewpointSequencer. IMPORT/EXPORT viewpoints from Inline scenes and add Viewpoints to ViewpointSequencer. '/>
 16            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Savage/Scenarios/AmphibiousRaidCampPendleton/AmphibiousRaid.x3d '/>
 17            <meta name='referencecontent=' https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/WaypointInterpolator.x3d '/>
 18            <meta name='generatorcontent='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 19            <meta name='licensecontent='../../license.html'/>
 20       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: AAAV, AAAV_1_WaypointInterpolator, AAAV1_Clock, AAAV-2, AAAV-3, AAAV-Location, AAV-2PATH, AAV-3PATH, AAV7PA1Clock, AAV7PA1Location, AAV7PA1WaypointInterpolator, Below1000m, CloseUpNavigation, CobraCapInitialClimb, CobraCapStartingPoint, ConsoleOutputViewPositionOrientation, EntireScene, GREY_APPEARANCE, Helo_1_WaypointInterpolator, Helo_2_WaypointInterpolator, Helo-1, Helo1_Clock, Helo-2, Helo2_Clock, HeloInstance1, HeloInstance2, HiddenViewpointGroup, HighAltitudeLongDistanceNavigation, LPD, NorthernCapTurnPoint, OtherAAAVs, SouthernCapTurnPoint, VerticalCorrection, View1000m, ViewAAAVfromAhead, ViewAAAVfromBehind, ViewFullScenarioAbove, ViewWaypoint1, ViewWaypoint2

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4, Viewpoint_5, Viewpoint_6, View1000m, ViewAAAVfromAhead, ViewAAAVfromBehind, ViewFullScenarioAbove, ViewWaypoint1, ViewWaypoint2

Index for ExternProtoDeclare definitions: CameraCompass36, DvdController, HiddenViewpoint, SuperCobra, ViewpointSequencer, ViewPositionOrientation, WaypointInterpolator
-->
 21       <Scene>
 22            <!-- Prototype and external prototype declarations must precede use -->
 23            <WorldInfo title='AmphibiousRaid.x3d'/>
 24            <ExternProtoDeclare name='SuperCobra'   url=' "../../AircraftHelicopters/AH1SuperCobraUnitedStates/SuperCobraPrototype.x3d#SuperCobra" "https://www.web3d.org/x3d/content/examples/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SuperCobraPrototype.x3d#SuperCobra" "../../AircraftHelicopters/AH1SuperCobraUnitedStates/SuperCobraPrototype.wrl#SuperCobra" "https://www.web3d.org/x3d/content/examples/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SuperCobraPrototype.wrl#SuperCobra" '>
 25                 <field name='tailBoomColortype='SFNodeaccessType='initializeOnly'/>
 26                 <field name='tailRotorDriveShaftColortype='SFNodeaccessType='initializeOnly'/>
 27                 <field name='horizontalStabilizerColortype='SFNodeaccessType='initializeOnly'/>
 28                 <field name='fuselageColortype='SFNodeaccessType='initializeOnly'/>
 29                 <field name='cockpitColortype='SFNodeaccessType='initializeOnly'/>
 30                 <field name='cowlingColortype='SFNodeaccessType='initializeOnly'/>
 31                 <field name='helicopterNametype='SFStringaccessType='initializeOnly'/>
 32                 <field name='inFlighttype='SFBoolaccessType='inputOnly'/>
 33            </ExternProtoDeclare>
 34            <ExternProtoDeclare name='CameraCompass36'   url=' "../../../Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.x3d#CameraCompass36" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.x3d#CameraCompass36" "../../../Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.wrl#CameraCompass36" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.wrl#CameraCompass36" '>
 35                 <field name='enabledtype='SFBoolaccessType='inputOutput'/>
 36                 <field name='positionOffsetFromCameratype='SFVec3faccessType='inputOutput'/>
 37                 <field name='markerColortype='SFColoraccessType='inputOutput'/>
 38                 <field name='labelColortype='SFColoraccessType='inputOutput'/>
 39            </ExternProtoDeclare>
 40            <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" '>
 41                 <field name='descriptiontype='SFStringaccessType='initializeOnly'
                appinfo='Short description of what is animated by this DvdController.'/>
 42                 <field name='playEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='Whether or not play mode is enabled including during startup.'/>
 43                 <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.'/>
 44                 <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.'/>
 45                 <field name='buttonColortype='SFColoraccessType='initializeOnly'
                appinfo='Default button color.'/>
 46                 <field name='selectedButtonColortype='SFColoraccessType='initializeOnly'
                appinfo='Button color when selected by user.'/>
 47                 <field name='labelColortype='SFColoraccessType='initializeOnly'
                appinfo='Default label color.'/>
 48                 <field name='selectedLabelColortype='SFColoraccessType='initializeOnly'
                appinfo='Label color when selected by user.'/>
 49                 <field name='locationOffsettype='SFVec3faccessType='initializeOnly'
                appinfo='Modified screen location and distance (for size).'/>
 50                 <field name='clockEnabledtype='SFBoolaccessType='initializeOnly'/>
 51                 <field name='cycleIntervaltype='SFTimeaccessType='initializeOnly'
                appinfo='Time for complete loop cycle in seconds.'/>
 52                 <field name='set_cycleIntervaltype='SFTimeaccessType='inputOnly'/>
 53                 <field name='cycleInterval_changedtype='SFTimeaccessType='outputOnly'/>
 54                 <field name='speedFactortype='SFFloataccessType='initializeOnly'
                appinfo='Factor used to determine the speed increase/decrease for Fast Rewind and Fast Forward action.'/>
 55                 <field name='isActivetype='SFBoolaccessType='outputOnly'/>
 56                 <field name='startTime_changedtype='SFTimeaccessType='outputOnly'/>
 57                 <field name='stopTime_changedtype='SFTimeaccessType='outputOnly'/>
 58                 <field name='time_changedtype='SFTimeaccessType='outputOnly'/>
 59                 <field name='fraction_changedtype='SFFloataccessType='outputOnly'/>
 60                 <field name='secondsElapsedtype='SFTimeaccessType='outputOnly'/>
 61                 <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.'/>
 62                 <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.'/>
 63                 <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.'/>
 64                 <field name='isPausedtype='SFBoolaccessType='outputOnly'
                appinfo='isPaused and isRunning always have opposite values. When isPaused is true isRunning will be false and vice versa.'/>
 65                 <field name='isRunningtype='SFBoolaccessType='outputOnly'
                appinfo='isPaused and isRunning always have opposite values. When isPaused is true isRunning will be false and vice versa.'/>
 66                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='Enable/disable console output for troubleshooting.'/>
 67                 <field name='testTimeValtype='SFTimeaccessType='initializeOnly'/>
 68            </ExternProtoDeclare>
 69            <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" '>
 70                 <field name='positiontype='SFVec3faccessType='inputOutput'/>
 71                 <field name='rotationtype='SFRotationaccessType='inputOutput'/>
 72                 <field name='sensorRadiustype='SFFloataccessType='initializeOnly'/>
 73                 <field name='labeltype='MFStringaccessType='inputOutput'/>
 74                 <field name='labelOffsettype='SFVec3faccessType='inputOutput'/>
 75                 <field name='labelFontSizetype='SFFloataccessType='initializeOnly'/>
 76                 <field name='labelColortype='SFColoraccessType='inputOutput'/>
 77                 <field name='activatetype='SFBoolaccessType='inputOnly'/>
 78            </ExternProtoDeclare>
 79            <ExternProtoDeclare name='ViewPositionOrientationappinfo='ViewPositionOrientation provides provides console output of local position and orientation as user navigates'   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" '>
 80                 <field name='enabledtype='SFBoolaccessType='inputOutput'
                appinfo='Whether or not ViewPositionOrientation sends output to console.'/>
 81                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='Output internal trace messages for debugging this node - developer use only can be ignored.'/>
 82                 <field name='set_traceEnabledtype='SFBoolaccessType='inputOnly'
                appinfo='Ability to turn output tracing on/off at runtime.'/>
 83                 <field name='position_changedtype='SFVec3faccessType='outputOnly'
                appinfo='Output local position.'/>
 84                 <field name='orientation_changedtype='SFRotationaccessType='outputOnly'
                appinfo='Output local orientation.'/>
 85                 <field name='outputViewpointStringtype='MFStringaccessType='outputOnly'
                appinfo='MFString value of new Viewpoint'/>
 86            </ExternProtoDeclare>
 87            <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" '>
 88                 <!-- Priority of use: legSpeeds (m/sec), legDurations (seconds), defaultSpeed (m/sec) -->
 89                 <field name='descriptiontype='SFStringaccessType='initializeOnly'
                appinfo='Short description of what is animated by this WaypointInterpolator.'/>
 90                 <field name='waypointstype='MFVec3faccessType='initializeOnly'
                appinfo='Waypoints being traversed with interpolation of intermediate positions and orientations.'/>
 91                 <field name='add_waypointtype='SFVec3faccessType='inputOnly'
                appinfo='Add another single waypoint to array of waypoints recalculate interpolator values.'/>
 92                 <field name='set_waypointstype='MFVec3faccessType='inputOnly'
                appinfo='Replace all waypoints recalculate interpolator values.'/>
 93                 <field name='pitchUpDownForVerticalWaypointstype='SFBoolaccessType='initializeOnly'
                appinfo='Whether to pitch child geometry (such as a vehicle) up or down to match vertical slope'/>
 94                 <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.'/>
 95                 <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.'/>
 96                 <field name='defaultSpeedtype='SFFloataccessType='initializeOnly'
                appinfo='Units m/sec.'/>
 97                 <field name='turningRatetype='SFFloataccessType='initializeOnly'
                appinfo='turningRate (degrees/second) also determines standoff distance prior to waypoint where turn commences. If 0 turns are instantaneous.'/>
 98                 <field name='totalDurationtype='SFTimeaccessType='outputOnly'
                appinfo='Output calculation summing all leg durations, useful for setting TimeSensor cycleInterval. Units in seconds.'/>
 99                 <!-- interpolation fields -->
100                 <field name='set_fractiontype='SFFloataccessType='inputOnly'
                appinfo='exposed PositionInterpolator and OrientationInterpolator setting'/>
101                 <field name='position_changedtype='SFVec3faccessType='outputOnly'
                appinfo='exposed PositionInterpolator setting'/>
102                 <field name='orientation_changedtype='SFRotationaccessType='outputOnly'
                appinfo='exposed OrientationInterpolator setting'/>
103                 <!-- display-related fields -->
104                 <field name='lineColortype='SFColoraccessType='inputOutput'
                appinfo='default color for non-active line segments'/>
105                 <field name='highlightSegmentColortype='SFColoraccessType='inputOutput'
                appinfo='active segment highlight color'/>
106                 <field name='transparencytype='SFFloataccessType='inputOutput'
                appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/>
107                 <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)'/>
108                 <field name='heightLabeltype='SFStringaccessType='initializeOnly'
                appinfo='allowed values: altitude depth (negate Y value) none'/>
109                 <field name='labelOffsettype='SFVec3faccessType='initializeOnly'
                appinfo='heightLabel relative location'/>
110                 <field name='labelFontSizetype='SFFloataccessType='initializeOnly'
                appinfo='heightLabel text size'/>
111                 <field name='labelColortype='SFColoraccessType='initializeOnly'
                appinfo='heightLabel text color'/>
112                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='enable console output to trace script computations and prototype progress'/>
113                 <field name='outputInitializationComputationstype='SFBoolaccessType='initializeOnly'
                appinfo='Output the number of waypoints totalDistance and totalDuration to console upon initialization'/>
114                 <field name='verticalDropLineColortype='SFColoraccessType='inputOutput'
                appinfo='default color for vertical drop-line segments'/>
115                 <field name='verticalDropLineTransparencytype='SFFloataccessType='inputOutput'
                appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/>
116            </ExternProtoDeclare>
117            <ExternProtoDeclare name='ViewpointSequencerappinfo='Sequentially binds each Viewpoint in a set of Viewpoint USE nodes, creating an automatic tour for a scene'   url=' "../../../Savage/Tools/Animation/ViewpointSequencerPrototype.x3d#ViewpointSequencer" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/ViewpointSequencerPrototype.x3d#ViewpointSequencer" "../../../Savage/Tools/Animation/ViewpointSequencerPrototype.wrl#ViewpointSequencer" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/ViewpointSequencerPrototype.wrl#ViewpointSequencer" '>
118                 <field name='viewpointstype='MFNodeaccessType='initializeOnly'
                appinfo='Viewpoint USE nodes that are sequentially bound'/>
119                 <field name='intervaltype='SFTimeaccessType='inputOutput'
                appinfo='number of seconds between viewpoint shifts'/>
120                 <field name='enabledtype='SFBoolaccessType='inputOutput'
                appinfo='whether ViewpointSequencer is enabled or not'/>
121                 <field name='set_enabledtype='SFBoolaccessType='inputOnly'
                appinfo='whether ViewpointSequencer is enabled or not'/>
122                 <field name='previoustype='SFBoolaccessType='inputOnly'
                appinfo='bind previous Viewpoint in list'/>
123                 <field name='nexttype='SFBoolaccessType='inputOnly'
                appinfo='bind next Viewpoint in list'/>
124                 <field name='toggleMessagetype='MFStringaccessType='inputOutput'
                appinfo='Select message to toggle ViewpointSequencer'/>
125                 <field name='toggleMessageFontSizetype='SFFloataccessType='initializeOnly'
                appinfo='Color for toggleMessage text.'/>
126                 <field name='toggleMessageColortype='SFColoraccessType='inputOutput'
                appinfo='Color for toggleMessage text.'/>
127                 <field name='traceEnabledtype='SFBoolaccessType='inputOutput'
                appinfo='enable console output'/>
128            </ExternProtoDeclare>
129            <!-- ================= -->
130 
          <!-- ROUTE information for CloseUpNavigation node:  [from Below1000m.isActive to set_bind ] -->
          <NavigationInfo DEF='CloseUpNavigationavatarSize='2 2 2speed='100visibilityLimit='80000'/>
131            <Switch whichChoice='-1'>
132                 <!-- NavigationInfo changes are not yet able to overcome aliasing bugs in graphics-rendering cards, unfortunately. Still working the problem. -->
133                 <Group>
134                      <NavigationInfo DEF='HighAltitudeLongDistanceNavigationavatarSize='8 8 8speed='1000visibilityLimit='80000'/>
135 
                    <!-- ROUTE information for Below1000m node:  [from isActive to CloseUpNavigation.set_bind ] -->
                    <ProximitySensor DEF='Below1000msize='100000 2000 100000'/>
136                      < ROUTE  fromNode='Below1000m' fromField='isActive' toNode='CloseUpNavigation' toField='set_bind'/>
137                 </Group>
138            </Switch>
139            <Background groundAngle='1.309 1.570796groundColor='0 0.2 0.4 0.05 0.25 0.6 0.1 0.2 0.4skyAngle='1.309 1.571skyColor='0.1 0.1 0.4 0.1 0.125 0.4 0.1 0.1 0.3'/>
140 
          <!-- Viewpoint ViewFullScenarioAbove is a DEF node that has 1 USE node: USE_1 -->
          <Viewpoint DEF='ViewFullScenarioAbovedescription='Amphibious raid - full scenario seen from aboveorientation='-0.557 -0.799 -0.229 0.9506position='-600 10000 25000'/>
141 
          <!-- Viewpoint View1000m is a DEF node that has 1 USE node: USE_1 -->
          <Viewpoint DEF='View1000mdescription='1000m elevation vieworientation='0 1 0 -0.78position='-200 1000 22000'/>
142            <Transform rotation='0 0 1 .1'>
143 
               <!-- Viewpoint ViewWaypoint1 is a DEF node that has 1 USE node: USE_1 -->
               <Viewpoint DEF='ViewWaypoint1description='Waypoint 1orientation='0 1 0 1.57position='9451 20 14935'/>
144 
               <!-- Viewpoint ViewWaypoint2 is a DEF node that has 1 USE node: USE_1 -->
               <Viewpoint DEF='ViewWaypoint2description='waypoint 2orientation='0 1 0 1.57position='11217.2 10.0 13996.6'/>
145            </Transform>
146            <!-- This is a hack to orient camera to scene. Actually, scene elements need to be rotated. -->
147            <Transform rotation='0 1 0 1.57'>
148                 <ProtoInstance name='CameraCompass36'>
149                      <fieldValue name='enabledvalue='true'/>
150                      <fieldValue name='positionOffsetFromCameravalue='0 5 0'/>
151                      <fieldValue name='markerColorvalue='0.9 0.9 0.9'/>
152                      <fieldValue name='labelColorvalue='0.9 0.9 0.9'/>
153                 </ProtoInstance>
154            </Transform>
155            <!-- Hidden viewpoints are clickable transparent boxes that let us temporarily view the scene from a given vantage point. The camera returns to the previously bound viewpoint upon unclicking the mouse. -->
156            <Group DEF='HiddenViewpointGroup'>
157                 <ProtoInstance name='HiddenViewpointDEF='CobraCapStartingPoint'>
158                      <fieldValue name='positionvalue='6530 18 16800'/>
159                      <fieldValue name='rotationvalue='0 1 0 -0.1'/>
160                      <fieldValue name='sensorRadiusvalue='10'/>
161                      <fieldValue name='labelvalue='"Cobra CAP" "starting point" "" "6530 11.5 16800"'/>
162                      <fieldValue name='labelOffsetvalue='0 -2 0'/>
163                      <fieldValue name='labelFontSizevalue='0.5'/>
164                      <fieldValue name='labelColorvalue='1 0.5 0'/>
165                 </ProtoInstance>
166                 <ProtoInstance name='HiddenViewpointDEF='CobraCapInitialClimb'>
167                      <fieldValue name='positionvalue='6530 500 16800'/>
168                      <fieldValue name='rotationvalue='0 1 0 -0.4'/>
169                      <fieldValue name='sensorRadiusvalue='100'/>
170                      <fieldValue name='labelvalue='"Cobra CAP" "initial climb point" "" "6530 500 16800"'/>
171                      <fieldValue name='labelOffsetvalue='0 1 0'/>
172                      <fieldValue name='labelFontSizevalue='0.5'/>
173                      <fieldValue name='labelColorvalue='1 0.5 0'/>
174                 </ProtoInstance>
175                 <ProtoInstance name='HiddenViewpointDEF='SouthernCapTurnPoint'>
176                      <fieldValue name='positionvalue='25400 500 19100'/>
177                      <fieldValue name='rotationvalue='0 1 0 0.4'/>
178                      <fieldValue name='sensorRadiusvalue='200'/>
179                      <fieldValue name='labelvalue='"Cobra CAP" "Southern Turn Point" "" "25400 500 191000"'/>
180                      <fieldValue name='labelOffsetvalue='0 1 0'/>
181                      <fieldValue name='labelFontSizevalue='0.5'/>
182                      <fieldValue name='labelColorvalue='1 0.5 0'/>
183                 </ProtoInstance>
184                 <ProtoInstance name='HiddenViewpointDEF='NorthernCapTurnPoint'>
185                      <fieldValue name='positionvalue='5100 500 700'/>
186                      <fieldValue name='rotationvalue='0 1 0 -2.3'/>
187                      <fieldValue name='sensorRadiusvalue='200'/>
188                      <fieldValue name='labelvalue='"Cobra CAP" "Northern Turn Point" "" "5100 500 700"'/>
189                      <fieldValue name='labelOffsetvalue='0 1 0'/>
190                      <fieldValue name='labelFontSizevalue='0.5'/>
191                      <fieldValue name='labelColorvalue='1 0.5 0'/>
192                 </ProtoInstance>
193            </Group>
194            <!-- This top-level switch simply supports debugging -->
195            <Switch whichChoice='0'>
196                 <!-- Main group with all players. -->
197                 <Group DEF='EntireScene'>
198                      <!-- ==================== Land terrain ==================== -->
199                      <Transform>
200                           <Inline   url=' "../../Locations/CampPendletonCalifornia/CampPendletonOperatingAreasExample.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Locations/CampPendletonCalifornia/CampPendletonOperatingAreasExample.x3d" "../../Locations/CampPendletonCalifornia/CampPendletonOperatingAreasExample.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Locations/CampPendletonCalifornia/CampPendletonOperatingAreasExample.wrl" '/>
201                      </Transform>
202                      <!-- ==================== Ships ==================== -->
203                      <!-- LPD is anchored and not moving. -->
204                      <Transform DEF='LPDtranslation='6600 7 16800'>
205                           <Inline   url=' "../../ShipsMilitary/LandingShipTankEnduranceSingapore/EnduranceLST.x3d" "https://www.web3d.org/x3d/content/examples/Savage/ShipsMilitary/LandingShipTankEnduranceSingapore/EnduranceLST.x3d" "../../ShipsMilitary/LandingShipTankEnduranceSingapore/EnduranceLST.wrl" "https://www.web3d.org/x3d/content/examples/Savage/ShipsMilitary/LandingShipTankEnduranceSingapore/EnduranceLST.wrl" '/>
206                      </Transform>
207                      <!-- ==================== Amphibious vehicles ==================== -->
208                      <!-- AAAV-1 Block -->
209 
                    <!-- ROUTE information for AAAV1_Clock node:  [from AAAV_1_WaypointInterpolator.totalDuration to set_cycleInterval ] [from fraction_changed to AAAV_1_WaypointInterpolator.set_fraction ] [from fraction_changed to AAV-2PATH.set_fraction ] -->
                    <TimeSensor DEF='AAAV1_ClockcycleInterval='307.3loop='true'/>
210 
211                           <!-- need to improve elevations on beach (final waypoint) -->
212                           <fieldValue name='descriptionvalue='AAAV_1_WaypointInterpolator'/>
213                           <fieldValue name='waypointsvalue='6802 1 16343 7685.0 1.0 15873.7 8568.1 1.0 15404.4 9451.1 1.0 14935.2 10334.2 1.0 14465.9 11217.2 1.0 13996.6 12100.3 1.0 13527.3 12983.3 1.0 13058.0 13866.4 1.0 12588.7 14749.4 1.0 12119.5 15632.5 1.0 11650.2 16515.5 1.0 11180.9 17398.6 1.0 10711.6 18281.6 1.0 10242.3 19164.7 1.0 9773.1 19400.0 1.0 9648.0 19782 1 9185 20100 10 8800'/>
214                           <!-- 1 knot = 0.5144 meters/second -->
215                           <fieldValue name='defaultSpeedvalue='50'/>
216                           <fieldValue name='lineColorvalue='0.8 0.8 0'/>
217                           <fieldValue name='labelColorvalue='0.8 0.8 0'/>
218                           <fieldValue name='labelOffsetvalue='0 3 0'/>
219                           <fieldValue name='labelFontSizevalue='1.5'/>
220                           <fieldValue name='traceEnabledvalue='false'/>
221                      </ProtoInstance>
222                      < ROUTE  fromNode='AAAV1_Clock' fromField='fraction_changed' toNode='AAAV_1_WaypointInterpolator' toField='set_fraction'/>
223                      < ROUTE  fromNode='AAAV_1_WaypointInterpolator' fromField='totalDuration' toNode='AAAV1_Clock' toField='set_cycleInterval'/>
224                      <!-- Most entity transforms will get converted to DIS-Java-VRML EspduTransforms when creating a networked DIS version. -->
225 
                    <!-- ROUTE information for AAAV-Location node:  [from AAAV_1_WaypointInterpolator.position_changed to set_translation ] [from AAAV_1_WaypointInterpolator.orientation_changed to set_rotation ] -->
                    <Transform DEF='AAAV-Locationtranslation='6600 0 16800'>
226                           <Group>
227 
                              <!-- Viewpoint ViewAAAVfromBehind is a DEF node that has 1 USE node: USE_1 -->
                              <Viewpoint DEF='ViewAAAVfromBehinddescription='AAAV raid from behindorientation='0 1 0 -1.57position='-40 2 0'/>
228 
                              <!-- Viewpoint ViewAAAVfromAhead is a DEF node that has 1 USE node: USE_1 -->
                              <Viewpoint DEF='ViewAAAVfromAheaddescription='AAAV raid from aheadorientation='0 1 0 1.57position='50 12 0'/>
229                                <Transform DEF='VerticalCorrectiontranslation='0 -4 0'>
230 
                                   <!-- Inline AAAV is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                                   <Inline DEF='AAAV'   url=' "../../AmphibiousVehicles/AAAV/AAAV.x3d" "https://www.web3d.org/x3d/content/examples/Savage/AmphibiousVehicles/AAAV/AAAV.x3d" "../../AmphibiousVehicles/AAAV/AAAV.wrl" "https://www.web3d.org/x3d/content/examples/Savage/AmphibiousVehicles/AAAV/AAAV.wrl" '/>
231                                </Transform>
232                                <Group DEF='OtherAAAVs'>
233                                     <Transform translation='-15 -4 15'>
234 
                                        <!-- ROUTE information for AAAV-2 node:  [from AAV-2PATH.value_changed to set_translation ] -->
                                        <Transform DEF='AAAV-2'>
235                                               <Inline USE='AAAV'/>
236 
                                             <!-- ROUTE information for AAV-2PATH node:  [from AAAV1_Clock.fraction_changed to set_fraction ] [from value_changed to AAAV-2.set_translation ] -->
                                             <PositionInterpolator DEF='AAV-2PATHkey='0.00 0.11 0.17 0.22 0.33 0.44 0.50 0.55 0.66 0.77 0.83 0.88 0.99keyValue='0.0 0.0 0.0 1.0 0.96 1.0 1.5 0.21 1.5 2.0 0.96 2.0 3.0 0.0 3.0 2.5 0.96 3.0 1.75 0.41 3.0 1.0 0.96 3.0 3.0 0.0 3.0 2.0 0.46 2.0 1.0 0.4 1.5 0.0 0.46 1.0 0.0 0.0 0.0'/>
237                                               < ROUTE  fromNode='AAV-2PATH' fromField='value_changed' toNode='AAAV-2' toField='set_translation'/>
238                                          </Transform>
239                                     </Transform>
240                                     <Transform translation='-15 -4 -17.5'>
241 
                                        <!-- ROUTE information for AAAV-3 node:  [from AAV-3PATH.value_changed to set_translation ] -->
                                        <Transform DEF='AAAV-3'>
242                                               <Inline USE='AAAV'/>
243 
                                             <!-- ROUTE information for AAV-3PATH node:  [from value_changed to AAAV-3.set_translation ] -->
                                             <PositionInterpolator DEF='AAV-3PATHkey='0.00 0.07 0.13 0.22 0.36 0.47 0.55 0.625 0.66 0.72 0.80 0.85 0.99keyValue='0.0 0.0 0.0 1.0 0.96 1.0 1.5 0.21 2.25 2.0 0.46 2.66 3.0 -0.25 3.0 2.5 0.96 3.0 1.75 0.41 3.0 1.0 0.96 3.0 3.0 0.0 3.0 2.0 0.46 2.0 1.0 0.4 1.5 0.0 0.46 1.0 0.0 0.0 0.0'/>
244                                               < ROUTE  fromNode='AAV-3PATH' fromField='value_changed' toNode='AAAV-3' toField='set_translation'/>
245                                          </Transform>
246                                     </Transform>
247                                </Group>
248                           </Group>
249                      </Transform>
250                      < ROUTE  fromNode='AAAV_1_WaypointInterpolator' fromField='position_changed' toNode='AAAV-Location' toField='set_translation'/>
251                      < ROUTE  fromNode='AAAV_1_WaypointInterpolator' fromField='orientation_changed' toNode='AAAV-Location' toField='set_rotation'/>
252                      <!-- ==================== Helicopter 1 Block ==================== -->
253 
                    <!-- ROUTE information for Helo-1 node:  [from Helo_1_WaypointInterpolator.position_changed to set_translation ] [from Helo_1_WaypointInterpolator.orientation_changed to set_rotation ] -->
                    <Transform DEF='Helo-1translation='6530 11.5 16800'>
254 
                         <!-- ROUTE information for HeloInstance1 node:  [from Helo1_Clock.isActive to inFlight ] -->
                         <ProtoInstance name='SuperCobraDEF='HeloInstance1'>
255                                <fieldValue name='helicopterNamevalue='Cobra CAP 1'/>
256                                <fieldValue name='tailBoomColor'>
257 
                                   <!-- Appearance GREY_APPEARANCE is a DEF node that has 1 USE node: USE_1 -->
                                   <Appearance DEF='GREY_APPEARANCE'>
258                                          <Material diffuseColor='0.5 0.5 0.5'/>
259                                     </Appearance>
260                                </fieldValue>
261                                <fieldValue name='tailRotorDriveShaftColor'>
262                                     <Appearance USE='GREY_APPEARANCE'/>
263                                </fieldValue>
264                                <fieldValue name='horizontalStabilizerColor'>
265                                     <Appearance>
266                                          <Material diffuseColor='0.5 0.5 0.5'/>
267                                     </Appearance>
268                                </fieldValue>
269                                <fieldValue name='fuselageColor'>
270                                     <Appearance>
271                                          <Material diffuseColor='0.6 0.6 0.6'/>
272                                     </Appearance>
273                                </fieldValue>
274                                <fieldValue name='cockpitColor'>
275                                     <Appearance>
276                                          <Material diffuseColor='0.6 0.6 0.6'/>
277                                     </Appearance>
278                                </fieldValue>
279                                <fieldValue name='cowlingColor'>
280                                     <Appearance>
281                                          <Material diffuseColor='0.5 0.5 0.5'/>
282                                     </Appearance>
283                                </fieldValue>
284                           </ProtoInstance>
285                      </Transform>
286 
                    <!-- ROUTE information for Helo_1_WaypointInterpolator node:  [from Helo1_Clock.fraction_changed to set_fraction ] [from totalDuration to Helo1_Clock.cycleInterval ] [from position_changed to Helo-1.set_translation ] [from orientation_changed to Helo-1.set_rotation ] -->
                    <ProtoInstance name='WaypointInterpolatorDEF='Helo_1_WaypointInterpolator'>
287                           <fieldValue name='descriptionvalue='Helo_1_WaypointInterpolator'/>
288                           <fieldValue name='waypointsvalue='6600 600 16800 7592.6 600 16921.4 8585.2 600 17042.9 9577.8 600 17164.3 10570.4 600 17285.7 11563.0 600 17407.2 12555.6 600 17528.6 13548.2 600 17650.0 14540.8 600 17771.5 15533.4 600 17892.9 16526.0 600 18014.4 17518.6 600 18135.8 18511.2 600 18257.2 19503.8 600 18378.7 20496.4 600 18500.1 21489.0 600 18621.5 22481.6 600 18743.0 23474.2 600 18864.4 24466.8 600 18985.8 25400 600 19100 24906.2 600 18230.4 24412.4 600 17360.9 23918.5 600 16491.3 23424.7 600 15621.8 22930.9 600 14752.2 22437.1 600 13882.6 21943.2 600 13013.1 21449.4 600 12143.5 20955.6 600 11273.9 20800 600 11000 20072.7 600 10313.7 19345.4 600 9627.4 18618.1 600 8941.0 17890.8 600 8254.7 17163.5 600 7568.4 16436.2 600 6882.1 15708.9 600 6195.7 14981.6 600 5509.4 14254.3 600 4823.1 13700 600 4300 12777.6 600 3913.9 11855.1 600 3527.7 10932.7 600 3141.6 10010.2 600 2755.4 9087.8 600 2369.3 8165.4 600 1983.2 7242.9 600 1597.0 6320.5 600 1210.9 5398.0 600 824.8 5100 600 700 5192.8 600 1695.7 5285.5 600 2691.4 5378.3 600 3687.1 5471.1 600 4682.8 5563.8 600 5678.4 5656.6 600 6674.1 5749.4 600 7669.8 5842.1 600 8665.5 5934.9 600 9661.2 6027.7 600 10656.9 6120.4 600 11652.6 6213.2 600 12648.3 6306.0 600 13643.9 6398.7 600 14639.6 6491.5 600 15635.3 6584.3 600 16631.0 6600 600 16800'/>
289                           <!-- 1 knot = 0.514444444 meters/second -->
290                           <fieldValue name='defaultSpeedvalue='100'/>
291                           <fieldValue name='pitchUpDownForVerticalWaypointsvalue='false'/>
292                           <fieldValue name='lineColorvalue='0 0.8 0'/>
293                           <fieldValue name='labelColorvalue='0 0.8 0'/>
294                           <fieldValue name='labelOffsetvalue='0 5 0'/>
295                           <fieldValue name='labelFontSizevalue='3'/>
296                           <fieldValue name='traceEnabledvalue='false'/>
297                      </ProtoInstance>
298 
                    <!-- ROUTE information for Helo1_Clock node:  [from Helo_1_WaypointInterpolator.totalDuration to cycleInterval ] [from fraction_changed to Helo_1_WaypointInterpolator.set_fraction ] [from isActive to HeloInstance1.inFlight ] -->
                    <TimeSensor DEF='Helo1_ClockcycleInterval='635.1loop='true'/>
299                      < ROUTE  fromNode='Helo_1_WaypointInterpolator' fromField='totalDuration' toNode='Helo1_Clock' toField='cycleInterval'/>
300                      < ROUTE  fromNode='Helo1_Clock' fromField='fraction_changed' toNode='Helo_1_WaypointInterpolator' toField='set_fraction'/>
301                      <!-- ==================== Helicopter 2 Block ==================== -->
302 
                    <!-- ROUTE information for Helo-2 node:  [from Helo_2_WaypointInterpolator.position_changed to set_translation ] [from Helo_2_WaypointInterpolator.orientation_changed to set_rotation ] -->
                    <Transform DEF='Helo-2translation='6600 50 16800'>
303                           <Transform>
304 
                              <!-- ROUTE information for HeloInstance2 node:  [from Helo2_Clock.isActive to inFlight ] -->
                              <ProtoInstance name='SuperCobraDEF='HeloInstance2'>
305                                     <fieldValue name='helicopterNamevalue='Cobra CAP 2'/>
306                                     <fieldValue name='tailBoomColor'>
307                                          <Appearance>
308                                               <Material diffuseColor='0.5 0.5 0.5'/>
309                                          </Appearance>
310                                     </fieldValue>
311                                     <fieldValue name='tailRotorDriveShaftColor'>
312                                          <Appearance>
313                                               <Material diffuseColor='0.5 0.5 0.5'/>
314                                          </Appearance>
315                                     </fieldValue>
316                                     <fieldValue name='horizontalStabilizerColor'>
317                                          <Appearance>
318                                               <Material diffuseColor='0.5 0.5 0.5'/>
319                                          </Appearance>
320                                     </fieldValue>
321                                     <fieldValue name='fuselageColor'>
322                                          <Appearance>
323                                               <Material diffuseColor='0.6 0.6 0.6'/>
324                                          </Appearance>
325                                     </fieldValue>
326                                     <fieldValue name='cockpitColor'>
327                                          <Appearance>
328                                               <Material diffuseColor='0.6 0.6 0.6'/>
329                                          </Appearance>
330                                     </fieldValue>
331                                     <fieldValue name='cowlingColor'>
332                                          <Appearance>
333                                               <Material diffuseColor='0.5 0.5 0.5'/>
334                                          </Appearance>
335                                     </fieldValue>
336                                </ProtoInstance>
337                           </Transform>
338                      </Transform>
339 
                    <!-- ROUTE information for Helo_2_WaypointInterpolator node:  [from Helo2_Clock.fraction_changed to set_fraction ] [from totalDuration to Helo2_Clock.cycleInterval ] [from position_changed to Helo-2.set_translation ] [from orientation_changed to Helo-2.set_rotation ] -->
                    <ProtoInstance name='WaypointInterpolatorDEF='Helo_2_WaypointInterpolator'>
340                           <fieldValue name='descriptionvalue='Helo_2_WaypointInterpolator'/>
341                           <fieldValue name='waypointsvalue='6530 11.5 16800 6530 500 16800 6600 500 16800 7592.6 500 16921.4 8585.2 500 17042.9 9577.8 500 17164.3 10570.4 500 17285.7 11563.0 500 17407.2 12555.6 500 17528.6 13548.2 500 17650.0 14540.8 500 17771.5 15533.4 500 17892.9 16526.0 500 18014.4 17518.6 500 18135.8 18511.2 500 18257.2 19503.8 500 18378.7 20496.4 500 18500.1 21489.0 500 18621.5 22481.6 500 18743.0 23474.2 500 18864.4 24466.8 500 18985.8 25400 500 19100 24906.2 500 18230.4 24412.4 500 17360.9 23918.5 500 16491.3 23424.7 500 15621.8 22930.9 500 14752.2 22437.1 500 13882.6 21943.2 500 13013.1 21449.4 500 12143.5 20955.6 500 11273.9 20800 500 11000 20072.7 500 10313.7 19345.4 500 9627.4 18618.1 500 8941.0 17890.8 500 8254.7 17163.5 500 7568.4 16436.2 500 6882.1 15708.9 500 6195.7 14981.6 500 5509.4 14254.3 500 4823.1 13700 500 4300 12777.6 500 3913.9 11855.1 500 3527.7 10932.7 500 3141.6 10010.2 500 2755.4 9087.8 500 2369.3 8165.4 500 1983.2 7242.9 500 1597.0 6320.5 500 1210.9 5398.0 500 824.8 5100 500 700 5192.8 500 1695.7 5285.5 500 2691.4 5378.3 500 3687.1 5471.1 500 4682.8 5563.8 500 5678.4 5656.6 500 6674.1 5749.4 500 7669.8 5842.1 500 8665.5 5934.9 500 9661.2 6027.7 500 10656.9 6120.4 500 11652.6 6213.2 500 12648.3 6306.0 500 13643.9 6398.7 500 14639.6 6491.5 500 15635.3 6584.3 500 16631.0 6600 500 16800'/>
342                           <!-- 1 knot = 0.514444444 meters/second -->
343                           <fieldValue name='defaultSpeedvalue='200'/>
344                           <fieldValue name='lineColorvalue='0.8 0 0'/>
345                           <fieldValue name='labelColorvalue='0.8 0 0'/>
346                           <fieldValue name='labelOffsetvalue='0 5 0'/>
347                           <fieldValue name='labelFontSizevalue='3'/>
348                           <fieldValue name='traceEnabledvalue='false'/>
349                      </ProtoInstance>
350 
                    <!-- ROUTE information for Helo2_Clock node:  [from Helo_2_WaypointInterpolator.totalDuration to cycleInterval ] [from fraction_changed to Helo_2_WaypointInterpolator.set_fraction ] [from isActive to HeloInstance2.inFlight ] -->
                    <TimeSensor DEF='Helo2_ClockcycleInterval='320.3loop='true'/>
351                      < ROUTE  fromNode='Helo_2_WaypointInterpolator' fromField='totalDuration' toNode='Helo2_Clock' toField='cycleInterval'/>
352                      < ROUTE  fromNode='Helo2_Clock' fromField='fraction_changed' toNode='Helo_2_WaypointInterpolator' toField='set_fraction'/>
353                      <!-- ============== AAV7PA1 -->
354 
                    <!-- ROUTE information for AAV7PA1Location node:  [from AAV7PA1WaypointInterpolator.position_changed to set_translation ] [from AAV7PA1WaypointInterpolator.orientation_changed to set_rotation ] -->
                    <Transform DEF='AAV7PA1Locationscale='1.25 1.25 1.25translation='6620 -2 16900'>
355                           <Inline   url=' "../../AmphibiousVehicles/AAV/AAV.x3d" "https://www.web3d.org/x3d/content/examples/Savage/AmphibiousVehicles/AAV/AAV.x3d" "../../AmphibiousVehicles/AAV/AAV.wrl" "https://www.web3d.org/x3d/content/examples/Savage/AmphibiousVehicles/AAV/AAV.wrl" '/>
356                      </Transform>
357 
                    <!-- ROUTE information for AAV7PA1Clock node:  [from AAV7PA1WaypointInterpolator.totalDuration to cycleInterval ] [from fraction_changed to AAV7PA1WaypointInterpolator.set_fraction ] -->
                    <TimeSensor DEF='AAV7PA1ClockcycleInterval='1560loop='true'/>
358 
359                           <fieldValue name='descriptionvalue='AAV7PA1WaypointInterpolator'/>
360                           <fieldValue name='waypointsvalue='6620 -1 16900 6720 -1 16900 6870 -1 19500 7400 -1 19500 8400 -1 16900 6620 -1 16900'/>
361                           <!-- 1 knot = 0.514444444 meters/second -->
362                           <fieldValue name='defaultSpeedvalue='5'/>
363                           <fieldValue name='lineColorvalue='0.8 0 0.65'/>
364                           <fieldValue name='labelColorvalue='0.8 0 0'/>
365                           <fieldValue name='labelOffsetvalue='0 5 0'/>
366                           <fieldValue name='labelFontSizevalue='3'/>
367                           <fieldValue name='traceEnabledvalue='false'/>
368                      </ProtoInstance>
369                      < ROUTE  fromNode='AAV7PA1WaypointInterpolator' fromField='totalDuration' toNode='AAV7PA1Clock' toField='cycleInterval'/>
370                      <!-- AAV7PA1 Waypoint Routes -->
371                      < ROUTE  fromNode='AAV7PA1Clock' fromField='fraction_changed' toNode='AAV7PA1WaypointInterpolator' toField='set_fraction'/>
372                      < ROUTE  fromNode='AAV7PA1WaypointInterpolator' fromField='position_changed' toNode='AAV7PA1Location' toField='set_translation'/>
373                      < ROUTE  fromNode='AAV7PA1WaypointInterpolator' fromField='orientation_changed' toNode='AAV7PA1Location' toField='set_rotation'/>
374                 </Group>
375                 <!-- hide things here until ready to bring them into the active scene -->
376                 <Switch whichChoice='0'>
377                      <!-- Ocean bathymetry -->
378                      <Transform rotation='0 1 0 1.57079translation='11900 0 6000'>
379                           <Inline   url=' "../../Locations/CampPendletonCalifornia/ChartletTranscribed.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Locations/CampPendletonCalifornia/ChartletTranscribed.x3d" "../../Locations/CampPendletonCalifornia/ChartletTranscribed.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Locations/CampPendletonCalifornia/ChartletTranscribed.wrl" '/>
380                      </Transform>
381                      <!-- GeoVrml versions will be here someday -->
382                      <Group>
383                           <!-- Southwest corner reference point: 33:12N 117:38W -->
384                           <!-- GeoLocation and USE EntireScene to follow -->
385                      </Group>
386                 </Switch>
387            </Switch>
388            <!-- AAAV-1 Waypoint Routes -->
389            <!-- Helo-1 Waypoint Routes -->
390            < ROUTE  fromNode='Helo1_Clock' fromField='isActive' toNode='HeloInstance1' toField='inFlight'/>
391            < ROUTE  fromNode='Helo_1_WaypointInterpolator' fromField='position_changed' toNode='Helo-1' toField='set_translation'/>
392            < ROUTE  fromNode='Helo_1_WaypointInterpolator' fromField='orientation_changed' toNode='Helo-1' toField='set_rotation'/>
393            <!-- Helo-2 Waypoint Routes -->
394            < ROUTE  fromNode='Helo2_Clock' fromField='isActive' toNode='HeloInstance2' toField='inFlight'/>
395            < ROUTE  fromNode='Helo_2_WaypointInterpolator' fromField='position_changed' toNode='Helo-2' toField='set_translation'/>
396            < ROUTE  fromNode='Helo_2_WaypointInterpolator' fromField='orientation_changed' toNode='Helo-2' toField='set_rotation'/>
397            <!-- AAV2 -->
398            < ROUTE  fromNode='AAAV1_Clock' fromField='fraction_changed' toNode='AAV-2PATH' toField='set_fraction'/>
399            <ProtoInstance name='ViewpointSequencer'>
400                 <fieldValue name='viewpoints'>
401                      <Viewpoint USE='ViewFullScenarioAbove'/>
402                      <Viewpoint USE='View1000m'/>
403                      <Viewpoint USE='ViewWaypoint1'/>
404                      <Viewpoint USE='ViewWaypoint2'/>
405                      <Viewpoint USE='ViewAAAVfromBehind'/>
406                      <Viewpoint USE='ViewAAAVfromAhead'/>
407                 </fieldValue>
408                 <fieldValue name='enabledvalue='false'/>
409                 <fieldValue name='intervalvalue='8'/>
410            </ProtoInstance>
411            <!-- ViewPositionOrientation is a prototype that lets us find good viewpoints for inclusion in the scene -->
412            <ProtoInstance name='ViewPositionOrientationDEF='ConsoleOutputViewPositionOrientation'>
413                 <fieldValue name='enabledvalue='false'/>
414            </ProtoInstance>
415       </Scene>
416  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: AAAV, AAAV_1_WaypointInterpolator, AAAV1_Clock, AAAV-2, AAAV-3, AAAV-Location, AAV-2PATH, AAV-3PATH, AAV7PA1Clock, AAV7PA1Location, AAV7PA1WaypointInterpolator, Below1000m, CloseUpNavigation, CobraCapInitialClimb, CobraCapStartingPoint, ConsoleOutputViewPositionOrientation, EntireScene, GREY_APPEARANCE, Helo_1_WaypointInterpolator, Helo_2_WaypointInterpolator, Helo-1, Helo1_Clock, Helo-2, Helo2_Clock, HeloInstance1, HeloInstance2, HiddenViewpointGroup, HighAltitudeLongDistanceNavigation, LPD, NorthernCapTurnPoint, OtherAAAVs, SouthernCapTurnPoint, VerticalCorrection, View1000m, ViewAAAVfromAhead, ViewAAAVfromBehind, ViewFullScenarioAbove, ViewWaypoint1, ViewWaypoint2

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4, Viewpoint_5, Viewpoint_6, View1000m, ViewAAAVfromAhead, ViewAAAVfromBehind, ViewFullScenarioAbove, ViewWaypoint1, ViewWaypoint2

Index for ExternProtoDeclare definitions: CameraCompass36, DvdController, HiddenViewpoint, SuperCobra, ViewpointSequencer, ViewPositionOrientation, WaypointInterpolator
-->
X3D Tooltips element index: Appearance, Background, ExternProtoDeclare, field, fieldValue, Group, head, Inline, Material, meta, NavigationInfo, PositionInterpolator, ProtoInstance, ProximitySensor, ROUTE, Scene, 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 22 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.

Below1000m
ProximitySensor
isActive
SFBool

ROUTE
event to
(1)
CloseUpNavigation
NavigationInfo
set_bind
SFBool

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

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

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

ROUTE
event to
(1)
AAAV1_Clock
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
AAAV1_Clock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(3)
AAAV-Location
Transform
set_rotation
SFRotation
  then
 
 
 
AAAV_1_WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(3)
AAAV-Location
Transform
set_translation
SFVec3f
  then
 
 
 
AAAV_1_WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(3)
AAAV1_Clock
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
AAAV1_Clock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(5)
AAAV-Location
Transform
set_rotation
SFRotation
  then
 
 
 
AAAV_1_WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(5)
AAAV-Location
Transform
set_translation
SFVec3f
  then
 
 
 
AAAV_1_WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
AAAV1_Clock
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
AAAV1_Clock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(7)
AAAV-Location
Transform
set_rotation
SFRotation
  then
 
 
 
AAAV_1_WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(7)
AAAV-Location
Transform
set_translation
SFVec3f
  then
 
 
 
AAAV_1_WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
AAAV1_Clock
TimeSensor
set_cycleInterval
SFTime
then
 
 
 
AAAV1_Clock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
AAAV_1_WaypointInterpolator
ProtoInstance
set_fraction
SFFloat
  then
 
 
 
AAAV1_Clock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
AAV-2PATH
PositionInterpolator
set_fraction
SFFloat
  then
 
 
 
AAAV1_Clock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
AAV-2PATH
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
AAV-2PATH
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(7)
AAAV-2
Transform
set_translation
SFVec3f
  then
 
 
 
AAAV1_Clock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
AAV-2PATH
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
AAV-2PATH
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(5)
AAAV-2
Transform
set_translation
SFVec3f
  then
 
 
 
AAAV1_Clock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
AAV-2PATH
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
AAV-2PATH
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
AAAV-2
Transform
set_translation
SFVec3f
AAAV_1_WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(1)
AAAV-Location
Transform
set_translation
SFVec3f
AAAV_1_WaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(1)
AAAV-Location
Transform
set_rotation
SFRotation

     
The following ROUTE chain begins an event-routing loop! Loop occurs at nodeDepth=3.
 
ROUTE AAV7PA1WaypointInterpolator.totalDuration TO AAV7PA1Clock.cycleInterval
AAV7PA1WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(1)
AAV7PA1Clock
TimeSensor
cycleInterval
SFTime
then
 
 
 
AAV7PA1Clock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(3)
AAV7PA1Location
Transform
set_rotation
SFRotation
  then
 
 
 
AAV7PA1WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(3)
AAV7PA1Location
Transform
set_translation
SFVec3f
  then
 
 
 
AAV7PA1WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(3)
AAV7PA1Clock
TimeSensor
cycleInterval
SFTime
then
 
 
 
AAV7PA1Clock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(5)
AAV7PA1Location
Transform
set_rotation
SFRotation
  then
 
 
 
AAV7PA1WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(5)
AAV7PA1Location
Transform
set_translation
SFVec3f
  then
 
 
 
AAV7PA1WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
AAV7PA1Clock
TimeSensor
cycleInterval
SFTime
then
 
 
 
AAV7PA1Clock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(7)
AAV7PA1Location
Transform
set_rotation
SFRotation
  then
 
 
 
AAV7PA1WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(7)
AAV7PA1Location
Transform
set_translation
SFVec3f
  then
 
 
 
AAV7PA1WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
AAV7PA1Clock
TimeSensor
cycleInterval
SFTime
then
 
 
 
AAV7PA1Clock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
AAV7PA1WaypointInterpolator
ProtoInstance
set_fraction
SFFloat
AAV7PA1WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(1)
AAV7PA1Location
Transform
set_translation
SFVec3f
AAV7PA1WaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(1)
AAV7PA1Location
Transform
set_rotation
SFRotation

CobraCapInitialClimb
ProtoInstance
HiddenViewpoint
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. 

CobraCapStartingPoint
ProtoInstance
HiddenViewpoint
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=3.
 
ROUTE Helo_1_WaypointInterpolator.totalDuration TO Helo1_Clock.cycleInterval
Helo_1_WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(1)
Helo1_Clock
TimeSensor
cycleInterval
SFTime
then
 
 
 
Helo1_Clock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(3)
Helo-1
Transform
set_rotation
SFRotation
  then
 
 
 
Helo_1_WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(3)
Helo-1
Transform
set_translation
SFVec3f
  then
 
 
 
Helo_1_WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(3)
Helo1_Clock
TimeSensor
cycleInterval
SFTime
then
 
 
 
Helo1_Clock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(5)
Helo-1
Transform
set_rotation
SFRotation
  then
 
 
 
Helo_1_WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(5)
Helo-1
Transform
set_translation
SFVec3f
  then
 
 
 
Helo_1_WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
Helo1_Clock
TimeSensor
cycleInterval
SFTime
then
 
 
 
Helo1_Clock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(7)
Helo-1
Transform
set_rotation
SFRotation
  then
 
 
 
Helo_1_WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(7)
Helo-1
Transform
set_translation
SFVec3f
  then
 
 
 
Helo_1_WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
Helo1_Clock
TimeSensor
cycleInterval
SFTime
then
 
 
 
Helo1_Clock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
Helo_1_WaypointInterpolator
ProtoInstance
set_fraction
SFFloat
  then
 
 
 
Helo1_Clock
TimeSensor
isActive
SFBool

ROUTE
event to
(8)
HeloInstance1
ProtoInstance
inFlight
SFBool
  then
 
 
 
Helo1_Clock
TimeSensor
isActive
SFBool

ROUTE
event to
(6)
HeloInstance1
ProtoInstance
inFlight
SFBool
  then
 
 
 
Helo1_Clock
TimeSensor
isActive
SFBool

ROUTE
event to
(4)
HeloInstance1
ProtoInstance
inFlight
SFBool
  then
 
 
 
Helo1_Clock
TimeSensor
isActive
SFBool

ROUTE
event to
(2)
HeloInstance1
ProtoInstance
inFlight
SFBool
Helo_1_WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(1)
Helo-1
Transform
set_translation
SFVec3f
Helo_1_WaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(1)
Helo-1
Transform
set_rotation
SFRotation

     
The following ROUTE chain begins an event-routing loop! Loop occurs at nodeDepth=3.
 
ROUTE Helo_2_WaypointInterpolator.totalDuration TO Helo2_Clock.cycleInterval
Helo_2_WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(1)
Helo2_Clock
TimeSensor
cycleInterval
SFTime
then
 
 
 
Helo2_Clock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(3)
Helo-2
Transform
set_rotation
SFRotation
  then
 
 
 
Helo_2_WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(3)
Helo-2
Transform
set_translation
SFVec3f
  then
 
 
 
Helo_2_WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(3)
Helo2_Clock
TimeSensor
cycleInterval
SFTime
then
 
 
 
Helo2_Clock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(5)
Helo-2
Transform
set_rotation
SFRotation
  then
 
 
 
Helo_2_WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(5)
Helo-2
Transform
set_translation
SFVec3f
  then
 
 
 
Helo_2_WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
Helo2_Clock
TimeSensor
cycleInterval
SFTime
then
 
 
 
Helo2_Clock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(7)
Helo-2
Transform
set_rotation
SFRotation
  then
 
 
 
Helo_2_WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(7)
Helo-2
Transform
set_translation
SFVec3f
  then
 
 
 
Helo_2_WaypointInterpolator
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
Helo2_Clock
TimeSensor
cycleInterval
SFTime
then
 
 
 
Helo2_Clock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
Helo_2_WaypointInterpolator
ProtoInstance
set_fraction
SFFloat
  then
 
 
 
Helo2_Clock
TimeSensor
isActive
SFBool

ROUTE
event to
(8)
HeloInstance2
ProtoInstance
inFlight
SFBool
  then
 
 
 
Helo2_Clock
TimeSensor
isActive
SFBool

ROUTE
event to
(6)
HeloInstance2
ProtoInstance
inFlight
SFBool
  then
 
 
 
Helo2_Clock
TimeSensor
isActive
SFBool

ROUTE
event to
(4)
HeloInstance2
ProtoInstance
inFlight
SFBool
  then
 
 
 
Helo2_Clock
TimeSensor
isActive
SFBool

ROUTE
event to
(2)
HeloInstance2
ProtoInstance
inFlight
SFBool
Helo_2_WaypointInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(1)
Helo-2
Transform
set_translation
SFVec3f
Helo_2_WaypointInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(1)
Helo-2
Transform
set_rotation
SFRotation

      HeloInstance1
ProtoInstance
SuperCobra
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. 

      HeloInstance2
ProtoInstance
SuperCobra
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. 

NorthernCapTurnPoint
ProtoInstance
HiddenViewpoint
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. 

SouthernCapTurnPoint
ProtoInstance
HiddenViewpoint
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. 

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/AmphibiousRaidCampPendleton/AmphibiousRaidIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Savage/Scenarios/AmphibiousRaidCampPendleton/AmphibiousRaid.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. -->