X3D Model Documentation: BlueAngelF18Example.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='title' content='BlueAngelF18Example.x3d'/>
  6            <meta name='description' content='The BlueAngelF18 example model integrated with ExternPrototypes - clicking any axle starts animation, such as, raising or lowering landing gears simultaneously. Clicking cockpit canopy makes it open or close.'/>
  7            <meta name='creator' content='Etsuko Lippi'/>
  8            <meta name='created' content='18 October 2001'/>
  9            <meta name='modified' content='28 January 2024'/>
 10            <meta name='Image' content='blueangels.jpg'/>
 11            <meta name='Image' content='https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/blueangels.jpg'/>
 12            <meta name='reference' content='http://www.navy.com/blueangels'/>
 13            <meta name='reference' content='http://www.BlueAngels.navy.mil'/>
 14            <meta name='reference' content='https://www.fas.org/man/dod-101/sys/ac/f-18.htm'/>
 15            <meta name='reference' content='http://www.BlueAngels.org'/>
 16            <meta name='reference' content='http://www.chinfo.navy.mil/navpalib/aircraft/b-angels/blues.html'/>
 17            <meta name='reference' content='http://www.danshistory.com/fa18.html'/>
 18            <meta name='reference' content='http://www.csd.uwo.ca/~pettypi/elevon/baugher_us/f018.html'/>
 19            <meta name='reference' content='https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/Blue_Angels.jpg'/>
 20            <meta name='reference' content='https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/Blue_Angels_bottom.jpg'/>
 21            <meta name='generator' content='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
 22            <meta name='identifier' content='https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/BlueAngelF18Example.x3d'/>
 23            <meta name='subject' content='Aircraft, F18, Blue Angel example'/>
 24            <meta name='license' content='../../license.html'/>
 25       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: Animation, Canopy, CanopyExampleSelectionScript, CanopyTouchSensor, ConsoleOutputViewPositionOrientation, CP, ExampleSelectionScript, GearUPDown, GearUpDownTouchSensor, High, LODHigh, LODHigh2, LODLow, LODMedium, Low, Medium, TwinVerticalTails, Viewpoints, WP, WPLeft, WPRight

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4, Viewpoint_5, Viewpoint_6, Viewpoint_7

