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=' Type209GlafkosDieselSubmarineAnimated.x3d '/> |
6 | <meta name='description' content='A Hellenic fleet submarine with animation capabilities.'/> |
7 | <meta name='creator' content='Anthony Varelas'/> |
8 | <meta name='created' content='1 August 2002'/> |
9 | <meta name='modified' content='28 November 2019'/> |
10 | <meta name='reference' content=' ArleighBurkePropeller.wrl Mk48.Torpedo.wrl HarpoonPrototype.wrl Radar3.wrl sonar.wav MISSILE.wav ' /> |
11 | <meta name=' warning ' content=' Torpedoes and missiles need to get moved to submarine-independent coordinate system. '/> |
12 | <meta name=' warning ' content=' Inline Harpoon needs to get converted to Harpoon ExternPrototDeclare '/> |
13 | <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/Savage/Submarines/Various/Type209GlafkosDieselSubmarineAnimated.x3d '/> |
14 | <meta name='generator' content='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/> |
15 | <meta name='license' content='../../license.html'/> |
16 | </head> |
17 | <Scene> |
18 | <WorldInfo title='Type209GlafkosDieselSubmarineAnimated.x3d'/> |
19 | <Background groundAngle='1.5708' groundColor='0 0.2 0.7 0 0.6 0.9' skyAngle='0.654 1.309' skyColor='1 1 1 0 0.5 1 0 0.5 1'/> |
20 | <Viewpoint description='Far Right View' fieldOfView='1.047' position='1.5 -1.035 15.5'/> |
21 | <Viewpoint description='Close Right View' position='0 -1.035 10'/> |
22 | <Viewpoint description='Tower View' position='2.7 1.1 3'/> |
23 | <Viewpoint description='Rear View' orientation='0 1 0 -1.57' position='-10 -0.83 0'/> |
24 | <Viewpoint description='Left View' fieldOfView='1.047' orientation='0 1 0 3.14' position='1.5 -1.035 -23.6'/> |
25 | <Viewpoint description='Front View' orientation='0 1 0 1.57' position='11 -1.035 0'/> |
26 | <Viewpoint description='Top View' fieldOfView='1.047' orientation='1 0 0 -1.57' position='0 25 -3.9'/> |
27 | <Viewpoint description='Bottom View' fieldOfView='1.047' orientation='1 0 0 1.57' position='0 -27 -4'/> |
28 | <Viewpoint description='Right Side Launch View' fieldOfView='1.047' position='9 -1.035 15.5'/> |
29 | <Transform scale='0.8 0.8 0.8' translation='1.5 -0.846 0'> |
30 | <Group> |
31 |
<!-- ROUTE information for Submarine node:
[from SubDrag.translation_changed to set_translation
]
[from SubMove.value_changed to set_translation
]
[from SubTurn.value_changed to set_rotation
]
-->
<Transform DEF='Submarine' center='0 0 -5'> |
32 | <!-- Construction of the Hull --> |
33 | <Transform DEF='Hull' center='0 0.42 0' scale='1 1.3 1'> |
34 | <Transform rotation='0 0 1 1.57'> |
35 | <Shape> |
36 | <Appearance> |
37 | <Material diffuseColor='0 0 0' emissiveColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
38 | </Appearance> |
39 | <Cylinder height='12.375' radius='0.84'/> |
40 | </Shape> |
41 | </Transform> |
42 | <Transform rotation='0 0 1 1.57' translation='-6.184 0 0'> |
43 | <Shape> |
44 | <Appearance> |
45 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
46 | </Appearance> |
47 | <Extrusion beginCap='false' creaseAngle='1.57' crossSection='1 0 0.92 -0.38 0.71 -0.71 0.38 -0.92 0 -1 -0.38 -0.92 -0.71 -0.71 -0.92 -0.38 -1 0 -0.92 0.38 -0.71 0.71 -0.38 0.92 0 1 0.38 0.92 0.71 0.71 0.92 0.38 1 0' scale='0.84 0.84 0.81 0.81 0.77 0.77 0.74 0.74 0.70 0.70 0.66 0.66 0.62 0.62 0.57 0.57 0.52 0.52 0.47 0.47 0.41 0.41 0.33 0.33 0.24 0.24 0.15 0.15 0.06 0.06' spine='0 0 0 0 0.3 0 0 0.6 0 0 0.9 0 0 1.2 0 0 1.5 0 0 1.8 0 0 2.1 0 0 2.4 0 0 2.7 0 0 3 0 0 3.3 0 0 3.6 0 0 3.9 0 0 4.2 0'/> |
48 | </Shape> |
49 | </Transform> |
50 | <Transform scale='0.6 1 1' translation='6.1875 0 0'> |
51 | <Shape> |
52 | <Appearance> |
53 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
54 | </Appearance> |
55 | <Sphere radius='0.825'/> |
56 | </Shape> |
57 | </Transform> |
58 | <Transform scale='7.63 0.53 0.5' translation='-0.04 0.61 0'> |
59 | <Shape> |
60 | <Appearance> |
61 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
62 | </Appearance> |
63 | <Extrusion creaseAngle='1.57' crossSection='1 0 0.92 -0.38 0.71 -0.71 0.38 -0.92 0 -1 -0.38 -0.92 -0.71 -0.71 -0.92 -0.38 -1 -0 -0.92 0.38 -0.71 0.71 -0.38 0.92 0 1 0.38 0.92 0.71 0.71 0.92 0.38 1 0' scale='0.815 0.94 0.815 0.92 0.815 0.90 0.815 0.88 0.815 0.86 0.815 0.84 0.815 0.82 0.8 0.8 0.78 0.78 0.76 0.76' spine='0 0.15 0 0 0.2 0 0 0.25 0 0 0.3 0 0 0.35 0 0 0.4 0 0 0.45 0 0 0.5 0 0 0.55 0 0 0.6 0'/> |
64 | </Shape> |
65 | </Transform> |
66 | </Transform> |
67 | <!-- Construction of the Tower --> |
68 | <Transform DEF='Tower'> |
69 | <Transform DEF='TowerBody' scale='5.357 1 1' translation='0.84375 1.455 0'> |
70 | <Shape> |
71 | <Appearance> |
72 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
73 | </Appearance> |
74 | <Cylinder height='1.5' radius='0.28'/> |
75 | </Shape> |
76 | </Transform> |
77 | <!-- Construction of the Hatch --> |
78 | <Transform DEF='Hatch'> |
79 | <Transform DEF='HatchBase' translation='1.34 2.244 0'> |
80 | <Shape> |
81 | <Appearance> |
82 | <Material diffuseColor='0.15 0.175 0.175'/> |
83 | </Appearance> |
84 | <Cylinder height='0.08' radius='0.17'/> |
85 | </Shape> |
86 | </Transform> |
87 | <Transform> |
88 |
<!-- Group
HatchCover is a DEF node that has 1 USE node: USE_1 -->
<Group DEF='HatchCover'> |
89 | <Transform translation='1.33 2.2965 0'> |
90 | <Shape> |
91 | <Appearance> |
92 | <Material diffuseColor='0.15 0.175 0.175'/> |
93 | </Appearance> |
94 | <Cylinder height='0.0216' radius='0.189'/> |
95 | </Shape> |
96 | </Transform> |
97 | <Transform translation='1.438 2.2985 0'> |
98 | <Shape> |
99 | <Appearance> |
100 | <Material diffuseColor='0.15 0.175 0.175'/> |
101 | </Appearance> |
102 | <Box size='0.216 0.0216 0.378'/> |
103 | </Shape> |
104 | </Transform> |
105 | <Transform rotation='1 0 0 1.57' translation='1.5415 2.2904 0'> |
106 | <Shape> |
107 | <Appearance> |
108 | <Material diffuseColor='0.15 0.175 0.175'/> |
109 | </Appearance> |
110 | <Cylinder height='0.378' radius='0.027'/> |
111 | </Shape> |
112 | </Transform> |
113 | </Group> |
114 | </Transform> |
115 | </Transform> |
116 | <Transform DEF='Radar'> |
117 | <Transform translation='0.84375 3.001875 0'> |
118 | <Shape> |
119 | <Appearance> |
120 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
121 | </Appearance> |
122 | <Cylinder height='1.59375' radius='0.0385'/> |
123 | </Shape> |
124 | </Transform> |
125 | <Transform scale='0.1 0.1 0.1' translation='0.84375 3.9 0'> |
126 | <Inline url=' "SubmarineRadar.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Submarines/Various/SubmarineRadar.x3d" "SubmarineRadar.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Submarines/Various/SubmarineRadar.wrl" '/> |
127 | </Transform> |
128 | </Transform> |
129 | <!-- Construction of Snorkelling device --> |
130 | <Transform DEF='Snorkelling' translation='0.4 2.908125 0'> |
131 | <Transform DEF='SnorkellingTube'> |
132 | <Shape> |
133 | <Appearance> |
134 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
135 | </Appearance> |
136 | <Cylinder height='1.40625' radius='0.09'/> |
137 | </Shape> |
138 | </Transform> |
139 | <Transform DEF='SnorkellingCover' scale='0.49 0.65 0.49' translation='-0.66 -0.79 0'> |
140 | <Group USE='HatchCover'/> |
141 | </Transform> |
142 | </Transform> |
143 | <!-- Construction of Periscope #1 --> |
144 | <Transform DEF='Periscope1'> |
145 | <Transform translation='2 2.7675 0'> |
146 | <Shape> |
147 | <Appearance> |
148 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
149 | </Appearance> |
150 | <Cylinder height='1.125' radius='0.025'/> |
151 | </Shape> |
152 | </Transform> |
153 | <Transform translation='2 3.25 0'> |
154 |
<!-- Shape
PeriscopeTop is a DEF node that has 1 USE node: USE_1 -->
<Shape DEF='PeriscopeTop'> |
155 | <Appearance> |
156 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
157 | </Appearance> |
158 | <Cylinder height='0.1' radius='0.04'/> |
159 | </Shape> |
160 | </Transform> |
161 | <Transform rotation='1 0 0 1.57' translation='2 3.25 0'> |
162 |
<!-- Shape
PeriscopeLens is a DEF node that has 1 USE node: USE_1 -->
<Shape DEF='PeriscopeLens'> |
163 | <Appearance> |
164 | <Material/> |
165 | </Appearance> |
166 | <Cylinder height='0.08' radius='0.028'/> |
167 | </Shape> |
168 | </Transform> |
169 | </Transform> |
170 | <!-- Construction of Periscope #2 --> |
171 | <Transform DEF='Periscope2'> |
172 | <Transform translation='1.7 3.001875 0'> |
173 | <Shape> |
174 | <Appearance> |
175 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
176 | </Appearance> |
177 | <Cylinder height='1.59375' radius='0.025'/> |
178 | </Shape> |
179 | </Transform> |
180 | <Transform translation='1.7 3.72 0'> |
181 | <Shape USE='PeriscopeTop'/> |
182 | </Transform> |
183 | <Transform rotation='1 0 0 1.57' translation='1.7 3.72 0'> |
184 | <Shape USE='PeriscopeLens'/> |
185 | </Transform> |
186 | </Transform> |
187 | <Transform> |
188 | <Transform translation='1.0175 2.865 0.15'> |
189 | <Shape> |
190 | <Appearance> |
191 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
192 | </Appearance> |
193 | <Cylinder height='1.32' radius='0.025'/> |
194 | </Shape> |
195 | </Transform> |
196 | <Transform translation='1.0175 3.55 0.15'> |
197 | <Shape> |
198 | <Appearance> |
199 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
200 | </Appearance> |
201 | <Cylinder height='0.1' radius='0.016'/> |
202 | </Shape> |
203 | </Transform> |
204 | </Transform> |
205 | <Transform> |
206 | <Transform translation='0.67 2.865 0.15'> |
207 | <Shape> |
208 | <Appearance> |
209 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
210 | </Appearance> |
211 | <Cylinder height='1.32' radius='0.025'/> |
212 | </Shape> |
213 | </Transform> |
214 | <Transform translation='0.67 3.55 0.15'> |
215 | <Shape> |
216 | <Appearance> |
217 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
218 | </Appearance> |
219 | <Cylinder height='0.1' radius='0.016'/> |
220 | </Shape> |
221 | </Transform> |
222 | </Transform> |
223 | </Transform> |
224 | <!-- Construction of the Rudders --> |
225 | <Transform DEF='Rudders'> |
226 | <Transform rotation='1 0 0 1.57' scale='0.7 1 0.1' translation='-9.5 0 0.57'> |
227 |
<!-- Shape
RightRudder is a DEF node that has 1 USE node: USE_1 -->
<Shape DEF='RightRudder'> |
228 | <Appearance> |
229 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
230 | </Appearance> |
231 | <Cylinder height='0.8' radius='0.4'/> |
232 | </Shape> |
233 | </Transform> |
234 | <Transform translation='-9.9 0 0.545'> |
235 |
<!-- Shape
RightRudderBlade is a DEF node that has 1 USE node: USE_1 -->
<Shape DEF='RightRudderBlade'> |
236 | <Appearance> |
237 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
238 | </Appearance> |
239 | <Box size='0.235 0.05 0.85'/> |
240 | </Shape> |
241 | </Transform> |
242 | <Transform rotation='1 0 0 -1.57' scale='0.7 1 0.1' translation='-9.5 0 -0.57'> |
243 | <Shape USE='RightRudder'/> |
244 | </Transform> |
245 | <Transform translation='-9.9 0 -0.545'> |
246 | <Shape USE='RightRudderBlade'/> |
247 | </Transform> |
248 | <Transform scale='1 1 0.133' translation='-9.72 0.5 0'> |
249 | <Shape DEF='UpperRudder'> |
250 | <Appearance> |
251 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
252 | </Appearance> |
253 | <Cylinder height='0.8' radius='0.3'/> |
254 | </Shape> |
255 | </Transform> |
256 | <Transform scale='1 1 0.114' translation='-9.67 -0.5 0'> |
257 | <Shape DEF='DownRudder'> |
258 | <Appearance> |
259 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
260 | </Appearance> |
261 | <Cylinder height='0.6' radius='0.35'/> |
262 | </Shape> |
263 | </Transform> |
264 | </Transform> |
265 | <!-- Construction of the Stabilizers --> |
266 | <Transform DEF='Stabilizers'> |
267 | <Transform scale='1 1 2' translation='5.2 -0.42 0.42'> |
268 | <Shape DEF='RightStabilizer'> |
269 | <Appearance> |
270 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
271 | </Appearance> |
272 | <Cylinder height='0.05' radius='0.46875'/> |
273 | </Shape> |
274 | </Transform> |
275 | <Transform scale='1 1 2' translation='5.2 -0.42 -0.42'> |
276 | <Shape DEF='LeftStabilizer'> |
277 | <Appearance> |
278 | <Material diffuseColor='0.15 0.175 0.175' specularColor='0.2 0.2 0.2'/> |
279 | </Appearance> |
280 | <Cylinder height='0.05' radius='0.46875'/> |
281 | </Shape> |
282 | </Transform> |
283 | </Transform> |
284 | <!-- Inline the Propeller --> |
285 | <Transform DEF='Propeller' rotation='0 1 0 -1.57' scale='0.2 0.2 0.2' translation='-10.5 -0.12 0'> |
286 | <Inline url=' "Type209GlafkosDieselSubmarinePropeller.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Submarines/Various/Type209GlafkosDieselSubmarinePropeller.x3d" "Type209GlafkosDieselSubmarinePropeller.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Submarines/Various/Type209GlafkosDieselSubmarinePropeller.wrl" '/> |
287 | </Transform> |
288 | <!-- Weapons --> |
289 | <Transform DEF='Torpedoes-Harpoons'> |
290 | <Transform DEF='TorpedoSet1' rotation='0 0 1 -1.57' translation='5.522 -0.2 -0.3'> |
291 | <Shape DEF='TorpedoTube1'> |
292 | <Appearance> |
293 | <Material diffuseColor='0.18 0.15 0.15'/> |
294 | </Appearance> |
295 | <Cylinder height='2.282' radius='0.09'/> |
296 | </Shape> |
297 |
<!-- ROUTE information for Torpedo1 node:
[from TorpedoFire1.value_changed to set_translation
]
-->
<Transform DEF='Torpedo1'> |
298 | <Transform rotation='0 0 1 1.57' scale='0.32 0.32 0.32' translation='0 0.18 0'> |
299 |
<!-- Inline
Mk48Torpedo is a DEF node that has 5 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5 --> <Inline DEF='Mk48Torpedo' url=' "../../Weapons/Torpedoes/Mk48Torpedo.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/Torpedoes/Mk48Torpedo.x3d" "../../Weapons/Torpedoes/Mk48Torpedo.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/Torpedoes/Mk48Torpedo.wrl" '/> |
300 | <Transform rotation='0 0 1 1.57' translation='-1.872 0 0'> |
301 | <Shape> |
302 | <Appearance> |
303 | <Material emissiveColor='0.18 0.18 0.18'/> |
304 | </Appearance> |
305 | <Cylinder height='1.3' radius='0.267'/> |
306 | </Shape> |
307 | </Transform> |
308 | </Transform> |
309 | </Transform> |
310 | </Transform> |
311 | <Transform DEF='TorpedoSet2' rotation='0 0 1 -1.57' translation='5.522 -0.2 0.3'> |
312 | <Shape DEF='TorpedoTube2'> |
313 | <Appearance> |
314 | <Material diffuseColor='0.18 0.15 0.15'/> |
315 | </Appearance> |
316 | <Cylinder height='2.282' radius='0.09'/> |
317 | </Shape> |
318 |
<!-- ROUTE information for Torpedo2 node:
[from TorpedoFire2.value_changed to set_translation
]
-->
<Transform DEF='Torpedo2'> |
319 | <Transform rotation='0 0 1 1.57' scale='0.32 0.32 0.32' translation='0 0.18 0'> |
320 | <Inline USE='Mk48Torpedo'/> |
321 | <Transform rotation='0 0 1 1.57' translation='-1.872 0 0'> |
322 | <Shape> |
323 | <Appearance> |
324 | <Material emissiveColor='0.18 0.18 0.18'/> |
325 | </Appearance> |
326 | <Cylinder height='1.3' radius='0.267'/> |
327 | </Shape> |
328 | </Transform> |
329 | </Transform> |
330 | </Transform> |
331 | </Transform> |
332 | <Transform DEF='TorpedoSet3' rotation='0 0 1 -1.57' translation='5.496 -0.4 -0.35'> |
333 | <Shape DEF='TorpedoTube3'> |
334 | <Appearance> |
335 | <Material diffuseColor='0.18 0.15 0.15'/> |
336 | </Appearance> |
337 | <Cylinder height='2.282' radius='0.09'/> |
338 | </Shape> |
339 |
<!-- ROUTE information for Torpedo3 node:
[from TorpedoFire3.value_changed to set_translation
]
-->
<Transform DEF='Torpedo3'> |
340 | <Transform rotation='0 0 1 1.57' scale='0.32 0.32 0.32' translation='0 0.18 0'> |
341 | <Inline USE='Mk48Torpedo'/> |
342 | <Transform rotation='0 0 1 1.57' translation='-1.872 0 0'> |
343 | <Shape> |
344 | <Appearance> |
345 | <Material emissiveColor='0.18 0.18 0.18'/> |
346 | </Appearance> |
347 | <Cylinder height='1.3' radius='0.267'/> |
348 | </Shape> |
349 | </Transform> |
350 | </Transform> |
351 | </Transform> |
352 | </Transform> |
353 | <Transform DEF='TorpedoSet4' rotation='0 0 1 -1.57' translation='5.496 -0.4 0.35'> |
354 | <Shape DEF='TorpedoTube4'> |
355 | <Appearance> |
356 | <Material diffuseColor='0.18 0.15 0.15'/> |
357 | </Appearance> |
358 | <Cylinder height='2.282' radius='0.09'/> |
359 | </Shape> |
360 |
<!-- ROUTE information for Torpedo4 node:
[from TorpedoFire4.value_changed to set_translation
]
-->
<Transform DEF='Torpedo4'> |
361 | <Transform rotation='0 0 1 1.57' scale='0.32 0.32 0.32' translation='0 0.18 0'> |
362 | <Inline USE='Mk48Torpedo'/> |
363 | <Transform rotation='0 0 1 1.57' translation='-1.872 0 0'> |
364 | <Shape> |
365 | <Appearance> |
366 | <Material emissiveColor='0.18 0.18 0.18'/> |
367 | </Appearance> |
368 | <Cylinder height='1.3' radius='0.267'/> |
369 | </Shape> |
370 | </Transform> |
371 | </Transform> |
372 | </Transform> |
373 | </Transform> |
374 | <Transform DEF='TorpedoSet5' rotation='0 0 1 -1.57' translation='5.528 -0.4 -0.126'> |
375 | <Shape DEF='TorpedoTube5'> |
376 | <Appearance> |
377 | <Material diffuseColor='0.18 0.15 0.15'/> |
378 | </Appearance> |
379 | <Cylinder height='2.282' radius='0.09'/> |
380 | </Shape> |
381 |
<!-- ROUTE information for Torpedo5 node:
[from TorpedoFire5.value_changed to set_translation
]
-->
<Transform DEF='Torpedo5'> |
382 | <Transform rotation='0 0 1 1.57' scale='0.32 0.32 0.32' translation='0 0.18 0'> |
383 | <Inline USE='Mk48Torpedo'/> |
384 | <Transform rotation='0 0 1 1.57' translation='-1.872 0 0'> |
385 | <Shape> |
386 | <Appearance> |
387 | <Material emissiveColor='0.18 0.18 0.18'/> |
388 | </Appearance> |
389 | <Cylinder height='1.3' radius='0.267'/> |
390 | </Shape> |
391 | </Transform> |
392 | </Transform> |
393 | </Transform> |
394 | </Transform> |
395 | <Transform DEF='TorpedoSet6' rotation='0 0 1 -1.57' translation='5.528 -0.4 0.126'> |
396 | <Shape DEF='TorpedoTube6'> |
397 | <Appearance> |
398 | <Material diffuseColor='0.18 0.15 0.15'/> |
399 | </Appearance> |
400 | <Cylinder height='2.282' radius='0.09'/> |
401 | </Shape> |
402 |
<!-- ROUTE information for Torpedo6 node:
[from TorpedoFire6.value_changed to set_translation
]
-->
<Transform DEF='Torpedo6'> |
403 | <Transform rotation='0 0 1 1.57' scale='0.32 0.32 0.32' translation='0 0.18 0'> |
404 | <Inline USE='Mk48Torpedo'/> |
405 | <Transform rotation='0 0 1 1.57' translation='-1.872 0 0'> |
406 | <Shape> |
407 | <Appearance> |
408 | <Material emissiveColor='0.18 0.18 0.18'/> |
409 | </Appearance> |
410 | <Cylinder height='1.3' radius='0.267'/> |
411 | </Shape> |
412 | </Transform> |
413 | </Transform> |
414 | </Transform> |
415 | </Transform> |
416 | <Transform DEF='HarpoonSet1' rotation='0 0 1 -1.57' translation='5.528 0 -0.25'> |
417 | <Shape DEF='HarpoonTube1'> |
418 | <Appearance> |
419 | <Material diffuseColor='0.18 0.15 0.15'/> |
420 | </Appearance> |
421 | <Cylinder height='2.282' radius='0.09'/> |
422 | </Shape> |
423 |
<!-- ROUTE information for Harpoon1 node:
[from HarpoonFire1.value_changed to set_translation
]
[from HarpoonRot1.value_changed to set_rotation
]
-->
<Transform DEF='Harpoon1' scale='0.1 0.1 0.1' translation='0 1.08 0'> |
424 |
<!-- Inline
Harpoon is a DEF node that has 1 USE node: USE_1 --> <Inline DEF='Harpoon' url=' "../../Weapons/Missiles/HarpoonExample.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/Missiles/HarpoonExample.x3d" "../../Weapons/Missiles/HarpoonExample.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/Missiles/HarpoonExample.wrl" '/> |
425 | </Transform> |
426 | </Transform> |
427 | <Transform DEF='HarpoonSet2' rotation='0 0 1 -1.57' translation='5.528 0 0.25'> |
428 | <Shape DEF='HarpoonTube2'> |
429 | <Appearance> |
430 | <Material diffuseColor='0.18 0.15 0.15'/> |
431 | </Appearance> |
432 | <Cylinder height='2.282' radius='0.09'/> |
433 | </Shape> |
434 |
<!-- ROUTE information for Harpoon2 node:
[from HarpoonFire2.value_changed to set_translation
]
[from HarpoonRot2.value_changed to set_rotation
]
-->
<Transform DEF='Harpoon2' scale='0.1 0.1 0.1' translation='0 1.08 0'> |
435 | <Inline USE='Harpoon'/> |
436 | </Transform> |
437 | </Transform> |
438 | </Transform> |
439 | </Transform> |
440 | <!-- Main Sensors --> |
441 |
<!-- ROUTE information for SubDrag node:
[from translation_changed to Submarine.set_translation
]
-->
<PlaneSensor DEF='SubDrag' description='click and drag to move object'/> |
442 |
<!-- ROUTE information for Touch1 node:
[from touchTime to Clock.set_startTime
]
-->
<TouchSensor DEF='Touch1' description='touch to activate'/> |
443 |
<!-- ROUTE information for Clock node:
[from Touch1.touchTime to set_startTime
]
[from fraction_changed to SubMove.set_fraction
]
[from fraction_changed to SubTurn.set_fraction
]
-->
<TimeSensor DEF='Clock' cycleInterval='50' loop='true'/> |
444 | <!-- Itinerary of the submarine --> |
445 |
<!-- ROUTE information for SubMove node:
[from Clock.fraction_changed to set_fraction
]
[from value_changed to Submarine.set_translation
]
-->
<Script DEF='SubMove'> |
446 | <field name='set_fraction' type='SFFloat' accessType='inputOnly'/> |
447 | <field name='value_changed' type='SFVec3f' accessType='outputOnly'/> |
448 | <field name='radius' type='SFFloat' value='10' accessType='initializeOnly'/> |
449 | <field name='turns' type='SFFloat' value='1' accessType='initializeOnly'/> |
<![CDATA[
ecmascript: function set_fraction (fraction,eventTime) { value_changed[0]=radius*Math.sin(turns*fraction*6.28); value_changed[1]=0; value_changed[2]=radius*Math.cos(turns*fraction*6.28) }
]]>
|
|
451 | </Script> |
452 |
<!-- ROUTE information for SubTurn node:
[from Clock.fraction_changed to set_fraction
]
[from value_changed to Submarine.set_rotation
]
-->
<Script DEF='SubTurn'> |
453 | <field name='set_fraction' type='SFFloat' accessType='inputOnly'/> |
454 | <field name='value_changed' type='SFRotation' accessType='outputOnly'/> |
455 | <field name='radius' type='SFFloat' value='1' accessType='initializeOnly'/> |
456 | <field name='turns' type='SFFloat' value='1' accessType='initializeOnly'/> |
<![CDATA[
ecmascript: function set_fraction (fraction,eventTime) { value_changed[0]=0; value_changed[1]=1; value_changed[2]=0; value_changed[3]=fraction*6.28; }
]]>
|
|
458 | </Script> |
459 | <Fog color='0 0 1' fogType='EXPONENTIAL' visibilityRange='150000'/> |
460 | <!-- Sonar Sound --> |
461 | <Sound intensity='0.6' maxBack='100' maxFront='100' minBack='50' minFront='50'> |
462 | <AudioClip DEF='SonarSound' description='Sonar sound' loop='true' url=' ".../.../Submarines/Various/sonar.wav" "https://www.web3d.org/x3d/content/examples/Savage/Submarines/Various/sonar.wav" "sonar.wav"'/> |
463 | </Sound> |
464 | <!-- Launch Torpedoes-Missiles --> |
465 | <Group> |
466 | <Transform translation='1.5 -5.2 7'> |
467 | <Shape> |
468 | |
469 | <Material diffuseColor='0.25 0 0.75'/> |
470 | </Appearance> |
471 | <Sphere radius='0.2'/> |
472 | </Shape> |
473 |
<!-- ROUTE information for TorpedoLaunch1 node:
[from isOver to Clock1.set_enabled
]
-->
<TouchSensor DEF='TorpedoLaunch1' description='touch to activate'/> |
474 | </Transform> |
475 | <Transform translation='2.5 -5.2 7'> |
476 | <Shape> |
477 | <Appearance USE='TorpedoButton'/> |
478 | <Sphere radius='0.2'/> |
479 | </Shape> |
480 |
<!-- ROUTE information for TorpedoLaunch2 node:
[from isOver to Clock2.set_enabled
]
-->
<TouchSensor DEF='TorpedoLaunch2' description='touch to activate'/> |
481 | </Transform> |
482 | <Transform translation='3.5 -5.2 7'> |
483 | <Shape> |
484 | <Appearance USE='TorpedoButton'/> |
485 | <Sphere radius='0.2'/> |
486 | </Shape> |
487 |
<!-- ROUTE information for TorpedoLaunch3 node:
[from isOver to Clock3.set_enabled
]
-->
<TouchSensor DEF='TorpedoLaunch3' description='touch to activate'/> |
488 | </Transform> |
489 | <Transform translation='4.5 -5.2 7'> |
490 | <Shape> |
491 | <Appearance USE='TorpedoButton'/> |
492 | <Sphere radius='0.2'/> |
493 | </Shape> |
494 |
<!-- ROUTE information for TorpedoLaunch4 node:
[from isOver to Clock4.set_enabled
]
-->
<TouchSensor DEF='TorpedoLaunch4' description='touch to activate'/> |
495 | </Transform> |
496 | <Transform translation='5.5 -5.2 7'> |
497 | <Shape> |
498 | <Appearance USE='TorpedoButton'/> |
499 | <Sphere radius='0.2'/> |
500 | </Shape> |
501 |
<!-- ROUTE information for TorpedoLaunch5 node:
[from isOver to Clock5.set_enabled
]
-->
<TouchSensor DEF='TorpedoLaunch5' description='touch to activate'/> |
502 | </Transform> |
503 | <Transform translation='6.5 -5.2 7'> |
504 | <Shape> |
505 | <Appearance USE='TorpedoButton'/> |
506 | <Sphere radius='0.2'/> |
507 | </Shape> |
508 |
<!-- ROUTE information for TorpedoLaunch6 node:
[from isOver to Clock6.set_enabled
]
-->
<TouchSensor DEF='TorpedoLaunch6' description='touch to activate'/> |
509 | </Transform> |
510 | <Transform translation='7.5 -5.2 7'> |
511 | <Shape> |
512 |
<!-- Appearance
HarpoonButton is a DEF node that has 1 USE node: USE_1 -->
<Appearance DEF='HarpoonButton'> |
513 | <Material diffuseColor='0.9 0.9 0.9'/> |
514 | </Appearance> |
515 | <Sphere radius='0.2'/> |
516 | </Shape> |
517 |
<!-- ROUTE information for HarpoonLaunch1 node:
[from touchTime to MissileSound1.set_startTime
]
[from isOver to Clock7.set_enabled
]
-->
<TouchSensor DEF='HarpoonLaunch1' description='touch to activate'/> |
518 | <Sound intensity='0.7' maxBack='100' maxFront='100' minBack='50' minFront='50'> |
519 |
<!-- ROUTE information for MissileSound1 node:
[from HarpoonLaunch1.touchTime to set_startTime
]
[from HarpoonLaunch2.touchTime to set_startTime
]
-->
<AudioClip DEF='MissileSound1' description='Missile sound' url=' "../../Weapons/Missiles/MISSILE1.wav" "https://www.web3d.org/x3d/content/examples/Savage/Weapons/Missiles/MISSILE1.wav" "MISSILE1.wav"'/> |
520 | </Sound> |
521 | </Transform> |
522 | <Transform translation='8.5 -5.2 7'> |
523 | <Shape> |
524 | <Appearance USE='HarpoonButton'/> |
525 | <Sphere radius='0.2'/> |
526 | </Shape> |
527 |
<!-- ROUTE information for HarpoonLaunch2 node:
[from touchTime to MissileSound1.set_startTime
]
[from isOver to Clock8.set_enabled
]
-->
<TouchSensor DEF='HarpoonLaunch2' description='touch to activate'/> |
528 | </Transform> |
529 | <!-- TimeSensors for Torpedoes-Missiles --> |
530 |
<!-- ROUTE information for Clock1 node:
[from TorpedoLaunch1.isOver to set_enabled
]
[from fraction_changed to TorpedoFire1.set_fraction
]
-->
<TimeSensor DEF='Clock1' cycleInterval='12' enabled='false' loop='true'/> |
531 |
<!-- ROUTE information for Clock2 node:
[from TorpedoLaunch2.isOver to set_enabled
]
[from fraction_changed to TorpedoFire2.set_fraction
]
-->
<TimeSensor DEF='Clock2' cycleInterval='12' enabled='false' loop='true'/> |
532 |
<!-- ROUTE information for Clock3 node:
[from TorpedoLaunch3.isOver to set_enabled
]
[from fraction_changed to TorpedoFire3.set_fraction
]
-->
<TimeSensor DEF='Clock3' cycleInterval='12' enabled='false' loop='true'/> |
533 |
<!-- ROUTE information for Clock4 node:
[from TorpedoLaunch4.isOver to set_enabled
]
[from fraction_changed to TorpedoFire4.set_fraction
]
-->
<TimeSensor DEF='Clock4' cycleInterval='12' enabled='false' loop='true'/> |
534 |
<!-- ROUTE information for Clock5 node:
[from TorpedoLaunch5.isOver to set_enabled
]
[from fraction_changed to TorpedoFire5.set_fraction
]
-->
<TimeSensor DEF='Clock5' cycleInterval='12' enabled='false' loop='true'/> |
535 |
<!-- ROUTE information for Clock6 node:
[from TorpedoLaunch6.isOver to set_enabled
]
[from fraction_changed to TorpedoFire6.set_fraction
]
-->
<TimeSensor DEF='Clock6' cycleInterval='12' enabled='false' loop='true'/> |
536 |
<!-- ROUTE information for Clock7 node:
[from HarpoonLaunch1.isOver to set_enabled
]
[from fraction_changed to HarpoonFire1.set_fraction
]
[from fraction_changed to HarpoonRot1.set_fraction
]
-->
<TimeSensor DEF='Clock7' cycleInterval='8' enabled='false' loop='true'/> |
537 |
<!-- ROUTE information for Clock8 node:
[from HarpoonLaunch2.isOver to set_enabled
]
[from fraction_changed to HarpoonFire2.set_fraction
]
[from fraction_changed to HarpoonRot2.set_fraction
]
-->
<TimeSensor DEF='Clock8' cycleInterval='8' enabled='false' loop='true'/> |
538 | <!-- PositionInterpolators for Torpedoes --> |
539 |
<!-- ROUTE information for TorpedoFire1 node:
[from Clock1.fraction_changed to set_fraction
]
[from value_changed to Torpedo1.set_translation
]
-->
<PositionInterpolator DEF='TorpedoFire1' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1' keyValue='0 0 0 0 4 0 0 8 0 0 12 0 0 16 0 0 20 0 0 24 0 0 28 0 0 32 0 0 36 0 0 40 0'/> |
540 |
<!-- ROUTE information for TorpedoFire2 node:
[from Clock2.fraction_changed to set_fraction
]
[from value_changed to Torpedo2.set_translation
]
-->
<PositionInterpolator DEF='TorpedoFire2' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1' keyValue='0 0 0 0 4 0 0 8 0 0 12 0 0 16 0 0 20 0 0 24 0 0 28 0 0 32 0 0 36 0 0 40 0'/> |
541 |
<!-- ROUTE information for TorpedoFire3 node:
[from Clock3.fraction_changed to set_fraction
]
[from value_changed to Torpedo3.set_translation
]
-->
<PositionInterpolator DEF='TorpedoFire3' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1' keyValue='0 0 0 0 4 0 0 8 0 0 12 0 0 16 0 0 20 0 0 24 0 0 28 0 0 32 0 0 36 0 0 40 0'/> |
542 |
<!-- ROUTE information for TorpedoFire4 node:
[from Clock4.fraction_changed to set_fraction
]
[from value_changed to Torpedo4.set_translation
]
-->
<PositionInterpolator DEF='TorpedoFire4' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1' keyValue='0 0 0 0 4 0 0 8 0 0 12 0 0 16 0 0 20 0 0 24 0 0 28 0 0 32 0 0 36 0 0 40 0'/> |
543 |
<!-- ROUTE information for TorpedoFire5 node:
[from Clock5.fraction_changed to set_fraction
]
[from value_changed to Torpedo5.set_translation
]
-->
<PositionInterpolator DEF='TorpedoFire5' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1' keyValue='0 0 0 0 4 0 0 8 0 0 12 0 0 16 0 0 20 0 0 24 0 0 28 0 0 32 0 0 36 0 0 40 0'/> |
544 |
<!-- ROUTE information for TorpedoFire6 node:
[from Clock6.fraction_changed to set_fraction
]
[from value_changed to Torpedo6.set_translation
]
-->
<PositionInterpolator DEF='TorpedoFire6' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1' keyValue='0 0 0 0 4 0 0 8 0 0 12 0 0 16 0 0 20 0 0 24 0 0 28 0 0 32 0 0 36 0 0 40 0'/> |
545 | <!-- PositionInterpolators for Missiles --> |
546 |
<!-- ROUTE information for HarpoonFire1 node:
[from Clock7.fraction_changed to set_fraction
]
[from value_changed to Harpoon1.set_translation
]
-->
<PositionInterpolator DEF='HarpoonFire1' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1' keyValue='0 0 0 0 4 0 0 8 0 0 12 0 -1 16 0 -3 20 0 -6 24 0 -10 28 0 -15 32 0 -21 36 0 -28 40 0'/> |
547 |
<!-- ROUTE information for HarpoonFire2 node:
[from Clock8.fraction_changed to set_fraction
]
[from value_changed to Harpoon2.set_translation
]
-->
<PositionInterpolator DEF='HarpoonFire2' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1' keyValue='0 0 0 0 4 0 0 8 0 0 12 0 -1 16 0 -3 20 0 -6 24 0 -10 28 0 -15 32 0 -21 36 0 -28 40 0'/> |
548 | <!-- OrientationInterpolators for Missiles --> |
549 |
<!-- ROUTE information for HarpoonRot1 node:
[from Clock7.fraction_changed to set_fraction
]
[from value_changed to Harpoon1.set_rotation
]
-->
<OrientationInterpolator DEF='HarpoonRot1' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1' keyValue='0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0.112 0 0 1 0.224 0 0 1 0.449 0 0 1 0.673 0 0 1 0.897 0 0 1 1.121 0 0 1 1.346 0 0 1 1.57'/> |
550 |
<!-- ROUTE information for HarpoonRot2 node:
[from Clock8.fraction_changed to set_fraction
]
[from value_changed to Harpoon2.set_rotation
]
-->
<OrientationInterpolator DEF='HarpoonRot2' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1' keyValue='0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0.112 0 0 1 0.224 0 0 1 0.449 0 0 1 0.673 0 0 1 0.897 0 0 1 1.121 0 0 1 1.346 0 0 1 1.57'/> |
551 | </Group> |
552 | <!-- Missile Sound --> |
553 | < ROUTE fromNode='HarpoonLaunch1' fromField='touchTime' toNode='MissileSound1' toField='set_startTime'/> |
554 | < ROUTE fromNode='HarpoonLaunch2' fromField='touchTime' toNode='MissileSound1' toField='set_startTime'/> |
555 | <!-- Launch Torpedo #1 --> |
556 | < ROUTE fromNode='TorpedoLaunch1' fromField='isOver' toNode='Clock1' toField='set_enabled'/> |
557 | < ROUTE fromNode='Clock1' fromField='fraction_changed' toNode='TorpedoFire1' toField='set_fraction'/> |
558 | < ROUTE fromNode='TorpedoFire1' fromField='value_changed' toNode='Torpedo1' toField='set_translation'/> |
559 | <!-- Launch Torpedo #2 --> |
560 | < ROUTE fromNode='TorpedoLaunch2' fromField='isOver' toNode='Clock2' toField='set_enabled'/> |
561 | < ROUTE fromNode='Clock2' fromField='fraction_changed' toNode='TorpedoFire2' toField='set_fraction'/> |
562 | < ROUTE fromNode='TorpedoFire2' fromField='value_changed' toNode='Torpedo2' toField='set_translation'/> |
563 | <!-- Launch Torpedo #3 --> |
564 | < ROUTE fromNode='TorpedoLaunch3' fromField='isOver' toNode='Clock3' toField='set_enabled'/> |
565 | < ROUTE fromNode='Clock3' fromField='fraction_changed' toNode='TorpedoFire3' toField='set_fraction'/> |
566 | < ROUTE fromNode='TorpedoFire3' fromField='value_changed' toNode='Torpedo3' toField='set_translation'/> |
567 | <!-- Launch Torpedo #4 --> |
568 | < ROUTE fromNode='TorpedoLaunch4' fromField='isOver' toNode='Clock4' toField='set_enabled'/> |
569 | < ROUTE fromNode='Clock4' fromField='fraction_changed' toNode='TorpedoFire4' toField='set_fraction'/> |
570 | < ROUTE fromNode='TorpedoFire4' fromField='value_changed' toNode='Torpedo4' toField='set_translation'/> |
571 | <!-- Launch Torpedo #5 --> |
572 | < ROUTE fromNode='TorpedoLaunch5' fromField='isOver' toNode='Clock5' toField='set_enabled'/> |
573 | < ROUTE fromNode='Clock5' fromField='fraction_changed' toNode='TorpedoFire5' toField='set_fraction'/> |
574 | < ROUTE fromNode='TorpedoFire5' fromField='value_changed' toNode='Torpedo5' toField='set_translation'/> |
575 | <!-- Launch Torpedo #6 --> |
576 | < ROUTE fromNode='TorpedoLaunch6' fromField='isOver' toNode='Clock6' toField='set_enabled'/> |
577 | < ROUTE fromNode='Clock6' fromField='fraction_changed' toNode='TorpedoFire6' toField='set_fraction'/> |
578 | < ROUTE fromNode='TorpedoFire6' fromField='value_changed' toNode='Torpedo6' toField='set_translation'/> |
579 | <!-- Launch Harpoon #1 --> |
580 | < ROUTE fromNode='HarpoonLaunch1' fromField='isOver' toNode='Clock7' toField='set_enabled'/> |
581 | < ROUTE fromNode='Clock7' fromField='fraction_changed' toNode='HarpoonFire1' toField='set_fraction'/> |
582 | < ROUTE fromNode='HarpoonFire1' fromField='value_changed' toNode='Harpoon1' toField='set_translation'/> |
583 | < ROUTE fromNode='Clock7' fromField='fraction_changed' toNode='HarpoonRot1' toField='set_fraction'/> |
584 | < ROUTE fromNode='HarpoonRot1' fromField='value_changed' toNode='Harpoon1' toField='set_rotation'/> |
585 | <!-- Launch Harpoon #2 --> |
586 | < ROUTE fromNode='HarpoonLaunch2' fromField='isOver' toNode='Clock8' toField='set_enabled'/> |
587 | < ROUTE fromNode='Clock8' fromField='fraction_changed' toNode='HarpoonFire2' toField='set_fraction'/> |
588 | < ROUTE fromNode='HarpoonFire2' fromField='value_changed' toNode='Harpoon2' toField='set_translation'/> |
589 | < ROUTE fromNode='Clock8' fromField='fraction_changed' toNode='HarpoonRot2' toField='set_fraction'/> |
590 | < ROUTE fromNode='HarpoonRot2' fromField='value_changed' toNode='Harpoon2' toField='set_rotation'/> |
591 | </Group> |
592 | <!-- Drag the Submarine --> |
593 | < ROUTE fromNode='SubDrag' fromField='translation_changed' toNode='Submarine' toField='set_translation'/> |
594 | <!-- Moving the Submarine using the main TouchSensor --> |
595 | < ROUTE fromNode='Touch1' fromField='touchTime' toNode='Clock' toField='set_startTime'/> |
596 | < ROUTE fromNode='Clock' fromField='fraction_changed' toNode='SubMove' toField='set_fraction'/> |
597 | < ROUTE fromNode='SubMove' fromField='value_changed' toNode='Submarine' toField='set_translation'/> |
598 | < ROUTE fromNode='Clock' fromField='fraction_changed' toNode='SubTurn' toField='set_fraction'/> |
599 | < ROUTE fromNode='SubTurn' fromField='value_changed' toNode='Submarine' toField='set_rotation'/> |
600 | </Transform> |
601 | </Scene> |
602 | </X3D> |
Event Graph ROUTE Table entries with 36 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.
HarpoonLaunch1
TouchSensor touchTime SFTime |
MissileSound1
AudioClip set_startTime SFTime |
|||||||||
HarpoonLaunch1
TouchSensor isOver SFBool |
Clock7
TimeSensor set_enabled SFBool |
then
|
Clock7
TimeSensor fraction_changed SFFloat |
HarpoonFire1
PositionInterpolator set_fraction SFFloat |
then
|
HarpoonFire1
PositionInterpolator value_changed SFVec3f |
Harpoon1
Transform set_translation SFVec3f |
|||
then
|
Clock7
TimeSensor fraction_changed SFFloat |
HarpoonRot1
OrientationInterpolator set_fraction SFFloat |
then
|
HarpoonRot1
OrientationInterpolator value_changed SFRotation |
Harpoon1
Transform set_rotation SFRotation |
HarpoonLaunch2
TouchSensor touchTime SFTime |
MissileSound1
AudioClip set_startTime SFTime |
|||||||||
HarpoonLaunch2
TouchSensor isOver SFBool |
Clock8
TimeSensor set_enabled SFBool |
then
|
Clock8
TimeSensor fraction_changed SFFloat |
HarpoonFire2
PositionInterpolator set_fraction SFFloat |
then
|
HarpoonFire2
PositionInterpolator value_changed SFVec3f |
Harpoon2
Transform set_translation SFVec3f |
|||
then
|
Clock8
TimeSensor fraction_changed SFFloat |
HarpoonRot2
OrientationInterpolator set_fraction SFFloat |
then
|
HarpoonRot2
OrientationInterpolator value_changed SFRotation |
Harpoon2
Transform set_rotation SFRotation |
TorpedoLaunch1
TouchSensor isOver SFBool |
Clock1
TimeSensor set_enabled SFBool |
then
|
Clock1
TimeSensor fraction_changed SFFloat |
TorpedoFire1
PositionInterpolator set_fraction SFFloat |
then
|
TorpedoFire1
PositionInterpolator value_changed SFVec3f |
Torpedo1
Transform set_translation SFVec3f |
TorpedoLaunch2
TouchSensor isOver SFBool |
Clock2
TimeSensor set_enabled SFBool |
then
|
Clock2
TimeSensor fraction_changed SFFloat |
TorpedoFire2
PositionInterpolator set_fraction SFFloat |
then
|
TorpedoFire2
PositionInterpolator value_changed SFVec3f |
Torpedo2
Transform set_translation SFVec3f |
TorpedoLaunch3
TouchSensor isOver SFBool |
Clock3
TimeSensor set_enabled SFBool |
then
|
Clock3
TimeSensor fraction_changed SFFloat |
TorpedoFire3
PositionInterpolator set_fraction SFFloat |
then
|
TorpedoFire3
PositionInterpolator value_changed SFVec3f |
Torpedo3
Transform set_translation SFVec3f |
TorpedoLaunch4
TouchSensor isOver SFBool |
Clock4
TimeSensor set_enabled SFBool |
then
|
Clock4
TimeSensor fraction_changed SFFloat |
TorpedoFire4
PositionInterpolator set_fraction SFFloat |
then
|
TorpedoFire4
PositionInterpolator value_changed SFVec3f |
Torpedo4
Transform set_translation SFVec3f |
TorpedoLaunch5
TouchSensor isOver SFBool |
Clock5
TimeSensor set_enabled SFBool |
then
|
Clock5
TimeSensor fraction_changed SFFloat |
TorpedoFire5
PositionInterpolator set_fraction SFFloat |
then
|
TorpedoFire5
PositionInterpolator value_changed SFVec3f |
Torpedo5
Transform set_translation SFVec3f |
TorpedoLaunch6
TouchSensor isOver SFBool |
Clock6
TimeSensor set_enabled SFBool |
then
|
Clock6
TimeSensor fraction_changed SFFloat |
TorpedoFire6
PositionInterpolator set_fraction SFFloat |
then
|
TorpedoFire6
PositionInterpolator value_changed SFVec3f |
Torpedo6
Transform set_translation SFVec3f |
Touch1
TouchSensor touchTime SFTime |
Clock
TimeSensor set_startTime SFTime |
then
|
Clock
TimeSensor fraction_changed SFFloat |
SubMove
Script set_fraction SFFloat |
then
|
SubMove
Script value_changed SFVec3f |
Submarine
Transform set_translation SFVec3f |
|||
then
|
Clock
TimeSensor fraction_changed SFFloat |
SubTurn
Script set_fraction SFFloat |
then
|
SubTurn
Script value_changed SFRotation |
Submarine
Transform set_rotation SFRotation |
SubDrag
PlaneSensor translation_changed SFVec3f |
Submarine
Transform set_translation SFVec3f |
<!--
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)
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->