1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.2//EN" "https://www.web3d.org/specifications/x3d-3.2.dtd">
|
3 | <X3D profile='Immersive' version='3.2' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.2.xsd'> |
4 | <head> |
5 | <component level='2' name='xj3d_RigidBodyPhysics'/> |
6 | <component level='2' name='xj3d_IODevice'/> |
7 | <!-- TODO: upgrade component <component level='2' name='RigidBodyPhysics'/> --> |
8 | <meta name='title' content='CarDemoMain.x3d'/> |
9 | <meta name='description' content='Example scene for RigidBodyPhysics component, runnable as Xj3D application and invoked using shell script runogl'/> |
10 | <meta name='creator' content='Alan Hudson and Justin Couch'/> |
11 | <meta name='translator' content='Don Brutzman'/> |
12 | <meta name='created' content='1 January 2008'/> |
13 | <meta name='translated' content='30 December 2008'/> |
14 | <meta name='modified' content='20 October 2019'/> |
15 | <meta name='reference' content='http://www.xj3d.org/extensions/index.html#Physics'/> |
16 | <meta name=' warning ' content=' Test scene includes custom Xj3D components and elements, will not validate '/> |
17 | <meta name=' warning ' content=' Test scene under development, runogl fails http://bugzilla.xj3d.org/show_bug.cgi?id=556 '/> |
18 | <meta name='reference' content='originals/car/runogl'/> |
19 | <meta name='reference' content='originals/car/main.x3dv'/> |
20 | <meta name='reference' content='originals/car/worldModel.x3dv'/> |
21 | <meta name='reference' content='originals/car/CameraControl.java'/> |
22 | <meta name='reference' content='originals/car/CarControlScript.java'/> |
23 | <meta name='reference' content='http://www.xj3d.org/extensions/rigid_physics_examples.html'/> |
24 | <meta name='reference' content='https://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/rigid_physics.html'/> |
25 | <meta name='identifier' content='https://www.web3d.org/x3d/content/examples/Basic/RigidBodyPhysics/CarDemoMain.x3d'/> |
26 | <meta name='generator' content='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/> |
27 | <meta name='generator' content='Xj3D converter, http://www.xj3d.org'/> |
28 | <meta name='license' content='../../license.html'/> |
29 | </head> |
30 | <Scene> |
31 | <WorldInfo title='CarDemoMain.x3d'/> |
32 | <Group> |
33 | <Group DEF='CAR-CONTAINER'> |
34 | <Switch DEF='DEBUG-GEOM' whichChoice='0'> |
35 | <Group> |
36 | <Transform DEF='ACTIVE-SECTOR-INDICATOR'> |
37 | <Shape> |
38 | <Appearance> |
39 | <Material emissiveColor='1.0 1.0 0.0' transparency='0.5'/> |
40 | </Appearance> |
41 | </Shape> |
42 | </Transform> |
43 |
<!-- ROUTE information for FRONT-LEFT-WHEEL-TX-DEBUG-HINGE node:
[from FRONT-LEFT-HINGE-WHEEL-INTERP.value_changed to rotation
]
[from FRONT-LEFT-HINGE-ANGLE-INTERP.value_changed to rotation
]
[from FRONT-LEFT-WHEEL-BODY.position to translation
]
-->
<Transform DEF='FRONT-LEFT-WHEEL-TX-DEBUG-HINGE' translation='-1.1 0.5 -1.5'> |
44 | <Shape DEF='FRONT-LEFT-DEBUG-POINTER'> |
45 | |
46 | <Material/> |
47 | <LineProperties linetype='2' containerField='lineProperties'/> |
48 | </Appearance> |
49 | <LineSet vertexCount='2' containerField='geometry'> |
50 | <Coordinate point='0.0 0.0 0.0 1.0 0.0 0.0'/> |
51 | <Color color='1.0 1.0 1.0 1.0 1.0 1.0'/> |
52 | </LineSet> |
53 | </Shape> |
54 | </Transform> |
55 |
<!-- ROUTE information for FRONT-RIGHT-WHEEL-TX-DEBUG-HINGE node:
[from FRONT-RIGHT-HINGE-WHEEL-INTERP.value_changed to rotation
]
[from FRONT-RIGHT-HINGE-ANGLE-INTERP.value_changed to rotation
]
[from FRONT-RIGHT-WHEEL-BODY.position to translation
]
-->
<Transform DEF='FRONT-RIGHT-WHEEL-TX-DEBUG-HINGE' translation='-1.1 0.5 -1.5'> |
56 | <Shape DEF='FRONT-RIGHT-DEBUG-POINTER'> |
57 | <Appearance USE='DEBUG-POINTER-APP'/> |
58 | <LineSet vertexCount='2' containerField='geometry'> |
59 | <Coordinate point='0.0 0.0 0.0 -1.0 0.0 0.0'/> |
60 | <Color color='1.0 1.0 1.0 1.0 1.0 1.0'/> |
61 | </LineSet> |
62 | </Shape> |
63 | </Transform> |
64 |
<!-- ROUTE information for FRONT-LEFT-WHEEL-TX-DEBUG-MIN node:
[from FRONT-LEFT-MINSTOP-ANGLE-INTERP.value_changed to rotation
]
[from FRONT-LEFT-WHEEL-BODY.position to translation
]
-->
<Transform DEF='FRONT-LEFT-WHEEL-TX-DEBUG-MIN' translation='-1.1 0.5 -1.5'> |
65 | <Shape DEF='FRONT-LEFT-TX-DEBUG-POINTER'> |
66 | <Appearance USE='DEBUG-POINTER-APP'/> |
67 | <LineSet vertexCount='2' containerField='geometry'> |
68 | <Coordinate point='0.0 0.0 0.0 1.0 0.0 0.0'/> |
69 | <Color color='1.0 1.0 0.0 1.0 1.0 0.0'/> |
70 | </LineSet> |
71 | </Shape> |
72 | </Transform> |
73 |
<!-- ROUTE information for FRONT-RIGHT-WHEEL-TX-DEBUG-MIN node:
[from FRONT-RIGHT-MINSTOP-ANGLE-INTERP.value_changed to rotation
]
[from FRONT-RIGHT-WHEEL-BODY.position to translation
]
-->
<Transform DEF='FRONT-RIGHT-WHEEL-TX-DEBUG-MIN' translation='-1.1 0.5 -1.5'> |
74 | <Shape DEF='FRONT-RIGHT-TX-DEBUG-POINTER'> |
75 | <Appearance USE='DEBUG-POINTER-APP'/> |
76 | <LineSet vertexCount='2' containerField='geometry'> |
77 | <Coordinate point='0.0 0.0 0.0 -1.0 0.0 0.0'/> |
78 | <Color color='0.0 0.0 1.0 0.0 0.0 1.0'/> |
79 | </LineSet> |
80 | </Shape> |
81 | </Transform> |
82 |
<!-- ROUTE information for FRONT-LEFT-WHEEL-TX-DEBUG-MAX node:
[from FRONT-LEFT-MAXSTOP-ANGLE-INTERP.value_changed to rotation
]
[from FRONT-LEFT-WHEEL-BODY.position to translation
]
-->
<Transform DEF='FRONT-LEFT-WHEEL-TX-DEBUG-MAX' translation='-1.1 0.5 -1.5'> |
83 | <Shape> |
84 | <Appearance USE='DEBUG-POINTER-APP'/> |
85 | <LineSet vertexCount='2' containerField='geometry'> |
86 | <Coordinate point='0.0 0.0 0.0 1.0 0.0 0.0'/> |
87 | <Color color='0.0 0.0 1.0 0.0 0.0 1.0'/> |
88 | </LineSet> |
89 | </Shape> |
90 | </Transform> |
91 |
<!-- ROUTE information for FRONT-RIGHT-WHEEL-TX-DEBUG-MAX node:
[from FRONT-RIGHT-MAXSTOP-ANGLE-INTERP.value_changed to rotation
]
[from FRONT-RIGHT-WHEEL-BODY.position to translation
]
-->
<Transform DEF='FRONT-RIGHT-WHEEL-TX-DEBUG-MAX' translation='-1.1 0.5 -1.5'> |
92 | <Shape> |
93 | <Appearance USE='DEBUG-POINTER-APP'/> |
94 | <LineSet vertexCount='2' containerField='geometry'> |
95 | <Coordinate point='0.0 0.0 0.0 -1.0 0.0 0.0'/> |
96 | <Color color='1.0 1.0 1.0 1.0 1.0 1.0'/> |
97 | </LineSet> |
98 | </Shape> |
99 | </Transform> |
100 | </Group> |
101 | </Switch> |
102 |
<!-- ROUTE information for FRONT-LEFT-WHEEL-TX node:
[from FRONT-LEFT-WHEEL-BODY.position to translation
]
[from FRONT-LEFT-WHEEL-BODY.orientation to rotation
]
-->
<Transform DEF='FRONT-LEFT-WHEEL-TX' translation='-1.1 0.5 -1.5'> |
103 |
<!-- Transform
WHEEL-SHAPE is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
<Transform DEF='WHEEL-SHAPE' rotation='0.0 0.0 1.0 1.572'> |
104 | <Shape> |
105 | <Appearance> |
106 | <Material emissiveColor='1.0 0.0 1.0'/> |
107 | </Appearance> |
108 | <Cylinder height='0.1' radius='0.5'/> |
109 | </Shape> |
110 | </Transform> |
111 |
<!-- Group
JOINT-INDICATOR-LEFT is a DEF node that has 1 USE node: USE_1 -->
<Group DEF='JOINT-INDICATOR-LEFT'> |
112 | <Shape> |
113 | <LineSet vertexCount='2 2' containerField='geometry'> |
114 | <Coordinate point='0.0 0.0 0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0'/> |
115 | <Color color='1.0 1.0 0.0 1.0 1.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0'/> |
116 | </LineSet> |
117 | </Shape> |
118 |
<!-- Shape
JOINT-SPHERE is a DEF node that has 1 USE node: USE_1 -->
<Shape DEF='JOINT-SPHERE'> |
119 | <Appearance> |
120 | <Material emissiveColor='0.0 1.0 1.0'/> |
121 | </Appearance> |
122 | <Sphere radius='0.1'/> |
123 | </Shape> |
124 | </Group> |
125 | </Transform> |
126 |
<!-- ROUTE information for FRONT-RIGHT-WHEEL-TX node:
[from FRONT-RIGHT-WHEEL-BODY.position to translation
]
[from FRONT-RIGHT-WHEEL-BODY.orientation to rotation
]
-->
<Transform DEF='FRONT-RIGHT-WHEEL-TX' translation='1.1 0.5 -1.5'> |
127 | <Transform USE='WHEEL-SHAPE'/> |
128 |
<!-- Group
JOINT-INDICATOR-RIGHT is a DEF node that has 1 USE node: USE_1 -->
<Group DEF='JOINT-INDICATOR-RIGHT'> |
129 | <Shape> |
130 | <LineSet vertexCount='2 2' containerField='geometry'> |
131 | <Coordinate point='0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0'/> |
132 | <Color color='1.0 1.0 0.0 1.0 1.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0'/> |
133 | </LineSet> |
134 | </Shape> |
135 | <Shape USE='JOINT-SPHERE'/> |
136 | </Group> |
137 | </Transform> |
138 |
<!-- ROUTE information for BACK-LEFT-WHEEL-TX node:
[from BACK-LEFT-WHEEL-BODY.position to translation
]
[from BACK-LEFT-WHEEL-BODY.orientation to rotation
]
-->
<Transform DEF='BACK-LEFT-WHEEL-TX' translation='-1.1 0.5 1.5'> |
139 | <Transform USE='WHEEL-SHAPE'/> |
140 | <Group USE='JOINT-INDICATOR-LEFT'/> |
141 | </Transform> |
142 |
<!-- ROUTE information for BACK-RIGHT-WHEEL-TX node:
[from BACK-RIGHT-WHEEL-BODY.position to translation
]
[from BACK-RIGHT-WHEEL-BODY.orientation to rotation
]
-->
<Transform DEF='BACK-RIGHT-WHEEL-TX' translation='1.1 0.5 1.5'> |
143 | <Transform USE='WHEEL-SHAPE'/> |
144 | <Group USE='JOINT-INDICATOR-RIGHT'/> |
145 | </Transform> |
146 |
<!-- ROUTE information for CAR-BODY-TX node:
[from cam_car_chase-POS-INTERP.value_changed to translation
]
[from cam_car_chase-ROT-INTERP.value_changed to rotation
]
[from CAR-BODY.position to translation
]
[from CAR-BODY.orientation to rotation
]
-->
<Transform DEF='CAR-BODY-TX'> |
147 | <Shape> |
148 | <Appearance> |
149 | <Material emissiveColor='0.8 0.8 0.0'/> |
150 | </Appearance> |
151 |
<!-- Box
CHASSIS-BOX is a DEF node that has 2 USE nodes: USE_1, USE_2 --> <Box DEF='CHASSIS-BOX' size='2.2 0.05 5.0'/> |
152 | </Shape> |
153 |
<!-- ROUTE information for SPEED-INDICATOR node:
[from UI-CONTROL-SCRIPT.speedScale to scale
]
-->
<Transform DEF='SPEED-INDICATOR' translation='1.2 1.0 0.0'> |
154 | <Shape> |
155 | <Appearance> |
156 |
<!-- ROUTE information for SPEED-INDICATOR-COLOR node:
[from SPEED-COLOR.value_changed to emissiveColor
]
-->
<Material DEF='SPEED-INDICATOR-COLOR'/> |
157 | </Appearance> |
158 | <Box size='0.1 1.0 0.1'/> |
159 | </Shape> |
160 | </Transform> |
161 | <Transform translation='0.0 0.4 0.0'> |
162 | <Shape> |
163 | <Appearance> |
164 | <Material emissiveColor='0.0 0.0 0.8' transparency='0.5'/> |
165 | </Appearance> |
166 | <Box DEF='CHASSIS-PROXY-GEOM' size='2.25 0.4 5.1'/> |
167 | </Shape> |
168 | <Transform translation='1.0 0.1 2.65'> |
169 |
<!-- Shape
BRAKE-LIGHT-GEOM is a DEF node that has 1 USE node: USE_1 -->
<Shape DEF='BRAKE-LIGHT-GEOM'> |
170 | <Appearance> |
171 |
<!-- ROUTE information for BRAKE-LIGHT-COLOR node:
[from UI-CONTROL-SCRIPT.brakeLightColor to emissiveColor
]
-->
<Material DEF='BRAKE-LIGHT-COLOR' diffuseColor='0.1 0.0 0.0' emissiveColor='0.1 0.0 0.0'/> |
172 | </Appearance> |
173 | <Box size='0.1 0.2 0.1'/> |
174 | </Shape> |
175 | </Transform> |
176 | <Transform translation='-1.0 0.1 2.65'> |
177 | <Shape USE='BRAKE-LIGHT-GEOM'/> |
178 | </Transform> |
179 | <Transform translation='0.9 0.1 2.65'> |
180 |
<!-- Shape
REVERSE-LIGHT-GEOM is a DEF node that has 1 USE node: USE_1 -->
<Shape DEF='REVERSE-LIGHT-GEOM'> |
181 | <Appearance> |
182 |
<!-- ROUTE information for REVERSE-LIGHT-COLOR node:
[from UI-CONTROL-SCRIPT.reverseLightColor to emissiveColor
]
-->
<Material DEF='REVERSE-LIGHT-COLOR' diffuseColor='0.1 0.1 0.1' emissiveColor='0.1 0.1 0.1'/> |
183 | </Appearance> |
184 | <Box size='0.1 0.1 0.1'/> |
185 | </Shape> |
186 | </Transform> |
187 | <Transform translation='-0.9 0.1 2.65'> |
188 | <Shape USE='REVERSE-LIGHT-GEOM'/> |
189 | </Transform> |
190 | </Transform> |
191 | </Transform> |
192 |
<!-- ROUTE information for CAMERA-TX node:
[from CAMERA-CONTROL-SCRIPT.cameraTranslation to translation
]
[from CAMERA-CONTROL-SCRIPT.cameraRotation to rotation
]
-->
<Transform DEF='CAMERA-TX'> |
193 | <Transform> |
194 | <Viewpoint DEF='Camera03' description='AutoCam' position='0.0 0.0 0.0'/> |
195 | </Transform> |
196 | </Transform> |
197 | </Group> |
198 | </Group> |
199 | <NavigationInfo speed='10.0' type='"NONE"'/> |
200 | <Inline/> |
201 | <Shape DEF='ENEMY-GEOM'/> |
202 |
<!-- ROUTE information for carGroup node:
[from cam_car_chase-POS-INTERP.value_changed to translation
]
[from cam_car_chase-ROT-INTERP.value_changed to rotation
]
-->
<Transform DEF='carGroup' rotation='0.006813 -0.9999 0.01227 -4.155' translation='-82.59 6.8 -48.1'> |
203 | <Transform DEF='carCamTransform' translation='0.0 1.0 5.0'> |
204 | <Viewpoint DEF='Camera03-OLD' description='Car 3rd Person' position='0.0 0.0 5.0'/> |
205 | </Transform> |
206 | </Transform> |
207 |
<!-- ROUTE information for cam_car_chase-TIMER node:
[from fraction_changed to cam_car_chase-POS-INTERP.set_fraction
]
[from fraction_changed to cam_car_chase-ROT-INTERP.set_fraction
]
-->
<TimeSensor DEF='cam_car_chase-TIMER' cycleInterval='120.0' enabled='false' loop='true'/> |
208 |
<!-- ROUTE information for cam_car_chase-POS-INTERP node:
[from cam_car_chase-TIMER.fraction_changed to set_fraction
]
[from value_changed to carGroup.translation
]
[from value_changed to CAR-BODY-TX.translation
]
-->
<PositionInterpolator DEF='cam_car_chase-POS-INTERP' key='0.0 0.0050 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05 0.055 0.06 0.065 0.07 0.075 0.08 0.085 0.09 0.095 0.1 0.105 0.11 0.115 0.12 0.125 0.13 0.135 0.14 0.145 0.15 0.155 0.16 0.165 0.17 0.175 0.18 0.185 0.19 0.195 0.2 0.205 0.21 0.215 0.22 0.225 0.23 0.235 0.24 0.245 0.25 0.255 0.26 0.265 0.27 0.275 0.28 0.285 0.29 0.295 0.3 0.305 0.31 0.315 0.32 0.325 0.33 0.335 0.34 0.345 0.35 0.355 0.36 0.365 0.37 0.375 0.38 0.385 0.39 0.395 0.4 0.405 0.41 0.415 0.42 0.425 0.43 0.435 0.44 0.445 0.45 0.455 0.46 0.465 0.47 0.475 0.48 0.485 0.49 0.495 0.5 0.505 0.51 0.515 0.52 0.525 0.53 0.535 0.54 0.545 0.55 0.555 0.56 0.565 0.57 0.575 0.58 0.585 0.59 0.595 0.6 0.605 0.61 0.615 0.62 0.625 0.63 0.635 0.64 0.645 0.65 0.655 0.66 0.665 0.67 0.675 0.68 0.685 0.69 0.695 0.7 0.705 0.71 0.715 0.72 0.725 0.73 0.735 0.74 0.745 0.75 0.755 0.76 0.765 0.77 0.775 0.78 0.785 0.79 0.795 0.8 0.805 0.81 0.815 0.82 0.825 0.83 0.835 0.84 0.845 0.85 0.855 0.86 0.865 0.87 0.875 0.88 0.885 0.89 0.895 0.9 0.905 0.91 0.915 0.92 0.925 0.93 0.935 0.94 0.945 0.95 0.955 0.96 0.965 0.97 0.975 0.98 0.985 0.99 0.995 1.0' keyValue='-82.59 6.8 -46.1 -62.37 7.482 -34.12 -45.75 8.077 -24.49 -30.63 8.902 -15.22 -14.28 9.772 -7.022 2.577 10.66 0.2272 19.5 11.58 7.357 36.34 12.33 14.35 53.06 12.96 21.47 69.88 13.31 28.19 86.65 13.45 34.39 103.0 13.08 41.36 120.3 12.53 47.38 137.9 11.52 53.08 156.0 11.13 55.74 174.3 10.82 56.99 192.6 10.72 59.23 210.8 10.17 59.67 229.1 9.332 58.07 247.3 7.655 57.25 265.2 6.045 56.14 283.9 3.88 56.28 305.8 3.112 54.26 324.5 3.111 54.26 340.3 3.338 51.85 353.7 3.376 40.25 367.0 2.986 24.67 368.9 2.698 4.603 367.0 2.426 -16.23 352.9 2.476 -24.65 333.0 2.496 -27.47 313.1 2.5 -26.23 296.2 2.472 -22.66 278.8 2.428 -17.45 260.8 2.399 -12.16 243.0 2.371 -7.717 225.0 2.348 -3.115 206.7 2.312 -2.477 188.5 2.288 -3.483 169.7 2.239 -1.287 149.8 2.275 -3.75 131.7 2.358 -8.071 114.9 2.463 -14.18 100.4 2.562 -25.71 90.72 2.614 -41.85 86.37 2.654 -60.62 85.63 2.678 -79.14 89.62 2.695 -96.48 93.92 2.706 -114.4 98.32 2.705 -132.4 102.4 2.704 -150.0 106.6 2.701 -168.2 109.9 2.699 -186.9 113.2 2.697 -205.0 116.3 2.703 -223.3 119.5 2.677 -242.2 124.6 2.671 -260.7 136.0 2.586 -274.3 147.6 2.655 -286.3 162.2 2.934 -297.0 180.1 3.192 -305.3 198.0 3.424 -311.6 216.3 3.605 -313.4 234.2 3.771 -315.6 252.3 3.92 -317.4 270.7 4.05 -318.9 289.1 4.156 -319.6 307.5 4.109 -319.7 325.9 4.208 -318.6 344.3 4.346 -316.6 362.7 4.906 -314.4 380.4 5.254 -311.4 397.7 5.339 -306.8 415.4 5.254 -302.2 432.7 5.108 -297.5 449.9 4.975 -292.7 467.4 4.904 -287.6 485.2 4.894 -282.0 503.5 4.918 -276.8 521.7 4.979 -272.2 539.2 5.025 -264.4 559.5 5.217 -261.1 577.1 5.521 -259.7 592.7 5.536 -260.0 609.2 5.673 -266.6 625.8 5.681 -275.3 637.2 5.98 -287.9 643.5 6.524 -304.4 647.8 7.731 -322.9 649.2 8.83 -341.2 645.5 9.758 -359.2 641.8 10.57 -377.1 637.5 11.32 -394.9 633.8 12.09 -413.0 630.2 12.87 -431.1 626.9 13.65 -449.2 623.2 14.43 -467.1 619.5 15.2 -484.9 615.9 15.99 -502.7 612.4 16.78 -520.8 609.1 17.56 -538.7 606.3 18.33 -556.6 603.1 19.09 -574.6 600.8 19.84 -592.7 596.6 20.53 -610.0 590.4 21.21 -626.5 586.1 21.66 -643.9 578.2 22.27 -660.2 565.8 23.26 -673.1 551.5 23.85 -684.5 537.3 24.29 -693.4 522.5 24.88 -701.2 502.6 26.11 -708.5 483.1 27.4 -715.0 465.6 28.76 -718.8 447.7 30.48 -721.0 429.6 32.79 -721.6 411.5 35.32 -721.8 393.4 38.14 -721.8 375.3 41.01 -721.1 357.2 43.63 -720.4 338.9 45.85 -719.5 320.6 47.65 -720.0 302.5 49.12 -721.8 284.2 49.91 -722.0 266.1 50.75 -721.8 248.0 51.6 -721.1 229.9 52.98 -719.5 211.4 54.62 -717.8 193.6 55.88 -716.9 181.0 56.93 -715.5 170.3 57.06 -717.5 159.7 57.14 -721.0 147.3 57.03 -725.2 134.0 56.99 -730.3 119.9 57.01 -733.3 106.6 57.88 -737.3 93.7 58.32 -738.9 79.87 57.82 -736.2 79.41 56.84 -725.4 77.53 54.88 -714.7 76.89 51.27 -700.9 68.47 48.1 -691.1 59.62 45.34 -683.6 47.72 44.12 -676.4 30.01 41.79 -672.2 11.54 39.43 -669.3 -6.463 36.79 -672.5 -24.68 34.26 -675.1 -42.89 31.75 -677.3 -61.71 29.48 -681.1 -85.61 27.17 -677.3 -108.9 25.76 -662.8 -126.4 24.6 -648.0 -139.1 23.79 -629.3 -144.8 22.49 -606.4 -147.4 21.33 -586.7 -145.9 20.34 -568.9 -142.3 19.44 -553.3 -130.3 18.0 -528.6 -113.8 15.9 -492.6 -104.1 14.73 -472.3 -97.49 13.85 -457.7 -91.04 12.82 -440.9 -86.09 11.67 -422.3 -85.55 10.82 -402.1 -87.88 10.06 -383.9 -95.84 9.198 -368.4 -107.3 8.613 -354.6 -121.1 8.209 -342.7 -137.0 8.053 -333.2 -153.3 7.908 -324.3 -170.0 7.788 -316.4 -186.6 7.674 -308.6 -203.2 7.56 -300.9 -220.1 7.47 -293.7 -236.8 7.35 -285.5 -253.0 7.234 -276.5 -269.2 6.995 -268.4 -284.8 6.757 -259.6 -300.1 6.612 -253.3 -313.8 6.511 -248.3 -327.9 6.508 -238.7 -328.8 6.546 -225.6 -324.0 6.535 -213.0 -314.0 6.51 -201.5 -299.1 6.324 -190.4 -283.3 6.095 -180.7 -267.9 5.805 -170.6 -252.8 5.539 -160.5 -237.7 5.251 -150.2 -222.7 5.056 -139.5 -207.9 4.936 -128.7 -192.7 4.93 -118.5 -177.7 4.997 -108.3 -162.6 5.143 -97.98 -147.5 5.369 -87.61 -132.3 5.653 -77.38 -116.4 6.003 -67.74 -100.5 6.361 -57.64 -82.59 6.8 -46.1'/> |
209 |
<!-- ROUTE information for cam_car_chase-ROT-INTERP node:
[from cam_car_chase-TIMER.fraction_changed to set_fraction
]
[from value_changed to carGroup.rotation
]
[from value_changed to CAR-BODY-TX.rotation
]
-->
<OrientationInterpolator DEF='cam_car_chase-ROT-INTERP' key='0.0 0.0050 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05 0.055 0.06 0.065 0.07 0.075 0.08 0.085 0.09 0.095 0.1 0.105 0.11 0.115 0.12 0.125 0.13 0.135 0.14 0.145 0.15 0.155 0.16 0.165 0.17 0.175 0.18 0.185 0.19 0.195 0.2 0.205 0.21 0.215 0.22 0.225 0.23 0.235 0.24 0.245 0.25 0.255 0.26 0.265 0.27 0.275 0.28 0.285 0.29 0.295 0.3 0.305 0.31 0.315 0.32 0.325 0.33 0.335 0.34 0.345 0.35 0.355 0.36 0.365 0.37 0.375 0.38 0.385 0.39 0.395 0.4 0.405 0.41 0.415 0.42 0.425 0.43 0.435 0.44 0.445 0.45 0.455 0.46 0.465 0.47 0.475 0.48 0.485 0.49 0.495 0.5 0.505 0.51 0.515 0.52 0.525 0.53 0.535 0.54 0.545 0.55 0.555 0.56 0.565 0.57 0.575 0.58 0.585 0.59 0.595 0.6 0.605 0.61 0.615 0.62 0.625 0.63 0.635 0.64 0.645 0.65 0.655 0.66 0.665 0.67 0.675 0.68 0.685 0.69 0.695 0.7 0.705 0.71 0.715 0.72 0.725 0.73 0.735 0.74 0.745 0.75 0.755 0.76 0.765 0.77 0.775 0.78 0.785 0.79 0.795 0.8 0.805 0.81 0.815 0.82 0.825 0.83 0.835 0.84 0.845 0.85 0.855 0.86 0.865 0.87 0.875 0.88 0.885 0.89 0.895 0.9 0.905 0.91 0.915 0.92 0.925 0.93 0.935 0.94 0.945 0.95 0.955 0.96 0.965 0.97 0.975 0.98 0.985 0.99 0.995 1.0' keyValue='0.006813 -0.9999 0.01227 -4.155 0.008468 -0.9999 0.01499 -4.17 0.0112 -0.9997 0.01951 -4.184 0.012 -0.9997 0.01954 -4.243 0.01241 -0.9997 0.01934 -4.282 0.0113 -0.9998 0.01751 -4.287 0.00833 -0.9999 0.01283 -4.293 0.005032 -1.0 0.007728 -4.296 1.064E-4 -1.0 1.6E-4 -4.315 -0.004939 -1.0 -0.007298 -4.331 -0.01123 -0.9998 -0.01653 -4.335 -0.01465 -0.9997 -0.0202 -4.396 -0.01819 -0.9996 -0.02355 -4.457 -0.01259 -0.9998 -0.01455 -4.568 -0.01216 -0.9998 -0.01333 -4.621 -0.01397 -0.9998 -0.01528 -4.623 0.02539 0.9993 0.02583 -1.589 0.0371 0.9987 0.0355 -1.528 0.04743 0.9978 0.04625 -1.548 0.04668 0.9979 0.04507 -1.538 0.04263 0.9982 0.04123 -1.539 0.01831 0.9997 0.01608 -1.442 0.002981 1.0 0.002377 -1.346 0.003686 1.0 0.002119 -1.044 0.0197 0.9998 0.006598 -0.6466 0.06883 0.9976 0.01236 -0.3561 0.1277 -0.9918 -0.009755 -0.1537 0.0265 -0.9996 -0.007593 -0.5582 0.00428 -1.0 -0.002994 -1.221 0.003623 -1.0 -0.003378 -1.501 0.003552 -1.0 -0.003945 -1.676 0.003677 -1.0 -0.004492 -1.77 0.003642 -1.0 -0.004669 -1.817 0.003532 -1.0 -0.004394 -1.787 0.003678 -1.0 -0.004347 -1.737 0.003838 -1.0 -0.004295 -1.683 0.00444 -1.0 -0.004325 -1.545 0.004366 -1.0 -0.004015 -1.487 0.003943 -1.0 -0.003682 -1.502 0.002829 -1.0 -0.002169 -1.308 0.001765 -1.0 -0.001138 -1.145 0.001966 -1.0 -9.92E-4 -0.9346 0.004464 -1.0 -0.001472 -0.6368 0.01489 -0.9999 -0.002438 -0.3246 0.0684 -0.9977 -0.002774 -0.08126 0.05839 0.9983 0.003113 -0.1067 0.02621 0.9997 0.003279 -0.249 0.02607 0.9997 0.003471 -0.2649 0.02794 0.9996 0.003665 -0.261 0.02929 0.9996 0.003668 -0.2492 0.03071 0.9995 0.003686 -0.239 0.03326 0.9994 0.003678 -0.2204 0.03103 0.9995 0.00367 -0.2355 0.02881 0.9996 0.00366 -0.2528 0.02226 0.9997 0.00383 -0.3409 0.01283 0.9999 0.003359 -0.5122 0.006523 1.0 0.002811 -0.8137 -0.001283 1.0 -6.491E-4 -0.9365 -0.005889 1.0 -0.003555 -1.086 -0.003506 1.0 -0.002509 -1.242 -0.002375 1.0 -0.001917 -1.358 -0.00105 1.0 -9.75E-4 -1.497 -5.828E-4 1.0 -5.423E-4 -1.499 0.0 1.0 0.0 -1.523 6.321E-4 1.0 6.21E-4 -1.553 -0.001247 -1.0 -0.001276 -4.689 -0.002221 -1.0 -0.002371 -4.647 6.834E-4 -1.0 7.693E-4 -4.594 0.002608 -1.0 0.003065 -4.552 0.005679 -1.0 0.00685 -4.526 0.001657 -1.0 0.002102 -4.476 -0.002623 -1.0 -0.003525 -4.421 -0.004588 -1.0 -0.006159 -4.422 -0.005234 -1.0 -0.007088 -4.414 -0.004443 -1.0 -0.006067 -4.406 -0.003333 -1.0 -0.004585 -4.399 -0.002337 -1.0 -0.003232 -4.394 -0.001732 -1.0 -0.002339 -4.417 -0.001067 -1.0 -0.001414 -4.434 -4.932E-4 -1.0 -6.638E-4 -4.42 0.00133 -1.0 0.001463 -4.617 -0.002762 1.0 -0.002598 -1.51 1.712E-4 1.0 1.324E-4 -1.317 -0.003318 1.0 -0.001938 -1.057 -0.008097 1.0 -0.003699 -0.857 -0.04174 0.9991 -0.01169 -0.5467 -0.1274 0.9917 -0.01805 -0.2839 -0.3406 0.9399 -0.0244 -0.1521 -0.9828 -0.1844 0.004405 -0.04859 -0.2223 -0.9748 0.01955 -0.18 -0.1959 -0.9805 0.01769 -0.1837 -0.1755 -0.9843 0.01672 -0.1929 -0.2006 -0.9795 0.01711 -0.1737 -0.2069 -0.9782 0.01709 -0.1686 -0.213 -0.9769 0.01709 -0.1639 -0.2005 -0.9796 0.01736 -0.1764 -0.2025 -0.9791 0.01743 -0.1754 -0.2127 -0.977 0.01741 -0.1671 -0.222 -0.9749 0.01722 -0.1588 -0.2296 -0.9731 0.01704 -0.1522 -0.2331 -0.9723 0.01676 -0.1476 -0.2018 -0.9793 0.01638 -0.1654 -0.1775 -0.984 0.01591 -0.1816 -0.1088 -0.9939 0.01501 -0.2757 -0.07828 -0.9968 0.01412 -0.3581 -0.0632 -0.9979 0.01267 -0.3964 -0.05145 -0.9986 0.01578 -0.5959 -0.04383 -0.9989 0.01929 -0.8299 -0.02789 -0.9995 0.01431 -0.9485 -0.02498 -0.9996 0.01456 -1.056 -0.03264 -0.9993 0.02078 -1.135 -0.04034 -0.9988 0.02832 -1.225 -0.04472 -0.9984 0.03358 -1.29 -0.05088 -0.9978 0.04226 -1.388 -0.05779 -0.997 0.05194 -1.467 -0.06605 -0.9958 0.06289 -1.526 -0.06953 -0.9953 0.06736 -1.544 -0.07211 -0.9949 0.07119 -1.563 -0.0676 -0.9954 0.06765 -1.576 -0.06018 -0.9964 0.05985 -1.569 -0.0499 -0.9976 0.049 -1.555 -0.04129 -0.9984 0.03873 -1.509 -0.03193 -0.9991 0.02935 -1.488 -0.02117 -0.9996 0.02068 -1.548 -0.02214 -0.9995 0.02215 -1.572 -0.02553 -0.9993 0.02612 -1.594 -0.03197 -0.9989 0.03307 -1.606 -0.03325 -0.9989 0.0339 -1.591 -0.0253 -0.9994 0.02416 -1.525 -0.01739 -0.9997 0.0154 -1.45 0.002328 -1.0 -0.001778 -1.304 0.005608 -1.0 -0.00414 -1.272 0.0096 -0.9999 -0.007223 -1.29 0.007995 -0.9999 -0.006446 -1.357 0.008529 -0.9999 -0.007984 -1.505 0.009671 -0.9999 -0.01052 -1.655 0.02633 -0.9989 -0.03954 -1.968 0.02941 -0.9971 -0.0705 -2.353 0.01406 -0.9956 -0.09264 -2.842 0.02508 -0.993 -0.1156 -2.717 0.03637 -0.9909 -0.1293 -2.598 0.05382 -0.993 -0.105 -2.2 0.05445 -0.9947 -0.08679 -2.026 0.04423 -0.9972 -0.06055 -1.882 0.06106 -0.9958 -0.06866 -1.692 0.06938 -0.9952 -0.06964 -1.579 0.08475 -0.9938 -0.07195 -1.414 0.07884 -0.9945 -0.06865 -1.438 0.07166 -0.9953 -0.06499 -1.478 0.05672 -0.9968 -0.05656 -1.571 0.0359 -0.9983 -0.04621 -1.822 0.01567 -0.9994 -0.02997 -2.178 0.01129 -0.9995 -0.02859 -2.39 0.006174 -0.9997 -0.02543 -2.665 0.003213 -0.9995 -0.03158 -2.939 4.052E-4 -0.9995 -0.03242 -3.117 -0.002454 -0.9995 -0.03144 -3.297 -0.004565 -0.9995 -0.03087 -3.435 -0.006414 -0.9995 -0.02982 -3.565 -0.006017 -0.9995 -0.03018 -3.535 -0.005782 -0.9995 -0.03043 -3.517 -0.004953 -0.9995 -0.03145 -3.454 -0.00336 -0.9995 -0.03152 -3.354 -0.001179 -0.9995 -0.03065 -3.218 0.001952 -0.9997 -0.02531 -2.988 0.004557 -0.9997 -0.02433 -2.771 0.007829 -0.9997 -0.02317 -2.49 0.007298 -0.9998 -0.0166 -2.313 0.006208 -0.9999 -0.01167 -2.164 0.004698 -1.0 -0.007807 -2.058 0.00454 -1.0 -0.007213 -2.018 0.004463 -1.0 -0.006813 -1.982 0.00443 -1.0 -0.006738 -1.978 0.004412 -1.0 -0.006705 -1.978 0.004378 -1.0 -0.006671 -1.98 0.004624 -1.0 -0.007342 -2.018 0.004843 -1.0 -0.007982 -2.051 0.005715 -0.9999 -0.00945 -2.054 0.005056 -0.9999 -0.008898 -2.108 0.003634 -1.0 -0.006937 -2.177 0.002201 -1.0 -0.005743 -2.41 6.766E-4 -1.0 -0.00403 -2.809 -6.182E-4 -1.0 -0.004311 -3.426 -0.001735 -1.0 -0.005669 -3.736 -0.002944 -1.0 -0.00691 -3.947 -0.004618 -0.9999 -0.009269 -4.066 -0.005489 -0.9999 -0.01031 -4.12 -0.005622 -0.9999 -0.01089 -4.094 -0.005248 -0.9999 -0.01027 -4.086 -0.004855 -0.9999 -0.00961 -4.077 -0.003567 -1.0 -0.007168 -4.065 -0.002444 -1.0 -0.004901 -4.067 -0.001167 -1.0 -0.002277 -4.089 -1.237E-4 -1.0 -2.417E-4 -4.088 9.202E-4 -1.0 0.001799 -4.087 0.001855 -1.0 0.003596 -4.094 0.002665 -1.0 0.005084 -4.107 0.003413 -1.0 0.006335 -4.13 0.003873 -1.0 0.00724 -4.124 0.004619 -1.0 0.008618 -4.126 0.006813 -0.9999 0.01227 -4.155'/> |
210 | <KeySensor DEF='keysensor'/> |
211 | <Switch DEF='DEBUG_TERRAIN' whichChoice='0'> |
212 | <Group DEF='TERRAIN-CONTAINER'> |
213 |
<!-- CollidableShape
Road-v-001 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Road-v-001' translation='124.936 -0.5 -461.607' containerField='children'> |
214 | <Shape containerField='shape'> |
215 | |
216 | <Material emissiveColor='1.0 0.0 0.0'/> |
217 | </Appearance> |
218 | <Box size='1250.0 1.0 800.0'/> |
219 | </Shape> |
220 | </CollidableShape> |
221 |
<!-- CollidableShape
Road-v-002 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Road-v-002' translation='-417.631 -0.5 24.7947' containerField='children'> |
222 | <Shape containerField='shape'> |
223 | <Appearance USE='ROAD-APP'/> |
224 | <Box size='200.0 1.0 250.0'/> |
225 | </Shape> |
226 | </CollidableShape> |
227 |
<!-- CollidableShape
Road-v-003 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Road-v-003' translation='675.143 -0.5 17.6217' containerField='children'> |
228 | <Shape containerField='shape'> |
229 | <Appearance USE='ROAD-APP'/> |
230 | <Box size='200.0 1.0 250.0'/> |
231 | </Shape> |
232 | </CollidableShape> |
233 |
<!-- CollidableShape
Road-v-004 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Road-v-004' translation='138.008 -0.5 23.1087' containerField='children'> |
234 | <Shape containerField='shape'> |
235 | <Appearance USE='ROAD-APP'/> |
236 | <Box size='1000.0 1.0 60.0'/> |
237 | </Shape> |
238 | </CollidableShape> |
239 |
<!-- CollidableShape
Road-v-006 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Road-v-006' rotation='0.0 0.0 -1.0 0.135494' translation='347.056 4.87479 -376.17' containerField='children'> |
240 | <Shape containerField='shape'> |
241 | <Appearance DEF='RAMP_APP'> |
242 | <Material diffuseColor='0.0 0.0 1.0'/> |
243 | <ImageTexture url=' "originals/car/textures/wall-stone-001.jpg " "https://www.web3d.org/x3d/content/examples/Basic/RigidBodyPhysics/originals/car/textures/wall-stone-001.jpg " '/> |
244 | </Appearance> |
245 | <Box size='90.0 1.0 70.0'/> |
246 | </Shape> |
247 | </CollidableShape> |
248 |
<!-- CollidableShape
Road-v-007 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Road-v-007' translation='301.193 1.4 -376.315' containerField='children'> |
249 | <Shape containerField='shape'> |
250 | <Appearance USE='ROAD-APP'/> |
251 | <Box size='3.0 20.0 70.0'/> |
252 | </Shape> |
253 | </CollidableShape> |
254 |
<!-- CollidableShape
Sand-v-001 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Sand-v-001' translation='101.232 -0.55 -31.8107' containerField='children'> |
255 | <Shape containerField='shape'> |
256 | |
257 | <Material ambientIntensity='0.258621' diffuseColor='0.58 0.27 0.01' shininess='0.07' specularColor='0.43 0.2 0.0'/> |
258 | <ImageTexture/> |
259 | </Appearance> |
260 | <Box size='1000.0 1.0 60.0'/> |
261 | </Shape> |
262 | </CollidableShape> |
263 |
<!-- CollidableShape
Sand-v-002 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Sand-v-002' translation='108.906 -0.55 93.8712' containerField='children'> |
264 | <Shape containerField='shape'> |
265 | <Appearance USE='SAND-APP'/> |
266 | <Box size='1000.0 1.0 100.0'/> |
267 | </Shape> |
268 | </CollidableShape> |
269 |
<!-- CollidableShape
WALL-v-001a is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='WALL-v-001a' translation='750.0 10.0 -360.0' containerField='children'> |
270 | <Shape containerField='shape'> |
271 | |
272 | <Material emissiveColor='0.5 0.5 0.5' transparency='0.2'/> |
273 | </Appearance> |
274 | <Box size='1.0 20.0 1000.0'/> |
275 | </Shape> |
276 | </CollidableShape> |
277 |
<!-- CollidableShape
WALL-v-001b is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='WALL-v-001b' translation='-500.0 10.0 -360.0' containerField='children'> |
278 | <Shape containerField='shape'> |
279 | <Appearance USE='WALL-APP'/> |
280 | <Box size='1.0 20.0 1000.0'/> |
281 | </Shape> |
282 | </CollidableShape> |
283 |
<!-- CollidableShape
WALL-v-001c is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='WALL-v-001c' translation='125.0 10.0 140.99' containerField='children'> |
284 | <Shape containerField='shape'> |
285 | <Appearance USE='WALL-APP'/> |
286 | <Box size='1250.0 20.0 1.0'/> |
287 | </Shape> |
288 | </CollidableShape> |
289 |
<!-- CollidableShape
WALL-v-001d is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='WALL-v-001d' translation='125.0 10.0 -859.733' containerField='children'> |
290 | <Shape containerField='shape'> |
291 | <Appearance USE='WALL-APP'/> |
292 | <Box size='1250.0 20.0 1.0'/> |
293 | </Shape> |
294 | </CollidableShape> |
295 |
<!-- CollidableShape
Wall-v-002 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Wall-v-002' translation='-163.362 24.0 -589.528' containerField='children'> |
296 | <Shape containerField='shape'> |
297 | <Appearance USE='WALL-APP'/> |
298 | <Box size='40.0 48.0 40.0'/> |
299 | </Shape> |
300 | </CollidableShape> |
301 |
<!-- CollidableShape
Wall-v-003 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Wall-v-003' translation='-100.093 19.0 -587.841' containerField='children'> |
302 | |
303 | <Appearance USE='WALL-APP'/> |
304 | <Box size='40.0 38.0 40.0'/> |
305 | </Shape> |
306 | </CollidableShape> |
307 |
<!-- CollidableShape
Wall-v-004 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Wall-v-004' translation='-314.972 19.0 -656.376' containerField='children'> |
308 | <Shape USE='SmallBulding' containerField='shape'/> |
309 | </CollidableShape> |
310 |
<!-- CollidableShape
Wall-v-005 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Wall-v-005' translation='-314.723 19.0 -580.647' containerField='children'> |
311 | <Shape USE='SmallBulding' containerField='shape'/> |
312 | </CollidableShape> |
313 |
<!-- CollidableShape
Wall-v-006 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Wall-v-006' translation='-269.737 19.0 -452.626' containerField='children'> |
314 | <Shape USE='SmallBulding' containerField='shape'/> |
315 | </CollidableShape> |
316 |
<!-- CollidableShape
Wall-v-007 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Wall-v-007' translation='-217.782 19.0 -450.082' containerField='children'> |
317 | <Shape USE='SmallBulding' containerField='shape'/> |
318 | </CollidableShape> |
319 |
<!-- CollidableShape
Wall-v-008 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Wall-v-008' translation='-83.8395 19.0 -351.859' containerField='children'> |
320 | <Shape USE='SmallBulding' containerField='shape'/> |
321 | </CollidableShape> |
322 |
<!-- CollidableShape
Wall-v-009 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Wall-v-009' translation='-348.799 19.0 -511.969' containerField='children'> |
323 | <Shape USE='SmallBulding' containerField='shape'/> |
324 | </CollidableShape> |
325 |
<!-- CollidableShape
Wall-v-010 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Wall-v-010' translation='-23.9812 19.0 -501.768' containerField='children'> |
326 | <Shape USE='SmallBulding' containerField='shape'/> |
327 | </CollidableShape> |
328 |
<!-- CollidableShape
Wall-v-011 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='Wall-v-011' translation='-101.759 19.0 -451.126' containerField='children'> |
329 | <Shape USE='SmallBulding' containerField='shape'/> |
330 | </CollidableShape> |
331 | </Group> |
332 | </Switch> |
333 | <Script DEF='physicsSectorScript'> |
334 | <field name='sector1' type='SFTime' accessType='inputOnly'/> |
335 | <field name='sector2' type='SFTime' accessType='inputOnly'/> |
336 | <field name='sector3' type='SFTime' accessType='inputOnly'/> |
337 | <field name='sector4' type='SFTime' accessType='inputOnly'/> |
338 | <field name='sector5' type='SFTime' accessType='inputOnly'/> |
339 | <field name='sector6' type='SFTime' accessType='inputOnly'/> |
340 | <field name='sector7' type='SFTime' accessType='inputOnly'/> |
341 | <field name='sector8' type='SFTime' accessType='inputOnly'/> |
342 | <field name='sector9' type='SFTime' accessType='inputOnly'/> |
343 | <field name='sector1Enabled' type='SFBool' accessType='outputOnly'/> |
344 | <field name='sector2Enabled' type='SFBool' accessType='outputOnly'/> |
345 | <field name='sector3Enabled' type='SFBool' accessType='outputOnly'/> |
346 | <field name='sector4Enabled' type='SFBool' accessType='outputOnly'/> |
347 | <field name='sector5Enabled' type='SFBool' accessType='outputOnly'/> |
348 | <field name='sector6Enabled' type='SFBool' accessType='outputOnly'/> |
349 | <field name='sector7Enabled' type='SFBool' accessType='outputOnly'/> |
350 | <field name='sector8Enabled' type='SFBool' accessType='outputOnly'/> |
351 | <field name='sector9Enabled' type='SFBool' accessType='outputOnly'/> |
<![CDATA[
ecmascript: function sector1(val) { if (val) { Browser.println('Physics Sector1'); sector1Enabled = true; sector2Enabled = true; sector3Enabled = false; sector4Enabled = false; sector5Enabled = false; sector6Enabled = false; sector7Enabled = false; sector8Enabled = false; sector9Enabled = false; } } function sector2(val) { if (val) { Browser.println('Physics Sector2'); sector1Enabled = true; sector2Enabled = true; sector3Enabled = true; sector4Enabled = false; sector5Enabled = false; sector6Enabled = false; sector7Enabled = false; sector8Enabled = false; sector9Enabled = false; } } function sector3(val) { if (val) { Browser.println('Physics Sector3'); sector1Enabled = false; sector2Enabled = true; sector3Enabled = true; sector4Enabled = true; sector5Enabled = false; sector6Enabled = false; sector7Enabled = false; sector8Enabled = false; sector9Enabled = false; } } function sector4(val) { if (val) { Browser.println('Physics Sector4'); sector1Enabled = false; sector2Enabled = false; sector3Enabled = true; sector4Enabled = true; sector5Enabled = true; sector6Enabled = false; sector7Enabled = false; sector8Enabled = false; sector9Enabled = false; } } function sector5(val) { if (val) { Browser.println('Physics Sector5'); sector1Enabled = false; sector2Enabled = false; sector3Enabled = false; sector4Enabled = true; sector5Enabled = true; sector6Enabled = true; sector7Enabled = false; sector8Enabled = false; sector9Enabled = false; } } function sector6(val) { if (val) { Browser.println('Physics Sector6'); sector1Enabled = false; sector2Enabled = false; sector3Enabled = false; sector4Enabled = false; sector5Enabled = true; sector6Enabled = true; sector7Enabled = true; sector8Enabled = false; sector9Enabled = false; } } function sector7(val) { if (val) { Browser.println('Physics Sector7'); sector1Enabled = false; sector2Enabled = false; sector3Enabled = false; sector4Enabled = false; sector5Enabled = false; sector6Enabled = true; sector7Enabled = true; sector8Enabled = true; sector9Enabled = false; } } function sector8(val) { if (val) { Browser.println('Physics Sector8'); sector1Enabled = false; sector2Enabled = false; sector3Enabled = false; sector4Enabled = false; sector5Enabled = false; sector6Enabled = false; sector7Enabled = true; sector8Enabled = true; sector9Enabled = true; } } function sector9(val) { if (val) { Browser.println('Physics Sector9'); sector1Enabled = true; sector2Enabled = false; sector3Enabled = false; sector4Enabled = false; sector5Enabled = false; sector6Enabled = false; sector7Enabled = false; sector8Enabled = true; sector9Enabled = true; } } function sector9(val) { if (val) { Browser.println('Physics Sector9'); sector1Enabled = true; sector2Enabled = false; sector3Enabled = false; sector4Enabled = false; sector5Enabled = false; sector6Enabled = false; sector7Enabled = false; sector8Enabled = true; sector9Enabled = true; } }
]]>
|
|
353 | </Script> |
354 |
<!-- ROUTE information for BODY-COLLECTION node:
[from CAR-CONTROL-SCRIPT.enablePhysics to enabled
]
[from CAR-CONTROL-SCRIPT.correctedContacts to set_contacts
]
[from CAR-CONTROL-SCRIPT.connectJoints to joints
]
-->
<RigidBodyCollection DEF='BODY-COLLECTION' constantForceMix='0.0050' contactSurfaceThickness='0.0010' enabled='false' iterations='20' containerField='children'> |
355 |
<!-- RigidBody
CAR-BODY is a DEF node that has 5 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5
<!-- ROUTE information for CAR-BODY node: [from CAR-CONTROL-SCRIPT.enablePhysics to enabled ] [from CAR-CONTROL-SCRIPT.chassisPosition_reset to position ] [from CAR-CONTROL-SCRIPT.chassisOrientation_reset to orientation ] [from CAR-CONTROL-SCRIPT.frictionForces to forces ] [from CAR-CONTROL-SCRIPT.correctedChassisOrientation to orientation ] [from position to CAR-BODY-TX.translation ] [from orientation to CAR-BODY-TX.rotation ] [from linearVelocity to CAR-CONTROL-SCRIPT.carVelocity ] [from orientation to CAR-CONTROL-SCRIPT.carOrientation ] [from position to CAMERA-CONTROL-SCRIPT.carPosition ] --> <RigidBody DEF='CAR-BODY' autoDamp='true' containerField='bodies' enabled='false' mass='900.0' position='0.0 1.25 0.0'> |
356 | <Box USE='CHASSIS-BOX' containerField='massDensityModel'/> |
357 |
<!-- CollidableShape
CAR-BODY-GEOM is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='CAR-BODY-GEOM' containerField='geometry'> |
358 | <Shape containerField='shape'> |
359 | <Box USE='CHASSIS-BOX'/> |
360 | </Shape> |
361 | </CollidableShape> |
362 | </RigidBody> |
363 |
<!-- RigidBody
FRONT-LEFT-WHEEL-BODY is a DEF node that has 2 USE nodes: USE_1, USE_2
<!-- ROUTE information for FRONT-LEFT-WHEEL-BODY node: [from FRONT-LEFT-JOINT.body2Axis to finiteRotationAxis ] [from CAR-CONTROL-SCRIPT.enablePhysics to enabled ] [from CAR-CONTROL-SCRIPT.frontLeftWheelPosition_reset to position ] [from CAR-CONTROL-SCRIPT.frontLeftWheelOrientation_reset to orientation ] [from position to FRONT-LEFT-WHEEL-TX.translation ] [from orientation to FRONT-LEFT-WHEEL-TX.rotation ] [from position to FRONT-LEFT-WHEEL-TX-DEBUG-HINGE.translation ] [from position to FRONT-LEFT-WHEEL-TX-DEBUG-MAX.translation ] [from position to FRONT-LEFT-WHEEL-TX-DEBUG-MIN.translation ] --> <RigidBody DEF='FRONT-LEFT-WHEEL-BODY' angularDampingFactor='0' autoDamp='true' containerField='bodies' enabled='false' mass='20.0' position='-0.9 1.5 -2.5' useFiniteRotation='true'> |
364 | <Sphere USE='WHEEL-MASS' containerField='massDensityModel'/> |
365 |
<!-- CollidableShape
FRONT-LEFT-WHEEL-GEOM is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='FRONT-LEFT-WHEEL-GEOM' containerField='geometry'> |
366 |
<!-- Shape
WHEEL-GEOM is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
<Shape DEF='WHEEL-GEOM' containerField='shape'> |
367 |
<!-- Sphere
WHEEL-MASS is a DEF node that has 4 USE nodes: USE_1, USE_2, USE_3, USE_4 --> <Sphere DEF='WHEEL-MASS' radius='0.5'/> |
368 | </Shape> |
369 | </CollidableShape> |
370 | </RigidBody> |
371 |
<!-- RigidBody
FRONT-RIGHT-WHEEL-BODY is a DEF node that has 2 USE nodes: USE_1, USE_2
<!-- ROUTE information for FRONT-RIGHT-WHEEL-BODY node: [from FRONT-RIGHT-JOINT.body2Axis to finiteRotationAxis ] [from CAR-CONTROL-SCRIPT.enablePhysics to enabled ] [from CAR-CONTROL-SCRIPT.frontRightWheelPosition_reset to position ] [from CAR-CONTROL-SCRIPT.frontRightWheelOrientation_reset to orientation ] [from position to FRONT-RIGHT-WHEEL-TX.translation ] [from orientation to FRONT-RIGHT-WHEEL-TX.rotation ] [from position to FRONT-RIGHT-WHEEL-TX-DEBUG-HINGE.translation ] [from position to FRONT-RIGHT-WHEEL-TX-DEBUG-MAX.translation ] [from position to FRONT-RIGHT-WHEEL-TX-DEBUG-MIN.translation ] --> <RigidBody DEF='FRONT-RIGHT-WHEEL-BODY' angularDampingFactor='0' autoDamp='true' containerField='bodies' enabled='false' mass='20.0' position='0.9 1.5 -2.5' useFiniteRotation='true'> |
372 | <Sphere USE='WHEEL-MASS' containerField='massDensityModel'/> |
373 |
<!-- CollidableShape
FRONT-RIGHT-WHEEL-GEOM is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='FRONT-RIGHT-WHEEL-GEOM' containerField='geometry'> |
374 | <Shape USE='WHEEL-GEOM' containerField='shape'/> |
375 | </CollidableShape> |
376 | </RigidBody> |
377 |
<!-- RigidBody
BACK-LEFT-WHEEL-BODY is a DEF node that has 2 USE nodes: USE_1, USE_2
<!-- ROUTE information for BACK-LEFT-WHEEL-BODY node: [from BACK-LEFT-JOINT.body2Axis to finiteRotationAxis ] [from CAR-CONTROL-SCRIPT.enablePhysics to enabled ] [from CAR-CONTROL-SCRIPT.backLeftWheelPosition_reset to position ] [from CAR-CONTROL-SCRIPT.backLeftWheelOrientation_reset to orientation ] [from position to BACK-LEFT-WHEEL-TX.translation ] [from orientation to BACK-LEFT-WHEEL-TX.rotation ] --> <RigidBody DEF='BACK-LEFT-WHEEL-BODY' angularDampingFactor='0' autoDamp='true' containerField='bodies' enabled='false' mass='20.0' position='-0.9 1.5 2.5' useFiniteRotation='true'> |
378 | <Sphere USE='WHEEL-MASS' containerField='massDensityModel'/> |
379 |
<!-- CollidableShape
BACK-LEFT-WHEEL-GEOM is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='BACK-LEFT-WHEEL-GEOM' containerField='geometry'> |
380 | <Shape USE='WHEEL-GEOM' containerField='shape'/> |
381 | </CollidableShape> |
382 | </RigidBody> |
383 |
<!-- RigidBody
BACK-RIGHT-WHEEL-BODY is a DEF node that has 2 USE nodes: USE_1, USE_2
<!-- ROUTE information for BACK-RIGHT-WHEEL-BODY node: [from BACK-RIGHT-JOINT.body2Axis to finiteRotationAxis ] [from CAR-CONTROL-SCRIPT.enablePhysics to enabled ] [from CAR-CONTROL-SCRIPT.backRightWheelPosition_reset to position ] [from CAR-CONTROL-SCRIPT.backRightWheelOrientation_reset to orientation ] [from position to BACK-RIGHT-WHEEL-TX.translation ] [from orientation to BACK-RIGHT-WHEEL-TX.rotation ] --> <RigidBody DEF='BACK-RIGHT-WHEEL-BODY' angularDampingFactor='0' autoDamp='true' containerField='bodies' enabled='false' mass='20.0' position='0.9 1.5 2.5' useFiniteRotation='true'> |
384 | <Sphere USE='WHEEL-MASS' containerField='massDensityModel'/> |
385 |
<!-- CollidableShape
BACK-RIGHT-WHEEL-GEOM is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<CollidableShape DEF='BACK-RIGHT-WHEEL-GEOM' containerField='geometry'> |
386 | <Shape USE='WHEEL-GEOM' containerField='shape'/> |
387 | </CollidableShape> |
388 | </RigidBody> |
389 | </RigidBodyCollection> |
390 |
<!-- ROUTE information for COLLISION-OUTPUT node:
[from contacts to CAR-CONTROL-SCRIPT.collisionContacts
]
-->
<CollisionSensor DEF='COLLISION-OUTPUT'> |
391 |
<!-- ROUTE information for COLLISION-GROUP node:
[from CAR-CONTROL-SCRIPT.enablePhysics to enabled
]
-->
<CollisionCollection DEF='COLLISION-GROUP' bounce='0.3' containerField='collider' enabled='false' frictionCoefficients='500.0 500.0' minBounceSpeed='0.3' softnessConstantForceMix='0.0010'> |
392 | <CollidableShape USE='FRONT-LEFT-WHEEL-GEOM' containerField='collidables'/> |
393 | <CollidableShape USE='FRONT-RIGHT-WHEEL-GEOM' containerField='collidables'/> |
394 | <CollidableShape USE='BACK-LEFT-WHEEL-GEOM' containerField='collidables'/> |
395 | <CollidableShape USE='BACK-RIGHT-WHEEL-GEOM' containerField='collidables'/> |
396 | <CollidableShape USE='CAR-BODY-GEOM' containerField='collidables'/> |
397 | <CollidableShape USE='Road-v-001' containerField='collidables'/> |
398 | <CollidableShape USE='Road-v-002' containerField='collidables'/> |
399 | <CollidableShape USE='Road-v-003' containerField='collidables'/> |
400 | <CollidableShape USE='Road-v-004' containerField='collidables'/> |
401 | <CollidableShape USE='Road-v-006' containerField='collidables'/> |
402 | <CollidableShape USE='Road-v-007' containerField='collidables'/> |
403 | <CollidableShape USE='Sand-v-001' containerField='collidables'/> |
404 | <CollidableShape USE='Sand-v-002' containerField='collidables'/> |
405 | <CollidableShape USE='WALL-v-001a' containerField='collidables'/> |
406 | <CollidableShape USE='WALL-v-001b' containerField='collidables'/> |
407 | <CollidableShape USE='WALL-v-001c' containerField='collidables'/> |
408 | <CollidableShape USE='WALL-v-001d' containerField='collidables'/> |
409 | <CollidableShape USE='Wall-v-002' containerField='collidables'/> |
410 | <CollidableShape USE='Wall-v-003' containerField='collidables'/> |
411 | <CollidableShape USE='Wall-v-004' containerField='collidables'/> |
412 | <CollidableShape USE='Wall-v-005' containerField='collidables'/> |
413 | <CollidableShape USE='Wall-v-006' containerField='collidables'/> |
414 | <CollidableShape USE='Wall-v-007' containerField='collidables'/> |
415 | <CollidableShape USE='Wall-v-008' containerField='collidables'/> |
416 | <CollidableShape USE='Wall-v-009' containerField='collidables'/> |
417 | <CollidableShape USE='Wall-v-010' containerField='collidables'/> |
418 | <CollidableShape USE='Wall-v-011' containerField='collidables'/> |
419 | </CollisionCollection> |
420 | </CollisionSensor> |
421 |
<!-- ROUTE information for CAR-CONTROL-SCRIPT node:
[from WHEEL.wheelX to wheelDirectionInput
]
[from WHEEL.throttleSlider to wheelAcceleratorInput
]
[from WHEEL.button2 to reverseSelected
]
[from WHEEL.button3 to resetRequest
]
[from GAMEPAD.leftStickX to wheelDirectionInput
]
[from GAMEPAD.rightStickY to wheelAcceleratorInput
]
[from GAMEPAD.l1Button to reverseSelected
]
[from GAMEPAD.r1Button to resetRequest
]
[from KEYSC.dir to wheelDirectionInput
]
[from KEYSC.accel to wheelAcceleratorInput
]
[from KEYSC.reverse to reverseSelected
]
[from KEYSC.reset to resetRequest
]
[from COLLISION-OUTPUT.contacts to collisionContacts
]
[from CAR-BODY.linearVelocity to carVelocity
]
[from CAR-BODY.orientation to carOrientation
]
[from FRONT-LEFT-JOINT.body2Axis to frontWheelOrientation
]
[from BACK-LEFT-JOINT.body2Axis to rearWheelOrientation
]
[from FRONT-LEFT-JOINT.hinge1Angle to currentSteeringAngle
]
[from enablePhysics to BODY-COLLECTION.enabled
]
[from enablePhysics to COLLISION-GROUP.enabled
]
[from enablePhysics to CAR-BODY.enabled
]
[from enablePhysics to FRONT-LEFT-WHEEL-BODY.enabled
]
[from enablePhysics to FRONT-RIGHT-WHEEL-BODY.enabled
]
[from enablePhysics to BACK-LEFT-WHEEL-BODY.enabled
]
[from enablePhysics to BACK-RIGHT-WHEEL-BODY.enabled
]
[from chassisPosition_reset to CAR-BODY.position
]
[from chassisOrientation_reset to CAR-BODY.orientation
]
[from frontLeftWheelPosition_reset to FRONT-LEFT-WHEEL-BODY.position
]
[from frontLeftWheelPosition_reset to FRONT-LEFT-JOINT.anchorPoint
]
[from frontLeftWheelOrientation_reset to FRONT-LEFT-WHEEL-BODY.orientation
]
[from frontRightWheelPosition_reset to FRONT-RIGHT-WHEEL-BODY.position
]
[from frontRightWheelPosition_reset to FRONT-RIGHT-JOINT.anchorPoint
]
[from frontRightWheelOrientation_reset to FRONT-RIGHT-WHEEL-BODY.orientation
]
[from backLeftWheelPosition_reset to BACK-LEFT-WHEEL-BODY.position
]
[from backLeftWheelPosition_reset to BACK-LEFT-JOINT.anchorPoint
]
[from backLeftWheelOrientation_reset to BACK-LEFT-WHEEL-BODY.orientation
]
[from backRightWheelPosition_reset to BACK-RIGHT-WHEEL-BODY.position
]
[from backRightWheelPosition_reset to BACK-RIGHT-JOINT.anchorPoint
]
[from backRightWheelOrientation_reset to BACK-RIGHT-WHEEL-BODY.orientation
]
[from frontWheelMinStop to FRONT-LEFT-JOINT.minAngle1
]
[from frontWheelMinStop to FRONT-RIGHT-JOINT.minAngle1
]
[from frontWheelMaxStop to FRONT-LEFT-JOINT.maxAngle1
]
[from frontWheelMaxStop to FRONT-RIGHT-JOINT.maxAngle1
]
[from frontLeftWheelSpeed to FRONT-LEFT-JOINT.desiredAngularVelocity2
]
[from frontRightWheelSpeed to FRONT-RIGHT-JOINT.desiredAngularVelocity2
]
[from rearLeftWheelSpeed to BACK-LEFT-JOINT.desiredAngularVelocity2
]
[from rearRightWheelSpeed to BACK-RIGHT-JOINT.desiredAngularVelocity2
]
[from frontWheelTorque to FRONT-LEFT-JOINT.maxTorque2
]
[from frontWheelTorque to FRONT-RIGHT-JOINT.maxTorque2
]
[from rearWheelTorque to BACK-LEFT-JOINT.maxTorque2
]
[from rearWheelTorque to BACK-RIGHT-JOINT.maxTorque2
]
[from frontLeftAxleAxis to FRONT-LEFT-JOINT.axis2
]
[from frontRightAxleAxis to FRONT-RIGHT-JOINT.axis2
]
[from rearLeftAxleAxis to BACK-LEFT-JOINT.axis2
]
[from rearRightAxleAxis to BACK-RIGHT-JOINT.axis2
]
[from frictionForces to CAR-BODY.forces
]
[from correctedContacts to BODY-COLLECTION.set_contacts
]
[from correctedChassisOrientation to CAR-BODY.orientation
]
[from connectJoints to BODY-COLLECTION.joints
]
[from speed to UI-CONTROL-SCRIPT.speed
]
[from revs to UI-CONTROL-SCRIPT.revs
]
[from brakesApplied to UI-CONTROL-SCRIPT.brakesApplied
]
[from reversing to UI-CONTROL-SCRIPT.reversing
]
[from chassisPosition_reset to CHASSIS-VIEW.position
]
[from chassisOrientation_reset to CHASSIS-VIEW.orientation
]
[from chassisPosition_reset to CAMERA-CONTROL-SCRIPT.resetPosition
]
[from chassisOrientation_reset to CAMERA-CONTROL-SCRIPT.resetOrientation
]
-->
<Script DEF='CAR-CONTROL-SCRIPT' directOutput='true' url=' "originals/car/CarControlScript.class" "https://www.web3d.org/x3d/content/examples/Basic/RigidBodyPhysics/originals/car/CarControlScript.class" '> |
422 | <field name='resetRequest' type='SFBool' accessType='inputOnly'/> |
423 | <field name='startingPosition' type='SFVec3f' accessType='inputOutput'/> |
424 | <field name='startingOrientation' type='SFRotation' accessType='inputOutput'/> |
425 | <field name='wheelBodyRadius' type='SFFloat' accessType='initializeOnly'/> |
426 | <field name='chassisBodyDimensions' type='SFVec3f' accessType='initializeOnly'/> |
427 | <field name='speedLimit' type='SFFloat' accessType='initializeOnly'/> |
428 | <field name='steeringLimitAngle' type='SFFloat' accessType='initializeOnly'/> |
429 | <field name='steeringDeadspot' type='SFFloat' accessType='initializeOnly'/> |
430 | <field name='maxEngineTorque' type='SFFloat' accessType='initializeOnly'/> |
431 | <field name='maxBrakingTorque' type='SFFloat' accessType='initializeOnly'/> |
432 | <field name='maxEngineRevs' type='SFFloat' accessType='initializeOnly'/> |
433 | <field name='roadFrictionCoefficient' type='SFFloat' accessType='inputOutput'/> |
434 | <field name='wallFrictionCoefficient' type='SFFloat' accessType='inputOutput'/> |
435 | <field name='sandFrictionCoefficient' type='SFFloat' accessType='inputOutput'/> |
436 | <field name='grassFrictionCoefficient' type='SFFloat' accessType='inputOutput'/> |
437 | <field name='otherFrictionCoefficient' type='SFFloat' accessType='inputOutput'/> |
438 | <field name='sideSlipCoefficient' type='SFFloat' accessType='inputOutput'/> |
439 | <field name='brakeBias' type='SFFloat' accessType='inputOutput'/> |
440 | <field name='engineFrontPercentage' type='SFFloat' accessType='inputOutput'/> |
441 | <field name='engineRearPercentage' type='SFFloat' accessType='inputOutput'/> |
442 | <field name='dragCoefficient' type='SFFloat' accessType='inputOutput'/> |
443 | <field name='downforceCoefficient' type='SFFloat' accessType='inputOutput'/> |
444 | <field name='reverseSelected' type='SFBool' accessType='inputOnly'/> |
445 | <field name='carVelocity' type='SFVec3f' accessType='inputOnly'/> |
446 | <field name='carOrientation' type='SFRotation' accessType='inputOnly'/> |
447 | <field name='currentSteeringAngle' type='SFFloat' accessType='inputOnly'/> |
448 | <field name='wheelAcceleratorInput' type='SFFloat' accessType='inputOnly'/> |
449 | <field name='wheelDirectionInput' type='SFFloat' accessType='inputOnly'/> |
450 | <field name='frontWheelOrientation' type='SFVec3f' accessType='inputOnly'/> |
451 | <field name='rearWheelOrientation' type='SFVec3f' accessType='inputOnly'/> |
452 | <field name='correctedChassisOrientation' type='SFRotation' accessType='outputOnly'/> |
453 | <field name='frontWheelMinStop' type='SFFloat' accessType='outputOnly'/> |
454 | <field name='frontWheelMaxStop' type='SFFloat' accessType='outputOnly'/> |
455 | <field name='frontLeftWheelSpeed' type='SFFloat' accessType='outputOnly'/> |
456 | <field name='frontRightWheelSpeed' type='SFFloat' accessType='outputOnly'/> |
457 | <field name='rearLeftWheelSpeed' type='SFFloat' accessType='outputOnly'/> |
458 | <field name='rearRightWheelSpeed' type='SFFloat' accessType='outputOnly'/> |
459 | <field name='frontWheelTorque' type='SFFloat' accessType='outputOnly'/> |
460 | <field name='rearWheelTorque' type='SFFloat' accessType='outputOnly'/> |
461 | <field name='frontLeftAxleAxis' type='SFVec3f' accessType='outputOnly'/> |
462 | <field name='frontRightAxleAxis' type='SFVec3f' accessType='outputOnly'/> |
463 | <field name='rearLeftAxleAxis' type='SFVec3f' accessType='outputOnly'/> |
464 | <field name='rearRightAxleAxis' type='SFVec3f' accessType='outputOnly'/> |
465 | <field name='frictionForces' type='MFVec3f' accessType='outputOnly'/> |
466 | <field name='chassisPosition_reset' type='SFVec3f' accessType='outputOnly'/> |
467 | <field name='chassisOrientation_reset' type='SFRotation' accessType='outputOnly'/> |
468 | <field name='frontLeftWheelPosition_reset' type='SFVec3f' accessType='outputOnly'/> |
469 | <field name='frontLeftWheelOrientation_reset' type='SFRotation' accessType='outputOnly'/> |
470 | <field name='frontRightWheelPosition_reset' type='SFVec3f' accessType='outputOnly'/> |
471 | <field name='frontRightWheelOrientation_reset' type='SFRotation' accessType='outputOnly'/> |
472 | <field name='backLeftWheelPosition_reset' type='SFVec3f' accessType='outputOnly'/> |
473 | <field name='backLeftWheelOrientation_reset' type='SFRotation' accessType='outputOnly'/> |
474 | <field name='backRightWheelPosition_reset' type='SFVec3f' accessType='outputOnly'/> |
475 | <field name='backRightWheelOrientation_reset' type='SFRotation' accessType='outputOnly'/> |
476 | <field name='enablePhysics' type='SFBool' accessType='outputOnly'/> |
477 | <field name='speed' type='SFFloat' accessType='outputOnly'/> |
478 | <field name='revs' type='SFFloat' accessType='outputOnly'/> |
479 | <field name='brakesApplied' type='SFBool' accessType='outputOnly'/> |
480 | <field name='reversing' type='SFBool' accessType='outputOnly'/> |
481 | <field name='chassis' type='SFNode' accessType='initializeOnly'> |
482 | <CollidableShape USE='CAR-BODY-GEOM' containerField='children'/> |
483 | </field> |
484 | <field name='frontLeftWheel' type='SFNode' accessType='initializeOnly'> |
485 | <CollidableShape USE='FRONT-LEFT-WHEEL-GEOM' containerField='children'/> |
486 | </field> |
487 | <field name='frontRightWheel' type='SFNode' accessType='initializeOnly'> |
488 | <CollidableShape USE='FRONT-RIGHT-WHEEL-GEOM' containerField='children'/> |
489 | </field> |
490 | <field name='backLeftWheel' type='SFNode' accessType='initializeOnly'> |
491 | <CollidableShape USE='BACK-LEFT-WHEEL-GEOM' containerField='children'/> |
492 | </field> |
493 | <field name='backRightWheel' type='SFNode' accessType='initializeOnly'> |
494 | <CollidableShape USE='BACK-RIGHT-WHEEL-GEOM' containerField='children'/> |
495 | </field> |
496 | <field name='bigTerrainBox' type='MFNode' accessType='initializeOnly'/> |
497 | <field name='roadTerrain' type='MFNode' accessType='initializeOnly'> |
498 | <CollidableShape USE='Road-v-001' containerField='children'/> |
499 | <CollidableShape USE='Road-v-002' containerField='children'/> |
500 | <CollidableShape USE='Road-v-003' containerField='children'/> |
501 | <CollidableShape USE='Road-v-004' containerField='children'/> |
502 | <CollidableShape USE='Road-v-006' containerField='children'/> |
503 | <CollidableShape USE='Road-v-007' containerField='children'/> |
504 | </field> |
505 | <field name='sandTerrain' type='MFNode' accessType='initializeOnly'> |
506 | <CollidableShape USE='Sand-v-001' containerField='children'/> |
507 | <CollidableShape USE='Sand-v-002' containerField='children'/> |
508 | </field> |
509 | <field name='grassTerrain' type='MFNode' accessType='initializeOnly'/> |
510 | <field name='wallTerrain' type='MFNode' accessType='initializeOnly'> |
511 | <CollidableShape USE='WALL-v-001a' containerField='children'/> |
512 | <CollidableShape USE='WALL-v-001b' containerField='children'/> |
513 | <CollidableShape USE='WALL-v-001c' containerField='children'/> |
514 | <CollidableShape USE='WALL-v-001d' containerField='children'/> |
515 | <CollidableShape USE='Wall-v-002' containerField='children'/> |
516 | <CollidableShape USE='Wall-v-003' containerField='children'/> |
517 | <CollidableShape USE='Wall-v-004' containerField='children'/> |
518 | <CollidableShape USE='Wall-v-005' containerField='children'/> |
519 | <CollidableShape USE='Wall-v-006' containerField='children'/> |
520 | <CollidableShape USE='Wall-v-007' containerField='children'/> |
521 | <CollidableShape USE='Wall-v-008' containerField='children'/> |
522 | <CollidableShape USE='Wall-v-009' containerField='children'/> |
523 | <CollidableShape USE='Wall-v-010' containerField='children'/> |
524 | <CollidableShape USE='Wall-v-011' containerField='children'/> |
525 | </field> |
526 | <field name='bodies' type='MFNode' accessType='initializeOnly'> |
527 | <RigidBody USE='CAR-BODY' containerField='bodies'/> |
528 | <RigidBody USE='FRONT-LEFT-WHEEL-BODY' containerField='bodies'/> |
529 | <RigidBody USE='FRONT-RIGHT-WHEEL-BODY' containerField='bodies'/> |
530 | <RigidBody USE='BACK-LEFT-WHEEL-BODY' containerField='bodies'/> |
531 | <RigidBody USE='BACK-RIGHT-WHEEL-BODY' containerField='bodies'/> |
532 | </field> |
533 | <field name='joints' type='MFNode' accessType='initializeOnly'> |
534 |
<!-- ROUTE information for FRONT-LEFT-JOINT node:
[from CAR-CONTROL-SCRIPT.frontLeftWheelPosition_reset to anchorPoint
]
[from CAR-CONTROL-SCRIPT.frontWheelMinStop to minAngle1
]
[from CAR-CONTROL-SCRIPT.frontWheelMaxStop to maxAngle1
]
[from CAR-CONTROL-SCRIPT.frontLeftWheelSpeed to desiredAngularVelocity2
]
[from CAR-CONTROL-SCRIPT.frontWheelTorque to maxTorque2
]
[from CAR-CONTROL-SCRIPT.frontLeftAxleAxis to axis2
]
[from body2Axis to CAR-CONTROL-SCRIPT.frontWheelOrientation
]
[from hinge1Angle to CAR-CONTROL-SCRIPT.currentSteeringAngle
]
[from body2Axis to FRONT-LEFT-WHEEL-BODY.finiteRotationAxis
]
[from hinge1Angle to FRONT-LEFT-HINGE-ANGLE-INTERP.set_fraction
]
[from maxAngle1 to FRONT-LEFT-MAXSTOP-ANGLE-INTERP.set_fraction
]
[from minAngle1 to FRONT-LEFT-MINSTOP-ANGLE-INTERP.set_fraction
]
-->
<DoubleAxisHingeJoint DEF='FRONT-LEFT-JOINT' anchorPoint='-0.9 1.5 -2.5' axis1='0.0 1.0 0.0' axis2='-1.0 0.0 0.0' containerField='joints' forceOutput='"body2Axis" "hinge1Angle"' maxAngle1='0.0' maxTorque2='100.0' minAngle1='0.0' stop1ErrorCorrection='0.98' suspensionErrorCorrection='0.9' suspensionForce='0.0030'> |
535 | <RigidBody USE='CAR-BODY' containerField='body1'/> |
536 | <RigidBody USE='FRONT-LEFT-WHEEL-BODY' containerField='body2'/> |
537 | </DoubleAxisHingeJoint> |
538 |
<!-- ROUTE information for FRONT-RIGHT-JOINT node:
[from CAR-CONTROL-SCRIPT.frontRightWheelPosition_reset to anchorPoint
]
[from CAR-CONTROL-SCRIPT.frontWheelMinStop to minAngle1
]
[from CAR-CONTROL-SCRIPT.frontWheelMaxStop to maxAngle1
]
[from CAR-CONTROL-SCRIPT.frontRightWheelSpeed to desiredAngularVelocity2
]
[from CAR-CONTROL-SCRIPT.frontWheelTorque to maxTorque2
]
[from CAR-CONTROL-SCRIPT.frontRightAxleAxis to axis2
]
[from body2Axis to FRONT-RIGHT-WHEEL-BODY.finiteRotationAxis
]
[from hinge1Angle to FRONT-RIGHT-HINGE-ANGLE-INTERP.set_fraction
]
[from maxAngle1 to FRONT-RIGHT-MAXSTOP-ANGLE-INTERP.set_fraction
]
[from minAngle1 to FRONT-RIGHT-MINSTOP-ANGLE-INTERP.set_fraction
]
-->
<DoubleAxisHingeJoint DEF='FRONT-RIGHT-JOINT' anchorPoint='0.9 1.5 -2.5' axis1='0.0 1.0 0.0' axis2='1.0 0.0 0.0' containerField='joints' forceOutput='"body2Axis" "hinge1Angle"' maxAngle1='0.0' maxTorque2='100.0' minAngle1='0.0' stop1ErrorCorrection='0.98' suspensionErrorCorrection='0.9' suspensionForce='0.0030'> |
539 | <RigidBody USE='CAR-BODY' containerField='body1'/> |
540 | <RigidBody USE='FRONT-RIGHT-WHEEL-BODY' containerField='body2'/> |
541 | </DoubleAxisHingeJoint> |
542 |
<!-- ROUTE information for BACK-LEFT-JOINT node:
[from CAR-CONTROL-SCRIPT.backLeftWheelPosition_reset to anchorPoint
]
[from CAR-CONTROL-SCRIPT.rearLeftWheelSpeed to desiredAngularVelocity2
]
[from CAR-CONTROL-SCRIPT.rearWheelTorque to maxTorque2
]
[from CAR-CONTROL-SCRIPT.rearLeftAxleAxis to axis2
]
[from body2Axis to CAR-CONTROL-SCRIPT.rearWheelOrientation
]
[from body2Axis to BACK-LEFT-WHEEL-BODY.finiteRotationAxis
]
-->
<DoubleAxisHingeJoint DEF='BACK-LEFT-JOINT' anchorPoint='-0.9 1.5 2.5' axis1='0.0 1.0 0.0' axis2='-1.0 0.0 0.0' containerField='joints' forceOutput='"body2Axis"' maxAngle1='0.0' maxTorque2='100.0' minAngle1='0.0' stop1ErrorCorrection='0.98' suspensionErrorCorrection='0.9' suspensionForce='0.0030'> |
543 | <RigidBody USE='CAR-BODY' containerField='body1'/> |
544 | <RigidBody USE='BACK-LEFT-WHEEL-BODY' containerField='body2'/> |
545 | </DoubleAxisHingeJoint> |
546 |
<!-- ROUTE information for BACK-RIGHT-JOINT node:
[from CAR-CONTROL-SCRIPT.backRightWheelPosition_reset to anchorPoint
]
[from CAR-CONTROL-SCRIPT.rearRightWheelSpeed to desiredAngularVelocity2
]
[from CAR-CONTROL-SCRIPT.rearWheelTorque to maxTorque2
]
[from CAR-CONTROL-SCRIPT.rearRightAxleAxis to axis2
]
[from body2Axis to BACK-RIGHT-WHEEL-BODY.finiteRotationAxis
]
-->
<DoubleAxisHingeJoint DEF='BACK-RIGHT-JOINT' anchorPoint='0.9 1.5 2.5' axis1='0.0 1.0 0.0' axis2='1.0 0.0 0.0' containerField='joints' forceOutput='"body2Axis"' maxAngle1='0.0' maxTorque2='100.0' minAngle1='0.0' stop1ErrorCorrection='0.98' suspensionErrorCorrection='0.9' suspensionForce='0.0030'> |
547 | <RigidBody USE='CAR-BODY' containerField='body1'/> |
548 | <RigidBody USE='BACK-RIGHT-WHEEL-BODY' containerField='body2'/> |
549 | </DoubleAxisHingeJoint> |
550 | </field> |
551 | <field name='collisionContacts' type='MFNode' accessType='inputOnly'/> |
552 | <field name='correctedContacts' type='MFNode' accessType='outputOnly'/> |
553 | <field name='connectJoints' type='MFNode' accessType='outputOnly'/> |
554 | </Script> |
555 |
<!-- ROUTE information for WHEEL node:
[from wheelX to CAR-CONTROL-SCRIPT.wheelDirectionInput
]
[from throttleSlider to CAR-CONTROL-SCRIPT.wheelAcceleratorInput
]
[from button2 to CAR-CONTROL-SCRIPT.reverseSelected
]
[from button3 to CAR-CONTROL-SCRIPT.resetRequest
]
[from wheelX to FRONT-LEFT-HINGE-WHEEL-INTERP.set_fraction
]
[from wheelX to FRONT-RIGHT-HINGE-WHEEL-INTERP.set_fraction
]
-->
<WheelSensor DEF='WHEEL' name='Wheel-0'/> |
556 |
<!-- ROUTE information for GAMEPAD node:
[from leftStickX to CAR-CONTROL-SCRIPT.wheelDirectionInput
]
[from rightStickY to CAR-CONTROL-SCRIPT.wheelAcceleratorInput
]
[from l1Button to CAR-CONTROL-SCRIPT.reverseSelected
]
[from r1Button to CAR-CONTROL-SCRIPT.resetRequest
]
-->
<GamepadSensor DEF='GAMEPAD' name='Gamepad-0'/> |
557 |
<!-- ROUTE information for KEYS node:
[from actionKeyPress to KEYSC.actionKeyPress
]
-->
<KeySensor DEF='KEYS'/> |
558 |
<!-- ROUTE information for KEYTIMER node:
[from fraction_changed to KEYSC.decay
]
-->
<TimeSensor DEF='KEYTIMER' loop='true'/> |
559 |
<!-- ROUTE information for KEYSC node:
[from KEYS.actionKeyPress to actionKeyPress
]
[from KEYTIMER.fraction_changed to decay
]
[from dir to CAR-CONTROL-SCRIPT.wheelDirectionInput
]
[from accel to CAR-CONTROL-SCRIPT.wheelAcceleratorInput
]
[from reverse to CAR-CONTROL-SCRIPT.reverseSelected
]
[from reset to CAR-CONTROL-SCRIPT.resetRequest
]
-->
<Script DEF='KEYSC'> |
560 | <field name='actionKeyPress' type='SFInt32' accessType='inputOnly'/> |
561 | <field name='decay' type='SFFloat' accessType='inputOnly'/> |
562 | <field name='dir' type='SFFloat' accessType='outputOnly'/> |
563 | <field name='accel' type='SFFloat' accessType='outputOnly'/> |
564 | <field name='reverse' type='SFBool' accessType='outputOnly'/> |
565 | <field name='reset' type='SFBool' accessType='outputOnly'/> |
<![CDATA[
ecmascript: var accelVar = 0; var dirVar = 0; var accelFactor = 0.1; var dirFactor = 0.5; var decayVar = 0.1; var applyDecay = false; function decay(val) { if (!applyDecay) return; if (dir >= decayVar) { dir = dir - decayVar; if (dir < -1) dir = -1; } else if (dir <= -decayVar) { dir = dir + decayVar; if (dir > 1) dir = 1; } else { dir = 0; applyDecay = false; } } function actionKeyPress(val) { applyDecay = true; if (val == 17) { accelVar = accelVar + accelFactor; if (accelVar > 1) accelVar = 1.0; accel = accelVar; } else if (val == 18) { accelVar = accelVar - accelFactor; if (accelVar < -1) accelVar = -1.0; accel = accelVar; } else if (val == 19) { dirVar = dirVar - dirFactor; if (dirVar < -1) dirVar = -1.0; dir = dirVar; } else if (val == 20) { dirVar = dirVar + dirFactor; if (dirVar > 1) dirVar = 1.0; dir = dirVar; } else { dir = 0; accel = 0; } }
]]>
|
|
567 | </Script> |
568 |
<!-- ROUTE information for UI-CONTROL-SCRIPT node:
[from CAR-CONTROL-SCRIPT.speed to speed
]
[from CAR-CONTROL-SCRIPT.revs to revs
]
[from CAR-CONTROL-SCRIPT.brakesApplied to brakesApplied
]
[from CAR-CONTROL-SCRIPT.reversing to reversing
]
[from brakeLightColor to BRAKE-LIGHT-COLOR.emissiveColor
]
[from reverseLightColor to REVERSE-LIGHT-COLOR.emissiveColor
]
[from speedScale to SPEED-INDICATOR.scale
]
[from speedFraction to SPEED-COLOR.set_fraction
]
-->
<Script DEF='UI-CONTROL-SCRIPT'> |
569 | <field name='speed' type='SFFloat' accessType='inputOnly'/> |
570 | <field name='revs' type='SFFloat' accessType='inputOnly'/> |
571 | <field name='brakesApplied' type='SFBool' accessType='inputOnly'/> |
572 | <field name='reversing' type='SFBool' accessType='inputOnly'/> |
573 | <field name='maxSpeed' type='SFFloat' accessType='initializeOnly'/> |
574 | <field name='brakeLightColor' type='SFColor' accessType='outputOnly'/> |
575 | <field name='reverseLightColor' type='SFColor' accessType='outputOnly'/> |
576 | <field name='speedScale' type='SFVec3f' accessType='outputOnly'/> |
577 | <field name='speedFraction' type='SFFloat' accessType='outputOnly'/> |
<![CDATA[
ecmascript: function brakesApplied(val) { if(val) brakeLightColor.r = 1; else brakeLightColor.r = 0.1; } function reversing(val) { if(val) { reverseLightColor.r = 1; reverseLightColor.g = 1; reverseLightColor.b = 1; } else { reverseLightColor.r = 0.1; reverseLightColor.g = 0.1; reverseLightColor.b = 0.1; } } function speed(val) { speedScale.x = 1; speedScale.y = val / maxSpeed; speedScale.z = 1; speedFraction = val / maxSpeed; }
]]>
|
|
579 | </Script> |
580 |
<!-- ROUTE information for SPEED-COLOR node:
[from UI-CONTROL-SCRIPT.speedFraction to set_fraction
]
[from value_changed to SPEED-INDICATOR-COLOR.emissiveColor
]
-->
<ColorInterpolator DEF='SPEED-COLOR' key='0.0 0.8 0.9 1.0' keyValue='0.0 0.0 0.0 1.0 1.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0'/> |
581 |
<!-- ROUTE information for FRONT-LEFT-HINGE-WHEEL-INTERP node:
[from WHEEL.wheelX to set_fraction
]
[from value_changed to FRONT-LEFT-WHEEL-TX-DEBUG-HINGE.rotation
]
-->
<OrientationInterpolator DEF='FRONT-LEFT-HINGE-WHEEL-INTERP' key='-1.0 0.0 1.0' keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/> |
582 |
<!-- ROUTE information for FRONT-RIGHT-HINGE-WHEEL-INTERP node:
[from WHEEL.wheelX to set_fraction
]
[from value_changed to FRONT-RIGHT-WHEEL-TX-DEBUG-HINGE.rotation
]
-->
<OrientationInterpolator DEF='FRONT-RIGHT-HINGE-WHEEL-INTERP' key='-1.0 0.0 1.0' keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/> |
583 |
<!-- ROUTE information for FRONT-LEFT-HINGE-ANGLE-INTERP node:
[from FRONT-LEFT-JOINT.hinge1Angle to set_fraction
]
[from value_changed to FRONT-LEFT-WHEEL-TX-DEBUG-HINGE.rotation
]
-->
<OrientationInterpolator DEF='FRONT-LEFT-HINGE-ANGLE-INTERP' key='-0.5236 0.0 0.5236' keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/> |
584 |
<!-- ROUTE information for FRONT-RIGHT-HINGE-ANGLE-INTERP node:
[from FRONT-RIGHT-JOINT.hinge1Angle to set_fraction
]
[from value_changed to FRONT-RIGHT-WHEEL-TX-DEBUG-HINGE.rotation
]
-->
<OrientationInterpolator DEF='FRONT-RIGHT-HINGE-ANGLE-INTERP' key='-0.5236 0.0 0.5236' keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/> |
585 |
<!-- ROUTE information for FRONT-LEFT-MAXSTOP-ANGLE-INTERP node:
[from FRONT-LEFT-JOINT.maxAngle1 to set_fraction
]
[from value_changed to FRONT-LEFT-WHEEL-TX-DEBUG-MAX.rotation
]
-->
<OrientationInterpolator DEF='FRONT-LEFT-MAXSTOP-ANGLE-INTERP' key='-0.5236 0.0 0.5236' keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/> |
586 |
<!-- ROUTE information for FRONT-RIGHT-MAXSTOP-ANGLE-INTERP node:
[from FRONT-RIGHT-JOINT.maxAngle1 to set_fraction
]
[from value_changed to FRONT-RIGHT-WHEEL-TX-DEBUG-MAX.rotation
]
-->
<OrientationInterpolator DEF='FRONT-RIGHT-MAXSTOP-ANGLE-INTERP' key='-0.5236 0.0 0.5236' keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/> |
587 |
<!-- ROUTE information for FRONT-LEFT-MINSTOP-ANGLE-INTERP node:
[from FRONT-LEFT-JOINT.minAngle1 to set_fraction
]
[from value_changed to FRONT-LEFT-WHEEL-TX-DEBUG-MIN.rotation
]
-->
<OrientationInterpolator DEF='FRONT-LEFT-MINSTOP-ANGLE-INTERP' key='-0.5236 0.0 0.5236' keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/> |
588 |
<!-- ROUTE information for FRONT-RIGHT-MINSTOP-ANGLE-INTERP node:
[from FRONT-RIGHT-JOINT.minAngle1 to set_fraction
]
[from value_changed to FRONT-RIGHT-WHEEL-TX-DEBUG-MIN.rotation
]
-->
<OrientationInterpolator DEF='FRONT-RIGHT-MINSTOP-ANGLE-INTERP' key='-0.5236 0.0 0.5236' keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/> |
589 | <Viewpoint description='Other position' position='0.0 2.0 10.0'/> |
590 | <Viewpoint description='Top down view of starting position' orientation='1.0 0.0 0.0 -1.5712' position='-114.86 20.0 -66.1922'/> |
591 |
<!-- ROUTE information for CHASSIS-VIEW node:
[from CAR-CONTROL-SCRIPT.chassisPosition_reset to position
]
[from CAR-CONTROL-SCRIPT.chassisOrientation_reset to orientation
]
-->
<Viewpoint DEF='CHASSIS-VIEW' description='Chassis starting position' position='0.0 0.0 0.0'/> |
592 | <Background skyAngle='1.5712 3.142' skyColor='0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0'/> |
593 | <NavigationInfo type='"NONE"'/> |
594 |
<!-- ROUTE information for CAMERA-CONTROL-SCRIPT node:
[from CAR-BODY.position to carPosition
]
[from CAR-CONTROL-SCRIPT.chassisPosition_reset to resetPosition
]
[from CAR-CONTROL-SCRIPT.chassisOrientation_reset to resetOrientation
]
[from cameraTranslation to CAMERA-TX.translation
]
[from cameraRotation to CAMERA-TX.rotation
]
-->
<Script DEF='CAMERA-CONTROL-SCRIPT' url=' "originals/car/CameraControl.class" "https://www.web3d.org/x3d/content/examples/Basic/RigidBodyPhysics/originals/car/CameraControl.class" '> |
595 | <field name='carPosition' type='SFVec3f' accessType='inputOnly'/> |
596 | <field name='resetPosition' type='SFVec3f' accessType='inputOnly'/> |
597 | <field name='resetOrientation' type='SFRotation' accessType='inputOnly'/> |
598 | <field name='cameraTranslation' type='SFVec3f' accessType='outputOnly'/> |
599 | <field name='cameraRotation' type='SFRotation' accessType='outputOnly'/> |
600 | <field name='height' type='SFFloat' accessType='initializeOnly'/> |
601 | <field name='chainLength' type='SFFloat' accessType='initializeOnly'/> |
602 | </Script> |
603 | < ROUTE fromNode='cam_car_chase-TIMER' fromField='fraction_changed' toNode='cam_car_chase-POS-INTERP' toField='set_fraction'/> |
604 | < ROUTE fromNode='cam_car_chase-POS-INTERP' fromField='value_changed' toNode='carGroup' toField='translation'/> |
605 | < ROUTE fromNode='cam_car_chase-TIMER' fromField='fraction_changed' toNode='cam_car_chase-ROT-INTERP' toField='set_fraction'/> |
606 | < ROUTE fromNode='cam_car_chase-ROT-INTERP' fromField='value_changed' toNode='carGroup' toField='rotation'/> |
607 | < ROUTE fromNode='cam_car_chase-POS-INTERP' fromField='value_changed' toNode='CAR-BODY-TX' toField='translation'/> |
608 | < ROUTE fromNode='cam_car_chase-ROT-INTERP' fromField='value_changed' toNode='CAR-BODY-TX' toField='rotation'/> |
609 | < ROUTE fromNode='FRONT-LEFT-WHEEL-BODY' fromField='position' toNode='FRONT-LEFT-WHEEL-TX' toField='translation'/> |
610 | < ROUTE fromNode='FRONT-LEFT-WHEEL-BODY' fromField='orientation' toNode='FRONT-LEFT-WHEEL-TX' toField='rotation'/> |
611 | < ROUTE fromNode='FRONT-RIGHT-WHEEL-BODY' fromField='position' toNode='FRONT-RIGHT-WHEEL-TX' toField='translation'/> |
612 | < ROUTE fromNode='FRONT-RIGHT-WHEEL-BODY' fromField='orientation' toNode='FRONT-RIGHT-WHEEL-TX' toField='rotation'/> |
613 | < ROUTE fromNode='BACK-LEFT-WHEEL-BODY' fromField='position' toNode='BACK-LEFT-WHEEL-TX' toField='translation'/> |
614 | < ROUTE fromNode='BACK-LEFT-WHEEL-BODY' fromField='orientation' toNode='BACK-LEFT-WHEEL-TX' toField='rotation'/> |
615 | < ROUTE fromNode='BACK-RIGHT-WHEEL-BODY' fromField='position' toNode='BACK-RIGHT-WHEEL-TX' toField='translation'/> |
616 | < ROUTE fromNode='BACK-RIGHT-WHEEL-BODY' fromField='orientation' toNode='BACK-RIGHT-WHEEL-TX' toField='rotation'/> |
617 | < ROUTE fromNode='CAR-BODY' fromField='position' toNode='CAR-BODY-TX' toField='translation'/> |
618 | < ROUTE fromNode='CAR-BODY' fromField='orientation' toNode='CAR-BODY-TX' toField='rotation'/> |
619 | < ROUTE fromNode='WHEEL' fromField='wheelX' toNode='CAR-CONTROL-SCRIPT' toField='wheelDirectionInput'/> |
620 | < ROUTE fromNode='WHEEL' fromField='throttleSlider' toNode='CAR-CONTROL-SCRIPT' toField='wheelAcceleratorInput'/> |
621 | < ROUTE fromNode='WHEEL' fromField='button2' toNode='CAR-CONTROL-SCRIPT' toField='reverseSelected'/> |
622 | < ROUTE fromNode='WHEEL' fromField='button3' toNode='CAR-CONTROL-SCRIPT' toField='resetRequest'/> |
623 | < ROUTE fromNode='GAMEPAD' fromField='leftStickX' toNode='CAR-CONTROL-SCRIPT' toField='wheelDirectionInput'/> |
624 | < ROUTE fromNode='GAMEPAD' fromField='rightStickY' toNode='CAR-CONTROL-SCRIPT' toField='wheelAcceleratorInput'/> |
625 | < ROUTE fromNode='GAMEPAD' fromField='l1Button' toNode='CAR-CONTROL-SCRIPT' toField='reverseSelected'/> |
626 | < ROUTE fromNode='GAMEPAD' fromField='r1Button' toNode='CAR-CONTROL-SCRIPT' toField='resetRequest'/> |
627 | < ROUTE fromNode='KEYS' fromField='actionKeyPress' toNode='KEYSC' toField='actionKeyPress'/> |
628 | < ROUTE fromNode='KEYTIMER' fromField='fraction_changed' toNode='KEYSC' toField='decay'/> |
629 | < ROUTE fromNode='KEYSC' fromField='dir' toNode='CAR-CONTROL-SCRIPT' toField='wheelDirectionInput'/> |
630 | < ROUTE fromNode='KEYSC' fromField='accel' toNode='CAR-CONTROL-SCRIPT' toField='wheelAcceleratorInput'/> |
631 | < ROUTE fromNode='KEYSC' fromField='reverse' toNode='CAR-CONTROL-SCRIPT' toField='reverseSelected'/> |
632 | < ROUTE fromNode='KEYSC' fromField='reset' toNode='CAR-CONTROL-SCRIPT' toField='resetRequest'/> |
633 | < ROUTE fromNode='COLLISION-OUTPUT' fromField='contacts' toNode='CAR-CONTROL-SCRIPT' toField='collisionContacts'/> |
634 | < ROUTE fromNode='CAR-BODY' fromField='linearVelocity' toNode='CAR-CONTROL-SCRIPT' toField='carVelocity'/> |
635 | < ROUTE fromNode='CAR-BODY' fromField='orientation' toNode='CAR-CONTROL-SCRIPT' toField='carOrientation'/> |
636 | < ROUTE fromNode='FRONT-LEFT-JOINT' fromField='body2Axis' toNode='CAR-CONTROL-SCRIPT' toField='frontWheelOrientation'/> |
637 | < ROUTE fromNode='BACK-LEFT-JOINT' fromField='body2Axis' toNode='CAR-CONTROL-SCRIPT' toField='rearWheelOrientation'/> |
638 | < ROUTE fromNode='FRONT-LEFT-JOINT' fromField='hinge1Angle' toNode='CAR-CONTROL-SCRIPT' toField='currentSteeringAngle'/> |
639 | < ROUTE fromNode='FRONT-LEFT-JOINT' fromField='body2Axis' toNode='FRONT-LEFT-WHEEL-BODY' toField='finiteRotationAxis'/> |
640 | < ROUTE fromNode='FRONT-RIGHT-JOINT' fromField='body2Axis' toNode='FRONT-RIGHT-WHEEL-BODY' toField='finiteRotationAxis'/> |
641 | < ROUTE fromNode='BACK-LEFT-JOINT' fromField='body2Axis' toNode='BACK-LEFT-WHEEL-BODY' toField='finiteRotationAxis'/> |
642 | < ROUTE fromNode='BACK-RIGHT-JOINT' fromField='body2Axis' toNode='BACK-RIGHT-WHEEL-BODY' toField='finiteRotationAxis'/> |
643 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='enablePhysics' toNode='BODY-COLLECTION' toField='enabled'/> |
644 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='enablePhysics' toNode='COLLISION-GROUP' toField='enabled'/> |
645 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='enablePhysics' toNode='CAR-BODY' toField='enabled'/> |
646 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='enablePhysics' toNode='FRONT-LEFT-WHEEL-BODY' toField='enabled'/> |
647 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='enablePhysics' toNode='FRONT-RIGHT-WHEEL-BODY' toField='enabled'/> |
648 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='enablePhysics' toNode='BACK-LEFT-WHEEL-BODY' toField='enabled'/> |
649 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='enablePhysics' toNode='BACK-RIGHT-WHEEL-BODY' toField='enabled'/> |
650 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='chassisPosition_reset' toNode='CAR-BODY' toField='position'/> |
651 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='chassisOrientation_reset' toNode='CAR-BODY' toField='orientation'/> |
652 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontLeftWheelPosition_reset' toNode='FRONT-LEFT-WHEEL-BODY' toField='position'/> |
653 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontLeftWheelPosition_reset' toNode='FRONT-LEFT-JOINT' toField='anchorPoint'/> |
654 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontLeftWheelOrientation_reset' toNode='FRONT-LEFT-WHEEL-BODY' toField='orientation'/> |
655 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontRightWheelPosition_reset' toNode='FRONT-RIGHT-WHEEL-BODY' toField='position'/> |
656 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontRightWheelPosition_reset' toNode='FRONT-RIGHT-JOINT' toField='anchorPoint'/> |
657 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontRightWheelOrientation_reset' toNode='FRONT-RIGHT-WHEEL-BODY' toField='orientation'/> |
658 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='backLeftWheelPosition_reset' toNode='BACK-LEFT-WHEEL-BODY' toField='position'/> |
659 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='backLeftWheelPosition_reset' toNode='BACK-LEFT-JOINT' toField='anchorPoint'/> |
660 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='backLeftWheelOrientation_reset' toNode='BACK-LEFT-WHEEL-BODY' toField='orientation'/> |
661 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='backRightWheelPosition_reset' toNode='BACK-RIGHT-WHEEL-BODY' toField='position'/> |
662 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='backRightWheelPosition_reset' toNode='BACK-RIGHT-JOINT' toField='anchorPoint'/> |
663 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='backRightWheelOrientation_reset' toNode='BACK-RIGHT-WHEEL-BODY' toField='orientation'/> |
664 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontWheelMinStop' toNode='FRONT-LEFT-JOINT' toField='minAngle1'/> |
665 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontWheelMinStop' toNode='FRONT-RIGHT-JOINT' toField='minAngle1'/> |
666 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontWheelMaxStop' toNode='FRONT-LEFT-JOINT' toField='maxAngle1'/> |
667 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontWheelMaxStop' toNode='FRONT-RIGHT-JOINT' toField='maxAngle1'/> |
668 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontLeftWheelSpeed' toNode='FRONT-LEFT-JOINT' toField='desiredAngularVelocity2'/> |
669 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontRightWheelSpeed' toNode='FRONT-RIGHT-JOINT' toField='desiredAngularVelocity2'/> |
670 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='rearLeftWheelSpeed' toNode='BACK-LEFT-JOINT' toField='desiredAngularVelocity2'/> |
671 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='rearRightWheelSpeed' toNode='BACK-RIGHT-JOINT' toField='desiredAngularVelocity2'/> |
672 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontWheelTorque' toNode='FRONT-LEFT-JOINT' toField='maxTorque2'/> |
673 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontWheelTorque' toNode='FRONT-RIGHT-JOINT' toField='maxTorque2'/> |
674 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='rearWheelTorque' toNode='BACK-LEFT-JOINT' toField='maxTorque2'/> |
675 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='rearWheelTorque' toNode='BACK-RIGHT-JOINT' toField='maxTorque2'/> |
676 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontLeftAxleAxis' toNode='FRONT-LEFT-JOINT' toField='axis2'/> |
677 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frontRightAxleAxis' toNode='FRONT-RIGHT-JOINT' toField='axis2'/> |
678 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='rearLeftAxleAxis' toNode='BACK-LEFT-JOINT' toField='axis2'/> |
679 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='rearRightAxleAxis' toNode='BACK-RIGHT-JOINT' toField='axis2'/> |
680 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='frictionForces' toNode='CAR-BODY' toField='forces'/> |
681 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='correctedContacts' toNode='BODY-COLLECTION' toField='set_contacts'/> |
682 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='correctedChassisOrientation' toNode='CAR-BODY' toField='orientation'/> |
683 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='connectJoints' toNode='BODY-COLLECTION' toField='joints'/> |
684 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='speed' toNode='UI-CONTROL-SCRIPT' toField='speed'/> |
685 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='revs' toNode='UI-CONTROL-SCRIPT' toField='revs'/> |
686 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='brakesApplied' toNode='UI-CONTROL-SCRIPT' toField='brakesApplied'/> |
687 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='reversing' toNode='UI-CONTROL-SCRIPT' toField='reversing'/> |
688 | < ROUTE fromNode='UI-CONTROL-SCRIPT' fromField='brakeLightColor' toNode='BRAKE-LIGHT-COLOR' toField='emissiveColor'/> |
689 | < ROUTE fromNode='UI-CONTROL-SCRIPT' fromField='reverseLightColor' toNode='REVERSE-LIGHT-COLOR' toField='emissiveColor'/> |
690 | < ROUTE fromNode='UI-CONTROL-SCRIPT' fromField='speedScale' toNode='SPEED-INDICATOR' toField='scale'/> |
691 | < ROUTE fromNode='UI-CONTROL-SCRIPT' fromField='speedFraction' toNode='SPEED-COLOR' toField='set_fraction'/> |
692 | < ROUTE fromNode='SPEED-COLOR' fromField='value_changed' toNode='SPEED-INDICATOR-COLOR' toField='emissiveColor'/> |
693 | < ROUTE fromNode='WHEEL' fromField='wheelX' toNode='FRONT-LEFT-HINGE-WHEEL-INTERP' toField='set_fraction'/> |
694 | < ROUTE fromNode='FRONT-LEFT-HINGE-WHEEL-INTERP' fromField='value_changed' toNode='FRONT-LEFT-WHEEL-TX-DEBUG-HINGE' toField='rotation'/> |
695 | < ROUTE fromNode='WHEEL' fromField='wheelX' toNode='FRONT-RIGHT-HINGE-WHEEL-INTERP' toField='set_fraction'/> |
696 | < ROUTE fromNode='FRONT-RIGHT-HINGE-WHEEL-INTERP' fromField='value_changed' toNode='FRONT-RIGHT-WHEEL-TX-DEBUG-HINGE' toField='rotation'/> |
697 | < ROUTE fromNode='FRONT-LEFT-JOINT' fromField='hinge1Angle' toNode='FRONT-LEFT-HINGE-ANGLE-INTERP' toField='set_fraction'/> |
698 | < ROUTE fromNode='FRONT-LEFT-HINGE-ANGLE-INTERP' fromField='value_changed' toNode='FRONT-LEFT-WHEEL-TX-DEBUG-HINGE' toField='rotation'/> |
699 | < ROUTE fromNode='FRONT-RIGHT-JOINT' fromField='hinge1Angle' toNode='FRONT-RIGHT-HINGE-ANGLE-INTERP' toField='set_fraction'/> |
700 | < ROUTE fromNode='FRONT-RIGHT-HINGE-ANGLE-INTERP' fromField='value_changed' toNode='FRONT-RIGHT-WHEEL-TX-DEBUG-HINGE' toField='rotation'/> |
701 | < ROUTE fromNode='FRONT-LEFT-JOINT' fromField='maxAngle1' toNode='FRONT-LEFT-MAXSTOP-ANGLE-INTERP' toField='set_fraction'/> |
702 | < ROUTE fromNode='FRONT-LEFT-MAXSTOP-ANGLE-INTERP' fromField='value_changed' toNode='FRONT-LEFT-WHEEL-TX-DEBUG-MAX' toField='rotation'/> |
703 | < ROUTE fromNode='FRONT-RIGHT-JOINT' fromField='maxAngle1' toNode='FRONT-RIGHT-MAXSTOP-ANGLE-INTERP' toField='set_fraction'/> |
704 | < ROUTE fromNode='FRONT-RIGHT-MAXSTOP-ANGLE-INTERP' fromField='value_changed' toNode='FRONT-RIGHT-WHEEL-TX-DEBUG-MAX' toField='rotation'/> |
705 | < ROUTE fromNode='FRONT-LEFT-JOINT' fromField='minAngle1' toNode='FRONT-LEFT-MINSTOP-ANGLE-INTERP' toField='set_fraction'/> |
706 | < ROUTE fromNode='FRONT-LEFT-MINSTOP-ANGLE-INTERP' fromField='value_changed' toNode='FRONT-LEFT-WHEEL-TX-DEBUG-MIN' toField='rotation'/> |
707 | < ROUTE fromNode='FRONT-RIGHT-JOINT' fromField='minAngle1' toNode='FRONT-RIGHT-MINSTOP-ANGLE-INTERP' toField='set_fraction'/> |
708 | < ROUTE fromNode='FRONT-RIGHT-MINSTOP-ANGLE-INTERP' fromField='value_changed' toNode='FRONT-RIGHT-WHEEL-TX-DEBUG-MIN' toField='rotation'/> |
709 | < ROUTE fromNode='FRONT-LEFT-WHEEL-BODY' fromField='position' toNode='FRONT-LEFT-WHEEL-TX-DEBUG-HINGE' toField='translation'/> |
710 | < ROUTE fromNode='FRONT-RIGHT-WHEEL-BODY' fromField='position' toNode='FRONT-RIGHT-WHEEL-TX-DEBUG-HINGE' toField='translation'/> |
711 | < ROUTE fromNode='FRONT-LEFT-WHEEL-BODY' fromField='position' toNode='FRONT-LEFT-WHEEL-TX-DEBUG-MAX' toField='translation'/> |
712 | < ROUTE fromNode='FRONT-RIGHT-WHEEL-BODY' fromField='position' toNode='FRONT-RIGHT-WHEEL-TX-DEBUG-MAX' toField='translation'/> |
713 | < ROUTE fromNode='FRONT-LEFT-WHEEL-BODY' fromField='position' toNode='FRONT-LEFT-WHEEL-TX-DEBUG-MIN' toField='translation'/> |
714 | < ROUTE fromNode='FRONT-RIGHT-WHEEL-BODY' fromField='position' toNode='FRONT-RIGHT-WHEEL-TX-DEBUG-MIN' toField='translation'/> |
715 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='chassisPosition_reset' toNode='CHASSIS-VIEW' toField='position'/> |
716 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='chassisOrientation_reset' toNode='CHASSIS-VIEW' toField='orientation'/> |
717 | < ROUTE fromNode='CAR-BODY' fromField='position' toNode='CAMERA-CONTROL-SCRIPT' toField='carPosition'/> |
718 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='chassisPosition_reset' toNode='CAMERA-CONTROL-SCRIPT' toField='resetPosition'/> |
719 | < ROUTE fromNode='CAR-CONTROL-SCRIPT' fromField='chassisOrientation_reset' toNode='CAMERA-CONTROL-SCRIPT' toField='resetOrientation'/> |
720 | < ROUTE fromNode='CAMERA-CONTROL-SCRIPT' fromField='cameraTranslation' toNode='CAMERA-TX' toField='translation'/> |
721 | < ROUTE fromNode='CAMERA-CONTROL-SCRIPT' fromField='cameraRotation' toNode='CAMERA-TX' toField='rotation'/> |
722 | </Scene> |
723 | </X3D> |
Event Graph ROUTE Table entries with 119 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.
cam_car_chase-TIMER
TimeSensor fraction_changed SFFloat |
cam_car_chase-POS-INTERP
PositionInterpolator set_fraction SFFloat |
then
|
cam_car_chase-POS-INTERP
PositionInterpolator value_changed SFVec3f |
carGroup
Transform translation SFVec3f |
||
then
|
cam_car_chase-POS-INTERP
PositionInterpolator value_changed SFVec3f |
CAR-BODY-TX
Transform translation SFVec3f |
||||
cam_car_chase-TIMER
TimeSensor fraction_changed SFFloat |
cam_car_chase-ROT-INTERP
OrientationInterpolator set_fraction SFFloat |
then
|
cam_car_chase-ROT-INTERP
OrientationInterpolator value_changed SFRotation |
carGroup
Transform rotation SFRotation |
||
then
|
cam_car_chase-ROT-INTERP
OrientationInterpolator value_changed SFRotation |
CAR-BODY-TX
Transform rotation SFRotation |
The following
ROUTE
chain begins an event-routing loop! Loop occurs at nodeDepth=3.
ROUTE CAR-CONTROL-SCRIPT.enablePhysics TO CAR-BODY.enabled |
||||||||||
KEYTIMER
TimeSensor fraction_changed SFFloat |
KEYSC
Script decay SFFloat |
then
|
KEYSC
Script accel SFFloat |
CAR-CONTROL-SCRIPT
Script wheelAcceleratorInput SFFloat |
||||||
then
|
KEYSC
Script dir SFFloat |
CAR-CONTROL-SCRIPT
Script wheelDirectionInput SFFloat |
||||||||
then
|
KEYSC
Script reset SFBool |
CAR-CONTROL-SCRIPT
Script resetRequest SFBool |
||||||||
then
|
KEYSC
Script reverse SFBool |
CAR-CONTROL-SCRIPT
Script reverseSelected SFBool |
The following
ROUTE
chain begins an event-routing loop! Loop occurs at nodeDepth=3.
ROUTE CAR-CONTROL-SCRIPT.enablePhysics TO CAR-BODY.enabled |
||||||||||
KEYS
KeySensor actionKeyPress SFInt32 |
KEYSC
Script actionKeyPress SFInt32 |
then
|
KEYSC
Script accel SFFloat |
CAR-CONTROL-SCRIPT
Script wheelAcceleratorInput SFFloat |
||||||
then
|
KEYSC
Script dir SFFloat |
CAR-CONTROL-SCRIPT
Script wheelDirectionInput SFFloat |
||||||||
then
|
KEYSC
Script reset SFBool |
CAR-CONTROL-SCRIPT
Script resetRequest SFBool |
||||||||
then
|
KEYSC
Script reverse SFBool |
CAR-CONTROL-SCRIPT
Script reverseSelected SFBool |
The following
ROUTE
chain begins an event-routing loop! Loop occurs at nodeDepth=2.
ROUTE CAR-CONTROL-SCRIPT.enablePhysics TO CAR-BODY.enabled |
||||||
GAMEPAD
GamepadSensor leftStickX FieldTypeNotFound |
CAR-CONTROL-SCRIPT
Script wheelDirectionInput SFFloat |
|||||
GAMEPAD
GamepadSensor rightStickY FieldTypeNotFound |
CAR-CONTROL-SCRIPT
Script wheelAcceleratorInput SFFloat |
|||||
GAMEPAD
GamepadSensor l1Button FieldTypeNotFound |
CAR-CONTROL-SCRIPT
Script reverseSelected SFBool |
|||||
GAMEPAD
GamepadSensor r1Button FieldTypeNotFound |
CAR-CONTROL-SCRIPT
Script resetRequest SFBool |
The following
ROUTE
chain begins an event-routing loop! Loop occurs at nodeDepth=2.
ROUTE CAR-CONTROL-SCRIPT.enablePhysics TO CAR-BODY.enabled |
||||||
COLLISION-OUTPUT
CollisionSensor contacts MFNode |
CAR-CONTROL-SCRIPT
Script collisionContacts MFNode |
<!--
Color legend: X3D terminology
<X3dNode
DEF='idName' field='value'/>
matches XML terminology
<XmlElement
DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
-->
<!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->