<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.2//EN" "https://www.web3d.org/specifications/x3d-3.2.dtd">
<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 ' >
<head>
<component level='2name='xj3d_RigidBodyPhysics'/>
<component level='2name='xj3d_IODevice'/>
<!-- TODO: upgrade component <component level='2' name='RigidBodyPhysics'/> -->
<meta name='titlecontent=' CarDemoMain.x3d '/>
<meta name='descriptioncontent='Example scene for RigidBodyPhysics component, runnable as Xj3D application and invoked using shell script runogl'/>
<meta name='creatorcontent='Alan Hudson and Justin Couch'/>
<meta name='translatorcontent='Don Brutzman'/>
<meta name='createdcontent='1 January 2008'/>
<meta name='translatedcontent='30 December 2008'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='referencecontent=' http://www.xj3d.org/extensions/index.html#Physics '/>
<meta name=' warning content=' Test scene includes custom Xj3D components and elements, will not validate '/>
<meta name=' warning content=' Test scene under development, runogl fails http://bugzilla.xj3d.org/show_bug.cgi?id=556 '/>
<meta name='referencecontent='originals/car/runogl'/>
<meta name='referencecontent='originals/car/main.x3dv'/>
<meta name='referencecontent='originals/car/worldModel.x3dv'/>
<meta name='referencecontent=' originals/car/CameraControl.java '/>
<meta name='referencecontent=' originals/car/CarControlScript.java '/>
<meta name='referencecontent=' http://www.xj3d.org/extensions/rigid_physics_examples.html '/>
<meta name='referencecontent=' https://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/rigid_physics.html '/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Basic/RigidBodyPhysics/CarDemoMain.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
<meta name='generatorcontent='Xj3D converter, http://www.xj3d.org'/>
<meta name='licensecontent=' ../../license.html'/>
</head>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: ACTIVE-SECTOR-INDICATOR, BACK-LEFT-JOINT, BACK-LEFT-WHEEL-BODY, BACK-LEFT-WHEEL-GEOM, BACK-LEFT-WHEEL-TX, BACK-RIGHT-JOINT, BACK-RIGHT-WHEEL-BODY, BACK-RIGHT-WHEEL-GEOM, BACK-RIGHT-WHEEL-TX, BODY-COLLECTION, BRAKE-LIGHT-COLOR, BRAKE-LIGHT-GEOM, cam_car_chase-POS-INTERP, cam_car_chase-ROT-INTERP, cam_car_chase-TIMER, Camera03, Camera03-OLD, CAMERA-CONTROL-SCRIPT, CAMERA-TX, CAR-BODY, CAR-BODY-GEOM, CAR-BODY-TX, carCamTransform, CAR-CONTAINER, CAR-CONTROL-SCRIPT, carGroup, CHASSIS-BOX, CHASSIS-PROXY-GEOM, CHASSIS-VIEW, COLLISION-GROUP, COLLISION-OUTPUT, DEBUG_TERRAIN, DEBUG-GEOM, DEBUG-POINTER-APP, ENEMY-GEOM, FRONT-LEFT-DEBUG-POINTER, FRONT-LEFT-HINGE-ANGLE-INTERP, FRONT-LEFT-HINGE-WHEEL-INTERP, FRONT-LEFT-JOINT, FRONT-LEFT-MAXSTOP-ANGLE-INTERP, FRONT-LEFT-MINSTOP-ANGLE-INTERP, FRONT-LEFT-TX-DEBUG-POINTER, FRONT-LEFT-WHEEL-BODY, FRONT-LEFT-WHEEL-GEOM, FRONT-LEFT-WHEEL-TX, FRONT-LEFT-WHEEL-TX-DEBUG-HINGE, FRONT-LEFT-WHEEL-TX-DEBUG-MAX, FRONT-LEFT-WHEEL-TX-DEBUG-MIN, FRONT-RIGHT-DEBUG-POINTER, FRONT-RIGHT-HINGE-ANGLE-INTERP, FRONT-RIGHT-HINGE-WHEEL-INTERP, FRONT-RIGHT-JOINT, FRONT-RIGHT-MAXSTOP-ANGLE-INTERP, FRONT-RIGHT-MINSTOP-ANGLE-INTERP, FRONT-RIGHT-TX-DEBUG-POINTER, FRONT-RIGHT-WHEEL-BODY, FRONT-RIGHT-WHEEL-GEOM, FRONT-RIGHT-WHEEL-TX, FRONT-RIGHT-WHEEL-TX-DEBUG-HINGE, FRONT-RIGHT-WHEEL-TX-DEBUG-MAX, FRONT-RIGHT-WHEEL-TX-DEBUG-MIN, GAMEPAD, JOINT-INDICATOR-LEFT, JOINT-INDICATOR-RIGHT, JOINT-SPHERE, KEYS, KEYSC, keysensor, KEYTIMER, physicsSectorScript, RAMP_APP, REVERSE-LIGHT-COLOR, REVERSE-LIGHT-GEOM, ROAD-APP, Road-v-001, Road-v-002, Road-v-003, Road-v-004, Road-v-006, Road-v-007, SAND-APP, Sand-v-001, Sand-v-002, SmallBulding, SPEED-COLOR, SPEED-INDICATOR, SPEED-INDICATOR-COLOR, TERRAIN-CONTAINER, UI-CONTROL-SCRIPT, WALL-APP, WALL-v-001a, WALL-v-001b, WALL-v-001c, WALL-v-001d, Wall-v-002, Wall-v-003, Wall-v-004, Wall-v-005, Wall-v-006, Wall-v-007, Wall-v-008, Wall-v-009, Wall-v-010, Wall-v-011, WHEEL, WHEEL-GEOM, WHEEL-MASS, WHEEL-SHAPE

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Camera03, Camera03-OLD, CHASSIS-VIEW
-->
<Scene>
<WorldInfo title='CarDemoMain.x3d'/>
<Group>
<Group DEF='CAR-CONTAINER'>
<Switch DEF='DEBUG-GEOMwhichChoice='0'>
<Group>
<Transform DEF='ACTIVE-SECTOR-INDICATOR'>
<Shape>
<Appearance>
<Material emissiveColor='1.0 1.0 0.0transparency='0.5'/>
</Appearance>
</Shape>
</Transform>
<Shape DEF='FRONT-LEFT-DEBUG-POINTER'>
<Appearance DEF='DEBUG-POINTER-APP'>
<Material/>
<LineProperties linetype='2containerField='lineProperties'/>
</Appearance>
<LineSet vertexCount='2containerField='geometry'>
<Coordinate point='0.0 0.0 0.0 1.0 0.0 0.0'/>
<Color color='1.0 1.0 1.0 1.0 1.0 1.0'/>
</LineSet>
</Shape>
</Transform>
<Shape DEF='FRONT-RIGHT-DEBUG-POINTER'>
<Appearance USE=' DEBUG-POINTER-APP'/>
<LineSet vertexCount='2containerField='geometry'>
<Coordinate point='0.0 0.0 0.0 -1.0 0.0 0.0'/>
<Color color='1.0 1.0 1.0 1.0 1.0 1.0'/>
</LineSet>
</Shape>
</Transform>
<!-- 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-MINtranslation='-1.1 0.5 -1.5'>
<Shape DEF='FRONT-LEFT-TX-DEBUG-POINTER'>
<Appearance USE=' DEBUG-POINTER-APP'/>
<LineSet vertexCount='2containerField='geometry'>
<Coordinate point='0.0 0.0 0.0 1.0 0.0 0.0'/>
<Color color='1.0 1.0 0.0 1.0 1.0 0.0'/>
</LineSet>
</Shape>
</Transform>
<!-- 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-MINtranslation='-1.1 0.5 -1.5'>
<Shape DEF='FRONT-RIGHT-TX-DEBUG-POINTER'>
<Appearance USE=' DEBUG-POINTER-APP'/>
<LineSet vertexCount='2containerField='geometry'>
<Coordinate point='0.0 0.0 0.0 -1.0 0.0 0.0'/>
<Color color='0.0 0.0 1.0 0.0 0.0 1.0'/>
</LineSet>
</Shape>
</Transform>
<!-- 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-MAXtranslation='-1.1 0.5 -1.5'>
<Shape>
<Appearance USE=' DEBUG-POINTER-APP'/>
<LineSet vertexCount='2containerField='geometry'>
<Coordinate point='0.0 0.0 0.0 1.0 0.0 0.0'/>
<Color color='0.0 0.0 1.0 0.0 0.0 1.0'/>
</LineSet>
</Shape>
</Transform>
<!-- 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-MAXtranslation='-1.1 0.5 -1.5'>
<Shape>
<Appearance USE=' DEBUG-POINTER-APP'/>
<LineSet vertexCount='2containerField='geometry'>
<Coordinate point='0.0 0.0 0.0 -1.0 0.0 0.0'/>
<Color color='1.0 1.0 1.0 1.0 1.0 1.0'/>
</LineSet>
</Shape>
</Transform>
</Group>
</Switch>
<!-- 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-TXtranslation='-1.1 0.5 -1.5'>
<Transform DEF='WHEEL-SHAPErotation='0.0 0.0 1.0 1.572'>
<Shape>
<Appearance>
<Material emissiveColor='1.0 0.0 1.0'/>
</Appearance>
<Cylinder height='0.1radius='0.5'/>
</Shape>
</Transform>
<Group DEF='JOINT-INDICATOR-LEFT'>
<Shape>
<LineSet vertexCount='2 2containerField='geometry'>
<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'/>
<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'/>
</LineSet>
</Shape>
<Shape DEF='JOINT-SPHERE'>
<Appearance>
<Material emissiveColor='0.0 1.0 1.0'/>
</Appearance>
<Sphere radius='0.1'/>
</Shape>
</Group>
</Transform>
<!-- 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-TXtranslation='1.1 0.5 -1.5'>
<Transform USE=' WHEEL-SHAPE'/>
<Group DEF='JOINT-INDICATOR-RIGHT'>
<Shape>
<LineSet vertexCount='2 2containerField='geometry'>
<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'/>
<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'/>
</LineSet>
</Shape>
<Shape USE=' JOINT-SPHERE'/>
</Group>
</Transform>
<!-- 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-TXtranslation='-1.1 0.5 1.5'>
<Transform USE=' WHEEL-SHAPE'/>
<Group USE=' JOINT-INDICATOR-LEFT'/>
</Transform>
<!-- 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-TXtranslation='1.1 0.5 1.5'>
<Transform USE=' WHEEL-SHAPE'/>
<Group USE=' JOINT-INDICATOR-RIGHT'/>
</Transform>
<Shape>
<Appearance>
<Material emissiveColor='0.8 0.8 0.0'/>
</Appearance>
<Box DEF='CHASSIS-BOXsize='2.2 0.05 5.0'/>
</Shape>
<!-- ROUTE information for SPEED-INDICATOR node:  [from UI-CONTROL-SCRIPT.speedScale to scale ] -->
<Transform DEF='SPEED-INDICATORtranslation='1.2 1.0 0.0'>
<Shape>
<Appearance>
<!-- ROUTE information for SPEED-INDICATOR-COLOR node:  [from SPEED-COLOR.value_changed to emissiveColor ] -->
<Material DEF='SPEED-INDICATOR-COLOR'/>
</Appearance>
<Box size='0.1 1.0 0.1'/>
</Shape>
</Transform>
<Transform translation='0.0 0.4 0.0'>
<Shape>
<Appearance>
<Material emissiveColor='0.0 0.0 0.8transparency='0.5'/>
</Appearance>
<Box DEF='CHASSIS-PROXY-GEOMsize='2.25 0.4 5.1'/>
</Shape>
<Transform translation='1.0 0.1 2.65'>
<Shape DEF='BRAKE-LIGHT-GEOM'>
<Appearance>
<!-- ROUTE information for BRAKE-LIGHT-COLOR node:  [from UI-CONTROL-SCRIPT.brakeLightColor to emissiveColor ] -->
<Material DEF='BRAKE-LIGHT-COLORdiffuseColor='0.1 0.0 0.0emissiveColor='0.1 0.0 0.0'/>
</Appearance>
<Box size='0.1 0.2 0.1'/>
</Shape>
</Transform>
<Transform translation='-1.0 0.1 2.65'>
<Shape USE=' BRAKE-LIGHT-GEOM'/>
</Transform>
<Transform translation='0.9 0.1 2.65'>
<Shape DEF='REVERSE-LIGHT-GEOM'>
<Appearance>
<!-- ROUTE information for REVERSE-LIGHT-COLOR node:  [from UI-CONTROL-SCRIPT.reverseLightColor to emissiveColor ] -->
<Material DEF='REVERSE-LIGHT-COLORdiffuseColor='0.1 0.1 0.1emissiveColor='0.1 0.1 0.1'/>
</Appearance>
<Box size='0.1 0.1 0.1'/>
</Shape>
</Transform>
<Transform translation='-0.9 0.1 2.65'>
<Shape USE=' REVERSE-LIGHT-GEOM'/>
</Transform>
</Transform>
</Transform>
<Transform>
<Viewpoint DEF='Camera03description='AutoCamposition='0.0 0.0 0.0'/>
</Transform>
</Transform>
</Group>
</Group>
<NavigationInfo speed='10.0type='"NONE"'/>
<Inline/>
<Shape DEF='ENEMY-GEOM'/>
<!-- 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='carGrouprotation='0.006813 -0.9999 0.01227 -4.155translation='-82.59 6.8 -48.1'>
<Transform DEF='carCamTransformtranslation='0.0 1.0 5.0'>
<Viewpoint DEF='Camera03-OLDdescription='Car 3rd Personposition='0.0 0.0 5.0'/>
</Transform>
</Transform>
<!-- 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-TIMERcycleInterval='120.0enabled='falseloop='true'/>

