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='titlecontent='BlueAngelF18Example.x3d'/>
  6            <meta name='descriptioncontent='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='creatorcontent='Etsuko Lippi'/>
  8            <meta name='createdcontent='18 October 2001'/>
  9            <meta name='modifiedcontent='28 January 2024'/>
 10            <meta name='Imagecontent='blueangels.jpg'/>
 11            <meta name='Imagecontent='https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/blueangels.jpg'/>
 12            <meta name='referencecontent='http://www.navy.com/blueangels'/>
 13            <meta name='referencecontent='http://www.BlueAngels.navy.mil'/>
 14            <meta name='referencecontent='https://www.fas.org/man/dod-101/sys/ac/f-18.htm'/>
 15            <meta name='referencecontent='http://www.BlueAngels.org'/>
 16            <meta name='referencecontent='http://www.chinfo.navy.mil/navpalib/aircraft/b-angels/blues.html'/>
 17            <meta name='referencecontent='http://www.danshistory.com/fa18.html'/>
 18            <meta name='referencecontent='http://www.csd.uwo.ca/~pettypi/elevon/baugher_us/f018.html'/>
 19            <meta name='referencecontent='https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/Blue_Angels.jpg'/>
 20            <meta name='referencecontent='https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/Blue_Angels_bottom.jpg'/>
 21            <meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
 22            <meta name='identifiercontent='https://savage.nps.edu/Savage/AircraftFixedWing/F18BlueAngelUnitedStates/BlueAngelF18Example.x3d'/>
 23            <meta name='subjectcontent='Aircraft, F18, Blue Angel example'/>
 24            <meta name='licensecontent='../../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='ViewPositionOrientationappinfo='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='enabledtype='SFBoolaccessType='inputOutput'
                appinfo='Whether or not ViewPositionOrientation sends output to console.'/>
 29                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='Output internal trace messages for debugging this node - developer use only can be ignored.'/>
 30                 <field name='set_traceEnabledtype='SFBoolaccessType='inputOnly'
                appinfo='Ability to turn output tracing on/off at runtime.'/>
 31                 <field name='position_changedtype='SFVec3faccessType='outputOnly'
                appinfo='Output local position.'/>
 32                 <field name='orientation_changedtype='SFRotationaccessType='outputOnly'
                appinfo='Output local orientation.'/>
 33                 <field name='outputViewpointStringtype='MFStringaccessType='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='gearuptype='SFBoolaccessType='inputOnly'
                appinfo='boolean eventIn: true = wheels up false = wheels down.'/>
 37                 <field name='gearupOuttype='SFBoolaccessType='outputOnly'/>
 38                 <field name='animationStartTimetype='SFTimeaccessType='inputOnly'/>
 39                 <field name='traceEnabledtype='SFBoolaccessType='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='gearuptype='SFBoolaccessType='inputOnly'
                appinfo='boolean eventIn: true = wheels up false = wheels down.'/>
 43                 <field name='gearupOuttype='SFBoolaccessType='outputOnly'/>
 44                 <field name='animationStartTimetype='SFTimeaccessType='inputOnly'/>
 45                 <field name='traceEnabledtype='SFBoolaccessType='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='gearuptype='SFBoolaccessType='inputOnly'
                appinfo='boolean eventIn: true = wheels up false = wheels down.'/>
 49                 <field name='gearupOuttype='SFBoolaccessType='outputOnly'/>
 50                 <field name='animationStartTimetype='SFTimeaccessType='inputOnly'/>
 51                 <field name='traceEnabledtype='SFBoolaccessType='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='canopyOpentype='SFBoolaccessType='inputOnly'
                appinfo='boolean eventIn: true = canopy open false = canopy close.'/>
 55                 <field name='canopyOuttype='SFBoolaccessType='outputOnly'/>
 56                 <field name='animationStartTimetype='SFTimeaccessType='inputOnly'/>
 57                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'/>
 58            </ExternProtoDeclare>
 59            <NavigationInfo speed='2'/>
 60            <Background groundAngle='1.309 1.5702groundColor='0.5 0.3 0.3 0.5 0.3 0.3 0.5 0.4 0.4skyAngle='1.309 1.572skyColor='0 0.2 0.7 0 0.5 1 1 1 1'/>
 61            <ProtoInstance name='ViewPositionOrientationDEF='ConsoleOutputViewPositionOrientation'>
 62                 <fieldValue name='enabledvalue='true'/>
 63            </ProtoInstance>
 64            <Viewpoint description='Blue Angel Default Viewposition='1.9 -.8 7.6'/>
 65            <Viewpoint description='Blue Angel View From Aboveorientation='-.952 -.264 -.152 1.4741position='.3 12.4 -4.8'/>
 66            <Viewpoint description='Blue Angel View From Bottomorientation='.513 -.797 .319 1.3342position='-7.1 -8.8 -2'/>
 67            <Viewpoint description='Blue Angel Front Vieworientation='0.048 .998 0.049 4.6832position='-7.2 .2 -5'/>
 68            <Viewpoint description='Blue Angel Back Vieworientation='-.152 .981 .116 1.3177position='13.4 2.1 -2.1'/>
 69            <Viewpoint description='Blue Angel Side Vieworientation='-.733 .678 0.065 .3177position='3.7 1.6 4.3'/>
 70            <Viewpoint description='Cockpit Inside Pilot Vieworientation='0 1 0 1.5636position='-.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.57translation='3.595 0.1 -0.8'>
 77 
                                   <!-- ROUTE information for CP node:  [from CanopyTouchSensor.touchTime to animationStartTime ] [from CanopyExampleSelectionScript.status to canopyOpen ] -->
                                   <ProtoInstance name='CanopyDEF='CP'>
 78                                          <fieldValue name='traceEnabledvalue='true'/>
 79                                     </ProtoInstance>
 80 
                                   <!-- ROUTE information for CanopyTouchSensor node:  [from touchTime to CP.animationStartTime ] [from isActive to CanopyExampleSelectionScript.enabled ] -->
                                   <TouchSensor DEF='CanopyTouchSensordescription='canopy open/close'/>
 81                                </Transform>
 82                                <Transform rotation='0 1 -0 3.14translation='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.78scale='1.5 1.5 1.5translation='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.51scale='1.5 1.5 1.5translation='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.07translation='-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.14scale='0.7 0.7 0.5translation='-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.25translation='-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.35translation='-0.5 -1.25 -5.26'>
