X3D Model Documentation: Type209GlafkosDieselSubmarineAnimated.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=' Type209GlafkosDieselSubmarineAnimated.x3d '/>
  6            <meta name='descriptioncontent='A Hellenic fleet submarine with animation capabilities.'/>
  7            <meta name='creatorcontent='Anthony Varelas'/>
  8            <meta name='createdcontent='1 August 2002'/>
  9            <meta name='modifiedcontent='28 November 2019'/>
 10            <meta name='referencecontent=' 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='identifiercontent=' https://www.web3d.org/x3d/content/examples/Savage/Submarines/Various/Type209GlafkosDieselSubmarineAnimated.x3d '/>
 14            <meta name='generatorcontent='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 15            <meta name='licensecontent='../../license.html'/>
 16       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: Clock, Clock1, Clock2, Clock3, Clock4, Clock5, Clock6, Clock7, Clock8, DownRudder, Harpoon, Harpoon1, Harpoon2, HarpoonButton, HarpoonFire1, HarpoonFire2, HarpoonLaunch1, HarpoonLaunch2, HarpoonRot1, HarpoonRot2, HarpoonSet1, HarpoonSet2, HarpoonTube1, HarpoonTube2, Hatch, HatchBase, HatchCover, Hull, LeftStabilizer, MissileSound1, Mk48Torpedo, Periscope1, Periscope2, PeriscopeLens, PeriscopeTop, Propeller, Radar, RightRudder, RightRudderBlade, RightStabilizer, Rudders, Snorkelling, SnorkellingCover, SnorkellingTube, SonarSound, Stabilizers, SubDrag, Submarine, SubMove, SubTurn, Torpedo1, Torpedo2, Torpedo3, Torpedo4, Torpedo5, Torpedo6, TorpedoButton, Torpedoes-Harpoons, TorpedoFire1, TorpedoFire2, TorpedoFire3, TorpedoFire4, TorpedoFire5, TorpedoFire6, TorpedoLaunch1, TorpedoLaunch2, TorpedoLaunch3, TorpedoLaunch4, TorpedoLaunch5, TorpedoLaunch6, TorpedoSet1, TorpedoSet2, TorpedoSet3, TorpedoSet4, TorpedoSet5, TorpedoSet6, TorpedoTube1, TorpedoTube2, TorpedoTube3, TorpedoTube4, TorpedoTube5, TorpedoTube6, Touch1, Tower, TowerBody, UpperRudder

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4, Viewpoint_5, Viewpoint_6, Viewpoint_7, Viewpoint_8, Viewpoint_9
-->
 17       <Scene>
 18            <WorldInfo title='Type209GlafkosDieselSubmarineAnimated.x3d'/>
 19            <Background groundAngle='1.5708groundColor='0 0.2 0.7 0 0.6 0.9skyAngle='0.654 1.309skyColor='1 1 1 0 0.5 1 0 0.5 1'/>
 20            <Viewpoint description='Far Right ViewfieldOfView='1.047position='1.5 -1.035 15.5'/>
 21            <Viewpoint description='Close Right Viewposition='0 -1.035 10'/>
 22            <Viewpoint description='Tower Viewposition='2.7 1.1 3'/>
 23            <Viewpoint description='Rear Vieworientation='0 1 0 -1.57position='-10 -0.83 0'/>
 24            <Viewpoint description='Left ViewfieldOfView='1.047orientation='0 1 0 3.14position='1.5 -1.035 -23.6'/>
 25            <Viewpoint description='Front Vieworientation='0 1 0 1.57position='11 -1.035 0'/>
 26            <Viewpoint description='Top ViewfieldOfView='1.047orientation='1 0 0 -1.57position='0 25 -3.9'/>
 27            <Viewpoint description='Bottom ViewfieldOfView='1.047orientation='1 0 0 1.57position='0 -27 -4'/>
 28            <Viewpoint description='Right Side Launch ViewfieldOfView='1.047position='9 -1.035 15.5'/>
 29            <Transform scale='0.8 0.8 0.8translation='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='Submarinecenter='0 0 -5'>
 32                           <!-- Construction of the Hull -->
 33                           <Transform DEF='Hullcenter='0 0.42 0scale='1 1.3 1'>
 34                                <Transform rotation='0 0 1 1.57'>
 35                                     <Shape>
 36                                          <Appearance>
 37                                               <Material diffuseColor='0 0 0emissiveColor='0.15 0.175 0.175specularColor='0.2 0.2 0.2'/>
 38                                          </Appearance>
 39                                          <Cylinder height='12.375radius='0.84'/>
 40                                     </Shape>
 41                                </Transform>
 42                                <Transform rotation='0 0 1 1.57translation='-6.184 0 0'>
 43                                     <Shape>
 44                                          <Appearance>
 45                                               <Material diffuseColor='0.15 0.175 0.175specularColor='0.2 0.2 0.2'/>
 46                                          </Appearance>
 47                                          <Extrusion beginCap='falsecreaseAngle='1.57crossSection='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 0scale='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.06spine='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 1translation='6.1875 0 0'>
 51                                     <Shape>
 52                                          <Appearance>
 53                                               <Material diffuseColor='0.15 0.175 0.175specularColor='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.5translation='-0.04 0.61 0'>
 59                                     <Shape>
 60                                          <Appearance>
 61                                               <Material diffuseColor='0.15 0.175 0.175specularColor='0.2 0.2 0.2'/>
 62                                          </Appearance>
 63                                          <Extrusion creaseAngle='1.57crossSection='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 0scale='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.76spine='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='TowerBodyscale='5.357 1 1translation='0.84375 1.455 0'>
 70                                     <Shape>
 71                                          <Appearance>
 72                                               <Material diffuseColor='0.15 0.175 0.175specularColor='0.2 0.2 0.2'/>
 73                                          </Appearance>
 74                                          <Cylinder height='1.5radius='0.28'/>
 75                                     </Shape>
 76                                </Transform>
 77                                <!-- Construction of the Hatch -->
 78                                <Transform DEF='Hatch'>
 79                                     <Transform DEF='HatchBasetranslation='1.34 2.244 0'>
 80                                          <Shape>
 81                                               <Appearance>
 82                                                    <Material diffuseColor='0.15 0.175 0.175'/>
 83                                               </Appearance>
 84                                               <Cylinder height='0.08radius='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.0216radius='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.57translation='1.5415 2.2904 0'>