<!-- 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-INTERPkey='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.0keyValue='-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'/>

<!-- 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-INTERPkey='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.0keyValue='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'/>

<KeySensor DEF='keysensor'/>
<Switch DEF='DEBUG_TERRAINwhichChoice='0'>
<Group DEF='TERRAIN-CONTAINER'>
<CollidableShape DEF='Road-v-001translation='124.936 -0.5 -461.607containerField='children'>
<Shape containerField='shape'>
<Appearance DEF='ROAD-APP'>
<Material emissiveColor='1.0 0.0 0.0'/>
</Appearance>
<Box size='1250.0 1.0 800.0'/>
</Shape>
</CollidableShape>
<CollidableShape DEF='Road-v-002translation='-417.631 -0.5 24.7947containerField='children'>
<Shape containerField='shape'>
<Appearance USE=' ROAD-APP'/>
<Box size='200.0 1.0 250.0'/>
</Shape>
</CollidableShape>
<CollidableShape DEF='Road-v-003translation='675.143 -0.5 17.6217containerField='children'>
<Shape containerField='shape'>
<Appearance USE=' ROAD-APP'/>
<Box size='200.0 1.0 250.0'/>
</Shape>
</CollidableShape>
<CollidableShape DEF='Road-v-004translation='138.008 -0.5 23.1087containerField='children'>
<Shape containerField='shape'>
<Appearance USE=' ROAD-APP'/>
<Box size='1000.0 1.0 60.0'/>
</Shape>
</CollidableShape>
<CollidableShape DEF='Road-v-006rotation='0.0 0.0 -1.0 0.135494translation='347.056 4.87479 -376.17containerField='children'>
<Shape containerField='shape'>
<Appearance DEF='RAMP_APP'> </Appearance>
<Box size='90.0 1.0 70.0'/>
</Shape>
</CollidableShape>
<CollidableShape DEF='Road-v-007translation='301.193 1.4 -376.315containerField='children'>
<Shape containerField='shape'>
<Appearance USE=' ROAD-APP'/>
<Box size='3.0 20.0 70.0'/>
</Shape>
</CollidableShape>
<CollidableShape DEF='Sand-v-001translation='101.232 -0.55 -31.8107containerField='children'>
<Shape containerField='shape'>
<Appearance DEF='SAND-APP'>
<Material ambientIntensity='0.258621diffuseColor='0.58 0.27 0.01shininess='0.07specularColor='0.43 0.2 0.0'/>
<ImageTexture/>
</Appearance>
<Box size='1000.0 1.0 60.0'/>
</Shape>
</CollidableShape>
<CollidableShape DEF='Sand-v-002translation='108.906 -0.55 93.8712containerField='children'>
<Shape containerField='shape'>
<Appearance USE=' SAND-APP'/>
<Box size='1000.0 1.0 100.0'/>
</Shape>
</CollidableShape>
<CollidableShape DEF='WALL-v-001atranslation='750.0 10.0 -360.0containerField='children'>
<Shape containerField='shape'>
<Appearance DEF='WALL-APP'>
<Material emissiveColor='0.5 0.5 0.5transparency='0.2'/>
</Appearance>
<Box size='1.0 20.0 1000.0'/>
</Shape>
</CollidableShape>
<CollidableShape DEF='WALL-v-001btranslation='-500.0 10.0 -360.0containerField='children'>
<Shape containerField='shape'>
<Appearance USE=' WALL-APP'/>
<Box size='1.0 20.0 1000.0'/>
</Shape>
</CollidableShape>
<CollidableShape DEF='WALL-v-001ctranslation='125.0 10.0 140.99containerField='children'>
<Shape containerField='shape'>
<Appearance USE=' WALL-APP'/>
<Box size='1250.0 20.0 1.0'/>
</Shape>
</CollidableShape>
<CollidableShape DEF='WALL-v-001dtranslation='125.0 10.0 -859.733containerField='children'>
<Shape containerField='shape'>
<Appearance USE=' WALL-APP'/>
<Box size='1250.0 20.0 1.0'/>
</Shape>
</CollidableShape>
<CollidableShape DEF='Wall-v-002translation='-163.362 24.0 -589.528containerField='children'>
<Shape containerField='shape'>
<Appearance USE=' WALL-APP'/>
<Box size='40.0 48.0 40.0'/>
</Shape>
</CollidableShape>
<CollidableShape DEF='Wall-v-003translation='-100.093 19.0 -587.841containerField='children'>
<Shape DEF='SmallBuldingcontainerField='shape'>
<Appearance USE=' WALL-APP'/>
<Box size='40.0 38.0 40.0'/>
</Shape>
</CollidableShape>
<CollidableShape DEF='Wall-v-004translation='-314.972 19.0 -656.376containerField='children'>
<Shape USE=' SmallBuldingcontainerField='shape'/>
</CollidableShape>
<CollidableShape DEF='Wall-v-005translation='-314.723 19.0 -580.647containerField='children'>
<Shape USE=' SmallBuldingcontainerField='shape'/>
</CollidableShape>
<CollidableShape DEF='Wall-v-006translation='-269.737 19.0 -452.626containerField='children'>
<Shape USE=' SmallBuldingcontainerField='shape'/>
</CollidableShape>
<CollidableShape DEF='Wall-v-007translation='-217.782 19.0 -450.082containerField='children'>
<Shape USE=' SmallBuldingcontainerField='shape'/>
</CollidableShape>
<CollidableShape DEF='Wall-v-008translation='-83.8395 19.0 -351.859containerField='children'>
<Shape USE=' SmallBuldingcontainerField='shape'/>
</CollidableShape>
<CollidableShape DEF='Wall-v-009translation='-348.799 19.0 -511.969containerField='children'>
<Shape USE=' SmallBuldingcontainerField='shape'/>
</CollidableShape>
<CollidableShape DEF='Wall-v-010translation='-23.9812 19.0 -501.768containerField='children'>
<Shape USE=' SmallBuldingcontainerField='shape'/>
</CollidableShape>
<CollidableShape DEF='Wall-v-011translation='-101.759 19.0 -451.126containerField='children'>
<Shape USE=' SmallBuldingcontainerField='shape'/>
</CollidableShape>
</Group>
</Switch>
<Script DEF='physicsSectorScript'>
<field name='sector1type='SFTimeaccessType='inputOnly'/>
<field name='sector2type='SFTimeaccessType='inputOnly'/>
<field name='sector3type='SFTimeaccessType='inputOnly'/>
<field name='sector4type='SFTimeaccessType='inputOnly'/>
<field name='sector5type='SFTimeaccessType='inputOnly'/>
<field name='sector6type='SFTimeaccessType='inputOnly'/>
<field name='sector7type='SFTimeaccessType='inputOnly'/>
<field name='sector8type='SFTimeaccessType='inputOnly'/>
<field name='sector9type='SFTimeaccessType='inputOnly'/>
<field name='sector1Enabledtype='SFBoolaccessType='outputOnly'/>
<field name='sector2Enabledtype='SFBoolaccessType='outputOnly'/>
<field name='sector3Enabledtype='SFBoolaccessType='outputOnly'/>
<field name='sector4Enabledtype='SFBoolaccessType='outputOnly'/>
<field name='sector5Enabledtype='SFBoolaccessType='outputOnly'/>
<field name='sector6Enabledtype='SFBoolaccessType='outputOnly'/>
<field name='sector7Enabledtype='SFBoolaccessType='outputOnly'/>
<field name='sector8Enabledtype='SFBoolaccessType='outputOnly'/>
<field name='sector9Enabledtype='SFBoolaccessType='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;
       }
    }

    
]]>
</Script>
<!-- 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-COLLECTIONconstantForceMix='0.0050contactSurfaceThickness='0.0010enabled='falseiterations='20containerField='children'>
<Box USE=' CHASSIS-BOXcontainerField='massDensityModel'/>
<CollidableShape DEF='CAR-BODY-GEOMcontainerField='geometry'>
<Shape containerField='shape'>
<Box USE=' CHASSIS-BOX'/>
</Shape>
</CollidableShape>
</RigidBody>
<Sphere USE=' WHEEL-MASScontainerField='massDensityModel'/>
<CollidableShape DEF='FRONT-LEFT-WHEEL-GEOMcontainerField='geometry'>
<Shape DEF='WHEEL-GEOMcontainerField='shape'>
<Sphere DEF='WHEEL-MASSradius='0.5'/>
</Shape>
</CollidableShape>
</RigidBody>
<Sphere USE=' WHEEL-MASScontainerField='massDensityModel'/>
<CollidableShape DEF='FRONT-RIGHT-WHEEL-GEOMcontainerField='geometry'>
<Shape USE=' WHEEL-GEOMcontainerField='shape'/>
</CollidableShape>
</RigidBody>
<!-- 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-BODYangularDampingFactor='0autoDamp='truecontainerField='bodiesenabled='falsemass='20.0position='-0.9 1.5 2.5useFiniteRotation='true'>
<Sphere USE=' WHEEL-MASScontainerField='massDensityModel'/>
<CollidableShape DEF='BACK-LEFT-WHEEL-GEOMcontainerField='geometry'>
<Shape USE=' WHEEL-GEOMcontainerField='shape'/>
</CollidableShape>
</RigidBody>
<Sphere USE=' WHEEL-MASScontainerField='massDensityModel'/>
<CollidableShape DEF='BACK-RIGHT-WHEEL-GEOMcontainerField='geometry'>
<Shape USE=' WHEEL-GEOMcontainerField='shape'/>
</CollidableShape>
</RigidBody>
</RigidBodyCollection>
<!-- ROUTE information for COLLISION-OUTPUT node:  [from contacts to CAR-CONTROL-SCRIPT.collisionContacts ] -->
<CollisionSensor DEF='COLLISION-OUTPUT'>
<!-- ROUTE information for COLLISION-GROUP node:  [from CAR-CONTROL-SCRIPT.enablePhysics to enabled ] -->
<CollisionCollection DEF='COLLISION-GROUPbounce='0.3containerField='colliderenabled='falsefrictionCoefficients='500.0 500.0minBounceSpeed='0.3softnessConstantForceMix='0.0010'>
<CollidableShape USE=' FRONT-LEFT-WHEEL-GEOMcontainerField='collidables'/>
<CollidableShape USE=' FRONT-RIGHT-WHEEL-GEOMcontainerField='collidables'/>
<CollidableShape USE=' BACK-LEFT-WHEEL-GEOMcontainerField='collidables'/>
<CollidableShape USE=' BACK-RIGHT-WHEEL-GEOMcontainerField='collidables'/>
<CollidableShape USE=' CAR-BODY-GEOMcontainerField='collidables'/>
<CollidableShape USE=' Road-v-001containerField='collidables'/>
<CollidableShape USE=' Road-v-002containerField='collidables'/>
<CollidableShape USE=' Road-v-003containerField='collidables'/>
<CollidableShape USE=' Road-v-004containerField='collidables'/>
<CollidableShape USE=' Road-v-006containerField='collidables'/>
<CollidableShape USE=' Road-v-007containerField='collidables'/>
<CollidableShape USE=' Sand-v-001containerField='collidables'/>
<CollidableShape USE=' Sand-v-002containerField='collidables'/>
<CollidableShape USE=' WALL-v-001acontainerField='collidables'/>
<CollidableShape USE=' WALL-v-001bcontainerField='collidables'/>
<CollidableShape USE=' WALL-v-001ccontainerField='collidables'/>
<CollidableShape USE=' WALL-v-001dcontainerField='collidables'/>
<CollidableShape USE=' Wall-v-002containerField='collidables'/>
<CollidableShape USE=' Wall-v-003containerField='collidables'/>
<CollidableShape USE=' Wall-v-004containerField='collidables'/>
<CollidableShape USE=' Wall-v-005containerField='collidables'/>
<CollidableShape USE=' Wall-v-006containerField='collidables'/>
<CollidableShape USE=' Wall-v-007containerField='collidables'/>
<CollidableShape USE=' Wall-v-008containerField='collidables'/>
<CollidableShape USE=' Wall-v-009containerField='collidables'/>
<CollidableShape USE=' Wall-v-010containerField='collidables'/>
<CollidableShape USE=' Wall-v-011containerField='collidables'/>
</CollisionCollection>
</CollisionSensor>
<!-- 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-SCRIPTdirectOutput='true'
  url=' "originals/car/CarControlScript.class" "https://www.web3d.org/x3d/content/examples/Basic/RigidBodyPhysics/originals/car/CarControlScript.class" ' >
