X3D Model Documentation: TomahawkPrototype.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2 
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
  3  <X3D profile='Immersive' version='3.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'>
  4       <head>
  5            <meta name='titlecontent='TomahawkPrototype.x3d'/>
  6            <meta name='descriptioncontent='BGM-109, Tomahawk Land Attack Missile prototype'/>
  7            <meta name='creatorcontent='James Harney'/>
  8            <meta name='createdcontent='4 September 2001'/>
  9            <meta name='modifiedcontent='28 November 2019'/>
 10            <meta name='referencecontent='https://www.fas.org/man/dod-101/sys/smart/bgm-109.htm'/>
 11            <meta name='referencecontent='http://www.specialoperations.com/multimedia/sounds.html'/>
 12            <meta name='referencecontent='http://www.specialoperations.com/multimedia/sounds.html'/>
 13            <meta name='referencecontent=' See url "soundpermissions.html" for copyright info and use on missile1.au and exp03.au that are converted to missile1.wav and exp03.wav for use in this file/model '/>
 14            <meta name='referencecontent='soundpermissions.html'/>
 15            <meta name='identifiercontent='https://savage.nps.edu/Savage/Weapons/Missiles/TomahawkPrototype.x3d'/>
 16            <meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
 17            <meta name='licensecontent='../../license.html'/>
 18       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: BFIN, BOOSTER, BOOSTERFIN, BOOSTSECT, CONE, EXHAUST, EXHAUSTCLOCK, EXHINT, FINANGLE, FINANGLEPORT, FINCLOCK, FINCOLOR, FINPOSIT, FINPOSITPORT, Flames, MIDFIN, MISSILEBODY, PORTFIN, STBDFIN, TCLOCK, TimeFilter2, TLAM, TLAMCLOCK, TLAMCOLOR, TLAMSOUND

