X3D Model Documentation: HeloHanger.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=' HeloHanger.x3d '/>
  6            <meta name='descriptioncontent='Initial DDG-51 Flight IIA'/>
  7            <meta name='creatorcontent='LT Joe Sears, USN'/>
  8            <meta name='createdcontent='8 August 2003'/>
  9            <meta name='modifiedcontent='20 October 2019'/>
 10            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Savage/ShipsMilitary/DDG51FlightIIaUnitedStates/HeloHanger.x3d '/>
 11            <meta name='referencecontent='http://combatindex.com/store/3d'/>
 12            <meta name='drawingcontent=' https://www.fas.org/man/dod-101/sys/ship/ddg-51.htm '/>
 13            <meta name='generatorcontent='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 14            <meta name='licensecontent='../../license.html'/>
 15       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: Aft, AftBulkhead, AftHSO, BlastDeflector, Deck, DeckAssembly, FlightDeckMarkings, FLTDECK, ForwardBulkhead, FWD, HangerDoor, HangerDoorPort1, HangerDoorPort2, HangerDoorPort3, HangerDoorPort4, HangerDoorPort5, HangerDoorPort6, HangerDoorSTBD1, HangerDoorSTBD2, HangerDoorSTBD3, HangerDoorSTBD4, HangerDoorSTBD5, HangerDoorSTBD6, HangerOverhead, HazeGray, HeloDoorFrame, HeloHanger, HeloHangerFacilities, HSOShack, In, JP5Barn, LSOShack, NONSKID, Out, Port, PortHangerDoorsDown, PortHangerDoorsUp, PortHangerDoorTouchSensor1, PortHangerDoorTouchSensorDn, PortHeloDoor, PortHeloDoor1, PortHeloDoor1OrientationInterpolatorDown, PortHeloDoor1OrientationInterpolatorOut, PortHeloDoor1PathInterpolatorDown, PortHeloDoor1PathInterpolatorOut, PortHeloDoor2OrientationInterpolatorDown, PortHeloDoor2OrientationInterpolatorOut, PortHeloDoor2PathInterpolatorDown, PortHeloDoor2PathInterpolatorOut, PortHeloDoor3OrientationInterpolatorDown, PortHeloDoor3OrientationInterpolatorOut, PortHeloDoor3PathInterpolatorDown, PortHeloDoor3PathInterpolatorOut, PortHeloDoor4OrientationInterpolatorDown, PortHeloDoor4OrientationInterpolatorOut, PortHeloDoor4PathInterpolatorDown, PortHeloDoor4PathInterpolatorOut, PortHeloDoor5OrientationInterpolatorDown, PortHeloDoor5OrientationInterpolatorOut, PortHeloDoor5PathInterpolatorDown, PortHeloDoor5PathInterpolatorOut, PortHeloDoor6OrientationInterpolatorDown, PortHeloDoor6OrientationInterpolatorOut, PortHeloDoor6PathInterpolatorDown, PortHeloDoor6PathInterpolatorOut, PortHeloDoorAnimationControl, PortHeloDoorClockDown, PortHeloDoorClockOut, PortHeloDoorDown, PortHeloDoorSwitch, PortHeloDoorTouchSensor, PortHeloDoorTouchSensorDown, PortHeloDoorUp, PortIn, PortOut, PortRast, PortRastAnimationControl, PortRastChoice, PortRASTClockIn, PortRASTClockOut, PortRastIn, PortRastOrientationInterpolatorIn, PortRastOrientationInterpolatorOut, PortRastOut, PortRASTPathInterpolatorIn, PortRASTPathInterpolatorOut, PortRastTouchSensor1, PortRastTouchSensorIn, PortRastTouchSensorOut, PortSideCenterLineBulkhead, PortSideExteriorBulkhead, PortSideRast, PortSideRastTrack, RastChoice, RastIn, RastOut, STACK, STACKCOLOR, StarboardHeloDoor, StarboardRast, StarboardSideCenterLineBulkhead, StarboardSideExteriorBulkhead, StarboardSideRast, StarboardSideRastTrack, STBDHangerDoorsDown, STBDHangerDoorsUp, STBDHangerDoorTouchSensor1, STBDHangerDoorTouchSensorDn, STBDHeloDoor, STBDHeloDoor1OrientationInterpolatorDown, STBDHeloDoor1OrientationInterpolatorOut, STBDHeloDoor1PathInterpolatorDown, STBDHeloDoor1PathInterpolatorOut, STBDHeloDoor2OrientationInterpolatorDown, STBDHeloDoor2OrientationInterpolatorOut, STBDHeloDoor2PathInterpolatorDown, STBDHeloDoor2PathInterpolatorOut, STBDHeloDoor3OrientationInterpolatorDown, STBDHeloDoor3OrientationInterpolatorOut, STBDHeloDoor3PathInterpolatorDown, STBDHeloDoor3PathInterpolatorOut, STBDHeloDoor4OrientationInterpolatorDown, STBDHeloDoor4OrientationInterpolatorOut, STBDHeloDoor4PathInterpolatorDown, STBDHeloDoor4PathInterpolatorOut, STBDHeloDoor5OrientationInterpolatorDown, STBDHeloDoor5OrientationInterpolatorOut, STBDHeloDoor5PathInterpolatorDown, STBDHeloDoor5PathInterpolatorOut, STBDHeloDoor6OrientationInterpolatorDown, STBDHeloDoor6OrientationInterpolatorOut, STBDHeloDoor6PathInterpolatorDown, STBDHeloDoor6PathInterpolatorOut, STBDHeloDoorAnimationControl, STBDHeloDoorClockDown, STBDHeloDoorClockOut, STBDHeloDoorDown, STBDHeloDoorSwitch, STBDHeloDoorTouchSensor, STBDHeloDoorTouchSensorDown, STBDHeloDoorUp, STBDRastAnimationControl, STBDRASTClockIn, STBDRASTClockOut, STBDRastOrientationInterpolatorIn, STBDRastOrientationInterpolatorOut, STBDRASTPathInterpolatorIn, STBDRASTPathInterpolatorOut, STBDRastTouchSensor1, STBDRastTouchSensorIn, STBDRastTouchSensorOut, THREEGTG, Transparent, WindowColor, WindowPane, WindowPaneHSO, WindowPanePort

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3
-->
 16       <Scene>
 17            <WorldInfo title='HeloHanger.x3d'/>
 18            <Viewpoint description='STBD sideorientation='-0.059 0.997 0.057 1.3894position='45.9 7.4 -14.1'/>
 19            <Viewpoint description='Flight Deck Aftorientation='-0.999 0.016 0.037 0.1347position='0 5.4 16.8'/>
 20            <Viewpoint description='Flight Deck Look Downorientation='0.009 0.707 0.707 3.1336position='-0.1 60.6 -24.1'/>
 21            <Group DEF='HeloHangerFacilities'>
 22                 <Transform DEF='HeloHanger'>
 23                      <Group DEF='DeckAssembly'>
 24                           <Transform DEF='Deck'>
 25                                <Shape>
 26                                     <Extrusion creaseAngle='.85crossSection='-9.352 0 9.352 0 9.352 -.01 -9.352 -.01 -9.352 0scale='.666 .0001 .68 1 1 1 1 1spine='0 0 0 0 0 -1 0 0 -23 0 0 -45'/>
 27                                     <Appearance>
 28 
                                        <!-- ImageTexture NONSKID is a DEF node that has 1 USE node: USE_1 -->
                                        <ImageTexture DEF='NONSKID'   url=' "nonskid.jpg " "https://www.web3d.org/x3d/content/examples/Savage/ShipsMilitary/DDGArleighBurkeUnitedStates/nonskid.jpg " '/>
 29                                     </Appearance>
 30                                </Shape>
 31                           </Transform>
 32                           <Transform DEF='PortSideRastTracktranslation='-6 .1 -5'>
 33                                <Shape>
 34                                     <Extrusion creaseAngle='3crossSection='-.25 0 .25 0 .25 .05 -.25 .05 -.25 0scale='1 1 1 1 1 1 1 1spine='6 0 2 1 0 -13 0 0 -18 0 0 -34'/>
 35 
                                   <!-- Appearance HazeGray is a DEF node that has 12 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7, USE_8, USE_9, USE_10, USE_11, USE_12 -->
                                   <Appearance DEF='HazeGray'>
 36                                          <Material specularColor='.4 .4 .4'/>
 37                                     </Appearance>
 38                                </Shape>
 39                           </Transform>
 40                           <Transform DEF='StarboardSideRastTracktranslation='6 .1 -5'>
 41                                <Shape>
 42                                     <Appearance USE='HazeGray'/>
 43                                     <Extrusion creaseAngle='3crossSection='-.25 0 .25 0 .25 .05 -.25 .05 -.25 0scale='1 1 1 1 1 1 1 1spine='-6 0 2 -1 0 -13 0 0 -18 0 0 -34'/>
 44                                </Shape>
 45                           </Transform>
 46                           <Group DEF='StarboardRast'>
 47 
                              <!-- ROUTE information for StarboardSideRast node:  [from STBDRASTPathInterpolatorOut.value_changed to translation ] [from STBDRastOrientationInterpolatorOut.value_changed to set_rotation ] [from STBDRASTPathInterpolatorIn.value_changed to translation ] [from STBDRastOrientationInterpolatorIn.value_changed to set_rotation ] -->
                              <Transform DEF='StarboardSideRasttranslation='6 .25 -39'>
 48                                     <Shape>
 49                                          <Appearance>
 50                                               <Material emissiveColor='0.20 0.20 0.20'/>
 51                                          </Appearance>
 52                                          <Box size='1 .25 2'/>
 53                                     </Shape>
 54 
                                   <!-- ROUTE information for RastChoice node:  [from RastOut.triggerValue to whichChoice ] [from RastIn.triggerValue to whichChoice ] -->
                                   <Switch DEF='RastChoicewhichChoice='0'>
 55                                          <Group DEF='Out'>
 56 
                                             <!-- Shape STBDRastTouchSensor1 is a DEF node that has 1 USE node: USE_1 -->
                                             <Shape DEF='STBDRastTouchSensor1'>
 57                                                    <Appearance>
 58 
                                                       <!-- Material Transparent is a DEF node that has 5 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5 -->
                                                       <Material DEF='TransparentemissiveColor='1 1 1transparency='1.0'/>
 59                                                    </Appearance>
 60                                                    <Sphere/>
 61                                               </Shape>
 62 
                                             <!-- ROUTE information for STBDRastTouchSensorOut node:  [from touchTime to STBDRASTClockOut.set_startTime ] [from isActive to RastOut.set_boolean ] -->
                                             <TouchSensor DEF='STBDRastTouchSensorOutdescription='CickToMove RastOut'/>
 63 
                                             <!-- ROUTE information for STBDRASTPathInterpolatorOut node:  [from STBDRASTClockOut.fraction_changed to set_fraction ] [from value_changed to StarboardSideRast.translation ] -->
                                             <PositionInterpolator DEF='STBDRASTPathInterpolatorOutkey='0 .33 .66 1keyValue='6 .25 -39 6 .25 -23 5 .25 -18 2 .25 -9'/>
 64 
                                             <!-- ROUTE information for STBDRastOrientationInterpolatorOut node:  [from STBDRASTClockOut.fraction_changed to set_fraction ] [from value_changed to StarboardSideRast.set_rotation ] -->
                                             <OrientationInterpolator DEF='STBDRastOrientationInterpolatorOutkey='0 .28 .35 1keyValue='0 0 0 0 0 0 0 0 0 1 0 -.15 0 1 0 -.33'/>
 65 
                                             <!-- ROUTE information for STBDRASTClockOut node:  [from STBDRastTouchSensorOut.touchTime to set_startTime ] [from fraction_changed to STBDRASTPathInterpolatorOut.set_fraction ] [from fraction_changed to STBDRastOrientationInterpolatorOut.set_fraction ] -->
                                             <TimeSensor DEF='STBDRASTClockOutcycleInterval='3'/>
 66                                               < ROUTE  fromNode='STBDRASTClockOut' fromField='fraction_changed' toNode='STBDRASTPathInterpolatorOut' toField='set_fraction'/>
 67                                               < ROUTE  fromNode='STBDRASTClockOut' fromField='fraction_changed' toNode='STBDRastOrientationInterpolatorOut' toField='set_fraction'/>
 68                                               < ROUTE  fromNode='STBDRASTPathInterpolatorOut' fromField='value_changed' toNode='StarboardSideRast' toField='translation'/>
 69                                               < ROUTE  fromNode='STBDRastOrientationInterpolatorOut' fromField='value_changed' toNode='StarboardSideRast' toField='set_rotation'/>
 70                                               < ROUTE  fromNode='STBDRastTouchSensorOut' fromField='touchTime' toNode='STBDRASTClockOut' toField='set_startTime'/>
 71                                          </Group>
 72                                          <Group DEF='In'>
 73                                               <Shape USE='STBDRastTouchSensor1'/>
 74 
                                             <!-- ROUTE information for STBDRastTouchSensorIn node:  [from touchTime to STBDRASTClockIn.set_startTime ] [from touchTime to STBDRASTClockIn.set_stopTime ] [from isActive to RastIn.set_boolean ] -->
                                             <TouchSensor DEF='STBDRastTouchSensorIndescription='ClickToMoveRastIn'/>
 75 
                                             <!-- ROUTE information for STBDRASTPathInterpolatorIn node:  [from STBDRASTClockIn.fraction_changed to set_fraction ] [from value_changed to StarboardSideRast.translation ] -->
                                             <PositionInterpolator DEF='STBDRASTPathInterpolatorInkey='0 .33 .66 1keyValue='2 .25 -9 5 .25 -18 6 .25 -23 6 .25 -39'/>
 76 
                                             <!-- ROUTE information for STBDRastOrientationInterpolatorIn node:  [from STBDRASTClockIn.fraction_changed to set_fraction ] [from value_changed to StarboardSideRast.set_rotation ] -->
                                             <OrientationInterpolator DEF='STBDRastOrientationInterpolatorInkey='0 .8 .8 1keyValue='0 1 0 -.33 0 1 0 -.15 0 0 0 0 0 0 0 0'/>
 77 
                                             <!-- ROUTE information for STBDRASTClockIn node:  [from STBDRastTouchSensorIn.touchTime to set_startTime ] [from STBDRastTouchSensorIn.touchTime to set_stopTime ] [from fraction_changed to STBDRASTPathInterpolatorIn.set_fraction ] [from fraction_changed to STBDRastOrientationInterpolatorIn.set_fraction ] -->
                                             <TimeSensor DEF='STBDRASTClockIncycleInterval='3'/>
 78                                               < ROUTE  fromNode='STBDRASTClockIn' fromField='fraction_changed' toNode='STBDRASTPathInterpolatorIn' toField='set_fraction'/>
 79                                               < ROUTE  fromNode='STBDRASTClockIn' fromField='fraction_changed' toNode='STBDRastOrientationInterpolatorIn' toField='set_fraction'/>
 80                                               < ROUTE  fromNode='STBDRASTPathInterpolatorIn' fromField='value_changed' toNode='StarboardSideRast' toField='translation'/>
 81                                               < ROUTE  fromNode='STBDRastOrientationInterpolatorIn' fromField='value_changed' toNode='StarboardSideRast' toField='set_rotation'/>
 82                                               < ROUTE  fromNode='STBDRastTouchSensorIn' fromField='touchTime' toNode='STBDRASTClockIn' toField='set_startTime'/>
 83                                               < ROUTE  fromNode='STBDRastTouchSensorIn' fromField='touchTime' toNode='STBDRASTClockIn' toField='set_stopTime'/>
 84                                          </Group>
 85                                     </Switch>
 86                                </Transform>
 87                                <Group DEF='STBDRastAnimationControl'>
 88 
                                   <!-- ROUTE information for RastIn node:  [from STBDRastTouchSensorIn.isActive to set_boolean ] [from triggerValue to RastChoice.whichChoice ] -->
                                   <IntegerTrigger DEF='RastInintegerKey='0'/>
 89 
                                   <!-- ROUTE information for RastOut node:  [from STBDRastTouchSensorOut.isActive to set_boolean ] [from triggerValue to RastChoice.whichChoice ] -->
                                   <IntegerTrigger DEF='RastOutintegerKey='1'/>
 90                                     < ROUTE  fromNode='STBDRastTouchSensorOut' fromField='isActive' toNode='RastOut' toField='set_boolean'/>
 91                                     < ROUTE  fromNode='STBDRastTouchSensorIn' fromField='isActive' toNode='RastIn' toField='set_boolean'/>
 92                                     < ROUTE  fromNode='RastOut' fromField='triggerValue' toNode='RastChoice' toField='whichChoice'/>
 93                                     < ROUTE  fromNode='RastIn' fromField='triggerValue' toNode='RastChoice' toField='whichChoice'/>
 94                                </Group>
 95                           </Group>
 96                           <Group DEF='PortRast'>
 97 
                              <!-- ROUTE information for PortSideRast node:  [from PortRASTPathInterpolatorOut.value_changed to translation ] [from PortRastOrientationInterpolatorOut.value_changed to set_rotation ] [from PortRASTPathInterpolatorIn.value_changed to translation ] [from PortRastOrientationInterpolatorIn.value_changed to set_rotation ] -->
                              <Transform DEF='PortSideRasttranslation='-6 .25 -39'>
 98                                     <Shape>
 99                                          <Appearance>
