| 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=' PlayGround.x3d '/> |
| 6 | <meta name='description' content='Display the playground, with swing, slides and few benches.'/> |
| 7 | <meta name='creator' content='Ms Ng, Hwee Ping'/> |
| 8 | <meta name='created' content='26 August 2004'/> |
| 9 | <meta name='modified' content='20 October 2019'/> |
| 10 | <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/Savage/Buildings/ZenCondominium/PlayGround.x3d '/> |
| 11 | <meta name='generator' content='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/> |
| 12 | <meta name='license' content='../../license.html'/> |
| 13 | </head> |
| 14 | <Scene> |
| 15 | <NavigationInfo avatarSize='2 1.6 0.75'/> |
| 16 | <Transform DEF='Elevated_Ground' rotation='1 0 0 1.57' translation='2.5 -1.2 0'> |
| 17 | <Shape> |
| 18 | <Box size='12 10 0.3'/> |
| 19 | <Appearance> |
| 20 | <Material diffuseColor='0.65 0.588 0.373'/> |
| 21 | <TextureTransform scale='3 24'/> |
| 22 | </Appearance> |
| 23 | </Shape> |
| 24 | </Transform> |
| 25 | <Transform DEF='Bench_1' rotation='0 1 0 1.57' scale='0.5 0.5 0.5' translation='-2.5 -1.05 -1'> |
| 26 |
<!-- LOD
Wooden_Bench is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
<LOD DEF='Wooden_Bench' range='50 250'> |
| 27 | <Group DEF='LODHigh2'> |
| 28 | <Transform DEF='YCoordinateAdjust2' translation='0 0.725 0'> |
| 29 | |
| 30 | <Transform rotation='1 0 0 1.57'> |
| 31 | <Shape> |
| 32 | <Box size='2 0.20 0.05'/> |
| 33 | |
| 34 | <Material diffuseColor='0.545 0.227 0.227'/> |
| 35 | </Appearance> |
| 36 | </Shape> |
| 37 | </Transform> |
| 38 | <Transform rotation='1 0 0 1.57' translation='0 0 0.25'> |
| 39 | <Shape> |
| 40 | <Box size='2 0.20 0.05'/> |
| 41 | <Appearance USE='WoodColor'/> |
| 42 | </Shape> |
| 43 | </Transform> |
| 44 | <Transform rotation='1 0 0 1.57' translation='0 0 0.5'> |
| 45 | <Shape> |
| 46 | <Box size='2 0.20 0.05'/> |
| 47 | <Appearance USE='WoodColor'/> |
| 48 | </Shape> |
| 49 | </Transform> |
| 50 | </Group> |
| 51 | <Group DEF='UnderBenchBars1'> |
| 52 | <Transform rotation='0 1 0 1.57' translation='0 0 1.2'> |
| 53 | <Transform translation='0.95 -0.045 0.75'> |
| 54 | <Shape> |
| 55 | <Box size='0.7 0.15 0.05'/> |
| 56 | <Appearance USE='WoodColor'/> |
| 57 | </Shape> |
| 58 | </Transform> |
| 59 | </Transform> |
| 60 | <Transform rotation='0 1 0 1.57' translation='0 0 1.2'> |
| 61 | <Transform translation='0.95 -0.045 -0.75'> |
| 62 | <Shape> |
| 63 | <Box size='0.7 0.15 0.05'/> |
| 64 | <Appearance USE='WoodColor'/> |
| 65 | </Shape> |
| 66 | </Transform> |
| 67 | </Transform> |
| 68 | </Group> |
| 69 | <Group DEF='UnderBenchBars2'> |
| 70 | <Transform rotation='0 1 0 1.57' translation='0 0 1.2'> |
| 71 | <Transform translation='0.95 -0.045 0.6'> |
| 72 | <Shape> |
| 73 | <Box size='0.7 0.15 0.05'/> |
| 74 | <Appearance USE='WoodColor'/> |
| 75 | </Shape> |
| 76 | </Transform> |
| 77 | </Transform> |
| 78 | <Transform rotation='0 1 0 1.57' translation='0 0 1.2'> |
| 79 | <Transform translation='0.95 -0.045 -0.6'> |
| 80 | <Shape> |
| 81 | <Box size='0.7 0.15 0.05'/> |
| 82 | <Appearance USE='WoodColor'/> |
| 83 | </Shape> |
| 84 | </Transform> |
| 85 | </Transform> |
| 86 | </Group> |
| 87 | |
| 88 | <Transform rotation='0 1 0 1.57' translation='0 0 1.2'> |
| 89 | <Transform rotation='0 0 1 1.57' translation='1.2 -0.35 0.67'> |
| 90 | <Shape> |
| 91 | <Box size='0.7 0.1 0.1'/> |
| 92 | <Appearance USE='WoodColor'/> |
| 93 | </Shape> |
| 94 | </Transform> |
| 95 | </Transform> |
| 96 | <Transform rotation='0 1 0 1.57' translation='0 0 1.2'> |
| 97 | <Transform rotation='0 0 1 1.57' translation='0.7 -0.35 0.67'> |
| 98 | <Shape> |
| 99 | <Box size='0.7 0.1 0.1'/> |
| 100 | <Appearance USE='WoodColor'/> |
| 101 | </Shape> |
| 102 | </Transform> |
| 103 | </Transform> |
| 104 | <Transform rotation='0 1 0 1.57' translation='0 0 1.2'> |
| 105 | <Transform rotation='0 0 1 1.57' translation='1.2 -0.35 -0.67'> |
| 106 | <Shape> |
| 107 | <Box size='0.7 0.1 0.1'/> |
| 108 | <Appearance USE='WoodColor'/> |
| 109 | </Shape> |
| 110 | </Transform> |
| 111 | </Transform> |
| 112 | <Transform rotation='0 1 0 1.57' translation='0 0 1.2'> |
| 113 | <Transform rotation='0 0 1 1.57' translation='0.7 -0.35 -0.67'> |
| 114 | <Shape> |
| 115 | <Box size='0.7 0.1 0.1'/> |
| 116 | <Appearance USE='WoodColor'/> |
| 117 | </Shape> |
| 118 | </Transform> |
| 119 | </Transform> |
| 120 | </Group> |
| 121 | </Transform> |
| 122 | </Group> |
| 123 | <Group DEF='LODMed2'> |
| 124 | <Transform DEF='YCoordinateAdjustLODMed2' translation='0 0.725 0'> |
| 125 | <Group USE='Bench'/> |
| 126 | <Group USE='ChairLegs'/> |
| 127 | </Transform> |
| 128 | </Group> |
| 129 | <WorldInfo info='"null node"'/> |
| 130 | </LOD> |
| 131 | </Transform> |
| 132 | <Transform DEF='Bench_2' rotation='0 1 0 1.57' scale='0.5 0.5 0.5' translation='-2.5 -1.05 0'> |
| 133 | <LOD USE='Wooden_Bench'/> |
| 134 | </Transform> |
| 135 | <Transform DEF='Bench_3' rotation='0 1 0 1.57' scale='0.5 0.5 0.5' translation='-2.5 -1.05 2'> |
| 136 | <LOD USE='Wooden_Bench'/> |
| 137 | </Transform> |
| 138 | <Transform DEF='Bench_4' rotation='0 1 0 1.57' scale='0.5 0.5 0.5' translation='-2.5 -1.05 3'> |
| 139 | <LOD USE='Wooden_Bench'/> |
| 140 | </Transform> |
| 141 | <Transform DEF='Swing' translation='0.5 -0.3 -3'> |
| 142 | <Group> |
| 143 | <Transform> |
| 144 | <Group> |
| 145 | <Transform center='0 1 0' rotation='1 0 0 0.5' translation='-2 0 0'> |
| 146 |
<!-- Shape
SWINGVBarGP is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
<Shape DEF='SWINGVBarGP'> |
| 147 | <Cylinder radius='0.1'/> |
| 148 | <Appearance> |
| 149 | <Material diffuseColor='0 0 0' shininess='0.7'/> |
| 150 |
<!-- ImageTexture
WOODTexture1 is a DEF node that has 1 USE node: USE_1 --> <ImageTexture DEF='WOODTexture1' url=' "Wood.jpg
" "https://www.web3d.org/x3d/content/examples/Savage/Buildings/ZenCondominium/Wood.jpg
" '/>
|
| 151 | </Appearance> |
| 152 | </Shape> |
| 153 | </Transform> |
| 154 | <Transform center='0 1 0' rotation='1 0 0 -0.5' translation='-2 0 0'> |
| 155 | <Shape USE='SWINGVBarGP'/> |
| 156 | </Transform> |
| 157 | <Transform center='0 1 0' rotation='1 0 0 0.5' translation='2 0 0'> |
| 158 | <Shape USE='SWINGVBarGP'/> |
| 159 | </Transform> |
| 160 | <Transform center='0 1 0' rotation='1 0 0 -0.5' translation='2 0 0'> |
| 161 | <Shape USE='SWINGVBarGP'/> |
| 162 | </Transform> |
| 163 | <Transform rotation='0 0 1 1.57' translation='0 1 0'> |
| 164 | <Shape DEF='SWINGCBarSH'> |
| 165 | <Cylinder height='4.2' radius='0.1'/> |
| 166 | <Appearance> |
| 167 | <Material/> |
| 168 | <ImageTexture USE='WOODTexture1'/> |
| 169 | </Appearance> |
| 170 | </Shape> |
| 171 | </Transform> |
| 172 | <Transform translation='-1 0.85 0'> |
| 173 | |
| 174 | <Transform rotation='0 0 1 1.57' scale='0.03 0.03 0.03'> |
| 175 | <Shape> |
| 176 | <Appearance> |
| 177 | <Material diffuseColor='1 1 1'/> |
| 178 | </Appearance> |
| 179 | <Extrusion beginCap='false' convex='false' creaseAngle='1.57' crossSection='1.00 0.00 0.92 -0.38 0.71 -0.71 0.38 -0.92 0.00 -1.00 -0.38 -0.92 -0.71 -0.71 -0.92 -0.38 -1.00 -0.00 -0.92 0.38 -0.71 0.71 -0.38 0.92 0.00 1.00 0.38 0.92 0.71 0.71 0.92 0.38 1.00 0.00' endCap='false' spine='2.00 0.0 0.00 1.85 0.0 0.77 1.41 0.0 1.41 0.77 0.0 1.85 0.00 0.0 2.00 -0.77 0.0 1.85 -1.41 0.0 1.41 -1.85 0.0 0.77 -2.00 0.0 0.00 -1.85 0.0 -0.77 -1.41 0.0 -1.41 -0.77 0.0 -1.85 0.00 0.0 -2.00 0.77 0.0 -1.85 1.41 0.0 -1.41 1.85 0.0 -0.77 2.00 0.0 0.00'/> |
| 180 | </Shape> |
| 181 | </Transform> |
| 182 | </Group> |
| 183 | </Transform> |
| 184 | <Transform translation='-0.5 0.85 0'> |
| 185 | <Group USE='LOOPGP'/> |
| 186 | </Transform> |
| 187 | <Transform translation='0.5 0.85 0'> |
| 188 | <Group USE='LOOPGP'/> |
| 189 | </Transform> |
| 190 | <Transform translation='1 0.85 0'> |
| 191 | <Group USE='LOOPGP'/> |
| 192 | </Transform> |
| 193 |
<!-- ROUTE information for SWINGSensor node:
[from touchTime to SWINGSEAT1Timer.set_startTime
]
[from touchTime to SWINGSEAT2Timer.set_startTime
]
-->
<TouchSensor DEF='SWINGSensor' description='Swing Sensor'/> |
| 194 | <Transform/> |
| 195 | </Group> |
| 196 | <Transform> |
| 197 | <Group> |
| 198 | <Transform> |
| 199 |
<!-- ROUTE information for SWINGSEAT1TX node:
[from SWINGSEAT1Inter.value_changed to set_rotation
]
-->
<Transform DEF='SWINGSEAT1TX' center='0 0.85 0' rotation='1 0 0 0.0001'> |
| 200 | <Group DEF='SWINGSEAT1GP'> |
| 201 | <Group> |
| 202 | <Transform scale='0.5 0.5 0.5' translation='-1 0.8 0'> |
| 203 | |
| 204 | <Transform rotation='1 0 0 1.57' scale='0.05 0.05 0.05'> |
| 205 | |
| 206 | |
| 207 | <Material diffuseColor='1 1 1'/> |
| 208 | </Appearance> |
| 209 | <Extrusion beginCap='false' convex='false' creaseAngle='1.57' crossSection='1.00 0.00 0.92 -0.38 0.71 -0.71 0.38 -0.92 0.00 -1.00 -0.38 -0.92 -0.71 -0.71 -0.92 -0.38 -1.00 -0.00 -0.92 0.38 -0.71 0.71 -0.38 0.92 0.00 1.00 0.38 0.92 0.71 0.71 0.92 0.38 1.00 0.00' endCap='false' spine='2.00 0.0 0.00 1.85 0.0 0.77 1.41 0.0 1.41 0.77 0.0 1.85 0.00 0.0 2.00 -0.77 0.0 1.85 -1.41 0.0 1.41 -1.85 0.0 0.77 -2.00 0.0 0.00 -1.85 0.0 -0.77 -1.41 0.0 -1.41 -0.77 0.0 -1.85 0.00 0.0 -2.00 0.77 0.0 -1.85 1.41 0.0 -1.41 1.85 0.0 -0.77 2.00 0.0 0.00'/> |
| 210 | </Shape> |
| 211 | </Transform> |
| 212 | <Transform scale='0.05 0.05 0.05' translation='0 -1.475 0'> |
| 213 | <Shape> |
| 214 | <Appearance USE='ROPEApp'/> |
| 215 | <Cylinder height='55'/> |
| 216 | </Shape> |
| 217 | </Transform> |
| 218 | </Group> |
| 219 | <Transform translation='1 0 0'> |
| 220 | <Group USE='ROPELeft'/> |
| 221 | </Transform> |
| 222 | <Transform translation='0.5 -2.85 0'> |
| 223 | <Shape> |
| 224 | <Box size='1.15 0.08 0.3'/> |
| 225 | <Appearance> |
| 226 | <Material diffuseColor='0.95 0.1 0.1' emissiveColor='0.05 0.05 0.05'/> |
| 227 | </Appearance> |
| 228 | </Shape> |
| 229 | </Transform> |
| 230 |
<!-- ROUTE information for SWINGSEAT1Sensor node:
[from touchTime to SWINGSEAT1Timer.set_startTime
]
-->
<TouchSensor DEF='SWINGSEAT1Sensor' description='Swing Seat Sensor'/> |
| 231 |
<!-- ROUTE information for SWINGSEAT1Timer node:
[from SWINGSensor.touchTime to set_startTime
]
[from SWINGSEAT1Sensor.touchTime to set_startTime
]
[from fraction_changed to SWINGSEAT1Inter.set_fraction
]
-->
<TimeSensor DEF='SWINGSEAT1Timer' cycleInterval='40'/> |
| 232 |
<!-- ROUTE information for SWINGSEAT1Inter node:
[from SWINGSEAT1Timer.fraction_changed to set_fraction
]
[from value_changed to SWINGSEAT1TX.set_rotation
]
-->
<OrientationInterpolator DEF='SWINGSEAT1Inter' key='0 0.025 0.075 0.125 0.175 0.225 0.275 0.325 0.375 0.425 0.475 0.525 0.575 0.625 0.675 0.725 0.775 0.825 0.875 0.925 0.975 1.0' keyValue='1 0 0 0 1 0 0 0.785 1 0 0 -1.2 1 0 0 1.2 1 0 0 -1.3 1 0 0 1.3 1 0 0 -1.35 1 0 0 1.35 1 0 0 -1.2 1 0 0 1.2 1 0 0 -1.25 1 0 0 0.785 1 0 0 -1.2 1 0 0 1.2 1 0 0 -1.3 1 0 0 1.3 1 0 0 -1.35 1 0 0 1.35 1 0 0 -1.2 1 0 0 1.2 1 0 0 -1.25 1 0 0 0'/> |
| 233 | </Transform> |
| 234 | </Group> |
| 235 | </Group> |
| 236 | </Transform> |
| 237 | </Transform> |
| 238 |
<!-- ROUTE information for SWINGSEAT2TX node:
[from SWINGSEAT2Inter.value_changed to set_rotation
]
-->
<Transform DEF='SWINGSEAT2TX' center='0 0.85 0'> |
| 239 | <Group DEF='SWINGSEAT2GP'> |
| 240 | <Group> |
| 241 | <Transform scale='0.5 0.5 0.5' translation='-1 0.8 0'> |
| 242 | <Transform translation='3 0 0'> |
| 243 | |
| 244 | <Transform rotation='1 0 0 1.57' scale='0.05 0.05 0.05'> |
| 245 | <Shape USE='SWINRING'/> |
| 246 | </Transform> |
| 247 | <Transform scale='0.05 0.05 0.05' translation='0 -1.37 0'> |
| 248 | <Shape> |
| 249 | <Appearance USE='ROPEApp'/> |
| 250 | <Cylinder height='50'/> |
| 251 | </Shape> |
| 252 | </Transform> |
| 253 | </Group> |
| 254 | <Transform translation='1 0 0'> |
| 255 | <Group USE='ROPELeft2'/> |
| 256 | </Transform> |
| 257 | <Transform translation='0.5 -2.6 0'> |
| 258 | <Shape> |
| 259 | <Box size='1.15 0.08 0.3'/> |
| 260 | <Appearance> |
| 261 | <Material diffuseColor='0.1 0.1 0.95' emissiveColor='0.05 0.05 0.1'/> |
| 262 | </Appearance> |
| 263 | </Shape> |
| 264 | </Transform> |
| 265 |
<!-- ROUTE information for SWINGSEAT2Sensor node:
[from touchTime to SWINGSEAT2Timer.set_startTime
]
-->
<TouchSensor DEF='SWINGSEAT2Sensor' description='Swing Seat 2 Sensor'/> |
| 266 |
<!-- ROUTE information for SWINGSEAT2Timer node:
[from SWINGSensor.touchTime to set_startTime
]
[from SWINGSEAT2Sensor.touchTime to set_startTime
]
[from fraction_changed to SWINGSEAT2Inter.set_fraction
]
-->
<TimeSensor DEF='SWINGSEAT2Timer' cycleInterval='35'/> |
| 267 |
<!-- ROUTE information for SWINGSEAT2Inter node:
[from SWINGSEAT2Timer.fraction_changed to set_fraction
]
[from value_changed to SWINGSEAT2TX.set_rotation
]
-->
<OrientationInterpolator DEF='SWINGSEAT2Inter' key='0 0.025 0.075 0.125 0.175 0.225 0.275 0.325 0.375 0.425 0.475 0.525 0.575 0.625 0.675 0.725 0.775 0.825 0.875 0.925 0.975 1.0' keyValue='1 0 0 0 1 0 0 0.785 1 0 0 -1.25 1 0 0 1.3 1 0 0 -1.3 1 0 0 1.35 1 0 0 -1.35 1 0 0 1.25 1 0 0 -1.25 1 0 0 1.2 1 0 0 -1.2 1 0 0 0.785 1 0 0 -1.25 1 0 0 1.3 1 0 0 -1.3 1 0 0 1.35 1 0 0 -1.35 1 0 0 1.25 1 0 0 -1.25 1 0 0 1.2 1 0 0 -1.2 1 0 0 0'/> |
| 268 | </Transform> |
| 269 | </Transform> |
| 270 | </Group> |
| 271 | </Group> |
| 272 | </Transform> |
| 273 | </Group> |
| 274 | </Transform> |
| 275 | <Transform/> |
| 276 | < ROUTE fromNode='SWINGSensor' fromField='touchTime' toNode='SWINGSEAT1Timer' toField='set_startTime'/> |
| 277 | < ROUTE fromNode='SWINGSensor' fromField='touchTime' toNode='SWINGSEAT2Timer' toField='set_startTime'/> |
| 278 | < ROUTE fromNode='SWINGSEAT1Sensor' fromField='touchTime' toNode='SWINGSEAT1Timer' toField='set_startTime'/> |
| 279 | < ROUTE fromNode='SWINGSEAT1Timer' fromField='fraction_changed' toNode='SWINGSEAT1Inter' toField='set_fraction'/> |
| 280 | < ROUTE fromNode='SWINGSEAT1Inter' fromField='value_changed' toNode='SWINGSEAT1TX' toField='set_rotation'/> |
| 281 | < ROUTE fromNode='SWINGSEAT2Sensor' fromField='touchTime' toNode='SWINGSEAT2Timer' toField='set_startTime'/> |
| 282 | < ROUTE fromNode='SWINGSEAT2Timer' fromField='fraction_changed' toNode='SWINGSEAT2Inter' toField='set_fraction'/> |
| 283 | < ROUTE fromNode='SWINGSEAT2Inter' fromField='value_changed' toNode='SWINGSEAT2TX' toField='set_rotation'/> |
| 284 | </Transform> |
| 285 | </Group> |
| 286 | </Transform> |
| 287 | <Transform translation='1.6 -0.6 2'> |
| 288 | <Group DEF='SeeSaw'> |
| 289 |
<!-- ROUTE information for SEESAWTx node:
[from SEESAWInt.value_changed to set_rotation
]
-->
<Transform DEF='SEESAWTx' rotation='0 0 1 -0.22'> |
| 290 | <Group DEF='SEESAW'> |
| 291 | <Transform> |
| 292 | <Shape DEF='Plank1'> |
| 293 | <Box size='4 0.05 0.3'/> |
| 294 | <Appearance> |
| 295 | <Material diffuseColor='0.9 0.3 0.1'/> |
| 296 | </Appearance> |
| 297 | </Shape> |
| 298 | </Transform> |
| 299 | <Transform translation='1.6 0.1 -0.1'> |
| 300 | |
| 301 | <Cylinder height='0.15' radius='0.03'/> |
| 302 | <Appearance> |
| 303 | <Material diffuseColor='0.7 0.7 0.7'/> |
| 304 | </Appearance> |
| 305 | </Shape> |
| 306 | </Transform> |
| 307 | <Transform translation='-1.6 0.1 0.1'> |
| 308 | <Shape USE='Rod1'/> |
| 309 | </Transform> |
| 310 | <Transform translation='-1.6 0.1 -0.1'> |
| 311 | <Shape USE='Rod1'/> |
| 312 | </Transform> |
| 313 | <Transform translation='1.6 0.1 0.1'> |
| 314 | <Shape USE='Rod1'/> |
| 315 | </Transform> |
| 316 | <Transform rotation='1 0 0 1.575' scale='1.2 2.5 1' translation='1.6 0.18 0'> |
| 317 | <Shape USE='Rod1'/> |
| 318 | </Transform> |
| 319 | <Transform rotation='1 0 0 1.575' scale='1.2 2.5 1' translation='-1.6 0.18 0'> |
| 320 | <Shape USE='Rod1'/> |
| 321 | </Transform> |
| 322 |
<!-- ROUTE information for SEESAWSensor node:
[from touchTime to SEESAWTimer.set_startTime
]
-->
<TouchSensor DEF='SEESAWSensor' description='See Saw Sensor'/> |
| 323 |
<!-- ROUTE information for SEESAWTimer node:
[from SEESAWSensor.touchTime to set_startTime
]
[from fraction_changed to SEESAWInt.set_fraction
]
-->
<TimeSensor DEF='SEESAWTimer' cycleInterval='10'/> |
| 324 |
<!-- ROUTE information for SEESAWInt node:
[from SEESAWTimer.fraction_changed to set_fraction
]
[from value_changed to SEESAWTx.set_rotation
]
-->
<OrientationInterpolator DEF='SEESAWInt' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0' keyValue='0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22'/> |
| 325 | </Group> |
| 326 | </Transform> |
| 327 | <Transform> |
| 328 | <Group DEF='SEESAWBody'> |
| 329 | <Transform translation='0 0 0.2'> |
| 330 | |
| 331 | <Transform rotation='1 0 0 1.575'> |
| 332 | <Shape> |
| 333 | <Cylinder height='0.05' radius='0.2'/> |
| 334 | |
| 335 | <Material diffuseColor='0.1 0.1 0.9'/> |
| 336 | </Appearance> |
| 337 | </Shape> |
| 338 | </Transform> |
| 339 | <Transform translation='0 -0.2 0'> |
| 340 | <Shape> |
| 341 | <Box size='0.4 0.6 0.05'/> |
| 342 | <Appearance USE='PanelApp'/> |
| 343 | </Shape> |
| 344 | </Transform> |
| 345 | <Transform translation='1.6 0 0.1'> |
| 346 | <Shape/> |
| 347 | </Transform> |
| 348 | </Group> |
| 349 | </Transform> |
| 350 | <Transform translation='0 0 -0.2'> |
| 351 | <Group USE='SidePanel'/> |
| 352 | </Transform> |
| 353 | <Transform DEF='Pivot' rotation='1 0 0 1.575'> |
| 354 | <Shape> |
| 355 | <Cylinder height='0.5' radius='0.024'/> |
| 356 | <Appearance USE='PanelApp'/> |
| 357 | </Shape> |
| 358 | </Transform> |
| 359 | </Group> |
| 360 | < ROUTE fromNode='SEESAWSensor' fromField='touchTime' toNode='SEESAWTimer' toField='set_startTime'/> |
| 361 | < ROUTE fromNode='SEESAWTimer' fromField='fraction_changed' toNode='SEESAWInt' toField='set_fraction'/> |
| 362 | < ROUTE fromNode='SEESAWInt' fromField='value_changed' toNode='SEESAWTx' toField='set_rotation'/> |
| 363 | </Transform> |
| 364 | </Group> |
| 365 | </Transform> |
| 366 | <Transform translation='1.6 -0.6 0.5'> |
| 367 | <Group DEF='SeeSaw1'> |
| 368 |
<!-- ROUTE information for SEESAWTx1 node:
[from SEESAWInt1.value_changed to set_rotation
]
-->
<Transform DEF='SEESAWTx1' rotation='0 0 1 -0.22'> |
| 369 | <Group DEF='SEESAW1'> |
| 370 | <Transform> |
| 371 | <Shape DEF='Plank'> |
| 372 | <Box size='4 0.05 0.3'/> |
| 373 | <Appearance> |
| 374 | <Material diffuseColor='0.9 0.3 0.1'/> |
| 375 | </Appearance> |
| 376 | </Shape> |
| 377 | </Transform> |
| 378 | <Transform translation='1.6 0.1 -0.1'> |
| 379 | |
| 380 | <Cylinder height='0.15' radius='0.03'/> |
| 381 | <Appearance> |
| 382 | <Material diffuseColor='0.7 0.7 0.7'/> |
| 383 | </Appearance> |
| 384 | </Shape> |
| 385 | </Transform> |
| 386 | <Transform translation='-1.6 0.1 0.1'> |
| 387 | <Shape USE='ROD'/> |
| 388 | </Transform> |
| 389 | <Transform translation='-1.6 0.1 -0.1'> |
| 390 | <Shape USE='ROD'/> |
| 391 | </Transform> |
| 392 | <Transform translation='1.6 0.1 0.1'> |
| 393 | <Shape USE='ROD'/> |
| 394 | </Transform> |
| 395 | <Transform rotation='1 0 0 1.575' scale='1.2 2.5 1' translation='1.6 0.18 0'> |
| 396 | <Shape USE='ROD'/> |
| 397 | </Transform> |
| 398 | <Transform rotation='1 0 0 1.575' scale='1.2 2.5 1' translation='-1.6 0.18 0'> |
| 399 | <Shape USE='ROD'/> |
| 400 | </Transform> |
| 401 |
<!-- ROUTE information for SEESAWSensor1 node:
[from touchTime to SEESAWTimer1.set_startTime
]
-->
<TouchSensor DEF='SEESAWSensor1' description='See Saw Sensor'/> |
| 402 |
<!-- ROUTE information for SEESAWTimer1 node:
[from SEESAWSensor1.touchTime to set_startTime
]
[from fraction_changed to SEESAWInt1.set_fraction
]
-->
<TimeSensor DEF='SEESAWTimer1' cycleInterval='10'/> |
| 403 |
<!-- ROUTE information for SEESAWInt1 node:
[from SEESAWTimer1.fraction_changed to set_fraction
]
[from value_changed to SEESAWTx1.set_rotation
]
-->
<OrientationInterpolator DEF='SEESAWInt1' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0' keyValue='0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22'/> |
| 404 | </Group> |
| 405 | </Transform> |
| 406 | <Transform> |
| 407 | <Group DEF='SEESAWBody1'> |
| 408 | <Transform translation='0 0 0.2'> |
| 409 | |
| 410 | <Transform rotation='1 0 0 1.575'> |
| 411 | <Shape> |
| 412 | <Cylinder height='0.05' radius='0.2'/> |
| 413 | |
| 414 | <Material diffuseColor='0.1 0.1 0.9'/> |
| 415 | </Appearance> |
| 416 | </Shape> |
| 417 | </Transform> |
| 418 | <Transform translation='0 -0.2 0'> |
| 419 | <Shape> |
| 420 | <Box size='0.4 0.6 0.05'/> |
| 421 | <Appearance USE='PANELApp'/> |
| 422 | </Shape> |
| 423 | </Transform> |
| 424 | <Transform translation='1.6 0 0.1'> |
| 425 | <Shape/> |
| 426 | </Transform> |
| 427 | </Group> |
| 428 | </Transform> |
| 429 | <Transform translation='0 0 -0.2'> |
| 430 | <Group USE='SIDEPanel'/> |
| 431 | </Transform> |
| 432 | <Transform DEF='PIVOT' rotation='1 0 0 1.575'> |
| 433 | <Shape> |
| 434 | <Cylinder height='0.5' radius='0.024'/> |
| 435 | <Appearance USE='PANELApp'/> |
| 436 | </Shape> |
| 437 | </Transform> |
| 438 | </Group> |
| 439 | < ROUTE fromNode='SEESAWSensor1' fromField='touchTime' toNode='SEESAWTimer1' toField='set_startTime'/> |
| 440 | < ROUTE fromNode='SEESAWTimer1' fromField='fraction_changed' toNode='SEESAWInt1' toField='set_fraction'/> |
| 441 | < ROUTE fromNode='SEESAWInt1' fromField='value_changed' toNode='SEESAWTx1' toField='set_rotation'/> |
| 442 | </Transform> |
| 443 | </Group> |
| 444 | </Transform> |
| 445 | <Transform translation='6 -0.5 0'> |
| 446 | <Group DEF='Train1'> |
| 447 |
<!-- ROUTE information for TrainTx1 node:
[from TrainInt1.value_changed to set_rotation
]
-->
<Transform DEF='TrainTx1'> |
| 448 | <Group DEF='TRAIN1'> |
| 449 | <Transform rotation='1 0 0 3.14' scale='1.2 1.2 1.2' translation='-0.8 -0.08 -0.22'> |
| 450 | |
| 451 | <Appearance> |
| 452 | <Material diffuseColor='1 0 0'/> |
| 453 | </Appearance> |
| 454 | <Extrusion creaseAngle='0.785' crossSection='0 0.4 0 0 0.2 0 0.21 -0.05 0.22 -0.06 0.23 -0.07 0.24 -0.08 0.25 -0.1 0.26 -0.11 0.27 -0.111 0.28 -0.113 0.29 -0.115 0.3 -0.113 0.31 -0.111 0.32 -0.11 0.35 -0.1 0.37 -0.08 0.4 0 0.9 0 0.91 -0.05 0.92 -0.06 0.93 -0.07 0.94 -0.08 0.95 -0.1 0.96 -0.11 0.97 -0.111 0.98 -0.113 0.99 -0.115 1 -0.113 1.01 -0.111 1.02 -0.11 1.05 -0.1 1.07 -0.08 1.09 0 1.4 0 1.4 0.4 1.1 0.4 1.1 0.5 0.7 0.5 0.7 0.4 0 0.4' solid='false' spine='0 0 0 0 0 0.02'/> |
| 455 | </Shape> |
| 456 | </Transform> |
| 457 | <Transform rotation='1 0 0 3.14' scale='1.2 1.2 1.2' translation='-0.8 -0.08 0.26'> |
| 458 | <Shape USE='Panel1'/> |
| 459 | </Transform> |
| 460 | <Transform> |
| 461 | <Shape DEF='Seat1'> |
| 462 | <Box size='0.6 0.1 0.48'/> |
| 463 | <Appearance> |
| 464 | <Material diffuseColor='1 1 0'/> |
| 465 | </Appearance> |
| 466 | </Shape> |
| 467 | </Transform> |
| 468 |
<!-- ROUTE information for TrainSensor1 node:
[from touchTime to TrainTimer1.set_startTime
]
-->
<TouchSensor DEF='TrainSensor1' description='Train Sensor'/> |
| 469 |
<!-- ROUTE information for TrainTimer1 node:
[from TrainSensor1.touchTime to set_startTime
]
[from fraction_changed to TrainInt1.set_fraction
]
-->
<TimeSensor DEF='TrainTimer1' cycleInterval='10'/> |
| 470 |
<!-- ROUTE information for TrainInt1 node:
[from TrainTimer1.fraction_changed to set_fraction
]
[from value_changed to TrainTx1.set_rotation
]
-->
<OrientationInterpolator DEF='TrainInt1' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0' keyValue='0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 0'/> |
| 471 | </Group> |
| 472 | </Transform> |
| 473 | <Transform> |
| 474 | <Group DEF='TrainP1'> |
| 475 | <Transform translation='0 0 0.3'> |
| 476 |
<!-- Group
SIDEPanel1 is a DEF node that has 1 USE node: USE_1 -->
<Group DEF='SIDEPanel1'> |
| 477 | <Transform rotation='1 0 0 1.575'> |
| 478 | <Shape> |
| 479 | <Cylinder height='0.05' radius='0.2'/> |
| 480 | <Appearance DEF='PANELApp1'> |
| 481 | <Material diffuseColor='0.1 0.1 0.9'/> |
| 482 | </Appearance> |
| 483 | </Shape> |
| 484 | </Transform> |
| 485 | <Transform translation='0 -0.2 0'> |
| 486 | <Shape> |
| 487 | <Box size='0.4 0.6 0.05'/> |
| 488 | <Appearance USE='PANELApp'/> |
| 489 | </Shape> |
| 490 | </Transform> |
| 491 | <Transform translation='1.6 0 0.1'> |
| 492 | <Shape/> |
| 493 | </Transform> |
| 494 | </Group> |
| 495 | </Transform> |
| 496 | <Transform translation='0 0 -0.3'> |
| 497 | <Group USE='SIDEPanel1'/> |
| 498 | </Transform> |
| 499 | <Transform DEF='PIVOT1' rotation='1 0 0 1.575'> |
| 500 | <Shape> |
| 501 | <Cylinder height='0.7' radius='0.024'/> |
| 502 | <Appearance USE='PANELApp'/> |
| 503 | </Shape> |
| 504 | </Transform> |
| 505 | </Group> |
| 506 | < ROUTE fromNode='TrainSensor1' fromField='touchTime' toNode='TrainTimer1' toField='set_startTime'/> |
| 507 | < ROUTE fromNode='TrainTimer1' fromField='fraction_changed' toNode='TrainInt1' toField='set_fraction'/> |
| 508 | < ROUTE fromNode='TrainInt1' fromField='value_changed' toNode='TrainTx1' toField='set_rotation'/> |
| 509 | </Transform> |
| 510 | </Group> |
| 511 | </Transform> |
| 512 | <Transform translation='6 -0.5 2.3'> |
| 513 | <Group DEF='Train2'> |
| 514 |
<!-- ROUTE information for TrainTx2 node:
[from TrainInt2.value_changed to set_rotation
]
-->
<Transform DEF='TrainTx2'> |
| 515 | <Group DEF='TRAIN2'> |
| 516 | <Transform rotation='1 0 0 3.14' scale='1.2 1.2 1.2' translation='-0.8 -0.08 -0.22'> |
| 517 | |
| 518 | <Appearance> |
| 519 | <Material diffuseColor='1 0 0'/> |
| 520 | </Appearance> |
| 521 | <Extrusion creaseAngle='0.785' crossSection='0 0.4 0 0 0.2 0 0.21 -0.05 0.22 -0.06 0.23 -0.07 0.24 -0.08 0.25 -0.1 0.26 -0.11 0.27 -0.111 0.28 -0.113 0.29 -0.115 0.3 -0.113 0.31 -0.111 0.32 -0.11 0.35 -0.1 0.37 -0.08 0.4 0 0.9 0 0.91 -0.05 0.92 -0.06 0.93 -0.07 0.94 -0.08 0.95 -0.1 0.96 -0.11 0.97 -0.111 0.98 -0.113 0.99 -0.115 1 -0.113 1.01 -0.111 1.02 -0.11 1.05 -0.1 1.07 -0.08 1.09 0 1.4 0 1.4 0.4 1.1 0.4 1.1 0.5 0.7 0.5 0.7 0.4 0 0.4' solid='false' spine='0 0 0 0 0 0.02'/> |
| 522 | </Shape> |
| 523 | </Transform> |
| 524 | <Transform rotation='1 0 0 3.14' scale='1.2 1.2 1.2' translation='-0.8 -0.08 0.26'> |
| 525 | <Shape USE='Panel2'/> |
| 526 | </Transform> |
| 527 | <Transform> |
| 528 | <Shape DEF='Seat2'> |
| 529 | <Box size='0.6 0.1 0.48'/> |
| 530 | <Appearance> |
| 531 | <Material diffuseColor='1 1 0'/> |
| 532 | </Appearance> |
| 533 | </Shape> |
| 534 | </Transform> |
| 535 |
<!-- ROUTE information for TrainSensor2 node:
[from touchTime to TrainTimer2.set_startTime
]
-->
<TouchSensor DEF='TrainSensor2' description='Train Sensor'/> |
| 536 |
<!-- ROUTE information for TrainTimer2 node:
[from TrainSensor2.touchTime to set_startTime
]
[from fraction_changed to TrainInt2.set_fraction
]
-->
<TimeSensor DEF='TrainTimer2' cycleInterval='10'/> |
| 537 |
<!-- ROUTE information for TrainInt2 node:
[from TrainTimer2.fraction_changed to set_fraction
]
[from value_changed to TrainTx2.set_rotation
]
-->
<OrientationInterpolator DEF='TrainInt2' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0' keyValue='0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 0'/> |
| 538 | </Group> |
| 539 | </Transform> |
| 540 | <Transform> |
| 541 | <Group DEF='TrainP2'> |
| 542 | <Transform translation='0 0 0.3'> |
| 543 |
<!-- Group
SIDEPanel2 is a DEF node that has 1 USE node: USE_1 -->
<Group DEF='SIDEPanel2'> |
| 544 | <Transform rotation='1 0 0 1.575'> |
| 545 | <Shape> |
| 546 | <Cylinder height='0.05' radius='0.2'/> |
| 547 | <Appearance DEF='PANELApp2'> |
| 548 | <Material diffuseColor='0.1 0.1 0.9'/> |
| 549 | </Appearance> |
| 550 | </Shape> |
| 551 | </Transform> |
| 552 | <Transform translation='0 -0.2 0'> |
| 553 | <Shape> |
| 554 | <Box size='0.4 0.6 0.05'/> |
| 555 | <Appearance USE='PANELApp'/> |
| 556 | </Shape> |
| 557 | </Transform> |
| 558 | <Transform translation='1.6 0 0.1'> |
| 559 | <Shape/> |
| 560 | </Transform> |
| 561 | </Group> |
| 562 | </Transform> |
| 563 | <Transform translation='0 0 -0.3'> |
| 564 | <Group USE='SIDEPanel2'/> |
| 565 | </Transform> |
| 566 | <Transform DEF='PIVOT2' rotation='1 0 0 1.575'> |
| 567 | <Shape> |
| 568 | <Cylinder height='0.7' radius='0.024'/> |
| 569 | <Appearance USE='PANELApp'/> |
| 570 | </Shape> |
| 571 | </Transform> |
| 572 | </Group> |
| 573 | < ROUTE fromNode='TrainSensor2' fromField='touchTime' toNode='TrainTimer2' toField='set_startTime'/> |
| 574 | < ROUTE fromNode='TrainTimer2' fromField='fraction_changed' toNode='TrainInt2' toField='set_fraction'/> |
| 575 | < ROUTE fromNode='TrainInt2' fromField='value_changed' toNode='TrainTx2' toField='set_rotation'/> |
| 576 | </Transform> |
| 577 | </Group> |
| 578 | </Transform> |
| 579 | <Transform translation='6 -0.5 -2.3'> |
| 580 | <Group DEF='Train3'> |
| 581 |
<!-- ROUTE information for TrainTx3 node:
[from TrainInt3.value_changed to set_rotation
]
-->
<Transform DEF='TrainTx3'> |
| 582 | <Group DEF='TRAIN3'> |
| 583 | <Transform rotation='1 0 0 3.14' scale='1.2 1.2 1.2' translation='-0.8 -0.08 -0.22'> |
| 584 | |
| 585 | <Appearance> |
| 586 | <Material diffuseColor='1 0 0'/> |
| 587 | </Appearance> |
| 588 | <Extrusion creaseAngle='0.785' crossSection='0 0.4 0 0 0.2 0 0.21 -0.05 0.22 -0.06 0.23 -0.07 0.24 -0.08 0.25 -0.1 0.26 -0.11 0.27 -0.111 0.28 -0.113 0.29 -0.115 0.3 -0.113 0.31 -0.111 0.32 -0.11 0.35 -0.1 0.37 -0.08 0.4 0 0.9 0 0.91 -0.05 0.92 -0.06 0.93 -0.07 0.94 -0.08 0.95 -0.1 0.96 -0.11 0.97 -0.111 0.98 -0.113 0.99 -0.115 1 -0.113 1.01 -0.111 1.02 -0.11 1.05 -0.1 1.07 -0.08 1.09 0 1.4 0 1.4 0.4 1.1 0.4 1.1 0.5 0.7 0.5 0.7 0.4 0 0.4' solid='false' spine='0 0 0 0 0 0.02'/> |
| 589 | </Shape> |
| 590 | </Transform> |
| 591 | <Transform rotation='1 0 0 3.14' scale='1.2 1.2 1.2' translation='-0.8 -0.08 0.26'> |
| 592 | <Shape USE='Panel3'/> |
| 593 | </Transform> |
| 594 | <Transform> |
| 595 | <Shape DEF='Seat3'> |
| 596 | <Box size='0.6 0.1 0.48'/> |
| 597 | <Appearance> |
| 598 | <Material diffuseColor='1 1 0'/> |
| 599 | </Appearance> |
| 600 | </Shape> |
| 601 | </Transform> |
| 602 |
<!-- ROUTE information for TrainSensor3 node:
[from touchTime to TrainTimer3.set_startTime
]
-->
<TouchSensor DEF='TrainSensor3' description='Train Sensor'/> |
| 603 |
<!-- ROUTE information for TrainTimer3 node:
[from TrainSensor3.touchTime to set_startTime
]
[from fraction_changed to TrainInt3.set_fraction
]
-->
<TimeSensor DEF='TrainTimer3' cycleInterval='10'/> |
| 604 |
<!-- ROUTE information for TrainInt3 node:
[from TrainTimer3.fraction_changed to set_fraction
]
[from value_changed to TrainTx3.set_rotation
]
-->
<OrientationInterpolator DEF='TrainInt3' key='0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0' keyValue='0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 -0.22 0 0 1 0.22 0 0 1 0'/> |
| 605 | </Group> |
| 606 | </Transform> |
| 607 | <Transform> |
| 608 | <Group DEF='TrainP3'> |
| 609 | <Transform translation='0 0 0.3'> |
| 610 |
<!-- Group
SIDEPanel3 is a DEF node that has 1 USE node: USE_1 -->
<Group DEF='SIDEPanel3'> |
| 611 | <Transform rotation='1 0 0 1.575'> |
| 612 | <Shape> |
| 613 | <Cylinder height='0.05' radius='0.2'/> |
| 614 | <Appearance DEF='PANELApp3'> |
| 615 | <Material diffuseColor='0.1 0.1 0.9'/> |
| 616 | </Appearance> |
| 617 | </Shape> |
| 618 | </Transform> |
| 619 | <Transform translation='0 -0.2 0'> |
| 620 | <Shape> |
| 621 | <Box size='0.4 0.6 0.05'/> |
| 622 | <Appearance USE='PANELApp'/> |
| 623 | </Shape> |
| 624 | </Transform> |
| 625 | <Transform translation='1.6 0 0.1'> |
| 626 | <Shape/> |
| 627 | </Transform> |
| 628 | </Group> |
| 629 | </Transform> |
| 630 | <Transform translation='0 0 -0.3'> |
| 631 | <Group USE='SIDEPanel3'/> |
| 632 | </Transform> |
| 633 | <Transform DEF='PIVOT3' rotation='1 0 0 1.575'> |
| 634 | <Shape> |
| 635 | <Cylinder height='0.7' radius='0.024'/> |
| 636 | <Appearance USE='PANELApp'/> |
| 637 | </Shape> |
| 638 | </Transform> |
| 639 | </Group> |
| 640 | < ROUTE fromNode='TrainSensor3' fromField='touchTime' toNode='TrainTimer3' toField='set_startTime'/> |
| 641 | < ROUTE fromNode='TrainTimer3' fromField='fraction_changed' toNode='TrainInt3' toField='set_fraction'/> |
| 642 | < ROUTE fromNode='TrainInt3' fromField='value_changed' toNode='TrainTx3' toField='set_rotation'/> |
| 643 | </Transform> |
| 644 | </Group> |
| 645 | </Transform> |
| 646 | <Viewpoint description='Playground' orientation='-0.811 -0.585 -0.002 0.6085' position='-1.7 4.5 10.3'/> |
| 647 | </Scene> |
| 648 | </X3D> |
Event Graph ROUTE Table entries with 23 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.
|
SEESAWSensor
TouchSensor touchTime SFTime |
SEESAWTimer
TimeSensor set_startTime SFTime |
then
|
SEESAWTimer
TimeSensor fraction_changed SFFloat |
SEESAWInt
OrientationInterpolator set_fraction SFFloat |
then
|
SEESAWInt
OrientationInterpolator value_changed SFRotation |
SEESAWTx
Transform set_rotation SFRotation |
|
SEESAWSensor1
TouchSensor touchTime SFTime |
SEESAWTimer1
TimeSensor set_startTime SFTime |
then
|
SEESAWTimer1
TimeSensor fraction_changed SFFloat |
SEESAWInt1
OrientationInterpolator set_fraction SFFloat |
then
|
SEESAWInt1
OrientationInterpolator value_changed SFRotation |
SEESAWTx1
Transform set_rotation SFRotation |
|
SWINGSEAT1Sensor
TouchSensor touchTime SFTime |
SWINGSEAT1Timer
TimeSensor set_startTime SFTime |
then
|
SWINGSEAT1Timer
TimeSensor fraction_changed SFFloat |
SWINGSEAT1Inter
OrientationInterpolator set_fraction SFFloat |
then
|
SWINGSEAT1Inter
OrientationInterpolator value_changed SFRotation |
SWINGSEAT1TX
Transform set_rotation SFRotation |
|
SWINGSEAT2Sensor
TouchSensor touchTime SFTime |
SWINGSEAT2Timer
TimeSensor set_startTime SFTime |
then
|
SWINGSEAT2Timer
TimeSensor fraction_changed SFFloat |
SWINGSEAT2Inter
OrientationInterpolator set_fraction SFFloat |
then
|
SWINGSEAT2Inter
OrientationInterpolator value_changed SFRotation |
SWINGSEAT2TX
Transform set_rotation SFRotation |
|
SWINGSensor
TouchSensor touchTime SFTime |
SWINGSEAT1Timer
TimeSensor set_startTime SFTime |
then
|
SWINGSEAT1Timer
TimeSensor fraction_changed SFFloat |
SWINGSEAT1Inter
OrientationInterpolator set_fraction SFFloat |
then
|
SWINGSEAT1Inter
OrientationInterpolator value_changed SFRotation |
SWINGSEAT1TX
Transform set_rotation SFRotation |
|||
|
SWINGSensor
TouchSensor touchTime SFTime |
SWINGSEAT2Timer
TimeSensor set_startTime SFTime |
then
|
SWINGSEAT2Timer
TimeSensor fraction_changed SFFloat |
SWINGSEAT2Inter
OrientationInterpolator set_fraction SFFloat |
then
|
SWINGSEAT2Inter
OrientationInterpolator value_changed SFRotation |
SWINGSEAT2TX
Transform set_rotation SFRotation |
|
TrainSensor1
TouchSensor touchTime SFTime |
TrainTimer1
TimeSensor set_startTime SFTime |
then
|
TrainTimer1
TimeSensor fraction_changed SFFloat |
TrainInt1
OrientationInterpolator set_fraction SFFloat |
then
|
TrainInt1
OrientationInterpolator value_changed SFRotation |
TrainTx1
Transform set_rotation SFRotation |
|
TrainSensor2
TouchSensor touchTime SFTime |
TrainTimer2
TimeSensor set_startTime SFTime |
then
|
TrainTimer2
TimeSensor fraction_changed SFFloat |
TrainInt2
OrientationInterpolator set_fraction SFFloat |
then
|
TrainInt2
OrientationInterpolator value_changed SFRotation |
TrainTx2
Transform set_rotation SFRotation |
|
TrainSensor3
TouchSensor touchTime SFTime |
TrainTimer3
TimeSensor set_startTime SFTime |
then
|
TrainTimer3
TimeSensor fraction_changed SFFloat |
TrainInt3
OrientationInterpolator set_fraction SFFloat |
then
|
TrainInt3
OrientationInterpolator value_changed SFRotation |
TrainTx3
Transform set_rotation SFRotation |
<!--
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.
-->