106                                                    <Shape>
107                                                         <Appearance>
108                                                              <Material diffuseColor='0.15 0.175 0.175'/>
109                                                         </Appearance>
110                                                         <Cylinder height='0.378radius='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.175specularColor='0.2 0.2 0.2'/>
121                                               </Appearance>
122                                               <Cylinder height='1.59375radius='0.0385'/>
123                                          </Shape>
124                                     </Transform>
125                                     <Transform scale='0.1 0.1 0.1translation='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='Snorkellingtranslation='0.4 2.908125 0'>
131                                     <Transform DEF='SnorkellingTube'>
132                                          <Shape>
133                                               <Appearance>
134                                                    <Material diffuseColor='0.15 0.175 0.175specularColor='0.2 0.2 0.2'/>
135                                               </Appearance>
136                                               <Cylinder height='1.40625radius='0.09'/>
137                                          </Shape>
138                                     </Transform>
139                                     <Transform DEF='SnorkellingCoverscale='0.49 0.65 0.49translation='-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.175specularColor='0.2 0.2 0.2'/>
149                                               </Appearance>
150                                               <Cylinder height='1.125radius='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.175specularColor='0.2 0.2 0.2'/>
157                                               </Appearance>
158                                               <Cylinder height='0.1radius='0.04'/>
159                                          </Shape>
160                                     </Transform>
161                                     <Transform rotation='1 0 0 1.57translation='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.08radius='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.175specularColor='0.2 0.2 0.2'/>
176                                               </Appearance>
177                                               <Cylinder height='1.59375radius='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.57translation='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.175specularColor='0.2 0.2 0.2'/>
192                                               </Appearance>
193                                               <Cylinder height='1.32radius='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.175specularColor='0.2 0.2 0.2'/>
200                                               </Appearance>
201                                               <Cylinder height='0.1radius='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.175specularColor='0.2 0.2 0.2'/>
210                                               </Appearance>
211                                               <Cylinder height='1.32radius='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.175specularColor='0.2 0.2 0.2'/>
218                                               </Appearance>
219                                               <Cylinder height='0.1radius='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.57scale='0.7 1 0.1translation='-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.175specularColor='0.2 0.2 0.2'/>
230                                          </Appearance>
231                                          <Cylinder height='0.8radius='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.175specularColor='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.57scale='0.7 1 0.1translation='-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.133translation='-9.72 0.5 0'>
249                                     <Shape DEF='UpperRudder'>
250                                          <Appearance>
251                                               <Material diffuseColor='0.15 0.175 0.175specularColor='0.2 0.2 0.2'/>
252                                          </Appearance>
253                                          <Cylinder height='0.8radius='0.3'/>
254                                     </Shape>
255                                </Transform>
256                                <Transform scale='1 1 0.114translation='-9.67 -0.5 0'>
257                                     <Shape DEF='DownRudder'>
258                                          <Appearance>
259                                               <Material diffuseColor='0.15 0.175 0.175specularColor='0.2 0.2 0.2'/>
260                                          </Appearance>
261                                          <Cylinder height='0.6radius='0.35'/>
262                                     </Shape>
263                                </Transform>
264                           </Transform>
265                           <!-- Construction of the Stabilizers -->
266                           <Transform DEF='Stabilizers'>
267                                <Transform scale='1 1 2translation='5.2 -0.42 0.42'>
268                                     <Shape DEF='RightStabilizer'>
269                                          <Appearance>
270                                               <Material diffuseColor='0.15 0.175 0.175specularColor='0.2 0.2 0.2'/>
271                                          </Appearance>
272                                          <Cylinder height='0.05radius='0.46875'/>
273                                     </Shape>
274                                </Transform>
275                                <Transform scale='1 1 2translation='5.2 -0.42 -0.42'>
276                                     <Shape DEF='LeftStabilizer'>
277                                          <Appearance>
278                                               <Material diffuseColor='0.15 0.175 0.175specularColor='0.2 0.2 0.2'/>
279                                          </Appearance>
280                                          <Cylinder height='0.05radius='0.46875'/>
281                                     </Shape>
282                                </Transform>
283                           </Transform>
284                           <!-- Inline the Propeller -->
285                           <Transform DEF='Propellerrotation='0 1 0 -1.57scale='0.2 0.2 0.2translation='-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='TorpedoSet1rotation='0 0 1 -1.57translation='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.282radius='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.57scale='0.32 0.32 0.32translation='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.57translation='-1.872 0 0'>
301                                                    <Shape>
302                                                         <Appearance>
303                                                              <Material emissiveColor='0.18 0.18 0.18'/>
304                                                         </Appearance>
305                                                         <Cylinder height='1.3radius='0.267'/>
306                                                    </Shape>
307                                               </Transform>
308                                          </Transform>
309                                     </Transform>
310                                </Transform>
311                                <Transform DEF='TorpedoSet2rotation='0 0 1 -1.57translation='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.282radius='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.57scale='0.32 0.32 0.32translation='0 0.18 0'>
320                                               <Inline USE='Mk48Torpedo'/>
321                                               <Transform rotation='0 0 1 1.57translation='-1.872 0 0'>
322                                                    <Shape>
323                                                         <Appearance>
324                                                              <Material emissiveColor='0.18 0.18 0.18'/>
325                                                         </Appearance>
326                                                         <Cylinder height='1.3radius='0.267'/>
327                                                    </Shape>
328                                               </Transform>
329                                          </Transform>
330                                     </Transform>
331                                </Transform>
332                                <Transform DEF='TorpedoSet3rotation='0 0 1 -1.57translation='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.282radius='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.57scale='0.32 0.32 0.32translation='0 0.18 0'>
341                                               <Inline USE='Mk48Torpedo'/>
342                                               <Transform rotation='0 0 1 1.57translation='-1.872 0 0'>
343                                                    <Shape>
344                                                         <Appearance>
345                                                              <Material emissiveColor='0.18 0.18 0.18'/>
346                                                         </Appearance>
347                                                         <Cylinder height='1.3radius='0.267'/>
348                                                    </Shape>
349                                               </Transform>
350                                          </Transform>
351                                     </Transform>
352                                </Transform>
353                                <Transform DEF='TorpedoSet4rotation='0 0 1 -1.57translation='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.282radius='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.57scale='0.32 0.32 0.32translation='0 0.18 0'>
362                                               <Inline USE='Mk48Torpedo'/>
363                                               <Transform rotation='0 0 1 1.57translation='-1.872 0 0'>
364                                                    <Shape>
365                                                         <Appearance>
366                                                              <Material emissiveColor='0.18 0.18 0.18'/>
367                                                         </Appearance>
368                                                         <Cylinder height='1.3radius='0.267'/>
369                                                    </Shape>
370                                               </Transform>
371                                          </Transform>
372                                     </Transform>
373                                </Transform>
374                                <Transform DEF='TorpedoSet5rotation='0 0 1 -1.57translation='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.282radius='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.57scale='0.32 0.32 0.32translation='0 0.18 0'>
383                                               <Inline USE='Mk48Torpedo'/>
384                                               <Transform rotation='0 0 1 1.57translation='-1.872 0 0'>
385                                                    <Shape>
386                                                         <Appearance>
387                                                              <Material emissiveColor='0.18 0.18 0.18'/>
388                                                         </Appearance>
389                                                         <Cylinder height='1.3radius='0.267'/>
390                                                    </Shape>
391                                               </Transform>
392                                          </Transform>
393                                     </Transform>
394                                </Transform>
395                                <Transform DEF='TorpedoSet6rotation='0 0 1 -1.57translation='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.282radius='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.57scale='0.32 0.32 0.32translation='0 0.18 0'>
404                                               <Inline USE='Mk48Torpedo'/>
405                                               <Transform rotation='0 0 1 1.57translation='-1.872 0 0'>
406                                                    <Shape>
407                                                         <Appearance>
408                                                              <Material emissiveColor='0.18 0.18 0.18'/>
409                                                         </Appearance>
410                                                         <Cylinder height='1.3radius='0.267'/>
411                                                    </Shape>
412                                               </Transform>
413                                          </Transform>
414                                     </Transform>
415                                </Transform>
416                                <Transform DEF='HarpoonSet1rotation='0 0 1 -1.57translation='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.282radius='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='Harpoon1scale='0.1 0.1 0.1translation='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='HarpoonSet2rotation='0 0 1 -1.57translation='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.282radius='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='Harpoon2scale='0.1 0.1 0.1translation='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='SubDragdescription='click and drag to move object'/>
442 
                    <!-- ROUTE information for Touch1 node:  [from touchTime to Clock.set_startTime ] -->
                    <TouchSensor DEF='Touch1description='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='ClockcycleInterval='50loop='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_fractiontype='SFFloataccessType='inputOnly'/>