100                                               <Material emissiveColor='0.20 0.20 0.20'/>
101                                          </Appearance>
102                                          <Box size='1 .25 2'/>
103                                     </Shape>
104                                     <Transform rotation='0 1 0 1.57scale='1.8 1.8 1.8translation='0 .9 0'>
105                                          <Inline   url=' "SH60SeahawkMaintenance.x3d" "https://www.web3d.org/x3d/content/examples/Savage/ShipsMilitary/DDG51FlightIIaUnitedStates/SH60SeahawkMaintenance.x3d" "SH60SeahawkMaintenance.wrl" "https://www.web3d.org/x3d/content/examples/Savage/ShipsMilitary/DDG51FlightIIaUnitedStates/SH60SeahawkMaintenance.wrl" '/>
106                                     </Transform>
107 
                                   <!-- ROUTE information for PortRastChoice node:  [from PortRastOut.triggerValue to whichChoice ] [from PortRastIn.triggerValue to whichChoice ] -->
                                   <Switch DEF='PortRastChoicewhichChoice='0'>
108                                          <Group DEF='PortOut'>
109 
                                             <!-- Shape PortRastTouchSensor1 is a DEF node that has 1 USE node: USE_1 -->
                                             <Shape DEF='PortRastTouchSensor1'>
110                                                    <Appearance>
111                                                         <Material USE='Transparent'/>
112                                                    </Appearance>
113                                                    <Box size='4 6 15'/>
114                                               </Shape>
115 
                                             <!-- ROUTE information for PortRastTouchSensorOut node:  [from touchTime to PortRASTClockOut.set_startTime ] [from isActive to PortRastOut.set_boolean ] -->
                                             <TouchSensor DEF='PortRastTouchSensorOutdescription='CickToMove RastOut'/>
116 
                                             <!-- ROUTE information for PortRASTPathInterpolatorOut node:  [from PortRASTClockOut.fraction_changed to set_fraction ] [from value_changed to PortSideRast.translation ] -->
                                             <PositionInterpolator DEF='PortRASTPathInterpolatorOutkey='0 .33 .66 1keyValue='-6 .25 -39 -6 .25 -23 -5 .25 -18 -2 .25 -9'/>
117 
                                             <!-- ROUTE information for PortRastOrientationInterpolatorOut node:  [from PortRASTClockOut.fraction_changed to set_fraction ] [from value_changed to PortSideRast.set_rotation ] -->
                                             <OrientationInterpolator DEF='PortRastOrientationInterpolatorOutkey='0 .28 .35 1keyValue='0 0 0 0 0 0 0 0 0 1 0 .15 0 1 0 .33'/>
118 
                                             <!-- ROUTE information for PortRASTClockOut node:  [from PortRastTouchSensorOut.touchTime to set_startTime ] [from fraction_changed to PortRASTPathInterpolatorOut.set_fraction ] [from fraction_changed to PortRastOrientationInterpolatorOut.set_fraction ] -->
                                             <TimeSensor DEF='PortRASTClockOutcycleInterval='3'/>
119                                               < ROUTE  fromNode='PortRASTClockOut' fromField='fraction_changed' toNode='PortRASTPathInterpolatorOut' toField='set_fraction'/>
120                                               < ROUTE  fromNode='PortRASTClockOut' fromField='fraction_changed' toNode='PortRastOrientationInterpolatorOut' toField='set_fraction'/>
121                                               < ROUTE  fromNode='PortRASTPathInterpolatorOut' fromField='value_changed' toNode='PortSideRast' toField='translation'/>
122                                               < ROUTE  fromNode='PortRastOrientationInterpolatorOut' fromField='value_changed' toNode='PortSideRast' toField='set_rotation'/>
123                                               < ROUTE  fromNode='PortRastTouchSensorOut' fromField='touchTime' toNode='PortRASTClockOut' toField='set_startTime'/>
124                                          </Group>
125                                          <Group DEF='PortIn'>
126                                               <Shape USE='PortRastTouchSensor1'/>
127 
                                             <!-- ROUTE information for PortRastTouchSensorIn node:  [from touchTime to PortRASTClockIn.set_startTime ] [from touchTime to PortRASTClockIn.set_stopTime ] [from isActive to PortRastIn.set_boolean ] -->
                                             <TouchSensor DEF='PortRastTouchSensorIndescription='ClickToMoveRastIn'/>
128 
                                             <!-- ROUTE information for PortRASTPathInterpolatorIn node:  [from PortRASTClockIn.fraction_changed to set_fraction ] [from value_changed to PortSideRast.translation ] -->
                                             <PositionInterpolator DEF='PortRASTPathInterpolatorInkey='0 .33 .66 1keyValue='-2 .25 -9 -5 .25 -18 -6 .25 -23 -6 .25 -39'/>
129 
                                             <!-- ROUTE information for PortRastOrientationInterpolatorIn node:  [from PortRASTClockIn.fraction_changed to set_fraction ] [from value_changed to PortSideRast.set_rotation ] -->
                                             <OrientationInterpolator DEF='PortRastOrientationInterpolatorInkey='0 .8 .8 1keyValue='0 1 0 .33 0 1 0 .15 0 0 0 0 0 0 0 0'/>