<field name='resetRequesttype='SFBoolaccessType='inputOnly'/>
<field name='startingPositiontype='SFVec3faccessType='inputOutput'/>
<field name='startingOrientationtype='SFRotationaccessType='inputOutput'/>
<field name='wheelBodyRadiustype='SFFloataccessType='initializeOnly'/>
<field name='chassisBodyDimensionstype='SFVec3faccessType='initializeOnly'/>
<field name='speedLimittype='SFFloataccessType='initializeOnly'/>
<field name='steeringLimitAngletype='SFFloataccessType='initializeOnly'/>
<field name='steeringDeadspottype='SFFloataccessType='initializeOnly'/>
<field name='maxEngineTorquetype='SFFloataccessType='initializeOnly'/>
<field name='maxBrakingTorquetype='SFFloataccessType='initializeOnly'/>
<field name='maxEngineRevstype='SFFloataccessType='initializeOnly'/>
<field name='roadFrictionCoefficienttype='SFFloataccessType='inputOutput'/>
<field name='wallFrictionCoefficienttype='SFFloataccessType='inputOutput'/>
<field name='sandFrictionCoefficienttype='SFFloataccessType='inputOutput'/>
<field name='grassFrictionCoefficienttype='SFFloataccessType='inputOutput'/>
<field name='otherFrictionCoefficienttype='SFFloataccessType='inputOutput'/>
<field name='sideSlipCoefficienttype='SFFloataccessType='inputOutput'/>
<field name='brakeBiastype='SFFloataccessType='inputOutput'/>
<field name='engineFrontPercentagetype='SFFloataccessType='inputOutput'/>
<field name='engineRearPercentagetype='SFFloataccessType='inputOutput'/>
<field name='dragCoefficienttype='SFFloataccessType='inputOutput'/>
<field name='downforceCoefficienttype='SFFloataccessType='inputOutput'/>
<field name='reverseSelectedtype='SFBoolaccessType='inputOnly'/>
<field name='carVelocitytype='SFVec3faccessType='inputOnly'/>
<field name='carOrientationtype='SFRotationaccessType='inputOnly'/>
<field name='currentSteeringAngletype='SFFloataccessType='inputOnly'/>
<field name='wheelAcceleratorInputtype='SFFloataccessType='inputOnly'/>
<field name='wheelDirectionInputtype='SFFloataccessType='inputOnly'/>
<field name='frontWheelOrientationtype='SFVec3faccessType='inputOnly'/>
<field name='rearWheelOrientationtype='SFVec3faccessType='inputOnly'/>
<field name='correctedChassisOrientationtype='SFRotationaccessType='outputOnly'/>
<field name='frontWheelMinStoptype='SFFloataccessType='outputOnly'/>
<field name='frontWheelMaxStoptype='SFFloataccessType='outputOnly'/>
<field name='frontLeftWheelSpeedtype='SFFloataccessType='outputOnly'/>
<field name='frontRightWheelSpeedtype='SFFloataccessType='outputOnly'/>
<field name='rearLeftWheelSpeedtype='SFFloataccessType='outputOnly'/>
<field name='rearRightWheelSpeedtype='SFFloataccessType='outputOnly'/>
<field name='frontWheelTorquetype='SFFloataccessType='outputOnly'/>
<field name='rearWheelTorquetype='SFFloataccessType='outputOnly'/>
<field name='frontLeftAxleAxistype='SFVec3faccessType='outputOnly'/>
<field name='frontRightAxleAxistype='SFVec3faccessType='outputOnly'/>
<field name='rearLeftAxleAxistype='SFVec3faccessType='outputOnly'/>
<field name='rearRightAxleAxistype='SFVec3faccessType='outputOnly'/>
<field name='frictionForcestype='MFVec3faccessType='outputOnly'/>
<field name='chassisPosition_resettype='SFVec3faccessType='outputOnly'/>
<field name='chassisOrientation_resettype='SFRotationaccessType='outputOnly'/>
<field name='frontLeftWheelPosition_resettype='SFVec3faccessType='outputOnly'/>
<field name='frontLeftWheelOrientation_resettype='SFRotationaccessType='outputOnly'/>
<field name='frontRightWheelPosition_resettype='SFVec3faccessType='outputOnly'/>
<field name='frontRightWheelOrientation_resettype='SFRotationaccessType='outputOnly'/>
<field name='backLeftWheelPosition_resettype='SFVec3faccessType='outputOnly'/>
<field name='backLeftWheelOrientation_resettype='SFRotationaccessType='outputOnly'/>
<field name='backRightWheelPosition_resettype='SFVec3faccessType='outputOnly'/>
<field name='backRightWheelOrientation_resettype='SFRotationaccessType='outputOnly'/>
<field name='enablePhysicstype='SFBoolaccessType='outputOnly'/>
<field name='speedtype='SFFloataccessType='outputOnly'/>
<field name='revstype='SFFloataccessType='outputOnly'/>
<field name='brakesAppliedtype='SFBoolaccessType='outputOnly'/>
<field name='reversingtype='SFBoolaccessType='outputOnly'/>
<field name='chassistype='SFNodeaccessType='initializeOnly'>
<CollidableShape USE=' CAR-BODY-GEOMcontainerField='children'/>
</field>
<field name='frontLeftWheeltype='SFNodeaccessType='initializeOnly'>
<CollidableShape USE=' FRONT-LEFT-WHEEL-GEOMcontainerField='children'/>
</field>
<field name='frontRightWheeltype='SFNodeaccessType='initializeOnly'>
<CollidableShape USE=' FRONT-RIGHT-WHEEL-GEOMcontainerField='children'/>
</field>
<field name='backLeftWheeltype='SFNodeaccessType='initializeOnly'>
<CollidableShape USE=' BACK-LEFT-WHEEL-GEOMcontainerField='children'/>
</field>
<field name='backRightWheeltype='SFNodeaccessType='initializeOnly'>
<CollidableShape USE=' BACK-RIGHT-WHEEL-GEOMcontainerField='children'/>
</field>
<field name='bigTerrainBoxtype='MFNodeaccessType='initializeOnly'/>
<field name='roadTerraintype='MFNodeaccessType='initializeOnly'>
<CollidableShape USE=' Road-v-001containerField='children'/>
<CollidableShape USE=' Road-v-002containerField='children'/>
<CollidableShape USE=' Road-v-003containerField='children'/>
<CollidableShape USE=' Road-v-004containerField='children'/>
<CollidableShape USE=' Road-v-006containerField='children'/>
<CollidableShape USE=' Road-v-007containerField='children'/>
</field>
<field name='sandTerraintype='MFNodeaccessType='initializeOnly'>
<CollidableShape USE=' Sand-v-001containerField='children'/>
<CollidableShape USE=' Sand-v-002containerField='children'/>
</field>
<field name='grassTerraintype='MFNodeaccessType='initializeOnly'/>
<field name='wallTerraintype='MFNodeaccessType='initializeOnly'>
<CollidableShape USE=' WALL-v-001acontainerField='children'/>
<CollidableShape USE=' WALL-v-001bcontainerField='children'/>
<CollidableShape USE=' WALL-v-001ccontainerField='children'/>
<CollidableShape USE=' WALL-v-001dcontainerField='children'/>
<CollidableShape USE=' Wall-v-002containerField='children'/>
<CollidableShape USE=' Wall-v-003containerField='children'/>
<CollidableShape USE=' Wall-v-004containerField='children'/>
<CollidableShape USE=' Wall-v-005containerField='children'/>
<CollidableShape USE=' Wall-v-006containerField='children'/>
<CollidableShape USE=' Wall-v-007containerField='children'/>
<CollidableShape USE=' Wall-v-008containerField='children'/>
<CollidableShape USE=' Wall-v-009containerField='children'/>
<CollidableShape USE=' Wall-v-010containerField='children'/>
<CollidableShape USE=' Wall-v-011containerField='children'/>
</field>
<field name='bodiestype='MFNodeaccessType='initializeOnly'>
<RigidBody USE=' CAR-BODYcontainerField='bodies'/>
<RigidBody USE=' FRONT-LEFT-WHEEL-BODYcontainerField='bodies'/>
<RigidBody USE=' FRONT-RIGHT-WHEEL-BODYcontainerField='bodies'/>
<RigidBody USE=' BACK-LEFT-WHEEL-BODYcontainerField='bodies'/>
<RigidBody USE=' BACK-RIGHT-WHEEL-BODYcontainerField='bodies'/>
</field>
<field name='jointstype='MFNodeaccessType='initializeOnly'>
<RigidBody USE=' CAR-BODYcontainerField='body1'/>
<RigidBody USE=' FRONT-LEFT-WHEEL-BODYcontainerField='body2'/>
</DoubleAxisHingeJoint>
<RigidBody USE=' CAR-BODYcontainerField='body1'/>
<RigidBody USE=' FRONT-RIGHT-WHEEL-BODYcontainerField='body2'/>
</DoubleAxisHingeJoint>
<!-- 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-JOINTanchorPoint='-0.9 1.5 2.5axis1='0.0 1.0 0.0axis2='-1.0 0.0 0.0containerField='jointsforceOutput='"body2Axis"maxAngle1='0.0maxTorque2='100.0minAngle1='0.0stop1ErrorCorrection='0.98suspensionErrorCorrection='0.9suspensionForce='0.0030'>
<RigidBody USE=' CAR-BODYcontainerField='body1'/>
<RigidBody USE=' BACK-LEFT-WHEEL-BODYcontainerField='body2'/>
</DoubleAxisHingeJoint>
<!-- 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-JOINTanchorPoint='0.9 1.5 2.5axis1='0.0 1.0 0.0axis2='1.0 0.0 0.0containerField='jointsforceOutput='"body2Axis"maxAngle1='0.0maxTorque2='100.0minAngle1='0.0stop1ErrorCorrection='0.98suspensionErrorCorrection='0.9suspensionForce='0.0030'>
<RigidBody USE=' CAR-BODYcontainerField='body1'/>
<RigidBody USE=' BACK-RIGHT-WHEEL-BODYcontainerField='body2'/>
</DoubleAxisHingeJoint>
</field>
<field name='collisionContactstype='MFNodeaccessType='inputOnly'/>
<field name='correctedContactstype='MFNodeaccessType='outputOnly'/>
<field name='connectJointstype='MFNodeaccessType='outputOnly'/>
</Script>


