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='title' content='SuperCobraPrototype.x3d'/>
  6            <meta name='description' content='Defines a prototype of Supercobra AH-1Z helicopter.'/>
  7            <meta name='creator' content='Jane Wu'/>
  8            <meta name='creator' content='Don Brutzman'/>
  9            <meta name='created' content='16 January 2001'/>
 10            <meta name='modified' content='1 December 2024'/>
 11            <meta name=' TODO ' content=' fix model rotations '/>
 12            <meta name='info' content='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='reference' content='https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/Hughes500HoverInteriorMedium-cd21-no59-10sec.wav'/>
 14            <meta name='reference' content='https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/FourBladeMainRotorPrototype.x3d'/>
 15            <meta name='reference' content='https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/RocketPod.x3d'/>
 16            <meta name='reference' content='https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SkidLeft.x3d'/>
 17            <meta name='reference' content='https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SkidRight.x3d'/>
 18            <meta name='reference' content='https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/TwoBladeTailRotorPrototype.x3d'/>
 19            <meta name='reference' content='https://www.fas.org/man/dod-101/sys/ac/ah-1.htm'/>
 20            <meta name='identifier' content='https://savage.nps.edu/Savage/AircraftHelicopters/AH1SuperCobraUnitedStates/SuperCobraPrototype.x3d'/>
 21            <meta name='generator' content='X3D-Edit 4.0, https://savage.nps.edu/X3D-Edit'/>
 22            <meta name='license' content='../../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='rotationOn' type='SFBool' accessType='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='rotationOn' type='SFBool' accessType='inputOnly'/>
 30            </ExternProtoDeclare>
 31            <ProtoDeclare name='SuperCobra' appinfo='Prototype declaration for SuperCobra helicopter'>
 32                 <ProtoInterface>
 33                      <field name='tailBoomColor' type='SFNode' accessType='initializeOnly'
                     appinfo='color of tail boom'>
 34                           <!-- initialization node (if any) goes here -->
 35                      </field>
 36                      <field name='tailRotorDriveShaftColor' type='SFNode' accessType='initializeOnly'
                     appinfo='color of tail boom drive shaft'>
 37                           <!-- initialization node (if any) goes here -->
 38                      </field>
 39                      <field name='horizontalStabilizerColor' type='SFNode' accessType='initializeOnly'
                     appinfo='color of horizontal stabilizer'>
 40                           <!-- initialization node (if any) goes here -->
 41                      </field>
 42                      <field name='fuselageColor' type='SFNode' accessType='initializeOnly'
                     appinfo='color of fuselage'>
 43                           <!-- initialization node (if any) goes here -->
 44                      </field>
 45                      <field name='cockpitColor' type='SFNode' accessType='initializeOnly'
                     appinfo='color of cockpit'>
 46                           <!-- initialization node (if any) goes here -->
 47                      </field>
 48                      <field name='cowlingColor' type='SFNode' accessType='initializeOnly'
                     appinfo='color of cowling'>
 49                           <!-- initialization node (if any) goes here -->
 50                      </field>
 51                      <field name='helicopterName' type='SFString' value='Super Cobra' accessType='initializeOnly'
                     appinfo='name of specific helicopter'/>
 52                      <field name='inFlight' type='SFBool' accessType='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='title' protoField='helicopterName'/>
 59                                </IS>
 60                           </WorldInfo>
 61                           <Viewpoint DEF='HeloNameViewpoint' description='helicopter name overridden by protodeclare field' orientation='0 1 0 -1.57' position='-20 2 0'>
 62                                <IS>
 63                                     <connect nodeField='description' protoField='helicopterName'/>
 64                                </IS>
 65                           </Viewpoint>
 66                           <LOD range='400'>
 67                                <Group DEF='DetailViewpoint'>
 68                                     <Viewpoint description='SuperCobra Right' position='0 2 15'/>
 69                                     <Viewpoint description='SuperCobra Front' orientation='0 1 0 1.57' position='15 2 0'/>
 70                                     <Viewpoint description='SuperCobra Left' orientation='0 1 0 3.14' position='0 2 -15'/>
 71                                     <Viewpoint description='SuperCobra Behind' orientation='0 1 0 4.71' position='-15 2 0'/>
 72                                     <Viewpoint description='SuperCobra Top' orientation='-0.51 0.83 0.22 1.24' position='10 10 6'/>
 73                                     <Viewpoint description='SuperCobra Bottom' orientation='0.82 0.22 -0.53 0.94' position='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='inFlight' type='SFBool' accessType='inputOnly'/>
 79                                <field name='status' type='SFBool' accessType='outputOnly'/>
 80                                <IS>
 81                                     <connect nodeField='inFlight' protoField='inFlight'/>
 82                                </IS>
  <![CDATA[
            
ecmascript:

function inFlight(value, ts) {

   status = value;

}

          
]]>
 84                           </Script>
 85                           <Sound direction='1.0 1.0 1.0' maxBack='200.0' maxFront='200.0' minBack='20.0' minFront='20.0'>
 86 
                              <!-- ROUTE information for HeloFlyingAudioClip node:  [from InFlightStatusScript.status to set_loop ] -->
                              <AudioClip DEF='HeloFlyingAudioClip' description='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='TailBoom' rotation='0 0 -1 1.66' scale='1.2 1.2 1.0' translation='-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='appearance' protoField='tailBoomColor'/>
 95                                          </IS>
 96                                          <Extrusion convex='false' creaseAngle='0.8' crossSection='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.5' endCap='false' orientation='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 0' scale='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.6' solid='false' spine='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.0' rotation='0.0 0.0 1.0 0.03' translation='-0.3 1.0 0.0'>