130 
                                             <!-- ROUTE information for PortRASTClockIn node:  [from PortRastTouchSensorIn.touchTime to set_startTime ] [from PortRastTouchSensorIn.touchTime to set_stopTime ] [from fraction_changed to PortRASTPathInterpolatorIn.set_fraction ] [from fraction_changed to PortRastOrientationInterpolatorIn.set_fraction ] -->
                                             <TimeSensor DEF='PortRASTClockIncycleInterval='3'/>
131                                               < ROUTE  fromNode='PortRASTClockIn' fromField='fraction_changed' toNode='PortRASTPathInterpolatorIn' toField='set_fraction'/>
132                                               < ROUTE  fromNode='PortRASTClockIn' fromField='fraction_changed' toNode='PortRastOrientationInterpolatorIn' toField='set_fraction'/>
133                                               < ROUTE  fromNode='PortRASTPathInterpolatorIn' fromField='value_changed' toNode='PortSideRast' toField='translation'/>
134                                               < ROUTE  fromNode='PortRastOrientationInterpolatorIn' fromField='value_changed' toNode='PortSideRast' toField='set_rotation'/>
135                                               < ROUTE  fromNode='PortRastTouchSensorIn' fromField='touchTime' toNode='PortRASTClockIn' toField='set_startTime'/>
136                                               < ROUTE  fromNode='PortRastTouchSensorIn' fromField='touchTime' toNode='PortRASTClockIn' toField='set_stopTime'/>
137                                          </Group>
138                                     </Switch>
139                                </Transform>
140                                <Group DEF='PortRastAnimationControl'>
141 
                                   <!-- ROUTE information for PortRastIn node:  [from PortRastTouchSensorIn.isActive to set_boolean ] [from triggerValue to PortRastChoice.whichChoice ] -->
                                   <IntegerTrigger DEF='PortRastInintegerKey='0'/>
142 
                                   <!-- ROUTE information for PortRastOut node:  [from PortRastTouchSensorOut.isActive to set_boolean ] [from triggerValue to PortRastChoice.whichChoice ] -->
                                   <IntegerTrigger DEF='PortRastOutintegerKey='1'/>
143                                     < ROUTE  fromNode='PortRastTouchSensorOut' fromField='isActive' toNode='PortRastOut' toField='set_boolean'/>
144                                     < ROUTE  fromNode='PortRastTouchSensorIn' fromField='isActive' toNode='PortRastIn' toField='set_boolean'/>
145                                     < ROUTE  fromNode='PortRastOut' fromField='triggerValue' toNode='PortRastChoice' toField='whichChoice'/>
146                                     < ROUTE  fromNode='PortRastIn' fromField='triggerValue' toNode='PortRastChoice' toField='whichChoice'/>
147                                </Group>
148                           </Group>
149                           <Transform DEF='FlightDeckMarkingsscale='.8 .8 .8translation='0 0.001 -3.75'>
150                                <Shape>
151                                     <Appearance>
152                                          <ImageTexture DEF='FLTDECK'   url=' "nsflightdeck.jpg " "https://www.web3d.org/x3d/content/examples/Savage/DestroyerGuidedMissile-UnitedStates-ArleighBurke/nsflightdeck.jpg " '/>
153                                     </Appearance>
154                                     <IndexedFaceSet solid='falsecoordIndex='2 3 0 1texCoordIndex='3 2 1 0'>
155                                          <Coordinate point='7.5 .05 4.2 -7.5 .05 4.2 -9.375 .05 -24.1 9.375 .05 -24.1'/>
156                                          <TextureCoordinate point='1 0 1 1 0 1 0 0'/>
157                                     </IndexedFaceSet>
158                                </Shape>
159                           </Transform>
160                      </Group>
161                      <Transform DEF='ForwardBulkheadtranslation='0 3.5 -45'>
162                           <Shape>
163                                <Box size='18.704 7 .05'/>
164                                <Appearance USE='HazeGray'/>
165                           </Shape>
166                      </Transform>
167                      <Transform DEF='HangerOverheadtranslation='0 7 -34.5'>
168                           <Shape>
169                                <Appearance>
170                                     <ImageTexture USE='NONSKID'/>
171                                </Appearance>
172                                <Box size='18.704 .05 21'/>
173                           </Shape>
174                      </Transform>
175                      <Transform DEF='PortSideCenterLineBulkheadtranslation='-3.5 3.5 -34.5'>
176                           <Shape>
177                                <Appearance USE='HazeGray'/>
178                                <Box size='.05 7 21'/>
179                           </Shape>
180                      </Transform>
181                      <Transform DEF='StarboardSideCenterLineBulkheadtranslation='3.5 3.5 -34.5'>
182                           <Shape>
183                                <Appearance USE='HazeGray'/>
184                                <Box size='.05 7 21'/>
185                           </Shape>
186                      </Transform>
187                      <Transform DEF='PortSideExteriorBulkheadtranslation='0 0 -24'>
188                           <Shape>
189                                <Extrusion crossSection='0 0 0 7 -.64 3.45 0 0solid='falsespine='-9.352 0 0 -9.352 0 -21'/>
190                                <Appearance USE='HazeGray'/>
191                           </Shape>
192                      </Transform>
193                      <Transform DEF='StarboardSideExteriorBulkheadtranslation='0 0 -24'>
194                           <Shape>
195                                <Extrusion crossSection='0 0 0 7 .64 3.45 0 0solid='falsespine='9.352 0 0 9.352 0 -21'/>
196                                <Appearance USE='HazeGray'/>
197                           </Shape>
198                      </Transform>
199                      <Transform DEF='AftBulkheadtranslation='0 0 -23'>
200                           <Shape>
201                                <Appearance USE='HazeGray'/>
202                                <Extrusion crossSection='0 0 -9.35 0 -9.99 3.45 -9.35 7 9.35 7 9.99 3.45 9.35 0 8.05 0 8.05 6 3.53 6 3.53 0 -3.53 0 -3.53 6 -8.05 6 -8.05 0 0 0orientation='1 0 0 -.142 0 0 0 0scale='1 1 1 1spine='0 0 0 0 0 -1'/>
203                           </Shape>
204                      </Transform>
205                 </Transform>
206                 <Group DEF='StarboardHeloDoor'>
207                      <Transform DEF='STBDHeloDoorrotation='1 0 0 -.14translation='5.785 0 -23.02'>
208 
209 
                              <!-- Shape HangerDoor is a DEF node that has 11 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7, USE_8, USE_9, USE_10, USE_11 -->
                              <Shape DEF='HangerDoor'>
210                                     <Appearance USE='HazeGray'/>
211                                     <Box DEF='HeloDoorFramesize='4.5 .99 .05'/>
212                                </Shape>
213                           </Transform>
214 
215                                <Shape USE='HangerDoor'/>
216                           </Transform>
217 
218                                <Shape USE='HangerDoor'/>
219                           </Transform>
220 
221                                <Shape USE='HangerDoor'/>
222                           </Transform>
223 
224                                <Shape USE='HangerDoor'/>
225                           </Transform>
226 
227                                <Shape USE='HangerDoor'/>
228                           </Transform>
229 
                         <!-- ROUTE information for STBDHeloDoorSwitch node:  [from STBDHeloDoorUp.triggerValue to whichChoice ] [from STBDHeloDoorDown.triggerValue to whichChoice ] -->
                         <Switch DEF='STBDHeloDoorSwitchwhichChoice='0'>
230                                <Group DEF='STBDHangerDoorsUp'>
231                                     <Transform translation='0 3 0'>
232                                          <Shape DEF='STBDHangerDoorTouchSensor1'>
233                                               <Appearance>
234                                                    <Material USE='Transparent'/>
235                                               </Appearance>
236                                               <Box size='5 6 .2'/>
237                                          </Shape>
238                                     </Transform>
239 
                                   <!-- ROUTE information for STBDHeloDoorTouchSensor node:  [from touchTime to STBDHeloDoorClockOut.set_startTime ] [from isActive to STBDHeloDoorUp.set_boolean ] -->
                                   <TouchSensor DEF='STBDHeloDoorTouchSensordescription='Raise STBD Helo Door'/>
240 
241 
                                   <!-- ROUTE information for STBDHeloDoor1PathInterpolatorOut node:  [from STBDHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD1.set_translation ] -->
                                   <PositionInterpolator DEF='STBDHeloDoor1PathInterpolatorOutkey='0 1keyValue='0 5.5 0 0 5.95 0'/>
242 
                                   <!-- ROUTE information for STBDHeloDoor1OrientationInterpolatorOut node:  [from STBDHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD1.set_rotation ] -->
                                   <OrientationInterpolator DEF='STBDHeloDoor1OrientationInterpolatorOutkey='0 1keyValue='1 0 0 0 1 0 0 -1.43'/>
243 
                                   <!-- ROUTE information for STBDHeloDoor2PathInterpolatorOut node:  [from STBDHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD2.set_translation ] -->
                                   <PositionInterpolator DEF='STBDHeloDoor2PathInterpolatorOutkey='0 .85 1keyValue='0 4.5 0 0 5.5 0 0 5.88 0'/>
244 
                                   <!-- ROUTE information for STBDHeloDoor2OrientationInterpolatorOut node:  [from STBDHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD2.set_rotation ] -->
                                   <OrientationInterpolator DEF='STBDHeloDoor2OrientationInterpolatorOutkey='0 .85 1keyValue='1 0 0 0 1 0 0 1.3 1 0 0 1.71'/>
245 
                                   <!-- ROUTE information for STBDHeloDoor3PathInterpolatorOut node:  [from STBDHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD3.set_translation ] -->
                                   <PositionInterpolator DEF='STBDHeloDoor3PathInterpolatorOutkey='0 .6 .95 1keyValue='0 3.5 0 0 4.5 0 0 5.5 0 0 5.81 0'/>
246 
                                   <!-- ROUTE information for STBDHeloDoor3OrientationInterpolatorOut node:  [from STBDHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD3.set_rotation ] -->
                                   <OrientationInterpolator DEF='STBDHeloDoor3OrientationInterpolatorOutkey='0 .6 .95 1keyValue='1 0 0 0 1 0 0 -.6 1 0 0 -1 1 0 0 -1.43'/>
247 
                                   <!-- ROUTE information for STBDHeloDoor4PathInterpolatorOut node:  [from STBDHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD4.set_translation ] -->
                                   <PositionInterpolator DEF='STBDHeloDoor4PathInterpolatorOutkey='0 .5 .86 .99 1keyValue='0 2.5 0 0 3.5 0 0 4.5 0 0 5.5 0 0 5.74 0'/>
248 
                                   <!-- ROUTE information for STBDHeloDoor4OrientationInterpolatorOut node:  [from STBDHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD4.set_rotation ] -->
                                   <OrientationInterpolator DEF='STBDHeloDoor4OrientationInterpolatorOutkey='0 .5 .86 .99 1keyValue='1 0 0 0 1 0 0 .4 1 0 0 .8 1 0 0 1.10 1 0 0 1.71'/>
249 
                                   <!-- ROUTE information for STBDHeloDoor5PathInterpolatorOut node:  [from STBDHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD5.set_translation ] -->
                                   <PositionInterpolator DEF='STBDHeloDoor5PathInterpolatorOutkey='0 .45 .80 .94 .99 1keyValue='0 1.5 0 0 2.5 0 0 3.5 0 0 4.5 0 0 5.5 0 0 5.67 0'/>