447                           <field name='value_changedtype='SFVec3faccessType='outputOnly'/>
448                           <field name='radiustype='SFFloatvalue='10accessType='initializeOnly'/>
449                           <field name='turnstype='SFFloatvalue='1accessType='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_fractiontype='SFFloataccessType='inputOnly'/>
454                           <field name='value_changedtype='SFRotationaccessType='outputOnly'/>
455                           <field name='radiustype='SFFloatvalue='1accessType='initializeOnly'/>
456                           <field name='turnstype='SFFloatvalue='1accessType='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 1fogType='EXPONENTIALvisibilityRange='150000'/>
460                      <!-- Sonar Sound -->
461                      <Sound intensity='0.6maxBack='100maxFront='100minBack='50minFront='50'>
462                           <AudioClip DEF='SonarSounddescription='Sonar soundloop='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 
                                   <!-- Appearance TorpedoButton is a DEF node that has 5 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5 -->
                                   <Appearance DEF='TorpedoButton'>
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='TorpedoLaunch1description='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='TorpedoLaunch2description='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='TorpedoLaunch3description='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='TorpedoLaunch4description='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='TorpedoLaunch5description='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='TorpedoLaunch6description='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='HarpoonLaunch1description='touch to activate'/>
518                                <Sound intensity='0.7maxBack='100maxFront='100minBack='50minFront='50'>
519 
                                   <!-- ROUTE information for MissileSound1 node:  [from HarpoonLaunch1.touchTime to set_startTime ] [from HarpoonLaunch2.touchTime to set_startTime ] -->
                                   <AudioClip DEF='MissileSound1description='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='HarpoonLaunch2description='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='Clock1cycleInterval='12enabled='falseloop='true'/>