108                                     <Group>
109                                          <Shape DEF='TailRotorDriveShaftShape'>
110                                               <IS>
111                                                    <connect nodeField='appearance' protoField='tailRotorDriveShaftColor'/>
112                                               </IS>
113                                               <Extrusion ccw='false' creaseAngle='1.5' crossSection='-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 0' scale='2 2 2.3 2.3 2 2' spine='-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.09' translation='0 0.1 0'>
119                                     <Transform rotation='0 0 1 3.14'>
120                                          <Shape DEF='HorizontalStabilizerShape'>
121                                               <IS>
122                                                    <connect nodeField='appearance' protoField='horizontalStabilizerColor'/>
123                                               </IS>
124                                               <Extrusion convex='false' creaseAngle='0.8' crossSection='-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.0' scale='0.14 1.0 0.29 1.0 0.14 1.0' solid='false' spine='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='LeftVerticalStabilizer' rotation='1 0 0 -1.57' translation='-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='appearance' protoField='tailBoomColor'/>
131                                               </IS>
132                                               <!-- right, left, bottom, lower front, upper front, top, lower back, upper back -->
133                                               <IndexedFaceSet convex='false' coordIndex='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='RightVerticalStabilizer' rotation='1 0 0 -1.57' translation='-0.05 0.85 0.325'>
139                                          <Shape USE='VerticalStabilizerShape'/>
140                                     </Transform>
141                                </Transform>
142                                <!-- Vertical Fin -->
143                                <Transform DEF='VerticalFin' rotation='0 0 1 1.57' scale='3.5 3.5 2.5' translation='1.45 0 0'>
144                                     <Shape DEF='VerticalFinShape'>
145                                          <IS>
146                                               <connect nodeField='appearance' protoField='tailBoomColor'/>
147                                          </IS>
148                                          <IndexedFaceSet convex='false' coordIndex='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.05' translation='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.2' radius='0.008'/>
159                                          </Shape>
160                                          <!-- Tip part -->
161                                          <Transform rotation='0 0 1 2.62' translation='-0.0075 -0.11 0'>
162                                               <Shape>
163                                                    <Appearance USE='Gray'/>
164                                                    <Cylinder height='0.04' radius='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='TwoBladeTailRotor' DEF='TailRotor'/>
172                                </Transform>
173                           </Transform>
174                           <!-- Fuselage -->
175                           <Transform DEF='FuselageBody' rotation='0 1 0 -1.57' translation='0.4 1.78 0.0'>
176                                <Transform DEF='MainFuselageBody'>
177                                     <Shape DEF='MainFuselageShape'>
178                                          <IS>
179                                               <connect nodeField='appearance' protoField='fuselageColor'/>
180                                          </IS>
181                                          <IndexedFaceSet creaseAngle='1.57' coordIndex='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.15' scale='0.6 0.9 1.0' translation='-0.65 -0.5 1.6'>
188 
                                   <!-- Transform Engine is a DEF node that has 1 USE node: USE_1 -->
                                   <Transform DEF='Engine' rotation='1 0 0 1.57' scale='0.25 0.25 0.25'>