250 
                                   <!-- ROUTE information for STBDHeloDoor5OrientationInterpolatorOut node:  [from STBDHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD5.set_rotation ] -->
                                   <OrientationInterpolator DEF='STBDHeloDoor5OrientationInterpolatorOutkey='0 .45 .80 .94 .99 1keyValue='1 0 0 0 1 0 0 -.2 1 0 0 -.4 1 0 0 -.6 1 0 0 -1 1 0 0 -1.43'/>
251 
                                   <!-- ROUTE information for STBDHeloDoor6PathInterpolatorOut node:  [from STBDHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD6.set_translation ] -->
                                   <PositionInterpolator DEF='STBDHeloDoor6PathInterpolatorOutkey='0 .45 .75 .90 .98 .99 1keyValue='0 .5 0 0 1.5 0 0 2.5 0 0 3.5 0 0 4.5 0 0 5.5 0 0 5.61 0'/>
252 
                                   <!-- ROUTE information for STBDHeloDoor6OrientationInterpolatorOut node:  [from STBDHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD6.set_rotation ] -->
                                   <OrientationInterpolator DEF='STBDHeloDoor6OrientationInterpolatorOutkey='0 .45 .75 .90 .98 .99 1keyValue='1 0 0 0 1 0 0 .2 1 0 0 .4 1 0 0 .8 1 0 0 1.10 1 0 0 1.4 1 0 0 1.71'/>
253                                     <!-- STBD Helo Door Clock to movement -->
254                                     < ROUTE  fromNode='STBDHeloDoorClockOut' fromField='fraction_changed' toNode='STBDHeloDoor1PathInterpolatorOut' toField='set_fraction'/>
255                                     < ROUTE  fromNode='STBDHeloDoorClockOut' fromField='fraction_changed' toNode='STBDHeloDoor1OrientationInterpolatorOut' toField='set_fraction'/>
256                                     < ROUTE  fromNode='STBDHeloDoorClockOut' fromField='fraction_changed' toNode='STBDHeloDoor2PathInterpolatorOut' toField='set_fraction'/>
257                                     < ROUTE  fromNode='STBDHeloDoorClockOut' fromField='fraction_changed' toNode='STBDHeloDoor2OrientationInterpolatorOut' toField='set_fraction'/>
258                                     < ROUTE  fromNode='STBDHeloDoorClockOut' fromField='fraction_changed' toNode='STBDHeloDoor3PathInterpolatorOut' toField='set_fraction'/>
259                                     < ROUTE  fromNode='STBDHeloDoorClockOut' fromField='fraction_changed' toNode='STBDHeloDoor3OrientationInterpolatorOut' toField='set_fraction'/>
260                                     < ROUTE  fromNode='STBDHeloDoorClockOut' fromField='fraction_changed' toNode='STBDHeloDoor4PathInterpolatorOut' toField='set_fraction'/>
261                                     < ROUTE  fromNode='STBDHeloDoorClockOut' fromField='fraction_changed' toNode='STBDHeloDoor4OrientationInterpolatorOut' toField='set_fraction'/>
262                                     < ROUTE  fromNode='STBDHeloDoorClockOut' fromField='fraction_changed' toNode='STBDHeloDoor5PathInterpolatorOut' toField='set_fraction'/>
263                                     < ROUTE  fromNode='STBDHeloDoorClockOut' fromField='fraction_changed' toNode='STBDHeloDoor5OrientationInterpolatorOut' toField='set_fraction'/>
264                                     < ROUTE  fromNode='STBDHeloDoorClockOut' fromField='fraction_changed' toNode='STBDHeloDoor6PathInterpolatorOut' toField='set_fraction'/>
265                                     < ROUTE  fromNode='STBDHeloDoorClockOut' fromField='fraction_changed' toNode='STBDHeloDoor6OrientationInterpolatorOut' toField='set_fraction'/>
266                                     <!-- STBD Helo Door movement to geometry -->
267                                     < ROUTE  fromNode='STBDHeloDoor1PathInterpolatorOut' fromField='value_changed' toNode='HangerDoorSTBD1' toField='set_translation'/>
268                                     < ROUTE  fromNode='STBDHeloDoor1OrientationInterpolatorOut' fromField='value_changed' toNode='HangerDoorSTBD1' toField='set_rotation'/>
269                                     < ROUTE  fromNode='STBDHeloDoor2PathInterpolatorOut' fromField='value_changed' toNode='HangerDoorSTBD2' toField='set_translation'/>
270                                     < ROUTE  fromNode='STBDHeloDoor2OrientationInterpolatorOut' fromField='value_changed' toNode='HangerDoorSTBD2' toField='set_rotation'/>
271                                     < ROUTE  fromNode='STBDHeloDoor3PathInterpolatorOut' fromField='value_changed' toNode='HangerDoorSTBD3' toField='set_translation'/>
272                                     < ROUTE  fromNode='STBDHeloDoor3OrientationInterpolatorOut' fromField='value_changed' toNode='HangerDoorSTBD3' toField='set_rotation'/>
273                                     < ROUTE  fromNode='STBDHeloDoor4PathInterpolatorOut' fromField='value_changed' toNode='HangerDoorSTBD4' toField='set_translation'/>
274                                     < ROUTE  fromNode='STBDHeloDoor4OrientationInterpolatorOut' fromField='value_changed' toNode='HangerDoorSTBD4' toField='set_rotation'/>
275                                     < ROUTE  fromNode='STBDHeloDoor5PathInterpolatorOut' fromField='value_changed' toNode='HangerDoorSTBD5' toField='set_translation'/>
276                                     < ROUTE  fromNode='STBDHeloDoor5OrientationInterpolatorOut' fromField='value_changed' toNode='HangerDoorSTBD5' toField='set_rotation'/>
277                                     < ROUTE  fromNode='STBDHeloDoor6PathInterpolatorOut' fromField='value_changed' toNode='HangerDoorSTBD6' toField='set_translation'/>
278                                     < ROUTE  fromNode='STBDHeloDoor6OrientationInterpolatorOut' fromField='value_changed' toNode='HangerDoorSTBD6' toField='set_rotation'/>
279                                     <!-- STBD Helo Door Sensor to clock -->
280                                     < ROUTE  fromNode='STBDHeloDoorTouchSensor' fromField='touchTime' toNode='STBDHeloDoorClockOut' toField='set_startTime'/>
281                                </Group>
282                                <Group DEF='STBDHangerDoorsDown'>
283                                     <Transform translation='0 5.75 0'>
284                                          <Shape DEF='STBDHangerDoorTouchSensorDn'>
285                                               <Appearance>
286                                                    <Material USE='Transparent'/>
287                                               </Appearance>
288                                               <Box size='5 1 1.2'/>
289                                          </Shape>
290                                     </Transform>
291 
                                   <!-- ROUTE information for STBDHeloDoorTouchSensorDown node:  [from touchTime to STBDHeloDoorClockDown.set_startTime ] [from isActive to STBDHeloDoorDown.set_boolean ] -->
                                   <TouchSensor DEF='STBDHeloDoorTouchSensorDowndescription='LowerSTBDHeloDoor'/>
292 
293 
                                   <!-- ROUTE information for STBDHeloDoor1PathInterpolatorDown node:  [from STBDHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD1.set_translation ] -->
                                   <PositionInterpolator DEF='STBDHeloDoor1PathInterpolatorDownkey='0 1keyValue='0 5.95 0 0 5.5 0'/>
294 
                                   <!-- ROUTE information for STBDHeloDoor1OrientationInterpolatorDown node:  [from STBDHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD1.set_rotation ] -->
                                   <OrientationInterpolator DEF='STBDHeloDoor1OrientationInterpolatorDownkey='0 1keyValue='1 0 0 -1.43 1 0 0 0'/>
295 
                                   <!-- ROUTE information for STBDHeloDoor2PathInterpolatorDown node:  [from STBDHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD2.set_translation ] -->
                                   <PositionInterpolator DEF='STBDHeloDoor2PathInterpolatorDownkey='0 .14 1keyValue='0 5.88 0 0 5.5 0 0 4.5 0'/>
296 
                                   <!-- ROUTE information for STBDHeloDoor2OrientationInterpolatorDown node:  [from STBDHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD2.set_rotation ] -->
                                   <OrientationInterpolator DEF='STBDHeloDoor2OrientationInterpolatorDownkey='0 .14 1keyValue='1 0 0 1.71 1 0 0 1.3 1 0 0 0'/>
297 
                                   <!-- ROUTE information for STBDHeloDoor3PathInterpolatorDown node:  [from STBDHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD3.set_translation ] -->
                                   <PositionInterpolator DEF='STBDHeloDoor3PathInterpolatorDownkey='0 .08 .55 1keyValue='0 5.81 0 0 5.5 0 0 4.5 0 0 3.5 0'/>
298 
                                   <!-- ROUTE information for STBDHeloDoor3OrientationInterpolatorDown node:  [from STBDHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD3.set_rotation ] -->
                                   <OrientationInterpolator DEF='STBDHeloDoor3OrientationInterpolatorDownkey='0 .6 .95 1keyValue='1 0 0 -1.43 1 0 0 -1 1 0 0 -.6 1 0 0 0'/>
299 
                                   <!-- ROUTE information for STBDHeloDoor4PathInterpolatorDown node:  [from STBDHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD4.set_translation ] -->
                                   <PositionInterpolator DEF='STBDHeloDoor4PathInterpolatorDownkey='0 .06 .4 .75 1keyValue='0 5.74 0 0 5.5 0 0 4.5 0 0 3.5 0 0 2.5 0'/>
300 
                                   <!-- ROUTE information for STBDHeloDoor4OrientationInterpolatorDown node:  [from STBDHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD4.set_rotation ] -->
                                   <OrientationInterpolator DEF='STBDHeloDoor4OrientationInterpolatorDownkey='0 .5 .86 .95 1keyValue='1 0 0 1.71 1 0 0 1.10 1 0 0 .8 1 0 0 .4 1 0 0 0'/>
301 
                                   <!-- ROUTE information for STBDHeloDoor5PathInterpolatorDown node:  [from STBDHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD5.set_translation ] -->
                                   <PositionInterpolator DEF='STBDHeloDoor5PathInterpolatorDownkey='0 .04 .3 .55 .85 1keyValue='0 5.67 0 0 5.5 0 0 4.5 0 0 3.5 0 0 2.5 0 0 1.5 0'/>
302 
                                   <!-- ROUTE information for STBDHeloDoor5OrientationInterpolatorDown node:  [from STBDHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD5.set_rotation ] -->
                                   <OrientationInterpolator DEF='STBDHeloDoor5OrientationInterpolatorDownkey='0 .45 .80 .94 .99 1keyValue='1 0 0 -1.43 1 0 0 -1 1 0 0 -.6 1 0 0 -.4 1 0 0 -.2 1 0 0 0'/>
303 
                                   <!-- ROUTE information for STBDHeloDoor6PathInterpolatorDown node:  [from STBDHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD6.set_translation ] -->
                                   <PositionInterpolator DEF='STBDHeloDoor6PathInterpolatorDownkey='0 .03 .25 .45 .68 .9 1keyValue='0 5.61 0 0 5.5 0 0 4.5 0 0 3.5 0 0 2.5 0 0 1.5 0 0 .5 0'/>
