X3D Model Documentation: SuperCobraPrototype.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
  3  <X3D profile='Immersive' version='3.3 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.3.xsd'>
  4       <head>
  5            <meta name='titlecontent='SuperCobraPrototype.x3d'/>
  6            <meta name='descriptioncontent='Defines a prototype of Supercobra AH-1Z helicopter.'/>
  7            <meta name='creatorcontent='Jane Wu'/>
  8            <meta name='creatorcontent='Don Brutzman'/>
  9            <meta name='createdcontent='16 January 2001'/>
 10            <meta name='modifiedcontent='1 December 2024'/>
 11            <meta name=' TODO content=' fix model rotations '/>
 12            <meta name='infocontent='Avoided recursive loading of SuperCobraPrototype.x3d model by placing the prototype in a separate file, rather than cirular referencing. Problem detected using castle-model-viewer.'/>
 13            <meta name='referencecontent='https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/Hughes500HoverInteriorMedium-cd21-no59-10sec.wav'/>
 14            <meta name='referencecontent='https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/FourBladeMainRotorPrototype.x3d'/>
 15            <meta name='referencecontent='https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/RocketPod.x3d'/>
 16            <meta name='referencecontent='https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SkidLeft.x3d'/>
 17            <meta name='referencecontent='https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SkidRight.x3d'/>
 18            <meta name='referencecontent='https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/TwoBladeTailRotorPrototype.x3d'/>
 19            <meta name='referencecontent='https://www.fas.org/man/dod-101/sys/ac/ah-1.htm'/>
 20            <meta name='identifiercontent='https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SuperCobraPrototype.x3d'/>
 21            <meta name='generatorcontent='X3D-Edit 4.0, https://savage.nps.edu/X3D-Edit'/>
 22            <meta name='licensecontent='../../license.html'/>
 23       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: Black, BottomACLightClock, BottomLightColor, BottomLightColorPath, CenterBarCoord, CenterBarShape, Cockpit, CockpitBackWallShape, CockpitBottom, CockpitBottomShape, CockpitFloorShape, CockpitTopShape, Cowling, CowlingShape, DetailViewpoint, Engine, EngineInsideColor, EngineShape, EngineStripShape, FrontCockpitBottomShape, FrontGunBaseShape, FuselageBody, FuselageBottom, GlassPaneCoord, Gray, HeloFlyingAudioClip, HeloNameViewpoint, HeloWorldInfo, HorizontalStabilizerShape, InFlightStatusScript, LeftVerticalStabilizer, LeftWing, LeftWingShape, MainFuselageBody, MainFuselageShape, MainRotor, NoseCoord, NoseShape1, NoseShape2, RightVerticalStabilizer, RightWing, RightWingShape, RocketPod, Seat, SeatColor, TailBoom, TailBoomShape, TailRotor, TailRotorDriveShaftShape, TopACLightClock, TopLightColor, TopLightColorPath, VerticalFin, VerticalFinShape, VerticalStabilizerShape, WingAttachmentShape

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

Index for ExternProtoDeclare definitions: FourBladeMainRotor, TwoBladeTailRotor

Index for ProtoDeclare definition: SuperCobra
-->
 24       <Scene>
 25            <ExternProtoDeclare name='FourBladeMainRotor'   url=' "FourBladeMainRotorPrototype.x3d#FourBladeMainRotor" "https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/FourBladeMainRotorPrototype.x3d#FourBladeMainRotor" "FourBladeMainRotorPrototype.wrl#FourBladeMainRotor" "https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/FourBladeMainRotorPrototype.wrl#FourBladeMainRotor" '>
 26                 <field name='rotationOntype='SFBoolaccessType='inputOnly'
                appinfo='enable or disable rotor rotation'/>
 27            </ExternProtoDeclare>
 28            <ExternProtoDeclare name='TwoBladeTailRotor'   url=' "TwoBladeTailRotorPrototype.x3d#TwoBladeTailRotor" "https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/TwoBladeTailRotorPrototype.x3d#TwoBladeTailRotor" "TwoBladeTailRotorPrototype.wrl#TwoBladeTailRotor" "https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/TwoBladeTailRotorPrototype.wrl#TwoBladeTailRotor" '>
 29                 <field name='rotationOntype='SFBoolaccessType='inputOnly'/>
 30            </ExternProtoDeclare>
 31            <ProtoDeclare name='SuperCobraappinfo='Prototype declaration for SuperCobra helicopter'>
 32                 <ProtoInterface>
 33                      <field name='tailBoomColortype='SFNodeaccessType='initializeOnly'
                     appinfo='color of tail boom'>
 34                           <!-- initialization node (if any) goes here -->
 35                      </field>
 36                      <field name='tailRotorDriveShaftColortype='SFNodeaccessType='initializeOnly'
                     appinfo='color of tail boom drive shaft'>
 37                           <!-- initialization node (if any) goes here -->
 38                      </field>
 39                      <field name='horizontalStabilizerColortype='SFNodeaccessType='initializeOnly'
                     appinfo='color of horizontal stabilizer'>
 40                           <!-- initialization node (if any) goes here -->
 41                      </field>
 42                      <field name='fuselageColortype='SFNodeaccessType='initializeOnly'
                     appinfo='color of fuselage'>
 43                           <!-- initialization node (if any) goes here -->
 44                      </field>
 45                      <field name='cockpitColortype='SFNodeaccessType='initializeOnly'
                     appinfo='color of cockpit'>
 46                           <!-- initialization node (if any) goes here -->
 47                      </field>
 48                      <field name='cowlingColortype='SFNodeaccessType='initializeOnly'
                     appinfo='color of cowling'>
 49                           <!-- initialization node (if any) goes here -->
 50                      </field>
 51                      <field name='helicopterNametype='SFStringvalue='Super CobraaccessType='initializeOnly'
                     appinfo='name of specific helicopter'/>
 52                      <field name='inFlighttype='SFBoolaccessType='inputOnly'
                     appinfo='input event indicating that the aircraft is in flight'/>
 53                 </ProtoInterface>
 54                 <ProtoBody>
 55                      <Group>
 56                           <WorldInfo DEF='HeloWorldInfo'>
 57                                <IS>
 58                                     <connect nodeField='titleprotoField='helicopterName'/>
 59                                </IS>
 60                           </WorldInfo>
 61                           <Viewpoint DEF='HeloNameViewpointdescription='helicopter name overridden by protodeclare fieldorientation='0 1 0 -1.57position='-20 2 0'>
 62                                <IS>
 63                                     <connect nodeField='descriptionprotoField='helicopterName'/>
 64                                </IS>
 65                           </Viewpoint>
 66                           <LOD range='400'>
 67                                <Group DEF='DetailViewpoint'>
 68                                     <Viewpoint description='SuperCobra Rightposition='0 2 15'/>
 69                                     <Viewpoint description='SuperCobra Frontorientation='0 1 0 1.57position='15 2 0'/>
 70                                     <Viewpoint description='SuperCobra Leftorientation='0 1 0 3.14position='0 2 -15'/>
 71                                     <Viewpoint description='SuperCobra Behindorientation='0 1 0 4.71position='-15 2 0'/>
 72                                     <Viewpoint description='SuperCobra Toporientation='-0.51 0.83 0.22 1.24position='10 10 6'/>
 73                                     <Viewpoint description='SuperCobra Bottomorientation='0.82 0.22 -0.53 0.94position='0 -12 10'/>
 74                                </Group>
 75                                <WorldInfo info='"null node"'/>
 76                           </LOD>
 77 
                         <!-- ROUTE information for InFlightStatusScript node:  [from status to HeloFlyingAudioClip.set_loop ] [from status to MainRotor.rotationOn ] [from status to TailRotor.rotationOn ] [from status to BottomACLightClock.set_enabled ] [from status to TopACLightClock.set_enabled ] -->
                         <Script DEF='InFlightStatusScript'>
 78                                <field name='inFlighttype='SFBoolaccessType='inputOnly'/>
 79                                <field name='statustype='SFBoolaccessType='outputOnly'/>
 80                                <IS>
 81                                     <connect nodeField='inFlightprotoField='inFlight'/>
 82                                </IS>
  <![CDATA[
            
ecmascript:

function inFlight(value, ts) {

   status = value;

}

          
]]>
 84                           </Script>
 85                           <Sound direction='1.0 1.0 1.0maxBack='200.0maxFront='200.0minBack='20.0minFront='20.0'>
 86 
                              <!-- ROUTE information for HeloFlyingAudioClip node:  [from InFlightStatusScript.status to set_loop ] -->
                              <AudioClip DEF='HeloFlyingAudioClipdescription='helicopter flight sound'   url=' "../../AircraftHelicopters/AH1SuperCobraUnitedStates/Hughes500HoverInteriorMedium-cd21-no59-10sec.wav" "https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/Hughes500HoverInteriorMedium-cd21-no59-10sec.wav" '/>
 87                           </Sound>
 88                           <!-- Tailboom -->
 89                           <Transform DEF='TailBoomrotation='0 0 -1 1.66scale='1.2 1.2 1.0translation='-7.8 0.78 0.0'>
 90                                <!-- Tailboom shape -->
 91                                <Transform rotation='0 1 0 1.57'>
 92                                     <Shape DEF='TailBoomShape'>
 93                                          <IS>
 94                                               <connect nodeField='appearanceprotoField='tailBoomColor'/>
 95                                          </IS>
 96                                          <Extrusion convex='falsecreaseAngle='0.8crossSection='0.4 -0.5 -0.4 -0.5 -0.465 -0.465 -0.5 -0.4 -0.5 0.4 -0.465 0.465 -0.4 0.5 0.4 0.5 0.465 0.465 0.5 0.4 0.5 -0.4 0.465 -0.465 0.4 -0.5endCap='falseorientation='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0scale='0.10 0.10 0.15 0.15 0.20 0.20 0.25 0.25 0.30 0.30 0.35 0.35 0.40 0.40 0.45 0.45 0.475 0.475 0.50 0.50 0.525 0.525 0.55 0.55 0.565 0.565 0.575 0.575 0.58 0.58 0.6 0.6solid='falsespine='0.00 0.00 0.00 0.00 0.05 0.00 0.00 0.10 0.00 0.00 0.20 0.00 0.00 0.30 0.00 0.00 0.40 0.00 0.00 0.80 0.00 0.00 1.00 0.00 0.00 2.00 0.00 0.00 3.00 0.00 0.00 3.25 0.00 0.00 3.50 0.00 0.00 3.75 0.00 0.00 4.00 0.00 0.00 4.25 0.00 0.00 4.50 0.00'/>
 97                                     </Shape>
 98                                </Transform>
 99                                <!-- AC Light -->