Index for ExternProtoDeclare definitions: Canopy, ViewPositionOrientation, WheelsFront, WheelsRearLeft, WheelsRearRight
-->
 26       <Scene>
 27            <ExternProtoDeclare name='ViewPositionOrientation' appinfo='ViewPositionOrientation provides provides console output of local position and orientation as user navigates'   url=' "../../Tools/Authoring/ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "https://savage.nps.edu/Savage/Tools/Authoring/ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "../../Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation" "https://savage.nps.edu/Savage/Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation" '>
 28                 <field name='enabled' type='SFBool' accessType='inputOutput'
                appinfo='Whether or not ViewPositionOrientation sends output to console.'/>
 29                 <field name='traceEnabled' type='SFBool' accessType='initializeOnly'
                appinfo='Output internal trace messages for debugging this node - developer use only can be ignored.'/>
 30                 <field name='set_traceEnabled' type='SFBool' accessType='inputOnly'
                appinfo='Ability to turn output tracing on/off at runtime.'/>
 31                 <field name='position_changed' type='SFVec3f' accessType='outputOnly'
                appinfo='Output local position.'/>
 32                 <field name='orientation_changed' type='SFRotation' accessType='outputOnly'
                appinfo='Output local orientation.'/>
 33                 <field name='outputViewpointString' type='MFString' accessType='outputOnly'
                appinfo='MFString value of new Viewpoint'/>
 34            </ExternProtoDeclare>
 35            <ExternProtoDeclare name='WheelsRearRight'   url=' "WheelsRearRightPrototype.x3d#WheelsRearRight" "../../AircraftFixedWing/F18BlueAngelUnitedStates/WheelsRearRightPrototype.x3d#WheelsRearRight" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WheelsRearRightPrototype.x3d#WheelsRearRight" "../../AircraftFixedWing/F18BlueAngelUnitedStates/WheelsRearRightPrototype.wrl#WheelsRearRight" "WheelsRearRightPrototype.wrl#WheelsRearRight" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WheelsRearRightPrototype.wrl#WheelsRearRight" '>
 36                 <field name='gearup' type='SFBool' accessType='inputOnly'
                appinfo='boolean eventIn: true = wheels up false = wheels down.'/>
 37                 <field name='gearupOut' type='SFBool' accessType='outputOnly'/>
 38                 <field name='animationStartTime' type='SFTime' accessType='inputOnly'/>
 39                 <field name='traceEnabled' type='SFBool' accessType='initializeOnly'/>
 40            </ExternProtoDeclare>
 41            <ExternProtoDeclare name='WheelsRearLeft'   url=' "WheelsRearLeftPrototype.x3d#WheelsRearLeft" "../../AircraftFixedWing/F18BlueAngelUnitedStates/WheelsRearLeftPrototype.x3d#WheelsRearLeft" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WheelsRearLeftPrototype.x3d#WheelsRearLeft" "../../AircraftFixedWing/F18BlueAngelUnitedStates/WheelsRearLeftPrototype.wrl#WheelsRearLeft" "WheelsRearLeftPrototype.wrl#WheelsRearLeft" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WheelsRearLeftPrototype.wrl#WheelsRearLeft" '>
 42                 <field name='gearup' type='SFBool' accessType='inputOnly'
                appinfo='boolean eventIn: true = wheels up false = wheels down.'/>
 43                 <field name='gearupOut' type='SFBool' accessType='outputOnly'/>
 44                 <field name='animationStartTime' type='SFTime' accessType='inputOnly'/>
 45                 <field name='traceEnabled' type='SFBool' accessType='initializeOnly'/>
 46            </ExternProtoDeclare>
 47            <ExternProtoDeclare name='WheelsFront'   url=' "WheelsFrontPrototype.x3d#WheelsFront" "../../AircraftFixedWing/F18BlueAngelUnitedStates/WheelsFrontPrototype.x3d#WheelsFront" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WheelsFrontPrototype.x3d#WheelsFront" "../../AircraftFixedWing/F18BlueAngelUnitedStates/WheelsFrontPrototype.wrl#WheelsFront" "WheelsFrontPrototype.wrl#WheelsFront" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WheelsFrontPrototype.wrl#WheelsFront" '>
 48                 <field name='gearup' type='SFBool' accessType='inputOnly'
                appinfo='boolean eventIn: true = wheels up false = wheels down.'/>
 49                 <field name='gearupOut' type='SFBool' accessType='outputOnly'/>
 50                 <field name='animationStartTime' type='SFTime' accessType='inputOnly'/>
 51                 <field name='traceEnabled' type='SFBool' accessType='initializeOnly'/>
 52            </ExternProtoDeclare>
 53            <ExternProtoDeclare name='Canopy'   url=' "CanopyPrototype.x3d#Canopy" "../../AircraftFixedWing/F18BlueAngelUnitedStates/CanopyPrototype.x3d#Canopy" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/CanopyPrototype.x3d#Canopy" "../../AircraftFixedWing/F18BlueAngelUnitedStates/CanopyPrototype.wrl#Canopy" "CanopyPrototype.wrl#Canopy" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/CanopyPrototype.wrl#Canopy" '>
 54                 <field name='canopyOpen' type='SFBool' accessType='inputOnly'
                appinfo='boolean eventIn: true = canopy open false = canopy close.'/>
 55                 <field name='canopyOut' type='SFBool' accessType='outputOnly'/>
 56                 <field name='animationStartTime' type='SFTime' accessType='inputOnly'/>
 57                 <field name='traceEnabled' type='SFBool' accessType='initializeOnly'/>
 58            </ExternProtoDeclare>
 59            <NavigationInfo speed='2'/>
 60            <Background groundAngle='1.309 1.5702' groundColor='0.5 0.3 0.3 0.5 0.3 0.3 0.5 0.4 0.4' skyAngle='1.309 1.572' skyColor='0 0.2 0.7 0 0.5 1 1 1 1'/>
 61            <ProtoInstance name='ViewPositionOrientation' DEF='ConsoleOutputViewPositionOrientation'>
 62                 <fieldValue name='enabled' value='true'/>
 63            </ProtoInstance>
 64            <Viewpoint description='Blue Angel Default View' position='1.9 -.8 7.6'/>
 65            <Viewpoint description='Blue Angel View From Above' orientation='-.952 -.264 -.152 1.4741' position='.3 12.4 -4.8'/>
 66            <Viewpoint description='Blue Angel View From Bottom' orientation='.513 -.797 .319 1.3342' position='-7.1 -8.8 -2'/>
 67            <Viewpoint description='Blue Angel Front View' orientation='0.048 .998 0.049 4.6832' position='-7.2 .2 -5'/>
 68            <Viewpoint description='Blue Angel Back View' orientation='-.152 .981 .116 1.3177' position='13.4 2.1 -2.1'/>
 69            <Viewpoint description='Blue Angel Side View' orientation='-.733 .678 0.065 .3177' position='3.7 1.6 4.3'/>
 70            <Viewpoint description='Cockpit Inside Pilot View' orientation='0 1 0 1.5636' position='-.8 .6 -5'/>
 71            <LOD range='200 600 1000'>
 72                 <Group DEF='Viewpoints'>
 73                      <!-- High Resolution -->
 74                      <Group DEF='High'>
 75 
                         <!-- Group LODHigh is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                         <Group DEF='LODHigh'>
 76                                <Transform rotation='0 1 0 1.57' translation='3.595 0.1 -0.8'>
 77 
                                   <!-- ROUTE information for CP node:  [from CanopyTouchSensor.touchTime to animationStartTime ] [from CanopyExampleSelectionScript.status to canopyOpen ] -->
                                   <ProtoInstance name='Canopy' DEF='CP'>
 78                                          <fieldValue name='traceEnabled' value='true'/>
 79                                     </ProtoInstance>
 80 
                                   <!-- ROUTE information for CanopyTouchSensor node:  [from touchTime to CP.animationStartTime ] [from isActive to CanopyExampleSelectionScript.enabled ] -->
                                   <TouchSensor DEF='CanopyTouchSensor' description='canopy open/close'/>
 81                                </Transform>
 82                                <Transform rotation='0 1 -0 3.14' translation='5.7 -0.2 -5'>
 83                                     <Inline   url=' "HorizontalTailplanes.x3d" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/HorizontalTailplanes.x3d" "HorizontalTailplanes.wrl" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/HorizontalTailplanes.wrl" '/>
 84                                </Transform>
 85                                <Transform rotation='-0.69 0.70 0.19 2.78' scale='1.5 1.5 1.5' translation='5.3 -0.46 -4.3'>
 86 
                                   <!-- Inline TwinVerticalTails is a DEF node that has 1 USE node: USE_1 -->
                                   <Inline DEF='TwinVerticalTails'   url=' "TwinVerticalTails.x3d" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/TwinVerticalTails.x3d" "TwinVerticalTails.wrl" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/TwinVerticalTails.wrl" '/>
 87                                     <!-- X = -170, Y = 0, Z = 91 -->
 88                                </Transform>
 89                                <Transform rotation='-0.69 0.70 -0.19 3.51' scale='1.5 1.5 1.5' translation='5.3 -0.46 -5.7'>
 90                                     <Inline USE='TwinVerticalTails'/>
 91                                     <!-- X = -210, Y = 0, Z = 91 -->
 92                                </Transform>
 93                                <Transform>
 94                                     <Inline   url=' "AircraftFuselage.x3d" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/AircraftFuselage.x3d" "AircraftFuselage.wrl" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/AircraftFuselage.wrl" '/>
 95                                </Transform>
 96                                <Transform rotation='0 0 -1 0.07' translation='-3.0 0.39 -5'>
 97                                     <Inline   url=' "LEX.x3d" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/LEX.x3d" "LEX.wrl" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/LEX.wrl" '/>
 98                                </Transform>
 99                                <Transform rotation='0 0 1 3.14' scale='0.7 0.7 0.5' translation='-1 -0.1 -2.5'>