108 
                                   <!-- ROUTE information for WP node:  [from GearUpDownTouchSensor.touchTime to animationStartTime ] [from ExampleSelectionScript.status to gearup ] -->
                                   <ProtoInstance name='WheelsFrontDEF='WP'>
109                                          <fieldValue name='traceEnabledvalue='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='GearUpDownTouchSensordescription='landing gear up/down'/>
113                                <Transform scale='0.35 0.35 0.35translation='3.5 -1.2 -6.5'>
114 
                                   <!-- ROUTE information for WPLeft node:  [from GearUpDownTouchSensor.touchTime to animationStartTime ] [from ExampleSelectionScript.status to gearup ] -->
                                   <ProtoInstance name='WheelsRearLeftDEF='WPLeft'>
115                                          <fieldValue name='traceEnabledvalue='true'/>
116                                     </ProtoInstance>
117                                </Transform>
118                                <Transform rotation='0 1 0 3.14scale='0.35 0.35 0.35translation='3.5 -1.215 -3.5'>
119 
                                   <!-- ROUTE information for WPRight node:  [from GearUpDownTouchSensor.touchTime to animationStartTime ] [from ExampleSelectionScript.status to gearup ] -->
                                   <ProtoInstance name='WheelsRearRightDEF='WPRight'>
120                                          <fieldValue name='traceEnabledvalue='true'/>
121                                     </ProtoInstance>
122                                </Transform>
123                                <Transform rotation='0 0 -1 0.09scale='0.85 0.85 0.85translation='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='landedtype='SFInt32value='-1accessType='initializeOnly'/>
130                                               <field name='enabledtype='SFBoolaccessType='inputOnly'/>
131                                               <field name='statustype='SFBoolaccessType='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='landedtype='SFInt32value='-1accessType='initializeOnly'/>
138                                               <field name='enabledtype='SFBoolaccessType='inputOnly'/>
139                                               <field name='statustype='SFBoolaccessType='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.14scale='1.1 1.1 1.1translation='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.35translation='-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.35translation='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.14scale='0.35 0.35 0.35translation='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.09scale='0.85 0.85 0.85translation='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.14scale='1.1 1.1 1.1translation='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='idNamefield='value'/> matches XML terminology <XmlElement  DEF='idNameattribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
    <ProtoInstance name='ProtoName'> <field name='fieldName'/> </ProtoInstance> -->

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