304 
                                   <!-- ROUTE information for STBDHeloDoor6OrientationInterpolatorDown node:  [from STBDHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorSTBD6.set_rotation ] -->
                                   <OrientationInterpolator DEF='STBDHeloDoor6OrientationInterpolatorDownkey='0 .45 .75 .8 .93 .98 1keyValue='1 0 0 1.71 1 0 0 1.4 1 0 0 1.1 1 0 0 .8 1 0 0 .4 1 0 0 .2 1 0 0 0'/>
305                                     <!-- STBD Helo Door Clock to movement -->
306                                     < ROUTE  fromNode='STBDHeloDoorClockDown' fromField='fraction_changed' toNode='STBDHeloDoor1PathInterpolatorDown' toField='set_fraction'/>
307                                     < ROUTE  fromNode='STBDHeloDoorClockDown' fromField='fraction_changed' toNode='STBDHeloDoor1OrientationInterpolatorDown' toField='set_fraction'/>
308                                     < ROUTE  fromNode='STBDHeloDoorClockDown' fromField='fraction_changed' toNode='STBDHeloDoor2PathInterpolatorDown' toField='set_fraction'/>
309                                     < ROUTE  fromNode='STBDHeloDoorClockDown' fromField='fraction_changed' toNode='STBDHeloDoor2OrientationInterpolatorDown' toField='set_fraction'/>
310                                     < ROUTE  fromNode='STBDHeloDoorClockDown' fromField='fraction_changed' toNode='STBDHeloDoor3PathInterpolatorDown' toField='set_fraction'/>
311                                     < ROUTE  fromNode='STBDHeloDoorClockDown' fromField='fraction_changed' toNode='STBDHeloDoor3OrientationInterpolatorDown' toField='set_fraction'/>
312                                     < ROUTE  fromNode='STBDHeloDoorClockDown' fromField='fraction_changed' toNode='STBDHeloDoor4PathInterpolatorDown' toField='set_fraction'/>
313                                     < ROUTE  fromNode='STBDHeloDoorClockDown' fromField='fraction_changed' toNode='STBDHeloDoor4OrientationInterpolatorDown' toField='set_fraction'/>
314                                     < ROUTE  fromNode='STBDHeloDoorClockDown' fromField='fraction_changed' toNode='STBDHeloDoor5PathInterpolatorDown' toField='set_fraction'/>
315                                     < ROUTE  fromNode='STBDHeloDoorClockDown' fromField='fraction_changed' toNode='STBDHeloDoor5OrientationInterpolatorDown' toField='set_fraction'/>
316                                     < ROUTE  fromNode='STBDHeloDoorClockDown' fromField='fraction_changed' toNode='STBDHeloDoor6PathInterpolatorDown' toField='set_fraction'/>
317                                     < ROUTE  fromNode='STBDHeloDoorClockDown' fromField='fraction_changed' toNode='STBDHeloDoor6OrientationInterpolatorDown' toField='set_fraction'/>
318                                     <!-- STBD Helo Door movement to geometry -->
319                                     < ROUTE  fromNode='STBDHeloDoor1PathInterpolatorDown' fromField='value_changed' toNode='HangerDoorSTBD1' toField='set_translation'/>
320                                     < ROUTE  fromNode='STBDHeloDoor1OrientationInterpolatorDown' fromField='value_changed' toNode='HangerDoorSTBD1' toField='set_rotation'/>
321                                     < ROUTE  fromNode='STBDHeloDoor2PathInterpolatorDown' fromField='value_changed' toNode='HangerDoorSTBD2' toField='set_translation'/>
322                                     < ROUTE  fromNode='STBDHeloDoor2OrientationInterpolatorDown' fromField='value_changed' toNode='HangerDoorSTBD2' toField='set_rotation'/>
323                                     < ROUTE  fromNode='STBDHeloDoor3PathInterpolatorDown' fromField='value_changed' toNode='HangerDoorSTBD3' toField='set_translation'/>
324                                     < ROUTE  fromNode='STBDHeloDoor3OrientationInterpolatorDown' fromField='value_changed' toNode='HangerDoorSTBD3' toField='set_rotation'/>
325                                     < ROUTE  fromNode='STBDHeloDoor4PathInterpolatorDown' fromField='value_changed' toNode='HangerDoorSTBD4' toField='set_translation'/>
326                                     < ROUTE  fromNode='STBDHeloDoor4OrientationInterpolatorDown' fromField='value_changed' toNode='HangerDoorSTBD4' toField='set_rotation'/>
327                                     < ROUTE  fromNode='STBDHeloDoor5PathInterpolatorDown' fromField='value_changed' toNode='HangerDoorSTBD5' toField='set_translation'/>
328                                     < ROUTE  fromNode='STBDHeloDoor5OrientationInterpolatorDown' fromField='value_changed' toNode='HangerDoorSTBD5' toField='set_rotation'/>
329                                     < ROUTE  fromNode='STBDHeloDoor6PathInterpolatorDown' fromField='value_changed' toNode='HangerDoorSTBD6' toField='set_translation'/>
330                                     < ROUTE  fromNode='STBDHeloDoor6OrientationInterpolatorDown' fromField='value_changed' toNode='HangerDoorSTBD6' toField='set_rotation'/>
331                                     <!-- STBD Helo Door Sensor to clock -->
332                                     < ROUTE  fromNode='STBDHeloDoorTouchSensorDown' fromField='touchTime' toNode='STBDHeloDoorClockDown' toField='set_startTime'/>
333                                </Group>
334                           </Switch>
335                      </Transform>
336                      <Group DEF='STBDHeloDoorAnimationControl'>
337 
                         <!-- ROUTE information for STBDHeloDoorDown node:  [from STBDHeloDoorTouchSensorDown.isActive to set_boolean ] [from triggerValue to STBDHeloDoorSwitch.whichChoice ] -->
                         <IntegerTrigger DEF='STBDHeloDoorDownintegerKey='0'/>
338 
                         <!-- ROUTE information for STBDHeloDoorUp node:  [from STBDHeloDoorTouchSensor.isActive to set_boolean ] [from triggerValue to STBDHeloDoorSwitch.whichChoice ] -->
                         <IntegerTrigger DEF='STBDHeloDoorUpintegerKey='1'/>
339                           < ROUTE  fromNode='STBDHeloDoorTouchSensor' fromField='isActive' toNode='STBDHeloDoorUp' toField='set_boolean'/>
340                           < ROUTE  fromNode='STBDHeloDoorTouchSensorDown' fromField='isActive' toNode='STBDHeloDoorDown' toField='set_boolean'/>
341                           < ROUTE  fromNode='STBDHeloDoorUp' fromField='triggerValue' toNode='STBDHeloDoorSwitch' toField='whichChoice'/>
342                           < ROUTE  fromNode='STBDHeloDoorDown' fromField='triggerValue' toNode='STBDHeloDoorSwitch' toField='whichChoice'/>
343                      </Group>
344                 </Group>
345                 <Group DEF='PortHeloDoor'>
346                      <Transform DEF='PortHeloDoor1rotation='1 0 0 -.14translation='-5.785 0 -23.02'>
347 
348                                <Shape USE='HangerDoor'/>
349                           </Transform>
350 
351                                <Shape USE='HangerDoor'/>
352                           </Transform>
353 
354                                <Shape USE='HangerDoor'/>
355                           </Transform>
356 
357                                <Shape USE='HangerDoor'/>
358                           </Transform>
359 
360                                <Shape USE='HangerDoor'/>
361                           </Transform>
362 
363                                <Shape USE='HangerDoor'/>
364                           </Transform>
365 
                         <!-- ROUTE information for PortHeloDoorSwitch node:  [from PortHeloDoorUp.triggerValue to whichChoice ] [from PortHeloDoorDown.triggerValue to whichChoice ] -->
                         <Switch DEF='PortHeloDoorSwitchwhichChoice='0'>
366                                <Group DEF='PortHangerDoorsUp'>
367                                     <Transform translation='0 3 0'>
368                                          <Shape DEF='PortHangerDoorTouchSensor1'>
369                                               <Appearance>
370                                                    <Material USE='Transparent'/>
371                                               </Appearance>
372                                               <Box size='5 6 .2'/>
373                                          </Shape>
374                                     </Transform>
375 
                                   <!-- ROUTE information for PortHeloDoorTouchSensor node:  [from touchTime to PortHeloDoorClockOut.set_startTime ] [from isActive to PortHeloDoorUp.set_boolean ] -->
                                   <TouchSensor DEF='PortHeloDoorTouchSensordescription='Raise Port Helo Door'/>
376 
377 
                                   <!-- ROUTE information for PortHeloDoor1PathInterpolatorOut node:  [from PortHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort1.set_translation ] -->
                                   <PositionInterpolator DEF='PortHeloDoor1PathInterpolatorOutkey='0 1keyValue='0 5.5 0 0 5.95 0'/>
378 
                                   <!-- ROUTE information for PortHeloDoor1OrientationInterpolatorOut node:  [from PortHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort1.set_rotation ] -->
                                   <OrientationInterpolator DEF='PortHeloDoor1OrientationInterpolatorOutkey='0 1keyValue='1 0 0 0 1 0 0 -1.43'/>
379 
                                   <!-- ROUTE information for PortHeloDoor2PathInterpolatorOut node:  [from PortHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort2.set_translation ] -->
                                   <PositionInterpolator DEF='PortHeloDoor2PathInterpolatorOutkey='0 .85 1keyValue='0 4.5 0 0 5.5 0 0 5.88 0'/>
380 
                                   <!-- ROUTE information for PortHeloDoor2OrientationInterpolatorOut node:  [from PortHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort2.set_rotation ] -->
                                   <OrientationInterpolator DEF='PortHeloDoor2OrientationInterpolatorOutkey='0 .85 1keyValue='1 0 0 0 1 0 0 1.3 1 0 0 1.71'/>
381 
                                   <!-- ROUTE information for PortHeloDoor3PathInterpolatorOut node:  [from PortHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort3.set_translation ] -->
                                   <PositionInterpolator DEF='PortHeloDoor3PathInterpolatorOutkey='0 .6 .95 1keyValue='0 3.5 0 0 4.5 0 0 5.5 0 0 5.81 0'/>
382 
                                   <!-- ROUTE information for PortHeloDoor3OrientationInterpolatorOut node:  [from PortHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort3.set_rotation ] -->
                                   <OrientationInterpolator DEF='PortHeloDoor3OrientationInterpolatorOutkey='0 .6 .95 1keyValue='1 0 0 0 1 0 0 -.6 1 0 0 -1 1 0 0 -1.43'/>
383 
                                   <!-- ROUTE information for PortHeloDoor4PathInterpolatorOut node:  [from PortHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort4.set_translation ] -->
                                   <PositionInterpolator DEF='PortHeloDoor4PathInterpolatorOutkey='0 .5 .86 .99 1keyValue='0 2.5 0 0 3.5 0 0 4.5 0 0 5.5 0 0 5.74 0'/>
384 
                                   <!-- ROUTE information for PortHeloDoor4OrientationInterpolatorOut node:  [from PortHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort4.set_rotation ] -->
                                   <OrientationInterpolator DEF='PortHeloDoor4OrientationInterpolatorOutkey='0 .5 .86 .99 1keyValue='1 0 0 0 1 0 0 .4 1 0 0 .8 1 0 0 1.10 1 0 0 1.71'/>