Index for ProtoDeclare definition: BGM-109
-->
 19       <Scene>
 20            <WorldInfo title='TomahawkPrototype.x3d'/>
 21            <ProtoDeclare name='BGM-109'>
 22                 <ProtoInterface>
 23                      <field name='STARTLAUNCHtype='SFBoolaccessType='inputOnly'/>
 24                      <field name='THETIMEtype='SFTimeaccessType='inputOnly'/>
 25                 </ProtoInterface>
 26                 <ProtoBody>
 27                      <Transform DEF='TLAMrotation='0 1 0 -1.57'>
 28                           <Transform>
 29                                <!-- Used with permission. See soundpermissions.html for details. -->
 30                                <Sound maxBack='50000maxFront='50000'>
 31 
                                   <!-- ROUTE information for TLAMSOUND node:  [from TCLOCK.startTime to startTime ] [from TCLOCK.stopTime to stopTime ] -->
                                   <AudioClip DEF='TLAMSOUNDdescription='Tomahawk missile'   url=' "MISSILE1.wav" "https://savage.nps.edu/Savage/Weapons/Missiles/MISSILE1.wav" '/>
 32                                </Sound>
 33                                <Transform translation='0 -2.775 0'>
 34                                     <Group DEF='MISSILEBODY'>
 35                                          <Transform>
 36                                               <Shape>
 37 
                                                  <!-- Appearance TLAMCOLOR is a DEF node that has 1 USE node: USE_1 -->
                                                  <Appearance DEF='TLAMCOLOR'>
 38                                                         <Material diffuseColor='1 1 1shininess='.7specularColor='1 1 1'/>
 39                                                    </Appearance>
 40                                                    <Cylinder height='5.56radius='.25905'/>
 41                                               </Shape>
 42                                          </Transform>
 43                                     </Group>
 44                                     <Transform rotation='0 0 1 -1.56translation='-.27 2.5 0'>
 45                                          <Transform rotation='1 0 0 1.56'>
 46                                               <Shape>
 47                                                    <Text string='"TOMAHAWK"'>
 48                                                         <FontStyle size='.225style='BOLD'/>
 49                                                    </Text>
 50                                                    <Appearance>
 51                                                         <Material diffuseColor='0 0 0'/>
 52                                                    </Appearance>
 53                                               </Shape>
 54                                          </Transform>
 55                                     </Transform>
 56                                     <Transform rotation='0 0 1 1.56translation='.27 .25 0'>
 57                                          <Transform rotation='1 0 0 1.56'>
 58                                               <Shape>
 59                                                    <Text string='"U.S. NAVY"'>
 60                                                         <FontStyle size='.225style='BOLD'/>
 61                                                    </Text>
 62                                                    <Appearance>
 63                                                         <Material diffuseColor='0 0 0'/>
 64                                                    </Appearance>
 65                                               </Shape>
 66                                          </Transform>
 67                                     </Transform>
 68                                </Transform>
 69                                <Transform>
 70                                     <Group DEF='CONE'>
 71                                          <Shape>
 72                                               <Appearance>
 73                                                    <Material diffuseColor='1 1 1shininess='.7specularColor='1 1 1'/>
 74                                               </Appearance>
 75                                               <Extrusion creaseAngle='1.785crossSection='0.267 0.000 0.231 -0.134 0.134 -0.231 0.0 -0.267 -0.134 -0.231 -0.231 -0.134 -0.267 0.000 -0.231 0.134 -0.134 0.231 0.0 0.267 0.134 0.231 0.231 0.134 0.267 0.0scale='1.00 1.00 0.95 0.95 0.88 0.88 0.76 0.76 0.48 0.48spine='0.00 0.00 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'/>
 76                                          </Shape>
 77                                     </Group>
 78                                </Transform>
 79                                <Transform>
 80                                     <Group DEF='MIDFIN'>
 81 
                                        <!-- ROUTE information for STBDFIN node:  [from FINANGLE.value_changed to set_rotation ] [from FINPOSIT.value_changed to set_translation ] -->
                                        <Transform DEF='STBDFINrotation='0 0 1 -1.57translation='-.25905 -3.5 0'>
 82                                               <Transform>
 83                                                    <Shape>
 84 
                                                       <!-- Appearance FINCOLOR is a DEF node that has 1 USE node: USE_1 -->
                                                       <Appearance DEF='FINCOLOR'>
 85                                                              <Material diffuseColor='.9 .9 .9'/>
 86                                                         </Appearance>
 87                                                         <IndexedFaceSet solid='falsecoordIndex='0 1 2 3 4 -1'>
 88                                                              <Coordinate point='0 0 0 0 .5 0 1.2 .4 0 1.2 .1 0 0 0 0'/>
 89                                                         </IndexedFaceSet>
 90                                                    </Shape>
 91                                               </Transform>
 92                                          </Transform>
 93 
                                        <!-- ROUTE information for PORTFIN node:  [from FINANGLEPORT.value_changed to set_rotation ] [from FINPOSITPORT.value_changed to set_translation ] -->
                                        <Transform DEF='PORTFINrotation='0 0 1 1.57translation='.25905 -3.5 0'>
 94                                               <Transform>
 95                                                    <Shape>
 96                                                         <Appearance>
 97                                                              <Material diffuseColor='.9 .9 .9'/>
 98                                                         </Appearance>
 99                                                         <IndexedFaceSet solid='falsecoordIndex='0 1 2 3 4 -1'>
100                                                              <Coordinate point='0 0 0 0 .5 0 -1.2 .4 0 -1.2 .1 0 0 0 0'/>
101                                                         </IndexedFaceSet>
102                                                    </Shape>
103                                                    <Transform/>
104                                               </Transform>
105                                          </Transform>
106                                     </Group>
107                                </Transform>
108                                <Transform DEF='BOOSTSECT'>
109                                     <Group DEF='BOOSTER'>
110                                          <Transform translation='0 -5.91 0'>
111                                               <Shape>
112                                                    <Appearance USE='TLAMCOLOR'/>
113                                                    <Cylinder height='.69radius='.25905'/>
114                                               </Shape>
115                                          </Transform>
116                                          <Group DEF='BOOSTERFIN'>
117                                               <Transform translation='.25905 -6.27 0'>
118 
                                                  <!-- Shape BFIN is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                                                  <Shape DEF='BFIN'>