100                                <Shape>
101                                     <Appearance>
102                                          <Material emissiveColor='1.0 1.0 1.0'/>
103                                     </Appearance>
104                                     <Sphere radius='.04'/>
105                                </Shape>
106                                <!-- Tail Rotor Drive Shaft -->
107                                <Transform center='0.0 2.2 0.0rotation='0.0 0.0 1.0 0.03translation='-0.3 1.0 0.0'>
108                                     <Group>
109                                          <Shape DEF='TailRotorDriveShaftShape'>
110                                               <IS>
111                                                    <connect nodeField='appearanceprotoField='tailRotorDriveShaftColor'/>
112                                               </IS>
113                                               <Extrusion ccw='falsecreaseAngle='1.5crossSection='-0.03 0 -0.0276 -0.0114 -0.0213 -0.0213 -0.0114 -0.0276 0 -0.03 0.0114 -0.0276 0.0213 -0.0213 0.0276 -0.0114 0.03 0 0.0276 0.0114 0.0213 0.0213 0.0114 0.0276 0 0.03 -0.0114 0.0276 -0.0213 0.0213 -0.0276 0.0114 -0.03 0scale='2 2 2.3 2.3 2 2spine='-1.16 -1.0 0.0 0.0 0.0 0.0 0.0 3.6 0.0'/>
114                                          </Shape>
115                                     </Group>
116                                </Transform>
117                                <!-- Horizontal stabilizer -->
118                                <Transform rotation='0.58 0.58 0.58 2.09translation='0 0.1 0'>
119                                     <Transform rotation='0 0 1 3.14'>
120                                          <Shape DEF='HorizontalStabilizerShape'>
121                                               <IS>
122                                                    <connect nodeField='appearanceprotoField='horizontalStabilizerColor'/>
123                                               </IS>
124                                               <Extrusion convex='falsecreaseAngle='0.8crossSection='-2.7 0.0 -2.6 0.02 -2.5 0.04 -2.4 0.045 -2.32 0.04 -0.5 0.0 -2.32 -0.04 -2.4 -0.045 -2.5 -0.04 -2.6 -0.02 -2.7 0.0scale='0.14 1.0 0.29 1.0 0.14 1.0solid='falsespine='0.0 -0.85 0.0 0.0 0.0 0.0 0.0 0.85 0.0'/>
125                                          </Shape>
126                                     </Transform>
127                                     <Transform DEF='LeftVerticalStabilizerrotation='1 0 0 -1.57translation='-0.05 -0.85 0.325'>
128 
                                        <!-- Shape VerticalStabilizerShape is a DEF node that has 1 USE node: USE_1 -->
                                        <Shape DEF='VerticalStabilizerShape'>