<!-- ROUTE information for KEYS node:  [from actionKeyPress to KEYSC.actionKeyPress ] -->
<KeySensor DEF='KEYS'/>

<!-- ROUTE information for KEYTIMER node:  [from fraction_changed to KEYSC.decay ] -->
<TimeSensor DEF='KEYTIMERloop='true'/>

<field name='actionKeyPresstype='SFInt32accessType='inputOnly'/>
<field name='decaytype='SFFloataccessType='inputOnly'/>
<field name='dirtype='SFFloataccessType='outputOnly'/>
<field name='acceltype='SFFloataccessType='outputOnly'/>
<field name='reversetype='SFBoolaccessType='outputOnly'/>
<field name='resettype='SFBoolaccessType='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;
    	}
    }

    
]]>
</Script>
<field name='speedtype='SFFloataccessType='inputOnly'/>
<field name='revstype='SFFloataccessType='inputOnly'/>
<field name='brakesAppliedtype='SFBoolaccessType='inputOnly'/>
<field name='reversingtype='SFBoolaccessType='inputOnly'/>
<field name='maxSpeedtype='SFFloataccessType='initializeOnly'/>
<field name='brakeLightColortype='SFColoraccessType='outputOnly'/>
<field name='reverseLightColortype='SFColoraccessType='outputOnly'/>
<field name='speedScaletype='SFVec3faccessType='outputOnly'/>
<field name='speedFractiontype='SFFloataccessType='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;
    }

    
]]>
</Script>
<!-- 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-COLORkey='0.0 0.8 0.9 1.0keyValue='0.0 0.0 0.0 1.0 1.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0'/>