100                                     <Inline   url=' "Fuselage.x3d" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/Fuselage.x3d" "Fuselage.wrl" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/Fuselage.wrl" '/>
101                                </Transform>
102                           </Group>
103                           <Group DEF='LODHigh2'>
104                                <Transform scale='0.25 0.25 0.25' translation='-1.0 0.1 -5'>
105                                     <Inline   url=' "F18CockpitSeat.x3d" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/F18CockpitSeat.x3d" "F18CockpitSeat.wrl" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/F18CockpitSeat.wrl" '/>
106                                </Transform>
107                                <Transform scale='0.35 0.35 0.35' translation='-0.5 -1.25 -5.26'>
108 
                                   <!-- ROUTE information for WP node:  [from GearUpDownTouchSensor.touchTime to animationStartTime ] [from ExampleSelectionScript.status to gearup ] -->
                                   <ProtoInstance name='WheelsFront' DEF='WP'>
109                                          <fieldValue name='traceEnabled' value='true'/>
110                                     </ProtoInstance>
111                                </Transform>
112 
                              <!-- ROUTE information for GearUpDownTouchSensor node:  [from touchTime to WP.animationStartTime ] [from touchTime to WPRight.animationStartTime ] [from touchTime to WPLeft.animationStartTime ] [from isActive to ExampleSelectionScript.enabled ] -->
                              <TouchSensor DEF='GearUpDownTouchSensor' description='landing gear up/down'/>