129                                               <IS>
130                                                    <connect nodeField='appearanceprotoField='tailBoomColor'/>
131                                               </IS>
132                                               <!-- right, left, bottom, lower front, upper front, top, lower back, upper back -->
133                                               <IndexedFaceSet convex='falsecoordIndex='0 1 2 3 4 5 -1 6 11 10 9 8 7 -1 0 6 7 1 -1 1 7 8 2 -1 2 8 9 3 -1 3 9 10 4 -1 0 5 11 6 -1 5 4 10 11 -1'>
134                                                    <Coordinate point='0.1 0.15 0.0 0.3 0.15 0.0 0.425 0.325 0.0 0.275 0.6 0.0 0.05 0.6 0.0 0.125 0.3 0.0 0.1 0.15 -0.04 0.3 0.15 -0.02 0.425 0.325 -0.02 0.275 0.6 -0.02 0.05 0.6 -0.04 0.125 0.3 -0.04'/>
135                                               </IndexedFaceSet>
136                                          </Shape>
137                                     </Transform>
138                                     <Transform DEF='RightVerticalStabilizerrotation='1 0 0 -1.57translation='-0.05 0.85 0.325'>
139                                          <Shape USE='VerticalStabilizerShape'/>
140                                     </Transform>
141                                </Transform>
142                                <!-- Vertical Fin -->
143                                <Transform DEF='VerticalFinrotation='0 0 1 1.57scale='3.5 3.5 2.5translation='1.45 0 0'>
144                                     <Shape DEF='VerticalFinShape'>
145                                          <IS>
146                                               <connect nodeField='appearanceprotoField='tailBoomColor'/>
147                                          </IS>
148                                          <IndexedFaceSet convex='falsecoordIndex='0 1 2 3 4 5 6 7 -1 8 15 14 13 12 11 10 9 -1 8 9 1 0 -1 9 10 2 1 -1 10 11 3 2 -1 11 12 4 3 -1 12 13 5 4 -1 5 13 14 6 -1 6 14 15 7 -1 0 7 15 8 -1'>
149                                               <Coordinate point='0.1 0.375 0.01 0.125 0.355 0.01 0.175 0.33 0.01 0.3 0.325 0.02 0.35 0.35 0.02 0.375 0.4 0.02 0.0 0.8 0.02 -0.1 0.7 0.01 0.1 0.375 -0.01 0.125 0.355 -0.01 0.175 0.33 -0.01 0.3 0.325 -0.02 0.35 0.35 -0.02 0.375 0.4 -0.02 0.0 0.8 -0.02 -0.1 0.7 -0.01'/>
150                                          </IndexedFaceSet>
151                                     </Shape>
152                                     <!-- Tail Stinger -->
153                                     <Transform rotation='0 0 -1 1.05translation='0.07 0.29 0.0'>
154                                          <Shape>
155 
                                             <!-- Appearance Gray is a DEF node that has 1 USE node: USE_1 -->
                                             <Appearance DEF='Gray'>
156                                                    <Material diffuseColor='.25 .25 .25'/>
157                                               </Appearance>
158                                               <Cylinder height='0.2radius='0.008'/>
159                                          </Shape>
160                                          <!-- Tip part -->
161                                          <Transform rotation='0 0 1 2.62translation='-0.0075 -0.11 0'>
162                                               <Shape>
163                                                    <Appearance USE='Gray'/>
164                                                    <Cylinder height='0.04radius='0.008'/>
165                                               </Shape>
166                                          </Transform>
167                                     </Transform>
168                                </Transform>
169                                <!-- Tail Rotor -->
170                                <Transform translation='-1.25 0.0 0.25'>
171 
                                   <!-- ROUTE information for TailRotor node:  [from InFlightStatusScript.status to rotationOn ] -->
                                   <ProtoInstance name='TwoBladeTailRotorDEF='TailRotor'/>
172                                </Transform>
173                           </Transform>
174                           <!-- Fuselage -->
175                           <Transform DEF='FuselageBodyrotation='0 1 0 -1.57translation='0.4 1.78 0.0'>
176                                <Transform DEF='MainFuselageBody'>
177                                     <Shape DEF='MainFuselageShape'>
178                                          <IS>
179                                               <connect nodeField='appearanceprotoField='fuselageColor'/>
180                                          </IS>
181                                          <IndexedFaceSet creaseAngle='1.57coordIndex='7 6 5 4 3 2 1 0 -1 0 1 2 3 13 12 11 10 9 8 -1 10 11 12 13 23 22 21 20 -1 14 15 16 17 18 19 4 5 6 7 -1 24 25 26 27 19 18 17 16 -1 0 8 14 7 -1 20 21 22 23 31 30 29 28 -1 27 26 25 24 32 33 34 35 -1 28 29 30 31 39 38 37 36 -1 35 34 33 32 40 41 42 43 -1 9 10 20 24 16 15 -1 20 28 32 24 -1 28 36 40 32 -1 43 42 41 40 36 37 38 39 -1'>
182                                               <Coordinate point='-0.025 0.0 3.25 -0.3 0.0 2.0 -0.55 0.0 0.5 -0.6 0.0 -0.5 0.6 0.0 -0.5 0.55 0.0 0.5 0.3 0.0 2.0 0.025 0.0 3.25 -0.05 -1.0 3.5 -0.05 -1.0 3.0 -0.3 -1.0 3.0 -0.5 -1.0 2.0 -0.55 -1.0 0.0 -0.56 -1.0 -0.5 0.05 -1.0 3.5 0.05 -1.0 3.0 0.3 -1.0 3.0 0.5 -1.0 2.0 0.55 -1.0 0.0 0.56 -1.0 -0.5 -0.3 -1.7 3.0 -0.5 -1.9 2.0 -0.55 -1.9 0.0 -0.56 -1.9 -0.5 0.3 -1.7 3.0 0.5 -1.9 2.0 0.55 -1.9 0.0 0.56 -1.9 -0.5 -0.275 -1.76 3.0 -0.475 -1.96 2.0 -0.525 -1.96 0.0 -0.535 -1.96 -0.5 0.275 -1.76 3.0 0.475 -1.96 2.0 0.525 -1.96 0.0 0.535 -1.96 -0.5 -0.2 -1.8 3.0 -0.4 -2.0 2.0 -0.45 -2.0 0.0 -0.46 -2.0 -0.5 0.2 -1.8 3.0 0.4 -2.0 2.0 0.45 -2.0 0.0 0.46 -2.0 -0.5'/>
183                                          </IndexedFaceSet>
184                                     </Shape>
185                                </Transform>
186                                <!-- Left Engine -->
187                                <Transform rotation='0 1 0 0.15scale='0.6 0.9 1.0translation='-0.65 -0.5 1.6'>
188 
                                   <!-- Transform Engine is a DEF node that has 1 USE node: USE_1 -->
                                   <Transform DEF='Enginerotation='1 0 0 1.57scale='0.25 0.25 0.25'>
189                                          <Shape DEF='EngineShape'>
190                                               <IS>
191                                                    <connect nodeField='appearanceprotoField='fuselageColor'/>
192                                               </IS>
193                                               <Extrusion creaseAngle='2.36crossSection='-0.05 -5 -0.15 -4.95 -0.25 -4.8 -0.35 -4.45 -0.45 -4 -0.45 4 -0.35 4.45 -0.25 4.8 -0.15 4.95 -0.05 5 0.05 5 0.15 4.95 0.25 4.8 0.35 4.45 0.45 4 0.45 -4 0.35 -4.45 0.25 -4.8 0.15 -4.95 0.05 -5 -0.05 -5spine='0.00 0.0 -2.00 0.77 0.0 -1.95 1.20 0.0 -1.80 1.41 0.0 -1.56 1.58 0.0 -1.15 1.58 0.0 0.00 1.58 0.0 1.15 1.41 0.0 1.56 1.20 0.0 1.80 0.77 0.0 1.95 0.00 0.0 2.00 -0.77 0.0 1.95 -1.20 0.0 1.80 -1.41 0.0 1.56 -1.58 0.0 1.15 -1.58 0.0 0.00 -1.58 0.0 -1.15 -1.41 0.0 -1.56 -1.20 0.0 -1.80 -0.77 0.0 -1.95 0.00 0.0 -2.00'/>
194                                          </Shape>
195                                          <Transform>
196                                               <Shape>
197 
                                                  <!-- Appearance EngineInsideColor is a DEF node that has 1 USE node: USE_1 -->
                                                  <Appearance DEF='EngineInsideColor'>
