| 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.
-->