119                                                         <Appearance USE='FINCOLOR'/>
120                                                         <IndexedFaceSet solid='falsecoordIndex='0 1 2 3 4 -1'>
121                                                              <Coordinate point='0 0 0 0 .5 0 .5 .35 0 .5 0 0 0 0 0'/>
122                                                         </IndexedFaceSet>
123                                                    </Shape>
124                                               </Transform>
125                                               <Transform rotation='0 1 0 1.57translation='0 -6.27 -.25905'>
126                                                    <Shape USE='BFIN'/>
127                                               </Transform>
128                                               <Transform rotation='0 1 0 3.14translation='-.25905 -6.27 0'>
129                                                    <Shape USE='BFIN'/>
130                                               </Transform>
131                                               <Transform rotation='0 1 0 -1.57translation='0 -6.27 .25905'>
132                                                    <Shape USE='BFIN'/>
133                                               </Transform>
134                                          </Group>
135                                     </Group>
136 
                                   <!-- ROUTE information for EXHAUST node:  [from EXHINT.value_changed to set_scale ] -->
                                   <Transform DEF='EXHAUSTrotation='0 1 0 3.14scale='0.5 0.5 0.5translation='0 -8 0'>
137                                          <!-- Exhaust flames are from the torch example in the source book. -->
138 
                                        <!-- Shape Flames is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                                        <Shape DEF='Flames'>
139                                               <!-- No appearance, use emissive shading -->
140                                               <IndexedFaceSet coordIndex='0 1 2 -1 3 4 5 -1 6 7 8 -1'>
141                                                    <Coordinate point='0.25 0.0 0.00 0.15 1.0 0.10 0.05 0.0 0.15 0.18 0.0 0.05 0.00 1.2 0.05 -0.10 0.0 0.05 -0.00 0.0 0.15 -0.13 0.8 0.10 -0.25 -0.25 0.00'/>
142                                                    <Color color='1.0 0.0 0.0 0.9 0.5 0 1.0 0.0 0.0 0.9 0.3 0 1.0 1.0 0.0 0.9 0.3 0 0.7 0.1 0.2 0.9 0.8 0 1.0 0.0 0.0'/>
143                                               </IndexedFaceSet>
144                                               <Appearance>
145                                                    <Material transparency='.15'/>
146                                               </Appearance>
147                                          </Shape>
148                                          <Transform rotation='0 1 0 1.57scale='0.9 0.9 1'>
149                                               <Shape USE='Flames'/>
150                                          </Transform>
151                                          <Transform rotation='0 1 0 -1.57scale='0.9 0.9 1'>
152                                               <Shape USE='Flames'/>
153                                          </Transform>
154                                     </Transform>
155                                </Transform>
156                           </Transform>
157                           <Transform rotation='1 0 0 -.35translation='0 -4.5 -.1'>
158                                <Shape>
159                                     <Box size='.25 .5 .4'/>
160                                     <Appearance>
161                                          <Material diffuseColor='.91 .91 .91'/>
162                                     </Appearance>
163                                </Shape>
164                           </Transform>
165 
                         <!-- ROUTE information for EXHINT node:  [from EXHAUSTCLOCK.fraction_changed to set_fraction ] [from value_changed to EXHAUST.set_scale ] -->
                         <PositionInterpolator DEF='EXHINTkey='0 .25 .5 .75 1keyValue='1.4 1.4 1.4 2 2 2 2.5 2.5 2.5 2 2 2 1.4 1.4 1.4'/>
166 
                         <!-- ROUTE information for EXHAUSTCLOCK node:  [from TimeFilter2.startEventTime to set_startTime ] [from fraction_changed to EXHINT.set_fraction ] -->
                         <TimeSensor DEF='EXHAUSTCLOCKloop='true'/>
167                           <TimeSensor DEF='TLAMCLOCKcycleInterval='16enabled='false'/>
168 
                         <!-- ROUTE information for TimeFilter2 node:  [from startEventTime to TCLOCK.set_startTime ] [from startEventTime to EXHAUSTCLOCK.set_startTime ] [from startEventTime to FINCLOCK.set_startTime ] -->
                         <Script DEF='TimeFilter2'>