198                                                         <Material diffuseColor='0.25 0.25 0.25'/>
199                                                    </Appearance>
200                                                    <Extrusion ccw='falsecrossSection='0.00 -2.00 0.77 -1.95 1.20 -1.80 1.41 -1.56 1.58 -1.15 1.58 0.00 1.58 1.15 1.41 1.56 1.20 1.80 0.77 1.95 0.00 2.00 -0.77 1.95 -1.20 1.80 -1.41 1.56 -1.58 1.15 -1.58 0.0 -1.58 -1.15 -1.41 -1.56 -1.20 -1.80 -0.77 -1.95 0.0 -2.0spine='0.0 6.5 0.0 0.0 -3.0 0.0'/>
201                                               </Shape>
202                                          </Transform>
203                                          <Transform translation='0 6.6 0'>
204                                               <Shape>
205                                                    <Appearance USE='EngineInsideColor'/>
206                                                    <Extrusion crossSection='0.1 0.0 0.092 -0.038 0.071 -0.071 0.038 -0.092 0.0 -0.1 -0.038 -0.092 -0.071 -0.071 -0.092 -0.038 -0.1 0.0 -0.092 0.038 -0.071 0.071 -0.038 0.092 0.0 0.1 0.038 0.092 0.071 0.071 0.092 0.038 0.1 0.0spine='0.0 0.0 -2.00 0.77 0.0 -1.95 1.20 0.0 -1.80 1.41 0.0 -1.56 1.58 0.0 -1.15 1.58 0.0 0.00 1.58 0.0 1.15 1.41 0.0 1.56 1.20 0.0 1.80 0.77 0.0 1.95 0.00 0.0 2.00 -0.77 0.0 1.95 -1.20 0.0 1.80 -1.41 0.0 1.56 -1.58 0.0 1.15 -1.58 0.0 0.0 -1.58 0.0 -1.15 -1.41 0.0 -1.56 -1.20 0.0 -1.80 -0.77 0.0 -1.95 0.0 0.0 -2.0'/>
207                                               </Shape>
208                                          </Transform>
209                                          <!-- Left Middle Strip -->
210                                          <Transform rotation='0.58 0.58 0.58 2.09translation='-1.55 1.75 0'>
211 
                                             <!-- Shape EngineStripShape is a DEF node that has 5 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5 -->
                                             <Shape DEF='EngineStripShape'>
