1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
|
3 | <X3D profile='Immersive' version='3.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'> |
4 | <head> |
5 | <meta name='title' content='Stinger.x3d'/> |
6 | <meta name='description' content='Stinger Surface-to-Air Missile'/> |
7 | <meta name='creator' content='Turgut AKGUL'/> |
8 | <meta name='created' content='22 September 2003'/> |
9 | <meta name='modified' content='28 November 2019'/> |
10 | <meta name='reference' content='StingerRaytheon.pdf'/> |
11 | <meta name='reference' content='https://www.fas.org/man/dod-101/sys/land/stinger.htm'/> |
12 | <meta name='reference' content='http://www.howstuffworks.com/stinger.htm'/> |
13 | <meta name='subject' content='Stinger surface-to-air missile'/> |
14 | <meta name='identifier' content='https://savage.nps.edu/Savage/Weapons/Missiles/Stinger.x3d'/> |
15 | <meta name='generator' content='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/> |
16 | <meta name='license' content='../../license.html'/> |
17 | </head> |
18 | <Scene> |
19 | <WorldInfo title='Stinger.x3d'/> |
20 | <Background groundAngle='1.309 1.570796' groundColor='0.0 0.0 0.1 0.0 0.1 0.3 0.3 0.3 0.6' skyAngle='1.309 1.571' skyColor='1.0 0.0 0.8 0.5 0.0 0.8 0.0 0.0 0.8'/> |
21 | <Viewpoint description='view1' orientation='0.682 -0.687 -0.252 3.138' position='-2.6 1.5 -6.7'/> |
22 | <Viewpoint description='view2' orientation='-0.105 0.994 0.039 1.3696' position='11.7 -0.1 2.6'/> |
23 | <Transform> |
24 | <Group> |
25 |
<!-- ROUTE information for StingerMissile node:
[from CubePathInterpolator.value_changed to set_rotation
]
[from MyPlaneSensor.translation_changed to set_translation
]
-->
<Transform DEF='StingerMissile' scale='4 4 4'> |
26 | <Transform> |
27 | <!-- Built as well as possible to scale from pictures on FAS web site. Missile speed and distance for engagement are not what they are in real life for demonstration purposes. --> |
28 | <Transform> |
29 | <Group DEF='MISSILEBODY'> |
30 | <Transform> |
31 | <Shape> |
32 | <Appearance> |
33 | |
34 | </Appearance> |
35 | <Cylinder height='1.31' radius='0.069'/> |
36 | </Shape> |
37 | </Transform> |
38 | <Transform translation='0.069 0.515 0'> |
39 | <Group DEF='HEADFINS'> |
40 | <Transform> |
41 | <Shape DEF='HEADFIN1'> |
42 | <IndexedFaceSet solid='false' coordIndex='0 1 2 3 4 -1'> |
43 | <Coordinate point='0 0 0 0 0.0400 0 0.0800 0.0400 0 0.0800 0.0 0 0 0 0'/> |
44 | </IndexedFaceSet> |
45 | <Appearance DEF='FINCOLOR2'> |
46 | <Material USE='GREY'/> |
47 | </Appearance> |
48 | </Shape> |
49 | <Shape DEF='HEADFIN1HOLE'> |
50 | <IndexedFaceSet solid='false' coordIndex='0 1 2 3 4 -1'> |
51 | <Coordinate point='0 0 -0.004 0 0 0.004 0 -0.0800 0.004 0 -0.08 -0.004 0 0 -0.004'/> |
52 | </IndexedFaceSet> |
53 | <Appearance> |
54 |
<!-- Material
FinHoleColor is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 --> <Material DEF='FinHoleColor' diffuseColor='0.1 0.1 0.1'/> |
55 | </Appearance> |
56 | </Shape> |
57 | </Transform> |
58 | <Transform translation='-.138 0 0'> |
59 | <Shape DEF='HEADFIN2'> |
60 | <IndexedFaceSet solid='false' coordIndex='0 1 2 3 4 -1'> |
61 | <Coordinate point='0 0 0 0 0.0400 0 -0.0800 0.0400 0 -0.0800 0.0 0 0 0 0'/> |
62 | </IndexedFaceSet> |
63 | <Appearance> |
64 | <Material USE='GREY'/> |
65 | </Appearance> |
66 | </Shape> |
67 | <Shape DEF='HEADFIN2HOLE'> |
68 | <IndexedFaceSet solid='false' coordIndex='0 1 2 3 4 -1'> |
69 | <Coordinate point='0 0 -0.004 0 0 0.004 0 -0.0800 0.004 0 -0.08 -0.004 0 0 -0.004'/> |
70 | </IndexedFaceSet> |
71 | <Appearance> |
72 | <Material USE='FinHoleColor'/> |
73 | </Appearance> |
74 | </Shape> |
75 | </Transform> |
76 | <Transform translation='-0.069 0 0.069'> |
77 | <Shape DEF='HEADFIN3'> |
78 | <IndexedFaceSet solid='false' coordIndex='0 1 2 3 4 -1'> |
79 | <Coordinate point='0 0 0 0 0.0400 0 0 0.0400 0.0800 0 0.0 0.0800 0 0 0'/> |
80 | </IndexedFaceSet> |
81 | <Appearance> |
82 | <Material USE='GREY'/> |
83 | </Appearance> |
84 | </Shape> |
85 | <Shape DEF='HEADFIN3HOLE'> |
86 | <IndexedFaceSet solid='false' coordIndex='0 1 2 3 4 -1'> |
87 | <Coordinate point='-0.004 0 0 0.004 0 0 0.004 -0.0800 0 -0.004 -0.08 0 -0.004 0 0'/> |
88 | </IndexedFaceSet> |
89 | <Appearance> |
90 | <Material USE='FinHoleColor'/> |
91 | </Appearance> |
92 | </Shape> |
93 | </Transform> |
94 | <Transform translation='-0.069 0 -0.069'> |
95 | <Shape DEF='HEADFIN4'> |
96 | <IndexedFaceSet solid='false' coordIndex='0 1 2 3 4 -1'> |
97 | <Coordinate point='0 0 0 0 0.0400 0 0 0.0400 -0.0800 0 0.0 -0.0800 0 0 0'/> |
98 | </IndexedFaceSet> |
99 | <Appearance> |
100 | <Material USE='GREY'/> |
101 | </Appearance> |
102 | </Shape> |
103 | <Shape DEF='HEADFIN4HOLE'> |
104 | <IndexedFaceSet solid='false' coordIndex='0 1 2 3 4 -1'> |
105 | <Coordinate point='-0.004 0 0 0.004 0 0 0.004 -0.0800 0 -0.004 -0.08 0 -0.004 0 0'/> |
106 | </IndexedFaceSet> |
107 | <Appearance> |
108 | <Material USE='FinHoleColor'/> |
109 | </Appearance> |
110 | </Shape> |
111 | </Transform> |
112 | </Group> |
113 | </Transform> |
114 | </Group> |
115 | <Transform scale='1.31 1.31 1.31' translation='0 0.655 0'> |
116 | <Group DEF='HEAD'> |
117 | <Shape> |
118 | <Appearance> |
119 | <Material USE='GREY'/> |
120 | </Appearance> |
121 | <Extrusion creaseAngle='1.785' crossSection='0.053727 0.000 0.04648 -0.02696 0.02696 -0.04648 0.0 -0.053727 -0.02696 -0.04648 -0.04648 -0.02696 -0.053727 0.000 -0.04648 0.02696 -0.02696 0.04648 0.0 0.053727 0.02696 0.04648 0.04648 0.02696 0.053727 0.0' scale='1.00 1.00 0.95 0.95 0.88 0.88 0.76 0.76 0.48 0.48' spine='0.00 0.00 0.00 0.00 0.01 0.00 0.00 0.02 0.00 0.00 0.03 0.00 0.00 0.04 0.00'/> |
122 | </Shape> |
123 | </Group> |
124 | </Transform> |
125 | <Transform> |
126 | <Group DEF='TAIL'> |
127 | <Shape> |
128 | <Appearance> |
129 | <Material USE='GREY'/> |
130 | </Appearance> |
131 | <Extrusion creaseAngle='1.57' crossSection='1.00 0.00 0.92 -0.38 0.71 -0.71 0.38 -0.92 0.00 -1.00 -0.38 -0.92 -0.71 -0.71 -0.92 -0.38 -1.00 -0.00 -0.92 0.38 -0.71 0.71 -0.38 0.92 0.00 1.00 0.38 0.92 0.71 0.71 0.92 0.38 1.00 0.00' endCap='false' scale='0.069 0.069 0.068 0.068 0.067 0.067 0.066 0.066 0.065 0.065 0.064 0.064 0.063 0.063 0.062 0.062 0.061 0.061 0.060 0.060 0.059 0.059 0.058 0.058 0.057 0.057 0.056 0.056 0.055 0.055 0.054 0.054 0.053 0.053 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052 0.052' solid='false' spine='0.0 -0.655 0.0 0.0 -0.659 0.0 0.0 -0.663 0.0 0.0 -0.667 0.0 0.0 -0.671 0.0 0.0 -0.675 0.0 0.0 -0.679 0.0 0.0 -0.683 0.0 0.0 -0.687 0.0 0.0 -0.691 0.0 0.0 -0.695 0.0 0.0 -0.699 0.0 0.0 -0.703 0.0 0.0 -0.707 0.0 0.0 -0.711 0.0 0.0 -0.715 0.0 0.0 -0.719 0.0 0.0 -0.723 0.0 0.0 -0.727 0.0 0.0 -0.731 0.0 0.0 -0.735 0.0 0.0 -0.739 0.0 0.0 -0.743 0.0 0.0 -0.747 0.0 0.0 -0.751 0.0 0.0 -0.755 0.0 0.0 -0.759 0.0 0.0 -0.763 0.0 0.0 -0.767 0.0 0.0 -0.771 0.0 0.0 -0.775 0.0 0.0 -0.779 0.0 0.0 -0.784 0.0 0.0 -0.789 0.0 0.0 -0.793 0.0 0.0 -0.797 0.0 0.0 -0.801 0.0 0.0 -0.805 0.0 0.0 -0.809 0.0 0.0 -0.829 0.0'/> |
132 | </Shape> |
133 | </Group> |
134 | </Transform> |
135 | <Transform translation='0 .780 0'> |
136 | <Group DEF='TAILFINS'> |
137 | <Transform translation='.052 -1.59 0'> |
138 | <Shape DEF='FIN1'> |
139 | <IndexedFaceSet solid='false' coordIndex='0 1 2 3 4 -1'> |
140 | <Coordinate point='0 0 0 0 0.0600 0 0.0800 0.0400 0 0.0800 0.0200 0 0 0 0'/> |
141 | </IndexedFaceSet> |
142 | <Appearance DEF='FINCOLOR'> |
143 | |
144 | </Appearance> |
145 | </Shape> |
146 | </Transform> |
147 | <Transform translation='-.052 -1.59 0'> |
148 | <Shape DEF='FIN2'> |
149 | <IndexedFaceSet solid='false' coordIndex='0 1 2 3 4 -1'> |
150 | <Coordinate point='0 0 0 0 0.0600 0 -0.0800 0.0400 0 -0.0800 0.0200 0 0 0 0'/> |
151 | </IndexedFaceSet> |
152 | <Appearance> |
153 | <Material USE='FinColor'/> |
154 | </Appearance> |
155 | </Shape> |
156 | </Transform> |
157 | <Transform translation='0 -1.59 0.052'> |
158 | <Shape DEF='FIN3'> |
159 | <IndexedFaceSet solid='false' coordIndex='0 1 2 3 4 -1'> |
160 | <Coordinate point='0 0 0 0 0.0600 0 0 0.0400 0.0800 0 0.0200 0.0800 0 0 0'/> |
161 | </IndexedFaceSet> |
162 | <Appearance> |
163 | <Material USE='FinColor'/> |
164 | </Appearance> |
165 | </Shape> |
166 | </Transform> |
167 | <Transform translation='0 -1.59 -0.052'> |
168 | <Shape DEF='FIN4'> |
169 | <IndexedFaceSet solid='false' coordIndex='0 1 2 3 4 -1'> |
170 | <Coordinate point='0 0 0 0 0.0600 0 0 0.0400 -0.0800 0 0.0200 -0.0800 0 0 0'/> |
171 | </IndexedFaceSet> |
172 | <Appearance> |
173 | <Material USE='FinColor'/> |
174 | </Appearance> |
175 | </Shape> |
176 | </Transform> |
177 | </Group> |
178 | </Transform> |
179 | <Transform translation='0 -.88 0'> |
180 | <Shape DEF='EjectMotor'> |
181 | <Appearance> |
182 | <Material diffuseColor='0.4 0.4 0.4' shininess='.7'/> |
183 | </Appearance> |
184 | <Cylinder height='0.10' radius='0.06'/> |
185 | </Shape> |
186 | </Transform> |
187 | <Transform translation='0 -.93 0'> |
188 | <Shape DEF='EjectMotorBehind'> |
189 | <Appearance> |
190 | <Material USE='GREY'/> |
191 | </Appearance> |
192 | <Extrusion creaseAngle='1.785' crossSection='0.053727 0.000 0.04648 -0.02696 0.02696 -0.04648 0.0 -0.053727 -0.02696 -0.04648 -0.04648 -0.02696 -0.053727 0.000 -0.04648 0.02696 -0.02696 0.04648 0.0 0.053727 0.02696 0.04648 0.04648 0.02696 0.053727 0.0' scale='1.00 1.00 0.85 0.85 0.85 0.85 0.76 0.76 0.76 0.76' spine='0.00 0.00 0.00 0.00 -0.01 0.00 0.00 -0.02 0.00 0.00 -0.03 0.00 0.00 -0.04 0.00'/> |
193 | </Shape> |
194 | <Transform DEF='EXHAUST' rotation='0 1 0 3.14' scale='0.5 0.5 0.5' translation='0 -0.7 0'> |
195 | <!-- Exhaust flames are from the torch example in the source book. --> |
196 | |
197 | <!-- No appearance, use emissive shading --> |
198 | <IndexedFaceSet coordIndex='0 1 2 -1 3 4 5 -1 6 7 8 -1'> |
199 | <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'/> |
200 | <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'/> |
201 | </IndexedFaceSet> |
202 | <Appearance> |
203 | <Material transparency='.15'/> |
204 | </Appearance> |
205 | </Shape> |
206 | <Transform rotation='0 1 0 1.57' scale='0.9 0.9 1'> |
207 | <Shape USE='Flames'/> |
208 | </Transform> |
209 | <Transform rotation='0 1 0 -1.57' scale='0.9 0.9 1'> |
210 | <Shape USE='Flames'/> |
211 | </Transform> |
212 | <PositionInterpolator DEF='EXHINT' key='0 .25 .5 .75 1' keyValue='1.4 1.4 1.4 2 2 2 2.5 2.5 2.5 2 2 2 1.4 1.4 1.4'/> |
213 | <TimeSensor DEF='EXHAUSTCLOCK' loop='true'/> |
214 | <TimeSensor DEF='RGMCLOCK' cycleInterval='28'/> |
215 | </Transform> |
216 | </Transform> |
217 | </Transform> |
218 | </Transform> |
219 | </Transform> |
220 | <Inline DEF='CoordinateAxes' url=' "../../X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "../../../Savage/Tools/Authoring/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "https://savage.nps.edu/Savage/Tools/Authoring/CoordinateAxes.x3d" "../../X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" "../../../Savage/Tools/Authoring/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" "https://savage.nps.edu/Savage/Tools/Authoring/CoordinateAxes.wrl" '/> |
221 |
<!-- ROUTE information for MyTouchSensor node:
[from touchTime to CLOCK.startTime
]
-->
<TouchSensor DEF='MyTouchSensor' description='touch to start clock'/> |
222 |
<!-- ROUTE information for CLOCK node:
[from MyTouchSensor.touchTime to startTime
]
[from fraction_changed to CubePathInterpolator.set_fraction
]
-->
<TimeSensor DEF='CLOCK' cycleInterval='0.5'/> |
223 |
<!-- ROUTE information for CubePathInterpolator node:
[from CLOCK.fraction_changed to set_fraction
]
[from value_changed to StingerMissile.set_rotation
]
-->
<OrientationInterpolator DEF='CubePathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/> |
224 |
<!-- ROUTE information for MyPlaneSensor node:
[from translation_changed to StingerMissile.set_translation
]
-->
<PlaneSensor DEF='MyPlaneSensor' description='drag stinger in plane'/> |
225 | </Group> |
226 | <Script DEF='Unfinished'> |
227 | <field name='set_startTime' type='SFTime' accessType='inputOnly'/> |
228 | <field name='startTime' type='SFTime' value='0' accessType='initializeOnly'/> |
229 | <field name='delayCompleteTime' type='SFTime' accessType='outputOnly'/> |
230 | <field name='delayInterval' type='SFTime' value='1' accessType='initializeOnly'/> |
231 | <field name='set_delayInterval' type='SFTime' accessType='inputOnly'/> |
<![CDATA[
ecmascript: function set_startTime (newStartTimeValue) { startTime = newStartTimeValue; // disconnected?? delayCompleteTime = newStartTimeValue + delayInterval; } function set_delayInterval (newDelayTimeValue) { delayInterval = newDelayTimeValue; // disconnected?? delayCompleteTime = startTime + delayInterval; }
]]>
|
|
233 | </Script> |
234 | </Transform> |
235 | < ROUTE fromNode='MyTouchSensor' fromField='touchTime' toNode='CLOCK' toField='startTime'/> |
236 | < ROUTE fromNode='CLOCK' fromField='fraction_changed' toNode='CubePathInterpolator' toField='set_fraction'/> |
237 | < ROUTE fromNode='CubePathInterpolator' fromField='value_changed' toNode='StingerMissile' toField='set_rotation'/> |
238 | < ROUTE fromNode='MyPlaneSensor' fromField='translation_changed' toNode='StingerMissile' toField='set_translation'/> |
239 | </Scene> |
240 | </X3D> |
Event Graph ROUTE Table entries with 4 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.
MyTouchSensor
TouchSensor touchTime SFTime |
CLOCK
TimeSensor startTime SFTime |
then
|
CLOCK
TimeSensor fraction_changed SFFloat |
CubePathInterpolator
OrientationInterpolator set_fraction SFFloat |
then
|
CubePathInterpolator
OrientationInterpolator value_changed SFRotation |
StingerMissile
Transform set_rotation SFRotation |
EXHAUSTCLOCK
TimeSensor |
No ROUTE connection found for output events from this node. |
RGMCLOCK
TimeSensor |
No ROUTE connection found for output events from this node. |
MyPlaneSensor
PlaneSensor translation_changed SFVec3f |
StingerMissile
Transform set_translation SFVec3f |
<!--
Color 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)
-->
<!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->