169                                <field name='setStarttype='SFBoolaccessType='inputOnly'/>
170                                <field name='InputTimetype='SFTimeaccessType='inputOnly'/>
171                                <field name='startEventTimetype='SFTimeaccessType='outputOnly'/>
172                                <IS>
173                                     <connect nodeField='setStartprotoField='STARTLAUNCH'/>
174                                     <connect nodeField='InputTimeprotoField='THETIME'/>
175                                </IS>
  <![CDATA[
            
ecmascript:


function setStart ( value, InputTime ) {
                         
	startEventTime = InputTime;
	
}

          
]]>
177                           </Script>
178 
                         <!-- ROUTE information for FINCLOCK node:  [from TimeFilter2.startEventTime to set_startTime ] [from fraction_changed to FINANGLE.set_fraction ] [from fraction_changed to FINPOSIT.set_fraction ] [from fraction_changed to FINANGLEPORT.set_fraction ] [from fraction_changed to FINPOSITPORT.set_fraction ] -->
                         <TimeSensor DEF='FINCLOCKcycleInterval='6'/>
179 
                         <!-- ROUTE information for TCLOCK node:  [from TimeFilter2.startEventTime to set_startTime ] [from startTime to TLAMSOUND.startTime ] [from stopTime to TLAMSOUND.stopTime ] -->
                         <TimeSensor DEF='TCLOCKcycleInterval='28'/>
180 
                         <!-- ROUTE information for FINANGLE node:  [from FINCLOCK.fraction_changed to set_fraction ] [from value_changed to STBDFIN.set_rotation ] -->
                         <OrientationInterpolator DEF='FINANGLEkey='.7 1keyValue='0 0 1 -1.57 0 0 1 0'/>
181 
                         <!-- ROUTE information for FINPOSIT node:  [from FINCLOCK.fraction_changed to set_fraction ] [from value_changed to STBDFIN.set_translation ] -->
                         <PositionInterpolator DEF='FINPOSITkey='.7 1keyValue='-.25905 -3.5 0 .25905 -3.5 0'/>
182 
                         <!-- ROUTE information for FINPOSITPORT node:  [from FINCLOCK.fraction_changed to set_fraction ] [from value_changed to PORTFIN.set_translation ] -->
                         <PositionInterpolator DEF='FINPOSITPORTkey='.7 1keyValue='.25905 -3.5 0 -.25905 -3.5 0'/>
183 
                         <!-- ROUTE information for FINANGLEPORT node:  [from FINCLOCK.fraction_changed to set_fraction ] [from value_changed to PORTFIN.set_rotation ] -->
                         <OrientationInterpolator DEF='FINANGLEPORTkey='.7 1keyValue='0 0 1 1.57 0 0 1 0'/>