531 
                         <!-- ROUTE information for Clock2 node:  [from TorpedoLaunch2.isOver to set_enabled ] [from fraction_changed to TorpedoFire2.set_fraction ] -->
                         <TimeSensor DEF='Clock2cycleInterval='12enabled='falseloop='true'/>
532 
                         <!-- ROUTE information for Clock3 node:  [from TorpedoLaunch3.isOver to set_enabled ] [from fraction_changed to TorpedoFire3.set_fraction ] -->
                         <TimeSensor DEF='Clock3cycleInterval='12enabled='falseloop='true'/>
533 
                         <!-- ROUTE information for Clock4 node:  [from TorpedoLaunch4.isOver to set_enabled ] [from fraction_changed to TorpedoFire4.set_fraction ] -->
                         <TimeSensor DEF='Clock4cycleInterval='12enabled='falseloop='true'/>
534 
                         <!-- ROUTE information for Clock5 node:  [from TorpedoLaunch5.isOver to set_enabled ] [from fraction_changed to TorpedoFire5.set_fraction ] -->
                         <TimeSensor DEF='Clock5cycleInterval='12enabled='falseloop='true'/>
535 
                         <!-- ROUTE information for Clock6 node:  [from TorpedoLaunch6.isOver to set_enabled ] [from fraction_changed to TorpedoFire6.set_fraction ] -->
                         <TimeSensor DEF='Clock6cycleInterval='12enabled='falseloop='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='Clock7cycleInterval='8enabled='falseloop='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='Clock8cycleInterval='8enabled='falseloop='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='TorpedoFire1key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1keyValue='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='TorpedoFire2key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1keyValue='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='TorpedoFire3key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1keyValue='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='TorpedoFire4key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1keyValue='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='TorpedoFire5key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1keyValue='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='TorpedoFire6key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1keyValue='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='HarpoonFire1key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1keyValue='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='HarpoonFire2key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1keyValue='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='HarpoonRot1key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1keyValue='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='HarpoonRot2key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1keyValue='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 shows event connections.