385 
                                   <!-- ROUTE information for PortHeloDoor5PathInterpolatorOut node:  [from PortHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort5.set_translation ] -->
                                   <PositionInterpolator DEF='PortHeloDoor5PathInterpolatorOutkey='0 .45 .80 .94 .99 1keyValue='0 1.5 0 0 2.5 0 0 3.5 0 0 4.5 0 0 5.5 0 0 5.67 0'/>
386 
                                   <!-- ROUTE information for PortHeloDoor5OrientationInterpolatorOut node:  [from PortHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort5.set_rotation ] -->
                                   <OrientationInterpolator DEF='PortHeloDoor5OrientationInterpolatorOutkey='0 .45 .80 .94 .99 1keyValue='1 0 0 0 1 0 0 -.2 1 0 0 -.4 1 0 0 -.6 1 0 0 -1 1 0 0 -1.43'/>
387 
                                   <!-- ROUTE information for PortHeloDoor6PathInterpolatorOut node:  [from PortHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort6.set_translation ] -->
                                   <PositionInterpolator DEF='PortHeloDoor6PathInterpolatorOutkey='0 .45 .75 .90 .98 .99 1keyValue='0 .5 0 0 1.5 0 0 2.5 0 0 3.5 0 0 4.5 0 0 5.5 0 0 5.61 0'/>
388 
                                   <!-- ROUTE information for PortHeloDoor6OrientationInterpolatorOut node:  [from PortHeloDoorClockOut.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort6.set_rotation ] -->
                                   <OrientationInterpolator DEF='PortHeloDoor6OrientationInterpolatorOutkey='0 .45 .75 .90 .98 .99 1keyValue='1 0 0 0 1 0 0 .2 1 0 0 .4 1 0 0 .8 1 0 0 1.10 1 0 0 1.4 1 0 0 1.71'/>
389                                     <!-- STBD Helo Door Clock to movement -->
390                                     < ROUTE  fromNode='PortHeloDoorClockOut' fromField='fraction_changed' toNode='PortHeloDoor1PathInterpolatorOut' toField='set_fraction'/>
391                                     < ROUTE  fromNode='PortHeloDoorClockOut' fromField='fraction_changed' toNode='PortHeloDoor1OrientationInterpolatorOut' toField='set_fraction'/>
392                                     < ROUTE  fromNode='PortHeloDoorClockOut' fromField='fraction_changed' toNode='PortHeloDoor2PathInterpolatorOut' toField='set_fraction'/>
393                                     < ROUTE  fromNode='PortHeloDoorClockOut' fromField='fraction_changed' toNode='PortHeloDoor2OrientationInterpolatorOut' toField='set_fraction'/>
394                                     < ROUTE  fromNode='PortHeloDoorClockOut' fromField='fraction_changed' toNode='PortHeloDoor3PathInterpolatorOut' toField='set_fraction'/>
395                                     < ROUTE  fromNode='PortHeloDoorClockOut' fromField='fraction_changed' toNode='PortHeloDoor3OrientationInterpolatorOut' toField='set_fraction'/>
396                                     < ROUTE  fromNode='PortHeloDoorClockOut' fromField='fraction_changed' toNode='PortHeloDoor4PathInterpolatorOut' toField='set_fraction'/>
397                                     < ROUTE  fromNode='PortHeloDoorClockOut' fromField='fraction_changed' toNode='PortHeloDoor4OrientationInterpolatorOut' toField='set_fraction'/>
398                                     < ROUTE  fromNode='PortHeloDoorClockOut' fromField='fraction_changed' toNode='PortHeloDoor5PathInterpolatorOut' toField='set_fraction'/>
399                                     < ROUTE  fromNode='PortHeloDoorClockOut' fromField='fraction_changed' toNode='PortHeloDoor5OrientationInterpolatorOut' toField='set_fraction'/>
400                                     < ROUTE  fromNode='PortHeloDoorClockOut' fromField='fraction_changed' toNode='PortHeloDoor6PathInterpolatorOut' toField='set_fraction'/>
401                                     < ROUTE  fromNode='PortHeloDoorClockOut' fromField='fraction_changed' toNode='PortHeloDoor6OrientationInterpolatorOut' toField='set_fraction'/>
402                                     <!-- STBD Helo Door movement to geometry -->
403                                     < ROUTE  fromNode='PortHeloDoor1PathInterpolatorOut' fromField='value_changed' toNode='HangerDoorPort1' toField='set_translation'/>
404                                     < ROUTE  fromNode='PortHeloDoor1OrientationInterpolatorOut' fromField='value_changed' toNode='HangerDoorPort1' toField='set_rotation'/>
405                                     < ROUTE  fromNode='PortHeloDoor2PathInterpolatorOut' fromField='value_changed' toNode='HangerDoorPort2' toField='set_translation'/>
406                                     < ROUTE  fromNode='PortHeloDoor2OrientationInterpolatorOut' fromField='value_changed' toNode='HangerDoorPort2' toField='set_rotation'/>
407                                     < ROUTE  fromNode='PortHeloDoor3PathInterpolatorOut' fromField='value_changed' toNode='HangerDoorPort3' toField='set_translation'/>
408                                     < ROUTE  fromNode='PortHeloDoor3OrientationInterpolatorOut' fromField='value_changed' toNode='HangerDoorPort3' toField='set_rotation'/>
409                                     < ROUTE  fromNode='PortHeloDoor4PathInterpolatorOut' fromField='value_changed' toNode='HangerDoorPort4' toField='set_translation'/>
410                                     < ROUTE  fromNode='PortHeloDoor4OrientationInterpolatorOut' fromField='value_changed' toNode='HangerDoorPort4' toField='set_rotation'/>
411                                     < ROUTE  fromNode='PortHeloDoor5PathInterpolatorOut' fromField='value_changed' toNode='HangerDoorPort5' toField='set_translation'/>
412                                     < ROUTE  fromNode='PortHeloDoor5OrientationInterpolatorOut' fromField='value_changed' toNode='HangerDoorPort5' toField='set_rotation'/>
413                                     < ROUTE  fromNode='PortHeloDoor6PathInterpolatorOut' fromField='value_changed' toNode='HangerDoorPort6' toField='set_translation'/>
414                                     < ROUTE  fromNode='PortHeloDoor6OrientationInterpolatorOut' fromField='value_changed' toNode='HangerDoorPort6' toField='set_rotation'/>
415                                     <!-- STBD Helo Door Sensor to clock -->
416                                     < ROUTE  fromNode='PortHeloDoorTouchSensor' fromField='touchTime' toNode='PortHeloDoorClockOut' toField='set_startTime'/>
417                                </Group>
418                                <Group DEF='PortHangerDoorsDown'>
419                                     <Transform translation='0 5.75 0'>
420                                          <Shape DEF='PortHangerDoorTouchSensorDn'>
421                                               <Appearance>
422                                                    <Material USE='Transparent'/>
423                                               </Appearance>
424                                               <Box size='5 1 1.2'/>
425                                          </Shape>
426                                     </Transform>
427 
                                   <!-- ROUTE information for PortHeloDoorTouchSensorDown node:  [from touchTime to PortHeloDoorClockDown.set_startTime ] [from isActive to PortHeloDoorDown.set_boolean ] -->
                                   <TouchSensor DEF='PortHeloDoorTouchSensorDowndescription='LowerPortHeloDoor'/>
428 
429 
                                   <!-- ROUTE information for PortHeloDoor1PathInterpolatorDown node:  [from PortHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort1.set_translation ] -->
                                   <PositionInterpolator DEF='PortHeloDoor1PathInterpolatorDownkey='0 1keyValue='0 5.95 0 0 5.5 0'/>
430 
                                   <!-- ROUTE information for PortHeloDoor1OrientationInterpolatorDown node:  [from PortHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort1.set_rotation ] -->
                                   <OrientationInterpolator DEF='PortHeloDoor1OrientationInterpolatorDownkey='0 1keyValue='1 0 0 -1.43 1 0 0 0'/>
431 
                                   <!-- ROUTE information for PortHeloDoor2PathInterpolatorDown node:  [from PortHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort2.set_translation ] -->
                                   <PositionInterpolator DEF='PortHeloDoor2PathInterpolatorDownkey='0 .14 1keyValue='0 5.88 0 0 5.5 0 0 4.5 0'/>
432 
                                   <!-- ROUTE information for PortHeloDoor2OrientationInterpolatorDown node:  [from PortHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort2.set_rotation ] -->
                                   <OrientationInterpolator DEF='PortHeloDoor2OrientationInterpolatorDownkey='0 .14 1keyValue='1 0 0 1.71 1 0 0 1.3 1 0 0 0'/>
433 
                                   <!-- ROUTE information for PortHeloDoor3PathInterpolatorDown node:  [from PortHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort3.set_translation ] -->
                                   <PositionInterpolator DEF='PortHeloDoor3PathInterpolatorDownkey='0 .08 .55 1keyValue='0 5.81 0 0 5.5 0 0 4.5 0 0 3.5 0'/>
434 
                                   <!-- ROUTE information for PortHeloDoor3OrientationInterpolatorDown node:  [from PortHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort3.set_rotation ] -->
                                   <OrientationInterpolator DEF='PortHeloDoor3OrientationInterpolatorDownkey='0 .6 .95 1keyValue='1 0 0 -1.43 1 0 0 -1 1 0 0 -.6 1 0 0 0'/>
435 
                                   <!-- ROUTE information for PortHeloDoor4PathInterpolatorDown node:  [from PortHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort4.set_translation ] -->
                                   <PositionInterpolator DEF='PortHeloDoor4PathInterpolatorDownkey='0 .06 .4 .75 1keyValue='0 5.74 0 0 5.5 0 0 4.5 0 0 3.5 0 0 2.5 0'/>
436 
                                   <!-- ROUTE information for PortHeloDoor4OrientationInterpolatorDown node:  [from PortHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort4.set_rotation ] -->
                                   <OrientationInterpolator DEF='PortHeloDoor4OrientationInterpolatorDownkey='0 .5 .86 .95 1keyValue='1 0 0 1.71 1 0 0 1.10 1 0 0 .8 1 0 0 .4 1 0 0 0'/>
437 
                                   <!-- ROUTE information for PortHeloDoor5PathInterpolatorDown node:  [from PortHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort5.set_translation ] -->
                                   <PositionInterpolator DEF='PortHeloDoor5PathInterpolatorDownkey='0 .04 .3 .55 .85 1keyValue='0 5.67 0 0 5.5 0 0 4.5 0 0 3.5 0 0 2.5 0 0 1.5 0'/>
438 
                                   <!-- ROUTE information for PortHeloDoor5OrientationInterpolatorDown node:  [from PortHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort5.set_rotation ] -->
                                   <OrientationInterpolator DEF='PortHeloDoor5OrientationInterpolatorDownkey='0 .45 .80 .94 .99 1keyValue='1 0 0 -1.43 1 0 0 -1 1 0 0 -.6 1 0 0 -.4 1 0 0 -.2 1 0 0 0'/>
439 
                                   <!-- ROUTE information for PortHeloDoor6PathInterpolatorDown node:  [from PortHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort6.set_translation ] -->
                                   <PositionInterpolator DEF='PortHeloDoor6PathInterpolatorDownkey='0 .03 .25 .45 .68 .9 1keyValue='0 5.61 0 0 5.5 0 0 4.5 0 0 3.5 0 0 2.5 0 0 1.5 0 0 .5 0'/>