113                                <Transform scale='0.35 0.35 0.35' translation='3.5 -1.2 -6.5'>
114 
                                   <!-- ROUTE information for WPLeft node:  [from GearUpDownTouchSensor.touchTime to animationStartTime ] [from ExampleSelectionScript.status to gearup ] -->
                                   <ProtoInstance name='WheelsRearLeft' DEF='WPLeft'>
115                                          <fieldValue name='traceEnabled' value='true'/>
116                                     </ProtoInstance>
117                                </Transform>
118                                <Transform rotation='0 1 0 3.14' scale='0.35 0.35 0.35' translation='3.5 -1.215 -3.5'>
119 
                                   <!-- ROUTE information for WPRight node:  [from GearUpDownTouchSensor.touchTime to animationStartTime ] [from ExampleSelectionScript.status to gearup ] -->
                                   <ProtoInstance name='WheelsRearRight' DEF='WPRight'>
120                                          <fieldValue name='traceEnabled' value='true'/>
121                                     </ProtoInstance>
122                                </Transform>
123                                <Transform rotation='0 0 -1 0.09' scale='0.85 0.85 0.85' translation='0.8 0.15 -1.15'>
124                                     <Inline   url=' "BlueAngelEngines.x3d" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/BlueAngelEngines.x3d" "BlueAngelEngines.wrl" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/BlueAngelEngines.wrl" '/>
125                                </Transform>
126                                <Group DEF='Animation'>
127                                     <Transform DEF='GearUPDown'>
128 
                                        <!-- ROUTE information for ExampleSelectionScript node:  [from GearUpDownTouchSensor.isActive to enabled ] [from status to WP.gearup ] [from status to WPRight.gearup ] [from status to WPLeft.gearup ] -->
                                        <Script DEF='ExampleSelectionScript'>
129                                               <field name='landed' type='SFInt32' value='-1' accessType='initializeOnly'/>
130                                               <field name='enabled' type='SFBool' accessType='inputOnly'/>
131                                               <field name='status' type='SFBool' accessType='outputOnly'/>
  <![CDATA[
                  
ecmascript:


function tracePrint (outputString)
{
	var traceEnabled = false;
	if (traceEnabled) Browser.println ('[trace] ' + outputString);
}

function enabled(value, timeStamp) {

	tracePrint('enabled = ' + value);
	if (value == true)
	{
		if (landed == -1)
		{			
                        status = false;
                        landed = 0;			
		}
                
		if (landed == 0)
		{
			if (status)
			{
				status = false;                                
			}
			else
			{
				status = true;                                				
			}
		}

                else
                {
         		landed = 0;
     			return;
                }
	}
	//print ('status = ' + status);
}

                
]]>
133                                          </Script>
134                                     </Transform>
135                                     <Transform DEF='Canopy'>
136 
                                        <!-- ROUTE information for CanopyExampleSelectionScript node:  [from CanopyTouchSensor.isActive to enabled ] [from status to CP.canopyOpen ] -->
                                        <Script DEF='CanopyExampleSelectionScript'>