212                                                    <Appearance>
213                                                         <Material diffuseColor='0.05 0.05 0.05'/>
214                                                    </Appearance>
215                                                    <Box size='9.5 0.3 0.1'/>
216                                               </Shape>
217                                          </Transform>
218                                          <!-- Right Middle Strip -->
219                                          <Transform rotation='0.58 0.58 0.58 2.09translation='1.55 1.75 0'>
220                                               <Shape USE='EngineStripShape'/>
221                                          </Transform>
222                                          <!-- Left Upper Strip -->
223                                          <Transform rotation='0.58 0.58 0.58 2.09translation='-1.55 1.75 -0.75'>
224                                               <Shape USE='EngineStripShape'/>
225                                          </Transform>
226                                          <!-- Right Upper Strip -->
227                                          <Transform rotation='0.58 0.58 0.58 2.09translation='1.55 1.75 -0.75'>
228                                               <Shape USE='EngineStripShape'/>
229                                          </Transform>
230                                          <!-- Left Lower Strip -->
231                                          <Transform rotation='0.58 0.58 0.58 2.09translation='-1.55 1.75 0.75'>
232                                               <Shape USE='EngineStripShape'/>
233                                          </Transform>
234                                          <!-- Right Lower Strip -->
235                                          <Transform rotation='0.58 0.58 0.58 2.09translation='1.55 1.75 0.75'>
236                                               <Shape USE='EngineStripShape'/>
237                                          </Transform>
238                                     </Transform>
239                                </Transform>
240                                <!-- Right Engine -->
241                                <Transform rotation='0 -1 0 0.15scale='0.6 0.9 1.0translation='0.65 -0.5 1.6'>
242                                     <Transform USE='Engine'/>
243                                </Transform>
244                                <!-- Cockpit -->
245                                <Transform DEF='Cockpitrotation='1 0 0 -1.57translation='0.0 -0.4 1.51'>
246                                     <!-- Cockpit Bottom -->
247                                     <Transform DEF='CockpitBottomrotation='0 1 0 3.14translation='0 2 -1.6'>
248                                          <Shape DEF='CockpitBottomShape'>
249                                               <IS>
250                                                    <connect nodeField='appearanceprotoField='cockpitColor'/>
251                                               </IS>
252                                               <Extrusion beginCap='falseconvex='falsecreaseAngle='1.5crossSection='-0.56 -0.65 -0.56 -0.3 -0.56 -0.05 -0.535 -0.02 -0.46 0.0 0.46 0.0 0.535 -0.02 0.56 -0.05 0.56 -0.3 0.56 -0.65endCap='falsescale='1.0 2.5 1.0 2.0 1.0 1.61 0.9 1.25solid='falsespine='0.0 0.0 0.0 0.0 0.375 0.0 0.0 1.25 0.0 0.0 2.15 0.0'/>
253                                          </Shape>
254                                          <!-- Front Cockpit Bottom -->
255                                          <Transform translation='0 0 -0.325'>
256                                               <Shape DEF='FrontCockpitBottomShape'>
257                                                    <IS>
258                                                         <connect nodeField='appearanceprotoField='cockpitColor'/>
259                                                    </IS>
260                                                    <Extrusion beginCap='falseconvex='falsecreaseAngle='1.5crossSection='-0.56 -0.65 -0.56 -0.3 -0.56 -0.05 -0.535 -0.02 -0.46 0.0 0.46 0.0 0.535 -0.02 0.56 -0.05 0.56 -0.3 0.56 -0.65endCap='falsescale='0.9 0.75 0.85 0.56solid='falsespine='0.0 2.15 0.0 0.0 2.56 0.0'/>
261                                               </Shape>
262                                          </Transform>
263                                     </Transform>
264                                     <!-- Cockpit Top -->
265                                     <Transform rotation='0 .71 .71 3.14translation='0.0 2.0 0.4'>
266                                          <Shape DEF='CockpitTopShape'>
267                                               <IS>
268                                                    <connect nodeField='appearanceprotoField='cockpitColor'/>
269                                               </IS>
270                                               <IndexedFaceSet creaseAngle='1.57coordIndex='0 1 17 -1 1 2 16 17 -1 2 3 15 16 -1 3 4 10 11 14 15 -1 4 5 9 10 -1 5 6 8 9 -1 6 7 8 -1 11 12 13 14 -1 14 13 12 11 -1 1 0 17 -1 2 1 17 16 -1 3 2 16 15 -1 4 3 15 14 11 10 -1 5 4 10 9 -1 6 5 9 8 -1 7 6 8 -1'>
271                                                    <Coordinate point='0.56 -0.3 0.0 0.56 -0.1 0.0 0.56 -0.04 0.0 0.475 0.0 0.0 -0.475 0.0 0.0 -0.56 -0.04 0.0 -0.56 -0.1 0.0 -0.56 -0.3 0.0 -0.56 -0.1 0.06 -0.56 -0.04 0.08 -0.475 0.0 0.10 -0.300 0.0 0.12 -0.300 -0.03 0.5 0.300 -0.03 0.5 0.300 0.0 0.12 0.475 0.0 0.10 0.56 -0.04 0.08 0.56 -0.1 0.06'/>
272                                               </IndexedFaceSet>
273                                          </Shape>
274                                          <!-- Center Bars -->
275                                          <Shape DEF='CenterBarShape'>
276                                               <IS>
277                                                    <connect nodeField='appearanceprotoField='cockpitColor'/>
278                                               </IS>
279                                               <IndexedFaceSet coordIndex='3 2 1 0 -1 0 1 2 3 -1 4 5 6 7 -1 7 6 5 4 -1 17 16 9 8 -1 8 9 16 17 -1 16 15 10 9 -1 9 10 15 16 -1 15 14 11 10 -1 10 11 14 15 -1 14 13 12 11 -1 11 12 13 14 -1 23 18 17 8 -1 8 17 18 23 -1 22 19 18 23 -1 23 18 19 22 -1 22 21 20 19 -1 19 20 21 22 -1 31 30 29 28 27 26 25 24 -1 24 25 26 27 28 29 30 31 -1 39 38 37 36 35 34 33 32 -1 32 33 34 35 36 37 38 39 -1'>
280                                                    <Coordinate DEF='CenterBarCoordpoint='0.3 -0.03 0.5 0.3 -0.13 1.75 0.25 -0.13 1.75 0.25 -0.03 0.5 -0.3 -0.03 0.5 -0.3 -0.13 1.75 -0.25 -0.13 1.75 -0.25 -0.03 0.5 -0.3 -0.13 1.75 0.3 -0.13 1.75 0.4 -0.2 1.725 0.45 -0.3 1.7 0.56 -0.94 1.2 0.56 -0.95 1.25 0.45 -0.3 1.75 0.4 -0.2 1.775 0.3 -0.13 1.8 -0.3 -0.13 1.8 -0.4 -0.2 1.775 -0.45 -0.3 1.75 -0.56 -0.95 1.25 -0.56 -0.94 1.2 -0.45 -0.3 1.7 -0.4 -0.2 1.725 0.3 -0.13 1.75 0.3 -0.17 2.0 0.3 -0.25 2.1 0.3 -1.0 3.0 0.25 -1.0 3.0 0.25 -0.25 2.1 0.25 -0.17 2.0 0.25 -0.13 1.75 -0.3 -0.13 1.75 -0.3 -0.17 2.0 -0.3 -0.25 2.1 -0.3 -1.0 3.0 -0.25 -1.0 3.0 -0.25 -0.25 2.1 -0.25 -0.17 2.0 -0.25 -0.13 1.75'/>
281                                               </IndexedFaceSet>
282                                          </Shape>
283                                          <!-- Glass Panes -->
284                                          <Shape>
285                                               <Appearance>
286                                                    <Material diffuseColor='0.75 0.75 0.75transparency='0.5'/>
287                                               </Appearance>
288                                               <IndexedFaceSet creaseAngle='0.8coordIndex='11 10 9 5 4 3 2 1 0 -1 0 1 2 3 4 5 9 10 11 -1 9 8 7 6 5 -1 5 6 7 8 9 -1 13 14 15 16 17 21 22 23 -1 23 22 21 17 16 15 14 13 -1 17 18 19 20 21 -1 21 20 19 18 17 -1 24 25 26 27 -1 27 26 25 24 -1 28 29 30 31 32 33 34 35 -1 35 34 33 32 31 30 29 28 -1 44 43 42 41 40 39 38 37 36 -1 36 37 38 39 40 41 42 43 44 -1 45 46 47 48 49 50 51 52 53 -1 53 52 51 50 49 48 47 46 45 -1'>
289                                                    <Coordinate DEF='GlassPaneCoordpoint='0.3 -0.03 0.5 0.3 0.0 0.12 0.475 0.0 0.10 0.56 -0.04 0.08 0.56 -0.1 0.06 0.56 -0.3 0.0 0.56 -0.38 0.0 0.56 -0.7 0.37 0.56 -0.94 1.2 0.45 -0.3 1.7 0.4 -0.2 1.725 0.3 -0.13 1.75 -0.3 -0.03 0.5 -0.3 0.0 0.12 -0.475 0.0 0.10 -0.56 -0.04 0.08 -0.56 -0.1 0.06 -0.56 -0.3 0.0 -0.56 -0.38 0.0 -0.56 -0.7 0.37 -0.56 -0.94 1.2 -0.45 -0.3 1.7 -0.4 -0.2 1.725 -0.3 -0.13 1.75 0.25 -0.03 0.5 0.25 -0.13 1.75 -0.25 -0.13 1.75 -0.25 -0.03 0.5 0.25 -0.13 1.8 0.25 -0.17 2.0 0.25 -0.25 2.1 0.25 -1.0 3.0 -0.25 -1.0 3.0 -0.25 -0.25 2.1 -0.25 -0.17 2.0 -0.25 -0.13 1.8 0.3 -0.13 1.8 0.4 -0.2 1.775 0.45 -0.3 1.75 0.56 -0.95 1.25 0.48 -1.31 2.55 0.3 -1.0 3.0 0.3 -0.25 2.1 0.3 -0.17 2.0 0.3 -0.13 1.8 -0.3 -0.13 1.8 -0.4 -0.2 1.775 -0.45 -0.3 1.75 -0.56 -0.95 1.25 -0.48 -1.31 2.55 -0.3 -1.0 3.0 -0.3 -0.25 2.1 -0.3 -0.17 2.0 -0.3 -0.13 1.8'/>
290                                               </IndexedFaceSet>
291                                          </Shape>
292                                          <!-- Nose -->
293                                          <Shape DEF='NoseShape1'>
294                                               <IS>
295                                                    <connect nodeField='appearanceprotoField='fuselageColor'/>
296                                               </IS>
297                                               <IndexedFaceSet creaseAngle='0.86coordIndex='0 1 2 3 -1 0 3 4 -1 0 4 5 6 -1 9 8 7 1 -1 7 2 1 -1 3 2 10 11 -1 4 3 11 12 -1 5 4 12 13 -1 2 7 15 10 -1 7 8 14 15 -1 11 10 16 17 -1 11 17 18 19 -1 10 20 21 16 -1 21 18 17 16 -1 19 6 5 13 12 11 -1 20 10 15 14 8 9 -1 6 22 23 24 25 26 27 9 -1 27 26 25 24 23 22 6 -1 0 6 9 1 -1 6 5 28 22 -1 28 29 23 22 -1 29 30 24 23 -1 8 9 27 33 -1 32 33 27 26 -1 31 32 26 25 -1 30 31 25 24 -1 8 33 32 31 30 29 28 5 -1 41 40 39 38 37 36 35 34 -1'>
298                                                    <Coordinate DEF='NoseCoordpoint='0.3 -1.0 3.0 -0.3 -1.0 3.0 -0.1 -1.15 3.38 0.1 -1.15 3.38 0.20 -1.2 3.34 0.25 -1.31 3.2 0.48 -1.31 2.56 -0.20 -1.2 3.34 -0.25 -1.31 3.2 -0.48 -1.31 2.56 -0.025 -1.31 3.6 0.025 -1.31 3.6 0.115 -1.31 3.55 0.18 -1.31 3.45 -0.18 -1.31 3.45 -0.115 -1.31 3.55 -0.025 -1.5 3.55 0.025 -1.5 3.55 0.025 -1.555 3.2 0.025 -1.31 3.2 -0.025 -1.31 3.2 -0.025 -1.555 3.2 0.48 -1.635 2.56 0.455 -1.66 2.56 0.39 -1.675 2.56 -0.39 -1.675 2.56 -0.455 -1.66 2.56 -0.48 -1.635 2.56 0.25 -1.515 3.2 0.225 -1.54 3.25 0.16 -1.555 3.275 -0.16 -1.555 3.275 -0.225 -1.54 3.25 -0.25 -1.515 3.2 0.51 -1.635 2.15 0.51 -1.925 2.15 0.485 -1.975 2.15 0.42 -2.0 2.15 -0.42 -2.0 2.15 -0.485 -1.975 2.15 -0.51 -1.925 2.15 -0.51 -1.635 2.15'/>
299                                               </IndexedFaceSet>
300                                          </Shape>
301                                          <Transform translation='0.0 -2.865 0.0'>
302                                               <Shape DEF='NoseShape2'>
303                                                    <IS>
304                                                         <connect nodeField='appearanceprotoField='fuselageColor'/>
305                                                    </IS>
306                                                    <Extrusion crossSection='0.11 -1.315 0.175 -1.34 0.2 -1.355 0.2 -1.515 0.175 -1.54 0.11 -1.555 -0.11 -1.555 -0.175 -1.54 -0.2 -1.515 -0.2 -1.355 -0.175 -1.34 -0.11 -1.315 0.11 -1.315scale='0.7 1.0 0.7 1.0spine='0.0 0.0 3.2 0.0 0.0 3.425'/>
307                                               </Shape>
308                                          </Transform>
309                                     </Transform>
310                                     <!-- Front Gun -->
311                                     <Transform translation='0 4.25 -1.35'>
312                                          <Shape DEF='FrontGunBaseShape'>
313                                               <IS>
314                                                    <connect nodeField='appearanceprotoField='fuselageColor'/>
315                                               </IS>
316                                               <Sphere radius='0.28'/>
317                                          </Shape>
318                                          <Transform translation='0.0 0.6 -0.05'>
319                                               <Shape>
320                                                    <Appearance>
321                                                         <Material diffuseColor='0.25 0.25 0.25'/>
322                                                    </Appearance>
323                                                    <Cylinder height='1.75radius='0.05'/>
324                                               </Shape>
325                                          </Transform>
326                                     </Transform>
327                                </Transform>
328                                <!-- Cockpit Back Wall -->
329                                <Transform translation='0 -0.575 -0.4'>
330                                     <Shape DEF='CockpitBackWallShape'>
331                                          <IS>
332                                               <connect nodeField='appearanceprotoField='cockpitColor'/>
333                                          </IS>
334                                          <Box size='1.05 1.1 0.1'/>
335                                     </Shape>
336                                </Transform>
337                                <!-- Cockpit Floor -->
338                                <Transform translation='0 -1.5 -1.8'>
339                                     <Shape DEF='CockpitFloorShape'>
340                                          <IS>
341                                               <connect nodeField='appearanceprotoField='cockpitColor'/>
342                                          </IS>
343                                          <Box size='0.9 0.1 2.5'/>
344                                     </Shape>
345                                </Transform>
346                                <!-- Back Seat -->
347                                <Transform translation='0 -1.2 -0.8'>
348 
                                   <!-- Group Seat is a DEF node that has 1 USE node: USE_1 -->
                                   <Group DEF='Seat'>