440 
                                   <!-- ROUTE information for PortHeloDoor6OrientationInterpolatorDown node:  [from PortHeloDoorClockDown.fraction_changed to set_fraction ] [from value_changed to HangerDoorPort6.set_rotation ] -->
                                   <OrientationInterpolator DEF='PortHeloDoor6OrientationInterpolatorDownkey='0 .45 .75 .8 .93 .98 1keyValue='1 0 0 1.71 1 0 0 1.4 1 0 0 1.1 1 0 0 .8 1 0 0 .4 1 0 0 .2 1 0 0 0'/>
441                                     <!-- Port Helo Door Clock to movement -->
442                                     < ROUTE  fromNode='PortHeloDoorClockDown' fromField='fraction_changed' toNode='PortHeloDoor1PathInterpolatorDown' toField='set_fraction'/>
443                                     < ROUTE  fromNode='PortHeloDoorClockDown' fromField='fraction_changed' toNode='PortHeloDoor1OrientationInterpolatorDown' toField='set_fraction'/>
444                                     < ROUTE  fromNode='PortHeloDoorClockDown' fromField='fraction_changed' toNode='PortHeloDoor2PathInterpolatorDown' toField='set_fraction'/>
445                                     < ROUTE  fromNode='PortHeloDoorClockDown' fromField='fraction_changed' toNode='PortHeloDoor2OrientationInterpolatorDown' toField='set_fraction'/>
446                                     < ROUTE  fromNode='PortHeloDoorClockDown' fromField='fraction_changed' toNode='PortHeloDoor3PathInterpolatorDown' toField='set_fraction'/>
447                                     < ROUTE  fromNode='PortHeloDoorClockDown' fromField='fraction_changed' toNode='PortHeloDoor3OrientationInterpolatorDown' toField='set_fraction'/>
448                                     < ROUTE  fromNode='PortHeloDoorClockDown' fromField='fraction_changed' toNode='PortHeloDoor4PathInterpolatorDown' toField='set_fraction'/>
449                                     < ROUTE  fromNode='PortHeloDoorClockDown' fromField='fraction_changed' toNode='PortHeloDoor4OrientationInterpolatorDown' toField='set_fraction'/>
450                                     < ROUTE  fromNode='PortHeloDoorClockDown' fromField='fraction_changed' toNode='PortHeloDoor5PathInterpolatorDown' toField='set_fraction'/>
451                                     < ROUTE  fromNode='PortHeloDoorClockDown' fromField='fraction_changed' toNode='PortHeloDoor5OrientationInterpolatorDown' toField='set_fraction'/>
452                                     < ROUTE  fromNode='PortHeloDoorClockDown' fromField='fraction_changed' toNode='PortHeloDoor6PathInterpolatorDown' toField='set_fraction'/>
453                                     < ROUTE  fromNode='PortHeloDoorClockDown' fromField='fraction_changed' toNode='PortHeloDoor6OrientationInterpolatorDown' toField='set_fraction'/>
454                                     <!-- STBD Helo Door movement to geometry -->
455                                     < ROUTE  fromNode='PortHeloDoor1PathInterpolatorDown' fromField='value_changed' toNode='HangerDoorPort1' toField='set_translation'/>
456                                     < ROUTE  fromNode='PortHeloDoor1OrientationInterpolatorDown' fromField='value_changed' toNode='HangerDoorPort1' toField='set_rotation'/>
457                                     < ROUTE  fromNode='PortHeloDoor2PathInterpolatorDown' fromField='value_changed' toNode='HangerDoorPort2' toField='set_translation'/>
458                                     < ROUTE  fromNode='PortHeloDoor2OrientationInterpolatorDown' fromField='value_changed' toNode='HangerDoorPort2' toField='set_rotation'/>
459                                     < ROUTE  fromNode='PortHeloDoor3PathInterpolatorDown' fromField='value_changed' toNode='HangerDoorPort3' toField='set_translation'/>
460                                     < ROUTE  fromNode='PortHeloDoor3OrientationInterpolatorDown' fromField='value_changed' toNode='HangerDoorPort3' toField='set_rotation'/>
461                                     < ROUTE  fromNode='PortHeloDoor4PathInterpolatorDown' fromField='value_changed' toNode='HangerDoorPort4' toField='set_translation'/>
462                                     < ROUTE  fromNode='PortHeloDoor4OrientationInterpolatorDown' fromField='value_changed' toNode='HangerDoorPort4' toField='set_rotation'/>
463                                     < ROUTE  fromNode='PortHeloDoor5PathInterpolatorDown' fromField='value_changed' toNode='HangerDoorPort5' toField='set_translation'/>
464                                     < ROUTE  fromNode='PortHeloDoor5OrientationInterpolatorDown' fromField='value_changed' toNode='HangerDoorPort5' toField='set_rotation'/>
465                                     < ROUTE  fromNode='PortHeloDoor6PathInterpolatorDown' fromField='value_changed' toNode='HangerDoorPort6' toField='set_translation'/>
466                                     < ROUTE  fromNode='PortHeloDoor6OrientationInterpolatorDown' fromField='value_changed' toNode='HangerDoorPort6' toField='set_rotation'/>
467                                     <!-- STBD Helo Door Sensor to clock -->
468                                     < ROUTE  fromNode='PortHeloDoorTouchSensorDown' fromField='touchTime' toNode='PortHeloDoorClockDown' toField='set_startTime'/>
469                                </Group>
470                           </Switch>
471                      </Transform>
472                      <Group DEF='PortHeloDoorAnimationControl'>
473 
                         <!-- ROUTE information for PortHeloDoorDown node:  [from PortHeloDoorTouchSensorDown.isActive to set_boolean ] [from triggerValue to PortHeloDoorSwitch.whichChoice ] -->
                         <IntegerTrigger DEF='PortHeloDoorDownintegerKey='0'/>
474 
                         <!-- ROUTE information for PortHeloDoorUp node:  [from PortHeloDoorTouchSensor.isActive to set_boolean ] [from triggerValue to PortHeloDoorSwitch.whichChoice ] -->
                         <IntegerTrigger DEF='PortHeloDoorUpintegerKey='1'/>
475                           < ROUTE  fromNode='PortHeloDoorTouchSensor' fromField='isActive' toNode='PortHeloDoorUp' toField='set_boolean'/>
476                           < ROUTE  fromNode='PortHeloDoorTouchSensorDown' fromField='isActive' toNode='PortHeloDoorDown' toField='set_boolean'/>
477                           < ROUTE  fromNode='PortHeloDoorUp' fromField='triggerValue' toNode='PortHeloDoorSwitch' toField='whichChoice'/>
478                           < ROUTE  fromNode='PortHeloDoorDown' fromField='triggerValue' toNode='PortHeloDoorSwitch' toField='whichChoice'/>
479                      </Group>
480                 </Group>
481                 <Group DEF='THREEGTG'>
482                      <Transform DEF='STACKtranslation='-3 7.4 -27'>
483                           <Transform>
484                                <Shape>
485                                     <Appearance>
486 
                                        <!-- Material STACKCOLOR is a DEF node that has 1 USE node: USE_1 -->
                                        <Material DEF='STACKCOLORdiffuseColor='.3 .3 .3'/>
487                                     </Appearance>
488                                     <Cylinder bottom='falseheight='1.2radius='.75'/>
489                                </Shape>
490                           </Transform>
491                           <Transform translation='0 .6 0'>
492                                <Shape>
493                                     <Appearance>
494                                          <Material USE='STACKCOLOR'/>
495                                     </Appearance>
496                                     <Cylinder bottom='falseheight='1'/>
497                                </Shape>
498                           </Transform>
499                      </Transform>
500                 </Group>
501                 <Group DEF='BlastDeflector'>
502                      <Transform translation='0 7 -25'>
503                           <Shape>
504                                <Extrusion crossSection='-3.35 0 -3 1.2 3 1.2 3.35 0 -3.35 0orientation='1 0 0 -.1 1 0 0 .1spine='0 0 0 0 0 -.3'/>
505                                <Appearance USE='HazeGray'/>
506                           </Shape>
507                      </Transform>
508                 </Group>
509                 <Group DEF='JP5Barn'>
510                      <Transform translation='0 0 -21.5'>
511                           <Shape>
512                                <Extrusion crossSection='-2.5 0 -2.3 2 2.3 2 2.5 0 -2.5 0orientation='1 0 0 -.1 1 0 0 0scale='.9 .7 1 1spine='0 0 0 0 0 -2'/>
513                                <Appearance USE='HazeGray'/>
514                           </Shape>
515                      </Transform>
516                 </Group>
517                 <Group DEF='LSOShack'>
518                      <Transform translation='6.75 0 -10'>
519                           <Shape>
520                                <Extrusion crossSection='-.75 0 -.7 .5 .7 .5 .75 0 -.7 0orientation='1 0 0 -.1 1 0 0 .1scale='1 1 1 1spine='0 0 0 0 0 -2'/>
521                                <Appearance USE='HazeGray'/>
522                           </Shape>
523                      </Transform>
524                      <Transform DEF='Aftrotation='1 0 0 -.1translation='6.75 .25 -10.02'>
525 
                         <!-- Shape WindowPane is a DEF node that has 1 USE node: USE_1 -->
                         <Shape DEF='WindowPane'>
526 
                              <!-- Appearance WindowColor is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                              <Appearance DEF='WindowColor'>