<!-- 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-INTERPkey='-1.0 0.0 1.0keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/>

<!-- 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-INTERPkey='-1.0 0.0 1.0keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/>

<!-- 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-INTERPkey='-0.5236 0.0 0.5236keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/>

<!-- 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-INTERPkey='-0.5236 0.0 0.5236keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/>

<!-- 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-INTERPkey='-0.5236 0.0 0.5236keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/>

<!-- 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-INTERPkey='-0.5236 0.0 0.5236keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/>

<!-- 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-INTERPkey='-0.5236 0.0 0.5236keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/>

<!-- 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-INTERPkey='-0.5236 0.0 0.5236keyValue='0.0 1.0 0.0 0.5236 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.5236'/>

<Viewpoint description='Other positionposition='0.0 2.0 10.0'/>
<Viewpoint description='Top down view of starting positionorientation='1.0 0.0 0.0 -1.5712position='-114.86 20.0 -66.1922'/>
<!-- 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-VIEWdescription='Chassis starting positionposition='0.0 0.0 0.0'/>

<Background skyAngle='1.5712 3.142skyColor='0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0'/>
<NavigationInfo type='"NONE"'/>
<field name='carPositiontype='SFVec3faccessType='inputOnly'/>
<field name='resetPositiontype='SFVec3faccessType='inputOnly'/>
<field name='resetOrientationtype='SFRotationaccessType='inputOnly'/>
<field name='cameraTranslationtype='SFVec3faccessType='outputOnly'/>
<field name='cameraRotationtype='SFRotationaccessType='outputOnly'/>
<field name='heighttype='SFFloataccessType='initializeOnly'/>
<field name='chainLengthtype='SFFloataccessType='initializeOnly'/>
</Script>
< ROUTE  fromNode=' cam_car_chase-TIMER' fromField='fraction_changed' toNode=' cam_car_chase-POS-INTERP' toField='set_fraction'/>
< ROUTE  fromNode=' cam_car_chase-POS-INTERP' fromField='value_changed' toNode=' carGroup' toField='translation'/>
< ROUTE  fromNode=' cam_car_chase-TIMER' fromField='fraction_changed' toNode=' cam_car_chase-ROT-INTERP' toField='set_fraction'/>
< ROUTE  fromNode=' cam_car_chase-ROT-INTERP' fromField='value_changed' toNode=' carGroup' toField='rotation'/>
< ROUTE  fromNode=' cam_car_chase-POS-INTERP' fromField='value_changed' toNode=' CAR-BODY-TX' toField='translation'/>
< ROUTE  fromNode=' cam_car_chase-ROT-INTERP' fromField='value_changed' toNode=' CAR-BODY-TX' toField='rotation'/>
< ROUTE  fromNode=' FRONT-LEFT-WHEEL-BODY' fromField='position' toNode=' FRONT-LEFT-WHEEL-TX' toField='translation'/>
< ROUTE  fromNode=' FRONT-LEFT-WHEEL-BODY' fromField='orientation' toNode=' FRONT-LEFT-WHEEL-TX' toField='rotation'/>
< ROUTE  fromNode=' FRONT-RIGHT-WHEEL-BODY' fromField='position' toNode=' FRONT-RIGHT-WHEEL-TX' toField='translation'/>
< ROUTE  fromNode=' FRONT-RIGHT-WHEEL-BODY' fromField='orientation' toNode=' FRONT-RIGHT-WHEEL-TX' toField='rotation'/>
< ROUTE  fromNode=' BACK-LEFT-WHEEL-BODY' fromField='position' toNode=' BACK-LEFT-WHEEL-TX' toField='translation'/>
< ROUTE  fromNode=' BACK-LEFT-WHEEL-BODY' fromField='orientation' toNode=' BACK-LEFT-WHEEL-TX' toField='rotation'/>
< ROUTE  fromNode=' BACK-RIGHT-WHEEL-BODY' fromField='position' toNode=' BACK-RIGHT-WHEEL-TX' toField='translation'/>
< ROUTE  fromNode=' BACK-RIGHT-WHEEL-BODY' fromField='orientation' toNode=' BACK-RIGHT-WHEEL-TX' toField='rotation'/>
< ROUTE  fromNode=' CAR-BODY' fromField='position' toNode=' CAR-BODY-TX' toField='translation'/>
< ROUTE  fromNode=' CAR-BODY' fromField='orientation' toNode=' CAR-BODY-TX' toField='rotation'/>
< ROUTE  fromNode=' WHEEL' fromField='wheelX' toNode=' CAR-CONTROL-SCRIPT' toField='wheelDirectionInput'/>
< ROUTE  fromNode=' WHEEL' fromField='throttleSlider' toNode=' CAR-CONTROL-SCRIPT' toField='wheelAcceleratorInput'/>
< ROUTE  fromNode=' WHEEL' fromField='button2' toNode=' CAR-CONTROL-SCRIPT' toField='reverseSelected'/>
< ROUTE  fromNode=' WHEEL' fromField='button3' toNode=' CAR-CONTROL-SCRIPT' toField='resetRequest'/>
< ROUTE  fromNode=' GAMEPAD' fromField='leftStickX' toNode=' CAR-CONTROL-SCRIPT' toField='wheelDirectionInput'/>
< ROUTE  fromNode=' GAMEPAD' fromField='rightStickY' toNode=' CAR-CONTROL-SCRIPT' toField='wheelAcceleratorInput'/>
< ROUTE  fromNode=' GAMEPAD' fromField='l1Button' toNode=' CAR-CONTROL-SCRIPT' toField='reverseSelected'/>
< ROUTE  fromNode=' GAMEPAD' fromField='r1Button' toNode=' CAR-CONTROL-SCRIPT' toField='resetRequest'/>
< ROUTE  fromNode=' KEYS' fromField='actionKeyPress' toNode=' KEYSC' toField='actionKeyPress'/>
< ROUTE  fromNode=' KEYTIMER' fromField='fraction_changed' toNode=' KEYSC' toField='decay'/>
< ROUTE  fromNode=' KEYSC' fromField='dir' toNode=' CAR-CONTROL-SCRIPT' toField='wheelDirectionInput'/>
< ROUTE  fromNode=' KEYSC' fromField='accel' toNode=' CAR-CONTROL-SCRIPT' toField='wheelAcceleratorInput'/>
< ROUTE  fromNode=' KEYSC' fromField='reverse' toNode=' CAR-CONTROL-SCRIPT' toField='reverseSelected'/>
< ROUTE  fromNode=' KEYSC' fromField='reset' toNode=' CAR-CONTROL-SCRIPT' toField='resetRequest'/>
< ROUTE  fromNode=' COLLISION-OUTPUT' fromField='contacts' toNode=' CAR-CONTROL-SCRIPT' toField='collisionContacts'/>
< ROUTE  fromNode=' CAR-BODY' fromField='linearVelocity' toNode=' CAR-CONTROL-SCRIPT' toField='carVelocity'/>
< ROUTE  fromNode=' CAR-BODY' fromField='orientation' toNode=' CAR-CONTROL-SCRIPT' toField='carOrientation'/>
< ROUTE  fromNode=' FRONT-LEFT-JOINT' fromField='body2Axis' toNode=' CAR-CONTROL-SCRIPT' toField='frontWheelOrientation'/>
< ROUTE  fromNode=' BACK-LEFT-JOINT' fromField='body2Axis' toNode=' CAR-CONTROL-SCRIPT' toField='rearWheelOrientation'/>
< ROUTE  fromNode=' FRONT-LEFT-JOINT' fromField='hinge1Angle' toNode=' CAR-CONTROL-SCRIPT' toField='currentSteeringAngle'/>
< ROUTE  fromNode=' FRONT-LEFT-JOINT' fromField='body2Axis' toNode=' FRONT-LEFT-WHEEL-BODY' toField='finiteRotationAxis'/>
< ROUTE  fromNode=' FRONT-RIGHT-JOINT' fromField='body2Axis' toNode=' FRONT-RIGHT-WHEEL-BODY' toField='finiteRotationAxis'/>
< ROUTE  fromNode=' BACK-LEFT-JOINT' fromField='body2Axis' toNode=' BACK-LEFT-WHEEL-BODY' toField='finiteRotationAxis'/>
< ROUTE  fromNode=' BACK-RIGHT-JOINT' fromField='body2Axis' toNode=' BACK-RIGHT-WHEEL-BODY' toField='finiteRotationAxis'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='enablePhysics' toNode=' BODY-COLLECTION' toField='enabled'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='enablePhysics' toNode=' COLLISION-GROUP' toField='enabled'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='enablePhysics' toNode=' CAR-BODY' toField='enabled'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='enablePhysics' toNode=' FRONT-LEFT-WHEEL-BODY' toField='enabled'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='enablePhysics' toNode=' FRONT-RIGHT-WHEEL-BODY' toField='enabled'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='enablePhysics' toNode=' BACK-LEFT-WHEEL-BODY' toField='enabled'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='enablePhysics' toNode=' BACK-RIGHT-WHEEL-BODY' toField='enabled'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='chassisPosition_reset' toNode=' CAR-BODY' toField='position'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='chassisOrientation_reset' toNode=' CAR-BODY' toField='orientation'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontLeftWheelPosition_reset' toNode=' FRONT-LEFT-WHEEL-BODY' toField='position'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontLeftWheelPosition_reset' toNode=' FRONT-LEFT-JOINT' toField='anchorPoint'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontLeftWheelOrientation_reset' toNode=' FRONT-LEFT-WHEEL-BODY' toField='orientation'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontRightWheelPosition_reset' toNode=' FRONT-RIGHT-WHEEL-BODY' toField='position'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontRightWheelPosition_reset' toNode=' FRONT-RIGHT-JOINT' toField='anchorPoint'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontRightWheelOrientation_reset' toNode=' FRONT-RIGHT-WHEEL-BODY' toField='orientation'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='backLeftWheelPosition_reset' toNode=' BACK-LEFT-WHEEL-BODY' toField='position'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='backLeftWheelPosition_reset' toNode=' BACK-LEFT-JOINT' toField='anchorPoint'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='backLeftWheelOrientation_reset' toNode=' BACK-LEFT-WHEEL-BODY' toField='orientation'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='backRightWheelPosition_reset' toNode=' BACK-RIGHT-WHEEL-BODY' toField='position'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='backRightWheelPosition_reset' toNode=' BACK-RIGHT-JOINT' toField='anchorPoint'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='backRightWheelOrientation_reset' toNode=' BACK-RIGHT-WHEEL-BODY' toField='orientation'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontWheelMinStop' toNode=' FRONT-LEFT-JOINT' toField='minAngle1'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontWheelMinStop' toNode=' FRONT-RIGHT-JOINT' toField='minAngle1'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontWheelMaxStop' toNode=' FRONT-LEFT-JOINT' toField='maxAngle1'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontWheelMaxStop' toNode=' FRONT-RIGHT-JOINT' toField='maxAngle1'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontLeftWheelSpeed' toNode=' FRONT-LEFT-JOINT' toField='desiredAngularVelocity2'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontRightWheelSpeed' toNode=' FRONT-RIGHT-JOINT' toField='desiredAngularVelocity2'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='rearLeftWheelSpeed' toNode=' BACK-LEFT-JOINT' toField='desiredAngularVelocity2'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='rearRightWheelSpeed' toNode=' BACK-RIGHT-JOINT' toField='desiredAngularVelocity2'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontWheelTorque' toNode=' FRONT-LEFT-JOINT' toField='maxTorque2'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontWheelTorque' toNode=' FRONT-RIGHT-JOINT' toField='maxTorque2'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='rearWheelTorque' toNode=' BACK-LEFT-JOINT' toField='maxTorque2'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='rearWheelTorque' toNode=' BACK-RIGHT-JOINT' toField='maxTorque2'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontLeftAxleAxis' toNode=' FRONT-LEFT-JOINT' toField='axis2'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frontRightAxleAxis' toNode=' FRONT-RIGHT-JOINT' toField='axis2'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='rearLeftAxleAxis' toNode=' BACK-LEFT-JOINT' toField='axis2'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='rearRightAxleAxis' toNode=' BACK-RIGHT-JOINT' toField='axis2'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='frictionForces' toNode=' CAR-BODY' toField='forces'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='correctedContacts' toNode=' BODY-COLLECTION' toField='set_contacts'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='correctedChassisOrientation' toNode=' CAR-BODY' toField='orientation'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='connectJoints' toNode=' BODY-COLLECTION' toField='joints'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='speed' toNode=' UI-CONTROL-SCRIPT' toField='speed'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='revs' toNode=' UI-CONTROL-SCRIPT' toField='revs'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='brakesApplied' toNode=' UI-CONTROL-SCRIPT' toField='brakesApplied'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='reversing' toNode=' UI-CONTROL-SCRIPT' toField='reversing'/>
< ROUTE  fromNode=' UI-CONTROL-SCRIPT' fromField='brakeLightColor' toNode=' BRAKE-LIGHT-COLOR' toField='emissiveColor'/>
< ROUTE  fromNode=' UI-CONTROL-SCRIPT' fromField='reverseLightColor' toNode=' REVERSE-LIGHT-COLOR' toField='emissiveColor'/>
< ROUTE  fromNode=' UI-CONTROL-SCRIPT' fromField='speedScale' toNode=' SPEED-INDICATOR' toField='scale'/>
< ROUTE  fromNode=' UI-CONTROL-SCRIPT' fromField='speedFraction' toNode=' SPEED-COLOR' toField='set_fraction'/>
< ROUTE  fromNode=' SPEED-COLOR' fromField='value_changed' toNode=' SPEED-INDICATOR-COLOR' toField='emissiveColor'/>
< ROUTE  fromNode=' WHEEL' fromField='wheelX' toNode=' FRONT-LEFT-HINGE-WHEEL-INTERP' toField='set_fraction'/>
< ROUTE  fromNode=' FRONT-LEFT-HINGE-WHEEL-INTERP' fromField='value_changed' toNode=' FRONT-LEFT-WHEEL-TX-DEBUG-HINGE' toField='rotation'/>
< ROUTE  fromNode=' WHEEL' fromField='wheelX' toNode=' FRONT-RIGHT-HINGE-WHEEL-INTERP' toField='set_fraction'/>
< ROUTE  fromNode=' FRONT-RIGHT-HINGE-WHEEL-INTERP' fromField='value_changed' toNode=' FRONT-RIGHT-WHEEL-TX-DEBUG-HINGE' toField='rotation'/>
< ROUTE  fromNode=' FRONT-LEFT-JOINT' fromField='hinge1Angle' toNode=' FRONT-LEFT-HINGE-ANGLE-INTERP' toField='set_fraction'/>
< ROUTE  fromNode=' FRONT-LEFT-HINGE-ANGLE-INTERP' fromField='value_changed' toNode=' FRONT-LEFT-WHEEL-TX-DEBUG-HINGE' toField='rotation'/>
< ROUTE  fromNode=' FRONT-RIGHT-JOINT' fromField='hinge1Angle' toNode=' FRONT-RIGHT-HINGE-ANGLE-INTERP' toField='set_fraction'/>
< ROUTE  fromNode=' FRONT-RIGHT-HINGE-ANGLE-INTERP' fromField='value_changed' toNode=' FRONT-RIGHT-WHEEL-TX-DEBUG-HINGE' toField='rotation'/>
< ROUTE  fromNode=' FRONT-LEFT-JOINT' fromField='maxAngle1' toNode=' FRONT-LEFT-MAXSTOP-ANGLE-INTERP' toField='set_fraction'/>
< ROUTE  fromNode=' FRONT-LEFT-MAXSTOP-ANGLE-INTERP' fromField='value_changed' toNode=' FRONT-LEFT-WHEEL-TX-DEBUG-MAX' toField='rotation'/>
< ROUTE  fromNode=' FRONT-RIGHT-JOINT' fromField='maxAngle1' toNode=' FRONT-RIGHT-MAXSTOP-ANGLE-INTERP' toField='set_fraction'/>
< ROUTE  fromNode=' FRONT-RIGHT-MAXSTOP-ANGLE-INTERP' fromField='value_changed' toNode=' FRONT-RIGHT-WHEEL-TX-DEBUG-MAX' toField='rotation'/>
< ROUTE  fromNode=' FRONT-LEFT-JOINT' fromField='minAngle1' toNode=' FRONT-LEFT-MINSTOP-ANGLE-INTERP' toField='set_fraction'/>
< ROUTE  fromNode=' FRONT-LEFT-MINSTOP-ANGLE-INTERP' fromField='value_changed' toNode=' FRONT-LEFT-WHEEL-TX-DEBUG-MIN' toField='rotation'/>
< ROUTE  fromNode=' FRONT-RIGHT-JOINT' fromField='minAngle1' toNode=' FRONT-RIGHT-MINSTOP-ANGLE-INTERP' toField='set_fraction'/>
< ROUTE  fromNode=' FRONT-RIGHT-MINSTOP-ANGLE-INTERP' fromField='value_changed' toNode=' FRONT-RIGHT-WHEEL-TX-DEBUG-MIN' toField='rotation'/>
< ROUTE  fromNode=' FRONT-LEFT-WHEEL-BODY' fromField='position' toNode=' FRONT-LEFT-WHEEL-TX-DEBUG-HINGE' toField='translation'/>
< ROUTE  fromNode=' FRONT-RIGHT-WHEEL-BODY' fromField='position' toNode=' FRONT-RIGHT-WHEEL-TX-DEBUG-HINGE' toField='translation'/>
< ROUTE  fromNode=' FRONT-LEFT-WHEEL-BODY' fromField='position' toNode=' FRONT-LEFT-WHEEL-TX-DEBUG-MAX' toField='translation'/>
< ROUTE  fromNode=' FRONT-RIGHT-WHEEL-BODY' fromField='position' toNode=' FRONT-RIGHT-WHEEL-TX-DEBUG-MAX' toField='translation'/>
< ROUTE  fromNode=' FRONT-LEFT-WHEEL-BODY' fromField='position' toNode=' FRONT-LEFT-WHEEL-TX-DEBUG-MIN' toField='translation'/>
< ROUTE  fromNode=' FRONT-RIGHT-WHEEL-BODY' fromField='position' toNode=' FRONT-RIGHT-WHEEL-TX-DEBUG-MIN' toField='translation'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='chassisPosition_reset' toNode=' CHASSIS-VIEW' toField='position'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='chassisOrientation_reset' toNode=' CHASSIS-VIEW' toField='orientation'/>
< ROUTE  fromNode=' CAR-BODY' fromField='position' toNode=' CAMERA-CONTROL-SCRIPT' toField='carPosition'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='chassisPosition_reset' toNode=' CAMERA-CONTROL-SCRIPT' toField='resetPosition'/>
< ROUTE  fromNode=' CAR-CONTROL-SCRIPT' fromField='chassisOrientation_reset' toNode=' CAMERA-CONTROL-SCRIPT' toField='resetOrientation'/>
< ROUTE  fromNode=' CAMERA-CONTROL-SCRIPT' fromField='cameraTranslation' toNode=' CAMERA-TX' toField='translation'/>
< ROUTE  fromNode=' CAMERA-CONTROL-SCRIPT' fromField='cameraRotation' toNode=' CAMERA-TX' toField='rotation'/>
</Scene>
</X3D>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: ACTIVE-SECTOR-INDICATOR, BACK-LEFT-JOINT, BACK-LEFT-WHEEL-BODY, BACK-LEFT-WHEEL-GEOM, BACK-LEFT-WHEEL-TX, BACK-RIGHT-JOINT, BACK-RIGHT-WHEEL-BODY, BACK-RIGHT-WHEEL-GEOM, BACK-RIGHT-WHEEL-TX, BODY-COLLECTION, BRAKE-LIGHT-COLOR, BRAKE-LIGHT-GEOM, cam_car_chase-POS-INTERP, cam_car_chase-ROT-INTERP, cam_car_chase-TIMER, Camera03, Camera03-OLD, CAMERA-CONTROL-SCRIPT, CAMERA-TX, CAR-BODY, CAR-BODY-GEOM, CAR-BODY-TX, carCamTransform, CAR-CONTAINER, CAR-CONTROL-SCRIPT, carGroup, CHASSIS-BOX, CHASSIS-PROXY-GEOM, CHASSIS-VIEW, COLLISION-GROUP, COLLISION-OUTPUT, DEBUG_TERRAIN, DEBUG-GEOM, DEBUG-POINTER-APP, ENEMY-GEOM, FRONT-LEFT-DEBUG-POINTER, FRONT-LEFT-HINGE-ANGLE-INTERP, FRONT-LEFT-HINGE-WHEEL-INTERP, FRONT-LEFT-JOINT, FRONT-LEFT-MAXSTOP-ANGLE-INTERP, FRONT-LEFT-MINSTOP-ANGLE-INTERP, FRONT-LEFT-TX-DEBUG-POINTER, FRONT-LEFT-WHEEL-BODY, FRONT-LEFT-WHEEL-GEOM, FRONT-LEFT-WHEEL-TX, FRONT-LEFT-WHEEL-TX-DEBUG-HINGE, FRONT-LEFT-WHEEL-TX-DEBUG-MAX, FRONT-LEFT-WHEEL-TX-DEBUG-MIN, FRONT-RIGHT-DEBUG-POINTER, FRONT-RIGHT-HINGE-ANGLE-INTERP, FRONT-RIGHT-HINGE-WHEEL-INTERP, FRONT-RIGHT-JOINT, FRONT-RIGHT-MAXSTOP-ANGLE-INTERP, FRONT-RIGHT-MINSTOP-ANGLE-INTERP, FRONT-RIGHT-TX-DEBUG-POINTER, FRONT-RIGHT-WHEEL-BODY, FRONT-RIGHT-WHEEL-GEOM, FRONT-RIGHT-WHEEL-TX, FRONT-RIGHT-WHEEL-TX-DEBUG-HINGE, FRONT-RIGHT-WHEEL-TX-DEBUG-MAX, FRONT-RIGHT-WHEEL-TX-DEBUG-MIN, GAMEPAD, JOINT-INDICATOR-LEFT, JOINT-INDICATOR-RIGHT, JOINT-SPHERE, KEYS, KEYSC, keysensor, KEYTIMER, physicsSectorScript, RAMP_APP, REVERSE-LIGHT-COLOR, REVERSE-LIGHT-GEOM, ROAD-APP, Road-v-001, Road-v-002, Road-v-003, Road-v-004, Road-v-006, Road-v-007, SAND-APP, Sand-v-001, Sand-v-002, SmallBulding, SPEED-COLOR, SPEED-INDICATOR, SPEED-INDICATOR-COLOR, TERRAIN-CONTAINER, UI-CONTROL-SCRIPT, WALL-APP, WALL-v-001a, WALL-v-001b, WALL-v-001c, WALL-v-001d, Wall-v-002, Wall-v-003, Wall-v-004, Wall-v-005, Wall-v-006, Wall-v-007, Wall-v-008, Wall-v-009, Wall-v-010, Wall-v-011, WHEEL, WHEEL-GEOM, WHEEL-MASS, WHEEL-SHAPE

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Camera03, Camera03-OLD, CHASSIS-VIEW
-->

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.