184                      </Transform>
185                      < ROUTE  fromNode='TimeFilter2' fromField='startEventTime' toNode='TCLOCK' toField='set_startTime'/>
186                      < ROUTE  fromNode='TCLOCK' fromField='startTime' toNode='TLAMSOUND' toField='startTime'/>
187                      < ROUTE  fromNode='TCLOCK' fromField='stopTime' toNode='TLAMSOUND' toField='stopTime'/>
188                      < ROUTE  fromNode='TimeFilter2' fromField='startEventTime' toNode='EXHAUSTCLOCK' toField='set_startTime'/>
189                      < ROUTE  fromNode='EXHAUSTCLOCK' fromField='fraction_changed' toNode='EXHINT' toField='set_fraction'/>
190                      < ROUTE  fromNode='EXHINT' fromField='value_changed' toNode='EXHAUST' toField='set_scale'/>
191                      < ROUTE  fromNode='TimeFilter2' fromField='startEventTime' toNode='FINCLOCK' toField='set_startTime'/>
192                      < ROUTE  fromNode='FINCLOCK' fromField='fraction_changed' toNode='FINANGLE' toField='set_fraction'/>
193                      < ROUTE  fromNode='FINCLOCK' fromField='fraction_changed' toNode='FINPOSIT' toField='set_fraction'/>
194                      < ROUTE  fromNode='FINCLOCK' fromField='fraction_changed' toNode='FINANGLEPORT' toField='set_fraction'/>
195                      < ROUTE  fromNode='FINCLOCK' fromField='fraction_changed' toNode='FINPOSITPORT' toField='set_fraction'/>
196                      < ROUTE  fromNode='FINANGLE' fromField='value_changed' toNode='STBDFIN' toField='set_rotation'/>
197                      < ROUTE  fromNode='FINPOSIT' fromField='value_changed' toNode='STBDFIN' toField='set_translation'/>
198                      < ROUTE  fromNode='FINANGLEPORT' fromField='value_changed' toNode='PORTFIN' toField='set_rotation'/>
199                      < ROUTE  fromNode='FINPOSITPORT' fromField='value_changed' toNode='PORTFIN' toField='set_translation'/>
200                 </ProtoBody>
201            </ProtoDeclare>
202            <!-- ==================== -->
203            <Background skyColor='0.604 0.753 0.804'/>
204            <Anchor description='Tomahawk Exampleparameter='"target=_blank"'   url=' "TomahawkExample.wrl" "../../Weapons/Missiles/TomahawkExample.wrl" "https://savage.nps.edu/Savage/Weapons/Missiles/TomahawkExample.wrl" "TomahawkExample.x3d" "../../Weapons/Missiles/TomahawkExample.x3d" "https://savage.nps.edu/Savage/Weapons/Missiles/TomahawkExample.x3d" '>
205                 <Shape>
206                      <Text string='"TomahawkPrototype" "is a prototype declaration file" "" "To see an example scene" "click on this text and view" "TomahawkExample"'>
207                           <FontStyle justify='"MIDDLE" "MIDDLE"'/>
208                      </Text>
209                      <Appearance/>
210                 </Shape>
211            </Anchor>
212       </Scene>
213  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: BFIN, BOOSTER, BOOSTERFIN, BOOSTSECT, CONE, EXHAUST, EXHAUSTCLOCK, EXHINT, FINANGLE, FINANGLEPORT, FINCLOCK, FINCOLOR, FINPOSIT, FINPOSITPORT, Flames, MIDFIN, MISSILEBODY, PORTFIN, STBDFIN, TCLOCK, TimeFilter2, TLAM, TLAMCLOCK, TLAMCOLOR, TLAMSOUND

Index for ProtoDeclare definition: BGM-109
-->
X3D Tooltips element index: Anchor, Appearance, AudioClip, Background, Box, Color, connect, Coordinate, Cylinder, Extrusion, field, FontStyle, Group, head, IndexedFaceSet, IS, Material, meta, OrientationInterpolator, PositionInterpolator, ProtoBody, ProtoDeclare, ProtoInterface, ROUTE, Scene, Script, Shape, Sound, Text, TimeSensor, Transform, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

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

TLAMCLOCK
TimeSensor
No ROUTE connection found for output events from this node. 

TimeFilter2
Script
startEventTime
SFTime

ROUTE
event to
(1)
TCLOCK
TimeSensor
set_startTime
SFTime
then
 
 
 
TCLOCK
TimeSensor
startTime
SFTime

ROUTE
event to
(2)
TLAMSOUND
AudioClip
startTime
SFTime
  then
 
 
 
TCLOCK
TimeSensor
stopTime
SFTime

ROUTE
event to
(2)
TLAMSOUND
AudioClip
stopTime
SFTime
TimeFilter2
Script
startEventTime
SFTime

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

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

ROUTE
event to
(3)
EXHAUST
Transform
set_scale
SFVec3f
TimeFilter2
Script
startEventTime
SFTime

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

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

ROUTE
event to
(3)
STBDFIN
Transform
set_rotation
SFRotation
  then
 
 
 
FINCLOCK
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(3)
STBDFIN
Transform
set_translation
SFVec3f
  then
 
 
 
FINCLOCK
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(3)
PORTFIN
Transform
set_rotation
SFRotation
  then
 
 
 
FINCLOCK
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(3)
PORTFIN
Transform
set_translation
SFVec3f

line 204
Anchor
description='Tomahawk 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/Weapons/Missiles/TomahawkPrototypeIndex.html -->
<!-- Version control at
https://gitlab.nps.edu/Savage/Savage/Weapons/Missiles/TomahawkPrototype.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)
    <ProtoDeclare name='ProtoName'> <field name='fieldName'/> </ProtoDeclare> -->

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