527                                     <Material diffuseColor='0.00 0.40 0.80'/>
528                                </Appearance>
529                                <Box size='1.3 .3 .01'/>
530                           </Shape>
531                      </Transform>
532                      <Transform DEF='FWDrotation='1 0 0 .1translation='6.75 .25 -11.98'>
533                           <Shape USE='WindowPane'/>
534                      </Transform>
535                      <Transform DEF='Portrotation='0 0 1 -.1translation='6.02 .25 -11'>
536                           <Shape DEF='WindowPanePort'>
537                                <Appearance USE='WindowColor'/>
538                                <Box size='.01 .3 1.8'/>
539                           </Shape>
540                      </Transform>
541                 </Group>
542                 <Group DEF='HSOShack'>
543                      <Transform translation='1.5 5.5 -23.2'>
544                           <Shape>
545                                <Extrusion crossSection='-.75 0 -.7 .1 .7 .1 .75 0 .5 -1 -.5 -1 -.75 0orientation='1 0 0 .38 1 0 0 0scale='.8 .8 1 1.3spine='0 0 0 0 0 -.5'/>
546                                <Appearance USE='HazeGray'/>
547                           </Shape>
548                      </Transform>
549                      <Transform DEF='AftHSOrotation='1 0 0 .37translation='1.5 4.9 -23.43'>
550                           <Shape DEF='WindowPaneHSO'>
551                                <Appearance USE='WindowColor'/>
552                                <Box size='.6 1.3 .01'/>
553                           </Shape>
554                      </Transform>
555                 </Group>
556            </Group>
557       </Scene>
558  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: Aft, AftBulkhead, AftHSO, BlastDeflector, Deck, DeckAssembly, FlightDeckMarkings, FLTDECK, ForwardBulkhead, FWD, HangerDoor, HangerDoorPort1, HangerDoorPort2, HangerDoorPort3, HangerDoorPort4, HangerDoorPort5, HangerDoorPort6, HangerDoorSTBD1, HangerDoorSTBD2, HangerDoorSTBD3, HangerDoorSTBD4, HangerDoorSTBD5, HangerDoorSTBD6, HangerOverhead, HazeGray, HeloDoorFrame, HeloHanger, HeloHangerFacilities, HSOShack, In, JP5Barn, LSOShack, NONSKID, Out, Port, PortHangerDoorsDown, PortHangerDoorsUp, PortHangerDoorTouchSensor1, PortHangerDoorTouchSensorDn, PortHeloDoor, PortHeloDoor1, PortHeloDoor1OrientationInterpolatorDown, PortHeloDoor1OrientationInterpolatorOut, PortHeloDoor1PathInterpolatorDown, PortHeloDoor1PathInterpolatorOut, PortHeloDoor2OrientationInterpolatorDown, PortHeloDoor2OrientationInterpolatorOut, PortHeloDoor2PathInterpolatorDown, PortHeloDoor2PathInterpolatorOut, PortHeloDoor3OrientationInterpolatorDown, PortHeloDoor3OrientationInterpolatorOut, PortHeloDoor3PathInterpolatorDown, PortHeloDoor3PathInterpolatorOut, PortHeloDoor4OrientationInterpolatorDown, PortHeloDoor4OrientationInterpolatorOut, PortHeloDoor4PathInterpolatorDown, PortHeloDoor4PathInterpolatorOut, PortHeloDoor5OrientationInterpolatorDown, PortHeloDoor5OrientationInterpolatorOut, PortHeloDoor5PathInterpolatorDown, PortHeloDoor5PathInterpolatorOut, PortHeloDoor6OrientationInterpolatorDown, PortHeloDoor6OrientationInterpolatorOut, PortHeloDoor6PathInterpolatorDown, PortHeloDoor6PathInterpolatorOut, PortHeloDoorAnimationControl, PortHeloDoorClockDown, PortHeloDoorClockOut, PortHeloDoorDown, PortHeloDoorSwitch, PortHeloDoorTouchSensor, PortHeloDoorTouchSensorDown, PortHeloDoorUp, PortIn, PortOut, PortRast, PortRastAnimationControl, PortRastChoice, PortRASTClockIn, PortRASTClockOut, PortRastIn, PortRastOrientationInterpolatorIn, PortRastOrientationInterpolatorOut, PortRastOut, PortRASTPathInterpolatorIn, PortRASTPathInterpolatorOut, PortRastTouchSensor1, PortRastTouchSensorIn, PortRastTouchSensorOut, PortSideCenterLineBulkhead, PortSideExteriorBulkhead, PortSideRast, PortSideRastTrack, RastChoice, RastIn, RastOut, STACK, STACKCOLOR, StarboardHeloDoor, StarboardRast, StarboardSideCenterLineBulkhead, StarboardSideExteriorBulkhead, StarboardSideRast, StarboardSideRastTrack, STBDHangerDoorsDown, STBDHangerDoorsUp, STBDHangerDoorTouchSensor1, STBDHangerDoorTouchSensorDn, STBDHeloDoor, STBDHeloDoor1OrientationInterpolatorDown, STBDHeloDoor1OrientationInterpolatorOut, STBDHeloDoor1PathInterpolatorDown, STBDHeloDoor1PathInterpolatorOut, STBDHeloDoor2OrientationInterpolatorDown, STBDHeloDoor2OrientationInterpolatorOut, STBDHeloDoor2PathInterpolatorDown, STBDHeloDoor2PathInterpolatorOut, STBDHeloDoor3OrientationInterpolatorDown, STBDHeloDoor3OrientationInterpolatorOut, STBDHeloDoor3PathInterpolatorDown, STBDHeloDoor3PathInterpolatorOut, STBDHeloDoor4OrientationInterpolatorDown, STBDHeloDoor4OrientationInterpolatorOut, STBDHeloDoor4PathInterpolatorDown, STBDHeloDoor4PathInterpolatorOut, STBDHeloDoor5OrientationInterpolatorDown, STBDHeloDoor5OrientationInterpolatorOut, STBDHeloDoor5PathInterpolatorDown, STBDHeloDoor5PathInterpolatorOut, STBDHeloDoor6OrientationInterpolatorDown, STBDHeloDoor6OrientationInterpolatorOut, STBDHeloDoor6PathInterpolatorDown, STBDHeloDoor6PathInterpolatorOut, STBDHeloDoorAnimationControl, STBDHeloDoorClockDown, STBDHeloDoorClockOut, STBDHeloDoorDown, STBDHeloDoorSwitch, STBDHeloDoorTouchSensor, STBDHeloDoorTouchSensorDown, STBDHeloDoorUp, STBDRastAnimationControl, STBDRASTClockIn, STBDRASTClockOut, STBDRastOrientationInterpolatorIn, STBDRastOrientationInterpolatorOut, STBDRASTPathInterpolatorIn, STBDRASTPathInterpolatorOut, STBDRastTouchSensor1, STBDRastTouchSensorIn, STBDRastTouchSensorOut, THREEGTG, Transparent, WindowColor, WindowPane, WindowPaneHSO, WindowPanePort

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3
-->
X3D Tooltips element index: Appearance, Box, Coordinate, Cylinder, Extrusion, Group, head, ImageTexture, IndexedFaceSet, Inline, IntegerTrigger, Material, meta, OrientationInterpolator, PositionInterpolator, ROUTE, Scene, Shape, Sphere, Switch, TextureCoordinate, TimeSensor, TouchSensor, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

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

PortHeloDoorTouchSensor
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
PortHeloDoorClockOut
TimeSensor
set_startTime
SFTime
PortHeloDoorTouchSensor
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
PortHeloDoorUp
IntegerTrigger
set_boolean
SFBool
then
 
 
 
PortHeloDoorUp
IntegerTrigger
triggerValue
SFInt32

ROUTE
event to
(2)
PortHeloDoorSwitch
Switch
whichChoice
SFInt32

PortHeloDoorTouchSensorDown
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
PortHeloDoorClockDown
TimeSensor
set_startTime
SFTime
PortHeloDoorTouchSensorDown
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
PortHeloDoorDown
IntegerTrigger
set_boolean
SFBool
then
 
 
 
PortHeloDoorDown
IntegerTrigger
triggerValue
SFInt32

ROUTE
event to
(2)
PortHeloDoorSwitch
Switch
whichChoice
SFInt32

PortRastTouchSensorIn
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
PortRASTClockIn
TimeSensor
set_startTime
SFTime
then
 
 
 
PortRASTClockIn
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
PortRASTPathInterpolatorIn
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
PortRASTPathInterpolatorIn
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
PortSideRast
Transform
translation
SFVec3f
  then
 
 
 
PortRASTClockIn
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
PortRastOrientationInterpolatorIn
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
PortRastOrientationInterpolatorIn
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
PortSideRast
Transform
set_rotation
SFRotation
PortRastTouchSensorIn
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
PortRASTClockIn
TimeSensor
set_stopTime
SFTime
then
 
 
 
PortRASTClockIn
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
PortRASTPathInterpolatorIn
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
PortRASTPathInterpolatorIn
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
PortSideRast
Transform
translation
SFVec3f
  then
 
 
 
PortRASTClockIn
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
PortRastOrientationInterpolatorIn
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
PortRastOrientationInterpolatorIn
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
PortSideRast
Transform
set_rotation
SFRotation
PortRastTouchSensorIn
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
PortRastIn
IntegerTrigger
set_boolean
SFBool
then
 
 
 
PortRastIn
IntegerTrigger
triggerValue
SFInt32

ROUTE
event to
(2)
PortRastChoice
Switch
whichChoice
SFInt32

PortRastTouchSensorOut
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
PortRASTClockOut
TimeSensor
set_startTime
SFTime
then
 
 
 
PortRASTClockOut
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
PortRASTPathInterpolatorOut
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
PortRASTPathInterpolatorOut
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
PortSideRast
Transform
translation
SFVec3f
  then
 
 
 
PortRASTClockOut
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
PortRastOrientationInterpolatorOut
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
PortRastOrientationInterpolatorOut
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
PortSideRast
Transform
set_rotation
SFRotation
PortRastTouchSensorOut
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
PortRastOut
IntegerTrigger
set_boolean
SFBool
then
 
 
 
PortRastOut
IntegerTrigger
triggerValue
SFInt32

ROUTE
event to
(2)
PortRastChoice
Switch
whichChoice
SFInt32

STBDHeloDoorTouchSensor
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
STBDHeloDoorClockOut
TimeSensor
set_startTime
SFTime
STBDHeloDoorTouchSensor
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
STBDHeloDoorUp
IntegerTrigger
set_boolean
SFBool
then
 
 
 
STBDHeloDoorUp
IntegerTrigger
triggerValue
SFInt32

ROUTE
event to
(2)
STBDHeloDoorSwitch
Switch
whichChoice
SFInt32

STBDHeloDoorTouchSensorDown
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
STBDHeloDoorClockDown
TimeSensor
set_startTime
SFTime
STBDHeloDoorTouchSensorDown
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
STBDHeloDoorDown
IntegerTrigger
set_boolean
SFBool
then
 
 
 
STBDHeloDoorDown
IntegerTrigger
triggerValue
SFInt32

ROUTE
event to
(2)
STBDHeloDoorSwitch
Switch
whichChoice
SFInt32

STBDRastTouchSensorIn
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
STBDRASTClockIn
TimeSensor
set_startTime
SFTime
then
 
 
 
STBDRASTClockIn
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
STBDRASTPathInterpolatorIn
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
STBDRASTPathInterpolatorIn
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
StarboardSideRast
Transform
translation
SFVec3f
  then
 
 
 
STBDRASTClockIn
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
STBDRastOrientationInterpolatorIn
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
STBDRastOrientationInterpolatorIn
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
StarboardSideRast
Transform
set_rotation
SFRotation
STBDRastTouchSensorIn
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
STBDRASTClockIn
TimeSensor
set_stopTime
SFTime
then
 
 
 
STBDRASTClockIn
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
STBDRASTPathInterpolatorIn
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
STBDRASTPathInterpolatorIn
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
StarboardSideRast
Transform
translation
SFVec3f
  then
 
 
 
STBDRASTClockIn
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
STBDRastOrientationInterpolatorIn
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
STBDRastOrientationInterpolatorIn
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
StarboardSideRast
Transform
set_rotation
SFRotation
STBDRastTouchSensorIn
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
RastIn
IntegerTrigger
set_boolean
SFBool
then
 
 
 
RastIn
IntegerTrigger
triggerValue
SFInt32

ROUTE
event to
(2)
RastChoice
Switch
whichChoice
SFInt32

STBDRastTouchSensorOut
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
STBDRASTClockOut
TimeSensor
set_startTime
SFTime
then
 
 
 
STBDRASTClockOut
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
STBDRASTPathInterpolatorOut
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
STBDRASTPathInterpolatorOut
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
StarboardSideRast
Transform
translation
SFVec3f
  then
 
 
 
STBDRASTClockOut
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
STBDRastOrientationInterpolatorOut
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
STBDRastOrientationInterpolatorOut
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
StarboardSideRast
Transform
set_rotation
SFRotation
STBDRastTouchSensorOut
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
RastOut
IntegerTrigger
set_boolean
SFBool
then
 
 
 
RastOut
IntegerTrigger
triggerValue
SFInt32

ROUTE
event to
(2)
RastChoice
Switch
whichChoice
SFInt32


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/ShipsMilitary/DDG51FlightIIaUnitedStates/HeloHangerIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Savage/ShipsMilitary/DDG51FlightIIaUnitedStates/HeloHanger.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)
-->

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