137                                               <field name='landed' type='SFInt32' value='-1' accessType='initializeOnly'/>
138                                               <field name='enabled' type='SFBool' accessType='inputOnly'/>
139                                               <field name='status' type='SFBool' accessType='outputOnly'/>
  <![CDATA[
                  
ecmascript:


function tracePrint (outputString)
{
	var traceEnabled = false;
	if (traceEnabled) Browser.println ('[trace] ' + outputString);
}

function enabled(value, timeStamp) {

	tracePrint('enabled = ' + value);
	if (value == true)
	{
		if (landed == -1)
		{			
                        status = false;
                        landed = 0;			
		}
                
		if (landed == 0)
		{
			if (status)
			{
				status = false;                                
			}
			else
			{
				status = true;                               				
			}
		}

                else
                {
         		landed = 0;
     			return;
                }
	}
	//print ('status = ' + status);
}

                
]]>
141                                          </Script>
142                                     </Transform>
143                                     <!-- GearUpDown Animation -->
144                                     < ROUTE  fromNode='GearUpDownTouchSensor' fromField='touchTime' toNode='WP' toField='animationStartTime'/>
145                                     < ROUTE  fromNode='GearUpDownTouchSensor' fromField='touchTime' toNode='WPRight' toField='animationStartTime'/>
146                                     < ROUTE  fromNode='GearUpDownTouchSensor' fromField='touchTime' toNode='WPLeft' toField='animationStartTime'/>
147                                     < ROUTE  fromNode='GearUpDownTouchSensor' fromField='isActive' toNode='ExampleSelectionScript' toField='enabled'/>
148                                     < ROUTE  fromNode='ExampleSelectionScript' fromField='status' toNode='WP' toField='gearup'/>
149                                     < ROUTE  fromNode='ExampleSelectionScript' fromField='status' toNode='WPRight' toField='gearup'/>
150                                     < ROUTE  fromNode='ExampleSelectionScript' fromField='status' toNode='WPLeft' toField='gearup'/>
151                                     <!-- Canopy Animation -->
152                                     < ROUTE  fromNode='CanopyTouchSensor' fromField='touchTime' toNode='CP' toField='animationStartTime'/>
153                                     < ROUTE  fromNode='CanopyTouchSensor' fromField='isActive' toNode='CanopyExampleSelectionScript' toField='enabled'/>
154                                     < ROUTE  fromNode='CanopyExampleSelectionScript' fromField='status' toNode='CP' toField='canopyOpen'/>
155                                </Group>
156                           </Group>
157 
                         <!-- Group LODLow is a DEF node that has 1 USE node: USE_1 -->
                         <Group DEF='LODLow'>
158                                <Transform rotation='0 1 0 3.14' scale='1.1 1.1 1.1' translation='1.4 0 -5'>
159                                     <Inline   url=' "WingMain.x3d" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WingMain.x3d" "WingMain.wrl" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WingMain.wrl" '/>
160                                </Transform>
161                           </Group>
162                      </Group>
163                 </Group>
164                 <!-- Medium Resolution -->
165                 <Group DEF='Medium'>
166                      <Group USE='LODHigh'/>
167 
                    <!-- Group LODMedium is a DEF node that has 1 USE node: USE_1 -->
                    <Group DEF='LODMedium'>