349                                          <!-- Seat Bottom -->
350                                          <Shape>
351 
                                             <!-- Appearance SeatColor is a DEF node that has 1 USE node: USE_1 -->
                                             <Appearance DEF='SeatColor'>
352                                                    <Material diffuseColor='0.5 0.5 0.0'/>
353                                               </Appearance>
354                                               <Box size='1.0 0.4 0.8'/>
355                                          </Shape>
356                                          <!-- Seat Back -->
357                                          <Transform translation='0 0.45 0.35'>
358                                               <Shape>
359                                                    <Appearance USE='SeatColor'/>
360                                                    <Box size='0.75 0.5 0.1'/>
361                                               </Shape>
362                                               <!-- Side Wings & Head Rest -->
363                                               <Shape>
364                                                    <Appearance>
365                                                         <Material diffuseColor='0.6 0.6 0'/>
366                                                    </Appearance>
367                                                    <IndexedFaceSet coordIndex='0 1 2 3 4 -1 0 4 3 8 9 5 -1 9 8 7 6 5 -1 0 5 6 1 -1 8 3 2 7 -1 14 13 12 11 10 -1 15 19 18 13 14 10 -1 15 16 17 18 19 -1 15 10 11 16 -1 13 18 17 12 -1 23 22 0 10 -1 25 24 21 20 -1 22 25 20 0 -1 24 23 10 21 -1 22 23 24 25 -1'>
368                                                         <Coordinate point='0.375 0.25 -0.05 0.375 -0.25 -0.15 0.375 -0.25 0.05 0.375 0.3 0.05 0.375 0.28 0.0 0.425 0.25 -0.05 0.5 -0.25 -0.15 0.5 -0.25 0.05 0.425 0.3 0.05 0.425 0.28 0.0 -0.375 0.25 -0.05 -0.375 -0.25 -0.15 -0.375 -0.25 0.05 -0.375 0.3 0.05 -0.375 0.28 0.0 -0.425 0.25 -0.05 -0.5 -0.25 -0.15 -0.5 -0.25 0.05 -0.425 0.3 0.05 -0.425 0.28 0.0 0.375 0.25 0.05 -0.375 0.25 0.05 0.3 0.5 -0.05 -0.3 0.5 -0.05 -0.3 0.5 0.05 0.3 0.5 0.05'/>
369                                                    </IndexedFaceSet>
370                                               </Shape>
371                                          </Transform>
372                                     </Group>
373                                </Transform>
374                                <!-- Front Seat -->
375                                <Transform translation='0 -1.4 -2.0'>
376                                     <Group USE='Seat'/>
377                                </Transform>
378                           </Transform>
379                           <!-- Fuselage Bottom -->
380                           <Group DEF='FuselageBottom'>
381                                <Transform translation='-0.25 -0.25 0.0'>
382                                     <Shape>
383                                          <Appearance DEF='Black'>
384                                               <Material diffuseColor='0.0 0.0 0.0'/>
385                                          </Appearance>
386                                          <Box size='0.5 0.1 0.5'/>
387                                     </Shape>
388                                </Transform>
389                                <!-- Bottom A/C Light -->
390                                <Transform translation='-1.0 -0.25 0.0'>
391                                     <Shape>
392                                          <Appearance>
393 
                                             <!-- ROUTE information for BottomLightColor node:  [from BottomLightColorPath.value_changed to set_emissiveColor ] -->
                                             <Material DEF='BottomLightColordiffuseColor='0.4 0.4 0.4'/>
394                                          </Appearance>
395                                          <Sphere radius='0.04'/>
396                                     </Shape>
397                                     <Shape>
398                                          <Appearance>
399                                               <Material diffuseColor='0.1 0.1 0.1'/>
400                                          </Appearance>
401                                          <Cylinder height='0.05radius='0.06'/>
402                                     </Shape>
403                                </Transform>
404                                <!-- Animation Clock -->
405 
                              <!-- ROUTE information for BottomACLightClock node:  [from InFlightStatusScript.status to set_enabled ] [from fraction_changed to BottomLightColorPath.set_fraction ] -->
                              <TimeSensor DEF='BottomACLightClockenabled='falseloop='true'/>