The following ROUTE begins an event-routing loop! Loop occurs at nodeDepth=2.
 
ROUTE CAR-CONTROL-SCRIPT.enablePhysics TO CAR-BODY.enabled
WHEEL
WheelSensor
wheelX
type_UNKNOWN

ROUTE
event to
(1)
CAR-CONTROL-SCRIPT
Script
wheelDirectionInput
SFFloat
WHEEL
WheelSensor
throttleSlider
type_UNKNOWN

ROUTE
event to
(1)
CAR-CONTROL-SCRIPT
Script
wheelAcceleratorInput
SFFloat
WHEEL
WheelSensor
button2
type_UNKNOWN

ROUTE
event to
(1)
CAR-CONTROL-SCRIPT
Script
reverseSelected
SFBool
WHEEL
WheelSensor
button3
type_UNKNOWN

ROUTE
event to
(1)
CAR-CONTROL-SCRIPT
Script
resetRequest
SFBool
WHEEL
WheelSensor
wheelX
type_UNKNOWN

ROUTE
event to
(1)
FRONT-LEFT-HINGE-WHEEL-INTERP
OrientationInterpolator
set_fraction
SFFloat

 
 
then
FRONT-LEFT-HINGE-WHEEL-INTERP
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
FRONT-LEFT-WHEEL-TX-DEBUG-HINGE
Transform
rotation
SFRotation
WHEEL
WheelSensor
wheelX
type_UNKNOWN