168                           <Transform scale='0.35 0.35 0.35' translation='-0.5 -1.25 -5.26'>
169                                <Inline   url=' "WheelsFrontMediumLOD.x3d" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WheelsFrontMediumLOD.x3d" "WheelsFrontMediumLOD.wrl" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WheelsFrontMediumLOD.wrl" '/>
170                           </Transform>
171                           <Transform scale='0.35 0.35 0.35' translation='3.5 -1.2 -6.5'>
172                                <Inline   url=' "WheelsRearLeftMediumLOD.x3d" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WheelsRearLeftMediumLOD.x3d" "WheelsRearLeftMediumLOD.wrl" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WheelsRearLeftMediumLOD.wrl" '/>
173                           </Transform>
174                           <Transform rotation='0 1 0 3.14' scale='0.35 0.35 0.35' translation='3.5 -1.2 -3.5'>
175                                <Inline   url=' "WheelsRearRightMediumLOD.x3d" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WheelsRearRightMediumLOD.x3d" "WheelsRearRightMediumLOD.wrl" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WheelsRearRightMediumLOD.wrl" '/>
176                           </Transform>
177                           <Transform rotation='0 0 -1 0.09' scale='0.85 0.85 0.85' translation='0.8 0.15 -1.15'>
178                                <Inline   url=' "BlueAngelEnginesMediumLOD.x3d" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/BlueAngelEnginesMediumLOD.x3d" "BlueAngelEnginesMediumLOD.wrl" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/BlueAngelEnginesMediumLOD.wrl" '/>
179                           </Transform>
180                      </Group>
181                      <Group USE='LODLow'/>
182                 </Group>
183                 <!-- Low Resolution -->
184                 <Group DEF='Low'>
185                      <Group USE='LODHigh'/>
186                      <Group USE='LODMedium'/>
187                      <Transform rotation='0 1 0 3.14' scale='1.1 1.1 1.1' translation='1.4 0 -5'>
188                           <Inline   url=' "WingMainLowLOD.x3d" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WingMainLowLOD.x3d" "WingMainLowLOD.wrl" "https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/WingMainLowLOD.wrl" '/>
189                      </Transform>
190                 </Group>
191                 <WorldInfo info='"null node"'/>
192            </LOD>
193       </Scene>
194  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: Animation, Canopy, CanopyExampleSelectionScript, CanopyTouchSensor, ConsoleOutputViewPositionOrientation, CP, ExampleSelectionScript, GearUPDown, GearUpDownTouchSensor, High, LODHigh, LODHigh2, LODLow, LODMedium, Low, Medium, TwinVerticalTails, Viewpoints, WP, WPLeft, WPRight

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4, Viewpoint_5, Viewpoint_6, Viewpoint_7

Index for ExternProtoDeclare definitions: Canopy, ViewPositionOrientation, WheelsFront, WheelsRearLeft, WheelsRearRight
-->
X3D Tooltips element index: Background, ExternProtoDeclare, field, fieldValue, Group, head, Inline, LOD, meta, NavigationInfo, ProtoInstance, ROUTE, Scene, Script, TouchSensor, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

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

CanopyTouchSensor
TouchSensor
touchTime
SFTime
→
ROUTE
event to
(1)
CP
ProtoInstance
animationStartTime
SFTime
CanopyTouchSensor
TouchSensor
isActive
SFBool
→
ROUTE
event to
(1)
CanopyExampleSelectionScript
Script
enabled
SFBool
then
 
 
 
CanopyExampleSelectionScript
Script
status
SFBool
→
ROUTE
event to
(2)
CP
ProtoInstance
canopyOpen
SFBool

GearUpDownTouchSensor
TouchSensor
touchTime
SFTime
→
ROUTE
event to
(1)
WP
ProtoInstance
animationStartTime
SFTime
GearUpDownTouchSensor
TouchSensor
touchTime
SFTime
→
ROUTE
event to
(1)
WPRight
ProtoInstance
animationStartTime
SFTime
GearUpDownTouchSensor
TouchSensor
touchTime
SFTime
→
ROUTE
event to
(1)
WPLeft
ProtoInstance
animationStartTime
SFTime
GearUpDownTouchSensor
TouchSensor
isActive
SFBool
→
ROUTE
event to
(1)
ExampleSelectionScript
Script
enabled
SFBool
then
 
 
 
ExampleSelectionScript
Script
status
SFBool
→
ROUTE
event to
(2)
WP
ProtoInstance
gearup
SFBool
  then
 
 
 
ExampleSelectionScript
Script
status
SFBool
→
ROUTE
event to
(2)
WPRight
ProtoInstance
gearup
SFBool
  then
 
 
 
ExampleSelectionScript
Script
status
SFBool
→
ROUTE
event to
(2)
WPLeft
ProtoInstance
gearup
SFBool

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

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

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

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

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

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

-->
<!-- Online at
https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/BlueAngelF18ExampleIndex.html -->
<!-- Version control at
https://gitlab.nps.edu/Savage/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/BlueAngelF18Example.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode  DEF='idName' field='value'/> matches XML terminology <XmlElement  DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
    <ProtoInstance name='ProtoName'> <field name='fieldName'/> </ProtoInstance> -->

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