406                                <!-- Animation Path -->
407 
                              <!-- ROUTE information for BottomLightColorPath node:  [from BottomACLightClock.fraction_changed to set_fraction ] [from value_changed to BottomLightColor.set_emissiveColor ] -->
                              <ColorInterpolator DEF='BottomLightColorPathkey='0.0 0.5 0.5 1.0keyValue='1.0 0.0 0.0 1.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0'/>
408                           </Group>
409                           <!-- Cowling -->
410                           <Transform DEF='Cowlingscale='0.55 0.65 0.6translation='0.48 1.8 0.0'>
411                                <Transform rotation='0 1 0 -1.57'>
412                                     <Shape DEF='CowlingShape'>
413                                          <IS>
414                                               <connect nodeField='appearanceprotoField='cowlingColor'/>
415                                          </IS>
416                                          <Extrusion creaseAngle='0.8crossSection='0.05 -0.75 -0.05 -0.75 -0.2 -0.65 -0.35 -0.5 -0.65 0.0 -0.65 1.5 -0.6 2.5 -0.4 3.25 0.0 4.0 0.4 3.25 0.6 2.5 0.65 1.5 0.65 0.0 0.35 -0.5 0.2 -0.65 0.05 -0.75scale='1.0 1.0 0.8 0.8 0.65 0.65spine='0.0 0.0 0.0 0.0 0.6 0.0 0.0 1.0 0.0'/>
417                                     </Shape>
418                                </Transform>
419                                <!-- Top A/C Light -->
420                                <Transform translation='-1.5 1.04 0.0'>
421                                     <Shape>
422                                          <Appearance>
423 
                                             <!-- ROUTE information for TopLightColor node:  [from TopLightColorPath.value_changed to set_emissiveColor ] -->
                                             <Material DEF='TopLightColordiffuseColor='0.4 0.4 0.4'/>
424                                          </Appearance>
425                                          <Sphere radius='0.04'/>
426                                     </Shape>
427                                     <Shape>
428                                          <Appearance>
429                                               <Material diffuseColor='0.1 0.1 0.1'/>
430                                          </Appearance>
431                                          <Cylinder height='0.05radius='0.06'/>
432                                     </Shape>
433                                </Transform>
434                                <!-- Animation Clock -->
435 
                              <!-- ROUTE information for TopACLightClock node:  [from InFlightStatusScript.status to set_enabled ] [from fraction_changed to TopLightColorPath.set_fraction ] -->
                              <TimeSensor DEF='TopACLightClockenabled='falseloop='true'/>
436                                <!-- Animation Path -->
437 
                              <!-- ROUTE information for TopLightColorPath node:  [from TopACLightClock.fraction_changed to set_fraction ] [from value_changed to TopLightColor.set_emissiveColor ] -->
                              <ColorInterpolator DEF='TopLightColorPathkey='0.0 0.5 0.5 1.0keyValue='1.0 0.0 0.0 1.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0'/>
438                           </Transform>
439                           <!-- Right Skid -->
440                           <Transform rotation='0 0 1 -1.57translation='0.75 -1 1.15'>
441                                <Inline   url=' "../../AircraftHelicopters/AH1SuperCobraUnitedStates/SkidRight.x3d" "https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SkidRight.x3d" "../../AircraftHelicopters/AH1SuperCobraUnitedStates/SkidRight.wrl" "https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SkidRight.wrl" '/>
442                           </Transform>
443                           <!-- Left Skid -->
444                           <Transform rotation='-0.71 0.71 0 -3.14translation='0.75 -1 -1.15'>
445                                <Inline   url=' "../../AircraftHelicopters/AH1SuperCobraUnitedStates/SkidLeft.x3d" "https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SkidLeft.x3d" "../../AircraftHelicopters/AH1SuperCobraUnitedStates/SkidLeft.wrl" "https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SkidLeft.wrl" '/>
446                           </Transform>
447                           <!-- Right Wing -->
448                           <Transform rotation='0 0.71 0.71 3.14translation='-1.0 0.5 0.6'>
449                                <Group DEF='RightWing'>
450                                     <Shape DEF='RightWingShape'>
451                                          <IS>
452                                               <connect nodeField='appearanceprotoField='fuselageColor'/>
453                                          </IS>
454                                          <Extrusion crossSection='-4.2 0.0 -4.1 0.02 -4.0 0.04 -3.9 0.045 -3.82 0.04 -2.0 0.0 -3.82 -0.04 -3.9 -0.045 -4.0 -0.04 -4.1 -0.02 -4.2 0.0scale='0.475 1.0 0.3 1.0spine='0.1 0.0 0.0 0.0 1.8 0.0'/>
455                                     </Shape>
456                                     <!-- End Wing Attachment -->
457                                     <Transform rotation='1 0 0 3.14translation='-1.4 1.75 -0.15'>
458 
                                        <!-- Shape WingAttachmentShape is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                                        <Shape DEF='WingAttachmentShape'>
459                                               <IS>
460                                                    <connect nodeField='appearanceprotoField='fuselageColor'/>
461                                               </IS>
462                                               <Extrusion crossSection='-0.1 0.0 0.1 0.0 0.1 -0.2 -0.1 -0.2 -0.1 0.0scale='0.9 0.9 0.95 0.95 1.0 1.0 1.0 1.0 0.5 0.5 0.45 0.45 0.4 0.4spine='0.0 0.0 0.0 0.05 0.0 0.0 0.1 0.0 0.0 0.6 0.0 0.0 1.0 0.0 0.0 1.05 0.0 0.0 1.1 0.0 0.0'/>
463                                          </Shape>
464                                     </Transform>
465                                     <!-- Middle Wing Attachment -->
466                                     <Transform rotation='1 0 0 3.14translation='-1.7 0.75 -0.15'>
467                                          <Shape USE='WingAttachmentShape'/>
468                                     </Transform>
469                                </Group>
470                                <!-- Right Rocket Pod -->
471                                <Transform rotation='0 0 1 1.57translation='-1 1.6 -0.5'>
472 
                                   <!-- Inline RocketPod is a DEF node that has 1 USE node: USE_1 -->
                                   <Inline DEF='RocketPod'   url=' "../../AircraftHelicopters/AH1SuperCobraUnitedStates/RocketPod.x3d" "https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/RocketPod.x3d" "../../AircraftHelicopters/AH1SuperCobraUnitedStates/RocketPod.wrl" "https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/RocketPod.wrl" '/>