-->
<!-- to top DEF nodes index: Clock, Clock1, Clock2, Clock3, Clock4, Clock5, Clock6, Clock7, Clock8, DownRudder, Harpoon, Harpoon1, Harpoon2, HarpoonButton, HarpoonFire1, HarpoonFire2, HarpoonLaunch1, HarpoonLaunch2, HarpoonRot1, HarpoonRot2, HarpoonSet1, HarpoonSet2, HarpoonTube1, HarpoonTube2, Hatch, HatchBase, HatchCover, Hull, LeftStabilizer, MissileSound1, Mk48Torpedo, Periscope1, Periscope2, PeriscopeLens, PeriscopeTop, Propeller, Radar, RightRudder, RightRudderBlade, RightStabilizer, Rudders, Snorkelling, SnorkellingCover, SnorkellingTube, SonarSound, Stabilizers, SubDrag, Submarine, SubMove, SubTurn, Torpedo1, Torpedo2, Torpedo3, Torpedo4, Torpedo5, Torpedo6, TorpedoButton, Torpedoes-Harpoons, TorpedoFire1, TorpedoFire2, TorpedoFire3, TorpedoFire4, TorpedoFire5, TorpedoFire6, TorpedoLaunch1, TorpedoLaunch2, TorpedoLaunch3, TorpedoLaunch4, TorpedoLaunch5, TorpedoLaunch6, TorpedoSet1, TorpedoSet2, TorpedoSet3, TorpedoSet4, TorpedoSet5, TorpedoSet6, TorpedoTube1, TorpedoTube2, TorpedoTube3, TorpedoTube4, TorpedoTube5, TorpedoTube6, Touch1, Tower, TowerBody, UpperRudder

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4, Viewpoint_5, Viewpoint_6, Viewpoint_7, Viewpoint_8, Viewpoint_9
-->
X3D Tooltips element index: Appearance, AudioClip, Background, Box, Cylinder, Extrusion, field, Fog, Group, head, Inline, Material, meta, OrientationInterpolator, PlaneSensor, PositionInterpolator, ROUTE, Scene, Script, Shape, Sound, Sphere, TimeSensor, TouchSensor, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

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