ROUTE
event to
(1)
FRONT-RIGHT-HINGE-WHEEL-INTERP
OrientationInterpolator
set_fraction
SFFloat

 
 
then
FRONT-RIGHT-HINGE-WHEEL-INTERP
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
FRONT-RIGHT-WHEEL-TX-DEBUG-HINGE
Transform
rotation
SFRotation


cam_car_chase-TIMER
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
cam_car_chase-POS-INTERP
PositionInterpolator
set_fraction
SFFloat

 
 
then
cam_car_chase-POS-INTERP
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
carGroup
Transform
translation
SFVec3f
 
 
 
then
cam_car_chase-POS-INTERP
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
CAR-BODY-TX
Transform
translation
SFVec3f
cam_car_chase-TIMER
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
cam_car_chase-ROT-INTERP
OrientationInterpolator
set_fraction
SFFloat

 
 
then
cam_car_chase-ROT-INTERP
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
carGroup
Transform
rotation
SFRotation
 
 
 
then
cam_car_chase-ROT-INTERP
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
CAR-BODY-TX
Transform
rotation
SFRotation


The following ROUTE begins an event-routing loop! Loop occurs at nodeDepth=3.
 
ROUTE CAR-CONTROL-SCRIPT.enablePhysics TO CAR-BODY.enabled
KEYTIMER
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
KEYSC
Script
decay
SFFloat

 
 