473                                </Transform>
474                           </Transform>
475                           <!-- Left Wing -->
476                           <Transform rotation='0 0.71 0.71 3.14translation='-1.0 0.5 -0.6'>
477                                <Group DEF='LeftWing'>
478                                     <Shape DEF='LeftWingShape'>
479                                          <IS>
480                                               <connect nodeField='appearanceprotoField='fuselageColor'/>
481                                          </IS>
482                                          <Extrusion convex='falsecrossSection='4.2 0.0 4.1 -0.02 4.0 -0.04 3.9 -0.045 3.82 -0.04 2.0 0.0 3.82 0.04 3.9 0.045 4.0 0.04 4.1 0.02 4.2 0.0scale='0.475 1.0 0.3 1.0spine='0.1 -0.0 0.0 0.0 -1.8 0.0'/>
483                                     </Shape>
484                                     <!-- End Wing Attachment -->
485                                     <Transform rotation='1 0 0 3.14translation='-1.4 -1.75 -0.15'>
486                                          <Shape USE='WingAttachmentShape'/>
487                                     </Transform>
488                                     <!-- Middle Wing Attachment -->
489                                     <Transform rotation='1 0 0 3.14translation='-1.7 -0.75 -0.15'>
490                                          <Shape USE='WingAttachmentShape'/>
491                                     </Transform>
492                                </Group>
493                                <!-- Inline Left Rocket Pod -->
494                                <Transform rotation='0 0 1 1.57translation='-1 -1.6 -0.5'>
495                                     <Inline USE='RocketPod'/>
496                                </Transform>
497                           </Transform>
498                           <!-- Main Rotor -->
499                           <Transform translation='0 2.7 0'>
500 
                              <!-- ROUTE information for MainRotor node:  [from InFlightStatusScript.status to rotationOn ] -->
                              <ProtoInstance name='FourBladeMainRotorDEF='MainRotor'/>
501                           </Transform>
502                      </Group>
503                      < ROUTE  fromNode='InFlightStatusScript' fromField='status' toNode='HeloFlyingAudioClip' toField='set_loop'/>
504                      < ROUTE  fromNode='InFlightStatusScript' fromField='status' toNode='MainRotor' toField='rotationOn'/>
505                      < ROUTE  fromNode='InFlightStatusScript' fromField='status' toNode='TailRotor' toField='rotationOn'/>
506                      < ROUTE  fromNode='InFlightStatusScript' fromField='status' toNode='BottomACLightClock' toField='set_enabled'/>
507                      < ROUTE  fromNode='InFlightStatusScript' fromField='status' toNode='TopACLightClock' toField='set_enabled'/>
508                      < ROUTE  fromNode='BottomACLightClock' fromField='fraction_changed' toNode='BottomLightColorPath' toField='set_fraction'/>
509                      < ROUTE  fromNode='BottomLightColorPath' fromField='value_changed' toNode='BottomLightColor' toField='set_emissiveColor'/>
510                      < ROUTE  fromNode='TopACLightClock' fromField='fraction_changed' toNode='TopLightColorPath' toField='set_fraction'/>
511                      < ROUTE  fromNode='TopLightColorPath' fromField='value_changed' toNode='TopLightColor' toField='set_emissiveColor'/>
512                 </ProtoBody>
513            </ProtoDeclare>
514            <!-- ================================================================================================================ -->
515            <!-- Example Helicopters -->
516            <Background skyColor='.4 .4 .6'/>
517            <Anchor description='Link to example'   url=' "SuperCobraExample.x3d" "https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SuperCobraExample.x3d" "SuperCobraExample.wrl" "https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SuperCobraExample.wrl" '>
518                 <!-- Selectable Text design pattern has transparent Box and TouchSensor description as a tooltip -->
519                 <Group>
520                      <Shape>
521                           <!-- TODO adjust Text string and Box size, then set Material transparency='1' -->
522                           <Text string='"Example ProtoInstance" "found at" "SuperCobraExample.x3d"'>
523                                <FontStyle family='"SANS"justify='"MIDDLE" "MIDDLE"style='BOLD'/>
524                           </Text>
525                           <Appearance>
526                                <Material diffuseColor='0.9 0.9 0.9'/>
527                           </Appearance>
528                      </Shape>
529                      <Shape>
530                           <!-- Author TODO: to adjust transparent Box as text-selection assist, set width and height to match size, then set transparency='1' to make invisible. -->
531                           <Box size='10 3 .001'/>
532                           <Appearance>
533                                <Material transparency='1'/>
534                           </Appearance>
535                      </Shape>
536                 </Group>
537            </Anchor>
538       </Scene>
539  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: Black, BottomACLightClock, BottomLightColor, BottomLightColorPath, CenterBarCoord, CenterBarShape, Cockpit, CockpitBackWallShape, CockpitBottom, CockpitBottomShape, CockpitFloorShape, CockpitTopShape, Cowling, CowlingShape, DetailViewpoint, Engine, EngineInsideColor, EngineShape, EngineStripShape, FrontCockpitBottomShape, FrontGunBaseShape, FuselageBody, FuselageBottom, GlassPaneCoord, Gray, HeloFlyingAudioClip, HeloNameViewpoint, HeloWorldInfo, HorizontalStabilizerShape, InFlightStatusScript, LeftVerticalStabilizer, LeftWing, LeftWingShape, MainFuselageBody, MainFuselageShape, MainRotor, NoseCoord, NoseShape1, NoseShape2, RightVerticalStabilizer, RightWing, RightWingShape, RocketPod, Seat, SeatColor, TailBoom, TailBoomShape, TailRotor, TailRotorDriveShaftShape, TopACLightClock, TopLightColor, TopLightColorPath, VerticalFin, VerticalFinShape, VerticalStabilizerShape, WingAttachmentShape

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

Index for ExternProtoDeclare definitions: FourBladeMainRotor, TwoBladeTailRotor

Index for ProtoDeclare definition: SuperCobra
-->
X3D Tooltips element index: Anchor, Appearance, AudioClip, Background, Box, ColorInterpolator, connect, Coordinate, Cylinder, ExternProtoDeclare, Extrusion, field, FontStyle, Group, head, IndexedFaceSet, Inline, IS, LOD, Material, meta, ProtoBody, ProtoDeclare, ProtoInstance, ProtoInterface, ROUTE, Scene, Script, Shape, Sound, Sphere, Text, TimeSensor, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table entries with 9 ROUTE connections total, showing X3D event-model relationships for this scene.

Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

InFlightStatusScript
Script
status
SFBool

ROUTE
event to
(1)
HeloFlyingAudioClip
AudioClip
set_loop
SFBool
InFlightStatusScript
Script
status
SFBool

ROUTE
event to
(1)
MainRotor
ProtoInstance
rotationOn
SFBool
InFlightStatusScript
Script
status
SFBool

ROUTE
event to
(1)
TailRotor
ProtoInstance
rotationOn
SFBool
InFlightStatusScript
Script
status
SFBool

ROUTE
event to
(1)
BottomACLightClock
TimeSensor
set_enabled
SFBool
then
 
 
 
BottomACLightClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BottomLightColorPath
ColorInterpolator
set_fraction
SFFloat
then
 
 
 
BottomLightColorPath
ColorInterpolator
value_changed
SFColor

ROUTE
event to
(3)
BottomLightColor
Material
set_emissiveColor
SFColor
InFlightStatusScript
Script
status
SFBool

ROUTE
event to
(1)
TopACLightClock
TimeSensor
set_enabled
SFBool
then
 
 
 
TopACLightClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
TopLightColorPath
ColorInterpolator
set_fraction
SFFloat
then
 
 
 
TopLightColorPath
ColorInterpolator
value_changed
SFColor

ROUTE
event to
(3)
TopLightColor
Material
set_emissiveColor
SFColor

      MainRotor
ProtoInstance
FourBladeMainRotor
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. 

      TailRotor
ProtoInstance
TwoBladeTailRotor
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. 

line 517
Anchor
description='Link to example' 
User-interaction hint for this node. 

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/AircraftHelicopters/AH1SuperCobraUnitedStates/SuperCobraPrototypeIndex.html -->
<!-- Version control at
https://gitlab.nps.edu/Savage/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SuperCobraPrototype.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. -->