ROUTE
event to
(1)
MissileSound1
AudioClip
set_startTime
SFTime
HarpoonLaunch1
TouchSensor
isOver
SFBool

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

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

ROUTE
event to
(3)
Harpoon1
Transform
set_translation
SFVec3f
  then
 
 
 
Clock7
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(3)
Harpoon1
Transform
set_rotation
SFRotation

HarpoonLaunch2
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
MissileSound1
AudioClip
set_startTime
SFTime
HarpoonLaunch2
TouchSensor
isOver
SFBool

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

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

ROUTE
event to
(3)
Harpoon2
Transform
set_translation
SFVec3f
  then
 
 
 
Clock8
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(3)
Harpoon2
Transform
set_rotation
SFRotation

TorpedoLaunch1
TouchSensor
isOver
SFBool

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

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

ROUTE
event to
(3)
Torpedo1
Transform
set_translation
SFVec3f

TorpedoLaunch2
TouchSensor
isOver
SFBool

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

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

ROUTE
event to
(3)
Torpedo2
Transform
set_translation
SFVec3f

TorpedoLaunch3
TouchSensor
isOver
SFBool

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

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

ROUTE
event to
(3)
Torpedo3
Transform
set_translation
SFVec3f

TorpedoLaunch4
TouchSensor
isOver
SFBool

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

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

ROUTE
event to
(3)
Torpedo4
Transform
set_translation
SFVec3f

TorpedoLaunch5
TouchSensor
isOver
SFBool

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

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

ROUTE
event to
(3)
Torpedo5
Transform
set_translation
SFVec3f

TorpedoLaunch6
TouchSensor
isOver
SFBool

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

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

ROUTE
event to
(3)
Torpedo6
Transform
set_translation
SFVec3f

Touch1
TouchSensor
touchTime
SFTime

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

ROUTE
event to
(2)
SubMove
Script
set_fraction
SFFloat
then
 
 
 
SubMove
Script
value_changed
SFVec3f

ROUTE
event to
(3)
Submarine
Transform
set_translation
SFVec3f
  then
 
 
 
Clock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
SubTurn
Script
set_fraction
SFFloat
then
 
 
 
SubTurn
Script
value_changed
SFRotation

ROUTE
event to
(3)
Submarine
Transform
set_rotation
SFRotation

SubDrag
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
Submarine
Transform
set_translation
SFVec3f


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://www.web3d.org/x3d/content/examples/Savage/Submarines/Various/Type209GlafkosDieselSubmarineAnimatedIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Savage/Submarines/Various/Type209GlafkosDieselSubmarineAnimated.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)
-->

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