then
KEYSC
Script
accel
SFFloat

ROUTE
event to
(2)
CAR-CONTROL-SCRIPT
Script
wheelAcceleratorInput
SFFloat
 
 
 
then
KEYSC
Script
dir
SFFloat

ROUTE
event to
(2)
CAR-CONTROL-SCRIPT
Script
wheelDirectionInput
SFFloat
 
 
 
then
KEYSC
Script
reset
SFBool

ROUTE
event to
(2)
CAR-CONTROL-SCRIPT
Script
resetRequest
SFBool
 
 
 
then
KEYSC
Script
reverse
SFBool

ROUTE
event to
(2)
CAR-CONTROL-SCRIPT
Script
reverseSelected
SFBool


The following ROUTE begins an event-routing loop! Loop occurs at nodeDepth=3.
 
ROUTE CAR-CONTROL-SCRIPT.enablePhysics TO CAR-BODY.enabled
KEYS
KeySensor
actionKeyPress
SFInt32

ROUTE
event to
(1)
KEYSC
Script
actionKeyPress
SFInt32

 
 
then
KEYSC
Script
accel
SFFloat

ROUTE
event to
(2)
CAR-CONTROL-SCRIPT
Script
wheelAcceleratorInput
SFFloat
 
 
 
then
KEYSC
Script
dir
SFFloat

ROUTE
event to
(2)
CAR-CONTROL-SCRIPT
Script
wheelDirectionInput
SFFloat
 
 
 
then
KEYSC
Script
reset
SFBool

ROUTE
event to
(2)
CAR-CONTROL-SCRIPT
Script
resetRequest
SFBool
 
 
 
then
KEYSC
Script
reverse
SFBool

ROUTE
event to
(2)
CAR-CONTROL-SCRIPT
Script
reverseSelected
SFBool


The following ROUTE begins an event-routing loop! Loop occurs at nodeDepth=2.
 
ROUTE CAR-CONTROL-SCRIPT.enablePhysics TO CAR-BODY.enabled
GAMEPAD
GamepadSensor
leftStickX
type_UNKNOWN

ROUTE
event to
(1)
CAR-CONTROL-SCRIPT
Script
wheelDirectionInput
SFFloat
GAMEPAD
GamepadSensor
rightStickY
type_UNKNOWN

ROUTE
event to
(1)
CAR-CONTROL-SCRIPT
Script
wheelAcceleratorInput
SFFloat
GAMEPAD
GamepadSensor
l1Button
type_UNKNOWN

ROUTE
event to
(1)
CAR-CONTROL-SCRIPT
Script
reverseSelected
SFBool
GAMEPAD
GamepadSensor
r1Button
type_UNKNOWN

ROUTE
event to
(1)
CAR-CONTROL-SCRIPT
Script
resetRequest
SFBool


The following ROUTE begins an event-routing loop! Loop occurs at nodeDepth=2.
 
ROUTE CAR-CONTROL-SCRIPT.enablePhysics TO CAR-BODY.enabled
COLLISION-OUTPUT
CollisionSensor
contacts
MFNode

ROUTE
event to
(1)
CAR-CONTROL-SCRIPT
Script
collisionContacts
MFNode


-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/Basic/RigidBodyPhysics/CarDemoMainIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/RigidBodyPhysics/CarDemoMain.x3d -->

<!-- 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)
-->

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