189                                          <Shape DEF='EngineShape'>
190                                               <IS>
191                                                    <connect nodeField='appearance' protoField='fuselageColor'/>
192                                               </IS>
193                                               <Extrusion creaseAngle='2.36' crossSection='-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 -5' spine='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='false' crossSection='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.0' spine='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.0' spine='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.09' translation='-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.09' translation='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.09' translation='-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.09' translation='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.09' translation='-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.09' translation='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.15' scale='0.6 0.9 1.0' translation='0.65 -0.5 1.6'>
242                                     <Transform USE='Engine'/>
243                                </Transform>
244                                <!-- Cockpit -->
245                                <Transform DEF='Cockpit' rotation='1 0 0 -1.57' translation='0.0 -0.4 1.51'>
246                                     <!-- Cockpit Bottom -->
247                                     <Transform DEF='CockpitBottom' rotation='0 1 0 3.14' translation='0 2 -1.6'>
248                                          <Shape DEF='CockpitBottomShape'>
249                                               <IS>
250                                                    <connect nodeField='appearance' protoField='cockpitColor'/>
251                                               </IS>
252                                               <Extrusion beginCap='false' convex='false' creaseAngle='1.5' crossSection='-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.65' endCap='false' scale='1.0 2.5 1.0 2.0 1.0 1.61 0.9 1.25' solid='false' spine='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='appearance' protoField='cockpitColor'/>
259                                                    </IS>
260                                                    <Extrusion beginCap='false' convex='false' creaseAngle='1.5' crossSection='-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.65' endCap='false' scale='0.9 0.75 0.85 0.56' solid='false' spine='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.14' translation='0.0 2.0 0.4'>
266                                          <Shape DEF='CockpitTopShape'>
267                                               <IS>
268                                                    <connect nodeField='appearance' protoField='cockpitColor'/>
269                                               </IS>
270                                               <IndexedFaceSet creaseAngle='1.57' coordIndex='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='appearance' protoField='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='CenterBarCoord' point='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.75' transparency='0.5'/>
287                                               </Appearance>
288                                               <IndexedFaceSet creaseAngle='0.8' coordIndex='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='GlassPaneCoord' point='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='appearance' protoField='fuselageColor'/>
296                                               </IS>
297                                               <IndexedFaceSet creaseAngle='0.86' coordIndex='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='NoseCoord' point='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='appearance' protoField='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.315' scale='0.7 1.0 0.7 1.0' spine='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='appearance' protoField='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.75' radius='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='appearance' protoField='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='appearance' protoField='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='BottomLightColor' diffuseColor='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.05' radius='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='BottomACLightClock' enabled='false' loop='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='BottomLightColorPath' key='0.0 0.5 0.5 1.0' keyValue='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='Cowling' scale='0.55 0.65 0.6' translation='0.48 1.8 0.0'>
411                                <Transform rotation='0 1 0 -1.57'>
412                                     <Shape DEF='CowlingShape'>
413                                          <IS>
414                                               <connect nodeField='appearance' protoField='cowlingColor'/>
415                                          </IS>
416                                          <Extrusion creaseAngle='0.8' crossSection='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.75' scale='1.0 1.0 0.8 0.8 0.65 0.65' spine='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='TopLightColor' diffuseColor='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.05' radius='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='TopACLightClock' enabled='false' loop='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='TopLightColorPath' key='0.0 0.5 0.5 1.0' keyValue='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.57' translation='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.14' translation='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.14' translation='-1.0 0.5 0.6'>
449                                <Group DEF='RightWing'>
450                                     <Shape DEF='RightWingShape'>
451                                          <IS>
452                                               <connect nodeField='appearance' protoField='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.0' scale='0.475 1.0 0.3 1.0' spine='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.14' translation='-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='appearance' protoField='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.0' scale='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.4' spine='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.14' translation='-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.57' translation='-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.14' translation='-1.0 0.5 -0.6'>
477                                <Group DEF='LeftWing'>
478                                     <Shape DEF='LeftWingShape'>
479                                          <IS>
480                                               <connect nodeField='appearance' protoField='fuselageColor'/>
481                                          </IS>
482                                          <Extrusion convex='false' 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.0' scale='0.475 1.0 0.3 1.0' spine='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.14' translation='-1.4 -1.75 -0.15'>
486                                          <Shape USE='WingAttachmentShape'/>
487                                     </Transform>
488                                     <!-- Middle Wing Attachment -->
489                                     <Transform rotation='1 0 0 3.14' translation='-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.57' translation='-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='FourBladeMainRotor' DEF='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='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. -->