1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
|
3 | <X3D profile='Immersive' version='3.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'> |
4 | <head> |
5 | <meta name='title' content=' Wolverine.x3d '/> |
6 | <meta name='description' content='Wolverine is an M1A1 tank chassis with a deployable Heavy Assualt Bridge(HAB). Original M1A1 model authored by Scott Tufts.'/> |
7 | <meta name='creator' content='Nick Wittwer'/> |
8 | <meta name='created' content='15 February 2005'/> |
9 | <meta name='modified' content='20 October 2019'/> |
10 | <meta name=' warning ' content=' TODO list: - split out HAB as separate model; - build prototypes; . figure out how to add HABs to scene repeatedly; - check sound and image urls, permissions '/> |
11 | <meta name='reference' content=' WolverineConstructionReport.pdf '/> |
12 | <meta name='reference' content=' https://www.fas.org/man/dod-101/sys/land/m1.htm '/> |
13 | <meta name='reference' content=' https://www.fas.org/man/dod-101/sys/land/wolverine.htm '/> |
14 |
<meta name='Image' content='https://www.fas.org/man/dod-101/sys/land/wol3.jpg'![]() |
15 | <meta name='drawing' content=' https://www.fas.org/man/dod-101/sys/land/wolverine.htm '/> |
16 | <meta name='subject' content='M1A1 Main Battle Tank Abrams, MBT, Wolverine, HAB, Heavy Assault Bridge, AVLB'/> |
17 | <meta name='license' content='../../license.html'/> |
18 | <meta name='license' content='https://www.web3d.org/x3d/content/examples/Basic/X3dSceneAuthoringHints.html#license'/> |
19 | <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/Savage/GroundVehicles/Wolverine/Wolverine.x3d '/> |
20 | <meta name='generator' content='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/> |
21 | <meta name='translator' content=' Xeena VRML importer, X3D-Edit 3.1, https://www.web3d.org/x3d/content/README.X3D-Edit.html '/> |
22 | <meta name='generator' content=' Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html '/> |
23 | <meta name='generator' content='Wings3D, http://www.wings3d.com'/> |
24 | </head> |
25 | <Scene> |
26 | <WorldInfo title='Wolverine.x3d'/> |
27 | <Background groundAngle='1.309 1.570796' groundColor='0 0.3 .7 0 0.35 0.75 0 0.4 0.8' skyAngle='1.309 1.571' skyColor='0 0.2 0.7 0 0.5 1 1 1 1'/> |
28 | <Group DEF='CommandButtons'> |
29 | <Transform DEF='unfoldButton' translation='-3 3.5 0'> |
30 | <Shape> |
31 |
<!-- Appearance
PanelGreen is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<Appearance DEF='PanelGreen'> |
32 | <Material diffuseColor='.2 .8 .2'/> |
33 | </Appearance> |
34 | |
35 | </Shape> |
36 |
<!-- ROUTE information for unfold node:
[from touchTime to BridgeSound.set_startTime
]
[from touchTime to ExtendHABClock.startTime
]
-->
<TouchSensor DEF='unfold' description='unfold sensor'/> |
37 | <Transform DEF='UnfoldText' scale='.25 .25 .25' translation='-.55 .3 0'> |
38 | <Shape> |
39 | <!-- Text above 1st Button. --> |
40 | |
41 | <Material diffuseColor='0 0 0'/> |
42 | </Appearance> |
43 | <Text string='"Press to Extend"'/> |
44 | </Shape> |
45 | </Transform> |
46 | <Sound maxBack='1000' maxFront='1000'> |
47 |
<!-- ROUTE information for BridgeSound node:
[from unfold.touchTime to set_startTime
]
-->
<AudioClip DEF='BridgeSound' description='BridgeExtend' url=' "bridgeExtend.wav" "http://www.grsites.com/sounds/18791905/vehicle/vehicle080.wav" '/> |
48 | </Sound> |
49 | </Transform> |
50 | <Transform DEF='LayDownButton' translation='-1 3.5 0'> |
51 | <Shape> |
52 | <Appearance USE='PanelGreen'/> |
53 | <Sphere USE='Button'/> |
54 | </Shape> |
55 |
<!-- ROUTE information for LayOnGroundSensor node:
[from touchTime to lauchTimer.startTime
]
-->
<TouchSensor DEF='LayOnGroundSensor' description='put bridge on ground senso'/> |
56 | <Transform DEF='EmployBridgeButton' scale='.25 .25 .25' translation='-.5 .3 0'> |
57 | <Shape> |
58 | <!-- Text above 2nd Button. --> |
59 | <Appearance USE='black'/> |
60 | <Text string='"Press to Deploy"'/> |
61 | </Shape> |
62 | </Transform> |
63 | </Transform> |
64 | <Transform DEF='MoveTank' translation='1 3.5 0'> |
65 | <Shape> |
66 | <Appearance USE='PanelGreen'/> |
67 | <Sphere USE='Button'/> |
68 | </Shape> |
69 |
<!-- ROUTE information for MoveTankSensor node:
[from touchTime to MoveTankTimer.startTime
]
[from touchTime to TankSound.set_startTime
]
-->
<TouchSensor DEF='MoveTankSensor' description='put bridge on ground senso'/> |
70 | <Transform scale='.25 .25 .25' translation='-.5 .3 0'> |
71 | <Shape> |
72 | <!-- Text ablove 3rd button. --> |
73 | <Appearance USE='black'/> |
74 | <Text string='"Press to Employ"'/> |
75 | </Shape> |
76 | </Transform> |
77 | <Sound minBack='1000' minFront='1000'> |
78 |
<!-- ROUTE information for TankSound node:
[from MoveTankSensor.touchTime to set_startTime
]
-->
<AudioClip DEF='TankSound' description='TankMoving' url=' "Tredlop2.wav" "http://www.grsites.com/sounds/18791905/vehicle/vehicle025.wav" '/> |
79 | </Sound> |
80 | </Transform> |
81 | </Group> |
82 | <Group DEF='Viewpoints'> |
83 | <Viewpoint description='Side' position='0 2 10'/> |
84 | <Viewpoint description='Side and back' orientation='1 0 0 -.35' position='-15 3.5 17'/> |
85 | </Group> |
86 | <Group DEF='Timers'> |
87 |
<!-- ROUTE information for ExtendHABClock node:
[from unfold.touchTime to startTime
]
[from fraction_changed to BridgePathBottomPositions.set_fraction
]
[from fraction_changed to BridgePathTopPositions.set_fraction
]
[from fraction_changed to TopTilt.set_fraction
]
[from fraction_changed to BackHydCylinder.set_fraction
]
[from fraction_changed to BackHydCylTilt.set_fraction
]
-->
<TimeSensor DEF='ExtendHABClock' cycleInterval='10'/> |
88 |
<!-- ROUTE information for lauchTimer node:
[from LayOnGroundSensor.touchTime to startTime
]
[from fraction_changed to BridgeOnGround.set_fraction
]
[from fraction_changed to TiltBridgeToGround.set_fraction
]
[from fraction_changed to TiltFrontArm.set_fraction
]
[from fraction_changed to ExtendFrontHydraulic.set_fraction
]
-->
<TimeSensor DEF='lauchTimer' cycleInterval='10'/> |
89 |
<!-- ROUTE information for MoveTankTimer node:
[from MoveTankSensor.touchTime to startTime
]
[from fraction_changed to MoveTankAcrossBridge.set_fraction
]
[from fraction_changed to TiltTankAcrossBridge.set_fraction
]
-->
<TimeSensor DEF='MoveTankTimer' cycleInterval='10'/> |
90 | </Group> |
91 | <Group DEF='Movements'> |
92 | <Group DEF='UnfoldingMovements'> |
93 | <!-- Bottom Bay Movement --> |
94 |
<!-- ROUTE information for BridgePathBottomPositions node:
[from ExtendHABClock.fraction_changed to set_fraction
]
[from value_changed to BridgeHalf.set_translation
]
-->
<PositionInterpolator DEF='BridgePathBottomPositions' key='0.15 0.45 0.6' keyValue='0 0 0 -2.75 0 0 -5.5 0 0'/> |
95 | < ROUTE fromNode='ExtendHABClock' fromField='fraction_changed' toNode='BridgePathBottomPositions' toField='set_fraction'/> |
96 | <!-- TopBayMovements --> |
97 |
<!-- ROUTE information for BridgePathTopPositions node:
[from ExtendHABClock.fraction_changed to set_fraction
]
[from value_changed to BridgeHalf2.set_translation
]
-->
<PositionInterpolator DEF='BridgePathTopPositions' key='0.2 0.4 0.6 0.75 .9' keyValue='0 0 0 0 0.25 0 0 0.6 0 0 0.65 0 0 -0.2 0'/> |
98 | < ROUTE fromNode='ExtendHABClock' fromField='fraction_changed' toNode='BridgePathTopPositions' toField='set_fraction'/> |
99 | <!-- TopBayTilting --> |
100 |
<!-- ROUTE information for TopTilt node:
[from ExtendHABClock.fraction_changed to set_fraction
]
[from value_changed to BridgeHalf2.set_rotation
]
-->
<OrientationInterpolator DEF='TopTilt' key='0.15 0.25 0.5 0.75' keyValue='0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.015 0.0 0.0 1.0 0.0 0.0 0.0 1.0 -0.075'/> |
101 | < ROUTE fromNode='ExtendHABClock' fromField='fraction_changed' toNode='TopTilt' toField='set_fraction'/> |
102 | </Group> |
103 | <Group DEF='DeployMovements'> |
104 | <!-- GroundBridge --> |
105 |
<!-- ROUTE information for BridgeOnGround node:
[from lauchTimer.fraction_changed to set_fraction
]
[from value_changed to HABstack.set_translation
]
-->
<PositionInterpolator DEF='BridgeOnGround' key='.2 .4 .6 .7' keyValue='-7 1 0.3 -15 1 0.3 -25.5 1 0.3 -25.5 -2 0.3'/> |
106 | < ROUTE fromNode='lauchTimer' fromField='fraction_changed' toNode='BridgeOnGround' toField='set_fraction'/> |
107 | <!-- TiltEntireBridge --> |
108 |
<!-- ROUTE information for TiltBridgeToGround node:
[from lauchTimer.fraction_changed to set_fraction
]
[from value_changed to HABstack.set_rotation
]
-->
<OrientationInterpolator DEF='TiltBridgeToGround' key='0.6 0.7 0.85' keyValue='0 0 0 0 0 0 1 0.12 0 0 0 0'/> |
109 | < ROUTE fromNode='lauchTimer' fromField='fraction_changed' toNode='TiltBridgeToGround' toField='set_fraction'/> |
110 | <!-- FrontArmTilt --> |
111 |
<!-- ROUTE information for TiltFrontArm node:
[from lauchTimer.fraction_changed to set_fraction
]
[from value_changed to FrontArm.set_rotation
]
-->
<OrientationInterpolator DEF='TiltFrontArm' key='0.6 0.83 0.94' keyValue='0 0 0 0 0 0 1 -0.9 0 0 0 0'/> |
112 | < ROUTE fromNode='lauchTimer' fromField='fraction_changed' toNode='TiltFrontArm' toField='set_fraction'/> |
113 | <!-- FrontHydraulic --> |
114 |
<!-- ROUTE information for ExtendFrontHydraulic node:
[from lauchTimer.fraction_changed to set_fraction
]
[from value_changed to LittleFrontHydro.set_translation
]
-->
<PositionInterpolator DEF='ExtendFrontHydraulic' key='0.6 0.83 0.94' keyValue='0 1 0 0 2.4 0 0 1 0'/> |
115 | < ROUTE fromNode='lauchTimer' fromField='fraction_changed' toNode='ExtendFrontHydraulic' toField='set_fraction'/> |
116 |
<!-- ROUTE information for BackHydCylinder node:
[from ExtendHABClock.fraction_changed to set_fraction
]
[from value_changed to BackHydroCylinder.set_translation
]
-->
<PositionInterpolator DEF='BackHydCylinder' key='0.1 0.65 0.95' keyValue='0.0 0.75 0.0 0.0 1.4 0.0 0.0 -0.25 0.0'/> |
117 |
<!-- ROUTE information for BackHydCylTilt node:
[from ExtendHABClock.fraction_changed to set_fraction
]
[from value_changed to BackHydraulic.set_rotation
]
-->
<OrientationInterpolator DEF='BackHydCylTilt' key='.2 .65 .9' keyValue='0 0 1 0.75 0 0 1 -0.8 0 0 1 -0.85'/> |
118 | < ROUTE fromNode='ExtendHABClock' fromField='fraction_changed' toNode='BackHydCylinder' toField='set_fraction'/> |
119 | < ROUTE fromNode='ExtendHABClock' fromField='fraction_changed' toNode='BackHydCylTilt' toField='set_fraction'/> |
120 | </Group> |
121 | <Group DEF='CrossTankMovement'> |
122 | <!-- CrossTank --> |
123 |
<!-- ROUTE information for MoveTankAcrossBridge node:
[from MoveTankTimer.fraction_changed to set_fraction
]
[from value_changed to M1ChassisPlus.set_translation
]
-->
<PositionInterpolator DEF='MoveTankAcrossBridge' key='.01 .2 .4 .6 .8' keyValue='0 0 0 -10 0.4 0 -20 .8 0 -30 0.4 0 -40 0 0'/> |
124 | < ROUTE fromNode='MoveTankTimer' fromField='fraction_changed' toNode='MoveTankAcrossBridge' toField='set_fraction'/> |
125 |
<!-- ROUTE information for TiltTankAcrossBridge node:
[from MoveTankTimer.fraction_changed to set_fraction
]
[from value_changed to M1ChassisPlus.set_rotation
]
-->
<OrientationInterpolator DEF='TiltTankAcrossBridge' key='.1 .3 .5 .7' keyValue='0 0 0 0 0 0 1 -0.1 0 0 1 0.1 0 0 0 0'/> |
126 | < ROUTE fromNode='MoveTankTimer' fromField='fraction_changed' toNode='TiltTankAcrossBridge' toField='set_fraction'/> |
127 | </Group> |
128 | </Group> |
129 | <Group DEF='M1HAB'> |
130 |
<!-- ROUTE information for M1ChassisPlus node:
[from MoveTankAcrossBridge.value_changed to set_translation
]
[from TiltTankAcrossBridge.value_changed to set_rotation
]
-->
<Transform DEF='M1ChassisPlus'> |
131 | <Transform DEF='M1Chassis' scale='1 1 .9'> |
132 | <Inline DEF='M1A1Chassis' url=' "M1A1Chassis.wrl" "https://www.web3d.org/x3d/content/examples/Savage/GroundVehicles/M1A1/M1A1Chassis.wrl" '/> |
133 | </Transform> |
134 | <!-- HAB turret --> |
135 | <Group DEF='M1HABturret'> |
136 | <Transform DEF='loadArm' scale='.8 .5 .85' translation='0 0 -1.5'> |
137 | <Shape> |
138 | |
139 | <Material diffuseColor='.8 .7 .6'/> |
140 | </Appearance> |
141 | <IndexedFaceSet coordIndex='0 1 8 9 -1 2 1 0 3 -1 5 1 2 6 -1 7 3 0 4 -1 7 4 5 6 -1 10 8 1 5 -1 10 11 13 12 -1 11 4 0 9 -1 11 10 5 4 -1 12 13 14 15 -1 14 13 11 9 -1 15 14 9 8 -1 17 16 7 6 -1 18 17 6 2 -1 19 3 7 16 -1 19 18 2 3 -1 20 16 17 21 24 -1 22 18 19 23 25 -1 22 21 17 18 -1 27 23 19 16 20 26 -1 29 27 26 28 24 21 22 25 -1 31 30 24 28 -1 32 31 28 26 -1 33 20 24 30 -1 33 32 26 20 -1 35 34 27 29 -1 36 35 29 25 -1 37 23 27 34 -1 37 36 25 23 -1 38 33 30 39 46 -1 40 31 32 41 47 -1 40 39 30 31 -1 41 32 33 38 -1 43 34 35 44 48 -1 43 42 37 34 -1 45 36 37 42 49 -1 45 44 35 36 -1 46 39 40 47 -1 47 41 38 46 -1 48 44 45 49 -1 49 42 43 48 -1 51 12 15 53 52 -1 51 50 53 15 8 10 12 -1 54 55 56 57 -1 55 54 50 51 -1 56 55 51 52 -1 57 53 50 54 -1 57 56 52 53 -1'> |
142 | <Coordinate point='-0.161045 -0.863419 1.00218 -0.13592 1.13602 0.999036 0.646417 1.0889 0.99911 0.599297 -0.910538 1.00225 -0.116808 -0.86656 -0.997821 -0.13592 1.13288 -1.00096 0.646417 1.08576 -1.00089 0.640585 -0.91368 -0.997747 -0.176901 1.18314 0.998962 -1.21357 -0.816299 1.0021 -0.176901 1.18 -1.00104 -1.21947 -0.819441 -0.997895 -3.26944 1.23508 -0.801122 -3.39065 0.334725 -0.799708 -3.44521 0.337238 0.80029 -3.324 1.23759 0.798876 2.88173 -0.272004 -0.998755 2.90821 1.72744 -1.0019 2.90821 1.73058 0.998102 2.86109 -0.268863 1.00124 5.87202 -0.329679 -0.998664 5.92332 1.66967 -1.0018 5.92332 1.67281 0.998193 5.88003 -0.326717 1.00133 5.8959 1.15627 -1.001 5.89695 1.20425 0.998929 5.07222 -0.310621 -0.332027 5.07222 -0.309574 0.334639 5.8959 1.15732 -0.334332 5.89695 1.2032 0.332263 7.17741 0.459345 -0.999904 7.17741 0.460392 -0.333238 7.16737 0.034379 -0.332569 7.16737 0.0333318 -0.999234 7.1772 0.110093 0.33398 7.09555 0.509626 0.333352 7.09555 0.510673 1.00002 7.08618 0.11319 1.00064 8.2643 0.0506105 -0.999262 8.30364 0.433984 -0.999864 8.30364 0.435031 -0.333198 8.2643 0.0516577 -0.332596 8.18312 0.130469 1.00062 8.18312 0.129421 0.33395 8.22178 0.484265 0.333392 8.22178 0.485312 1.00006 8.47796 0.216939 -0.999523 8.47796 0.217986 -0.332857 8.39643 0.281485 0.333711 8.39643 0.282532 1.00038 -0.583875 1.19401 -0.477202 -1.81083 1.21151 -0.439022 -1.81083 1.21288 0.436852 -0.583875 1.19551 0.475087 -0.600174 1.02905 -0.463696 -1.78866 1.04595 -0.426814 -1.78866 1.04729 0.425164 -0.600174 1.03051 0.462099'/> |
143 | </IndexedFaceSet> |
144 | </Shape> |
145 | <PointLight intensity='.6' location='3 3 3'/> |
146 | </Transform> |
147 | <Transform DEF='FrontArmTranslation' rotation='0 1 0 3.14' scale='.6 .45 .65' translation='-3.6 1.1 -1.5'> |
148 |
<!-- ROUTE information for FrontArm node:
[from TiltFrontArm.value_changed to set_rotation
]
-->
<Transform DEF='FrontArm'> |
149 | <Shape> |
150 | <Appearance USE='sand_color'/> |
151 | <IndexedFaceSet coordIndex='5 1 2 6 -1 7 3 0 4 -1 7 4 5 6 17 -1 9 8 5 4 -1 10 9 4 0 -1 11 1 5 8 -1 11 10 0 1 -1 13 12 8 9 -1 15 14 10 11 -1 16 2 1 0 3 -1 17 6 2 16 -1 19 18 17 16 -1 20 19 16 3 -1 21 7 17 18 -1 21 20 3 7 -1 22 23 24 25 -1 23 22 21 18 -1 24 23 18 19 -1 25 20 21 22 -1 25 24 19 20 -1 27 13 9 10 14 26 -1 29 15 11 8 12 28 -1 29 28 27 26 -1 30 31 32 33 -1 31 30 15 29 -1 32 31 29 26 -1 33 14 15 30 -1 33 32 26 14 -1 34 35 36 37 -1 35 34 27 28 -1 36 35 28 12 -1 37 13 27 34 -1 37 36 12 13 -1 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 53 -1 54 38 39 55 -1 55 39 40 56 -1 56 40 41 57 -1 57 41 42 58 -1 58 42 43 59 -1 59 43 44 60 -1 60 44 45 61 -1 61 45 46 62 -1 62 46 47 63 -1 63 47 48 64 -1 64 48 49 65 -1 65 49 50 66 -1 66 50 51 67 -1 67 51 52 68 -1 68 52 53 69 -1 69 53 38 54 -1 69 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 -1'> |
152 | <Coordinate point='-1.0 -1.0 1.0 -1.0 1.0 1.0 0.635798 1.0 1.0 3.21678 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 1.0 -1.0 0.635798 1.0 -1.0 3.21678 -1.0 -1.0 -2.03303 1.0 -1.0 -2.03303 -0.43018 -1.0 -2.03303 -0.352978 1.0 -2.03303 1.0 1.0 -3.39692 1.0 -0.3 -3.39692 0.400655 -0.3 -3.39692 0.400655 0.3 -3.39692 1.0 0.3 2.76852 0.669533 1.0 2.76852 0.669533 -1.0 5.92251 0.669533 -1.0 5.92251 0.669533 1.0 5.92251 0.0109711 1.0 5.92251 0.0109711 -1.0 6.09129 0.231547 -1.0 6.53661 0.669533 -1.0 6.53661 0.669533 1.0 6.09129 0.231547 1.0 -3.39692 0.400655 0.18 -3.39692 0.400655 -0.18 -3.39692 1.0 -0.18 -3.39692 1.0 0.18 -3.70092 1.0 0.3 -3.70092 1.0 0.18 -3.70092 0.400655 0.18 -3.70092 0.400655 0.3 -3.70092 0.400655 -0.18 -3.70092 1.0 -0.18 -3.70092 1.0 -0.3 -3.70092 0.400655 -0.3 -3.6 1.0 -0.12 -3.71481 0.977164 -0.12 -3.81213 0.912132 -0.12 -3.87716 0.814805 -0.12 -3.9 0.7 -0.12 -3.87716 0.585195 -0.12 -3.81213 0.487868 -0.12 -3.71481 0.422836 -0.12 -3.6 0.4 -0.12 -3.48519 0.422836 -0.12 -3.38787 0.487868 -0.12 -3.32284 0.585195 -0.12 -3.3 0.7 -0.12 -3.32284 0.814805 -0.12 -3.38787 0.912132 -0.12 -3.48519 0.977164 -0.12 -3.6 1.0 0.12 -3.71481 0.977164 0.12 -3.81213 0.912132 0.12 -3.87716 0.814805 0.12 -3.9 0.7 0.12 -3.87716 0.585195 0.12 -3.81213 0.487868 0.12 -3.71481 0.422836 0.12 -3.6 0.4 0.12 -3.48519 0.422836 0.12 -3.38787 0.487868 0.12 -3.32284 0.585195 0.12 -3.3 0.7 0.12 -3.32284 0.814805 0.12 -3.38787 0.912132 0.12 -3.48519 0.977164 0.12'/> |
153 | </IndexedFaceSet> |
154 | </Shape> |
155 | </Transform> |
156 | </Transform> |
157 | <Transform DEF='FrontHydraulic' rotation='0 0 1 .6' translation='-1 0.6 -1.5'> |
158 | |
159 | <Appearance USE='sand_color'/> |
160 | <Cylinder height='1' radius='.2'/> |
161 | </Shape> |
162 | <Transform DEF='LittleFrontHydroTranslation' translation='0 -1.0 0'> |
163 |
<!-- ROUTE information for LittleFrontHydro node:
[from ExtendFrontHydraulic.value_changed to set_translation
]
-->
<Transform DEF='LittleFrontHydro'> |
164 |
<!-- Shape
littleHydro is a DEF node that has 1 USE node: USE_1 -->
<Shape DEF='littleHydro'> |
165 | <Appearance USE='sand_color'/> |
166 | <Cylinder radius='.08'/> |
167 | </Shape> |
168 | </Transform> |
169 | </Transform> |
170 | </Transform> |
171 |
<!-- ROUTE information for BackHydraulic node:
[from BackHydCylTilt.value_changed to set_rotation
]
-->
<Transform DEF='BackHydraulic' rotation='0 0 1 .75' translation='6 .55 -1.5'> |
172 | <Shape USE='bigHydo'/> |
173 |
<!-- ROUTE information for BackHydroCylinder node:
[from BackHydCylinder.value_changed to set_translation
]
-->
<Transform DEF='BackHydroCylinder' translation='0 1.25 0'> |
174 | <Shape USE='littleHydro'/> |
175 | <Transform rotation='1 0 0 1.57' translation='0 1 0'> |
176 | <Shape> |
177 | <Appearance USE='sand_color'/> |
178 | <Cylinder height='1.25' radius='.1'/> |
179 | </Shape> |
180 | </Transform> |
181 | </Transform> |
182 | </Transform> |
183 | <Transform DEF='Hatch' translation='0 0.25 -3'> |
184 | <Shape> |
185 | <Appearance USE='sand_color'/> |
186 | <IndexedFaceSet coordIndex='0 7 6 5 4 3 2 1 -1 3 11 10 2 -1 4 12 11 3 -1 5 13 12 4 -1 6 14 13 5 -1 7 15 14 6 -1 8 0 1 9 -1 9 1 2 10 -1 10 11 12 13 14 15 8 9 -1 15 7 0 8 -1'> |
187 | <Coordinate point='-0.666053 -0.084515 -0.08561 -0.296482 -0.084515 -0.182057 0.192171 -0.084515 -0.171857 0.513661 -0.084515 -0.060986 0.479662 -0.084515 0.08561 0.110091 -0.084515 0.182057 -0.378562 -0.084515 0.171857 -0.700052 -0.084515 0.060986 -0.666053 -0.684515 -0.08561 -0.296482 -0.684515 -0.182057 0.192171 -0.684515 -0.171857 0.513661 -0.684515 -0.060986 0.479662 -0.684515 0.08561 0.110091 -0.684515 0.182057 -0.378562 -0.684515 0.171857 -0.700052 -0.684515 0.060986'/> |
188 | </IndexedFaceSet> |
189 | </Shape> |
190 | </Transform> |
191 | <Transform DEF='box' scale='.5 .3 .4' translation='0 0.25 1'> |
192 | <Shape> |
193 | <Appearance USE='sand_color'/> |
194 | <IndexedFaceSet coordIndex='2 1 0 3 -1 4 0 1 5 -1 5 1 2 6 -1 6 2 3 7 -1 7 3 0 4 -1 7 4 5 6 -1 10 9 8 11 -1 12 8 9 13 -1 13 9 10 14 -1 14 10 11 15 -1 15 11 8 12 -1 15 12 13 14 -1 18 17 16 19 -1 20 16 17 21 -1 21 17 18 22 -1 22 18 19 23 -1 23 19 16 20 -1 23 20 21 22 -1 26 25 24 27 -1 28 24 25 29 -1 29 25 26 30 -1 30 26 27 31 -1 31 27 24 28 -1 31 28 29 30 -1'> |
195 | <Coordinate point='-0.6741 1.00164 -0.0432 -0.6741 1.08724 -0.0432 0.6741 1.08724 -0.0432 0.6741 1.00164 -0.0432 -0.6741 1.00164 -0.5568 -0.6741 1.08724 -0.5568 0.6741 1.08724 -0.5568 0.6741 1.00164 -0.5568 -0.6741 1.00342 0.8568 -0.6741 1.08902 0.8568 0.6741 1.08902 0.8568 0.6741 1.00342 0.8568 -0.6741 1.00342 0.3432 -0.6741 1.08902 0.3432 0.6741 1.08902 0.3432 0.6741 1.00342 0.3432 -1.0 -1.0 1.0 -1.0 1.0 1.0 1.0 1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 -0.216188 1.45084 2.58824 -0.216188 1.45084 2.52832 0.412972 1.45084 2.52832 0.412972 1.45084 2.58824 -0.216188 1.09132 2.58824 -0.216188 1.09132 2.52832 0.412972 1.09132 2.52832 0.412972 1.09132 2.58824'/> |
196 | </IndexedFaceSet> |
197 | </Shape> |
198 | </Transform> |
199 | <Transform DEF='box2' scale='.4 .2 .4' translation='3 0 0'> |
200 | <Shape> |
201 | <Appearance USE='sand_color'/> |
202 | <IndexedFaceSet coordIndex='2 1 0 3 -1 4 0 1 5 -1 5 1 2 6 -1 6 2 3 7 -1 7 3 0 4 -1 7 4 5 6 -1 10 9 8 11 -1 12 8 9 13 -1 13 9 10 14 -1 14 10 11 15 -1 15 11 8 12 -1 15 12 13 14 -1 18 17 16 19 -1 20 16 17 21 -1 21 17 18 22 -1 22 18 19 23 -1 23 19 16 20 -1 23 20 21 22 -1 26 25 24 27 -1 28 24 25 29 -1 29 25 26 30 -1 30 26 27 31 -1 31 27 24 28 -1 31 28 29 30 -1'> |
203 | <Coordinate point='-0.6741 1.00164 -0.0432 -0.6741 1.08724 -0.0432 0.6741 1.08724 -0.0432 0.6741 1.00164 -0.0432 -0.6741 1.00164 -0.5568 -0.6741 1.08724 -0.5568 0.6741 1.08724 -0.5568 0.6741 1.00164 -0.5568 -0.6741 1.00342 0.8568 -0.6741 1.08902 0.8568 0.6741 1.08902 0.8568 0.6741 1.00342 0.8568 -0.6741 1.00342 0.3432 -0.6741 1.08902 0.3432 0.6741 1.08902 0.3432 0.6741 1.00342 0.3432 -1.0 -1.0 1.0 -1.0 1.0 1.0 1.0 1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 1.0 -1.0 1.0 1.0 -1.0 1.0 -1.0 -1.0 -0.216188 1.45084 2.58824 -0.216188 1.45084 2.52832 0.412972 1.45084 2.52832 0.412972 1.45084 2.58824 -0.216188 1.09132 2.58824 -0.216188 1.09132 2.52832 0.412972 1.09132 2.52832 0.412972 1.09132 2.58824'/> |
204 | </IndexedFaceSet> |
205 | </Shape> |
206 | </Transform> |
207 | </Group> |
208 | </Transform> |
209 | <!-- FoldedAssaultBridge --> |
210 |
<!-- ROUTE information for HABstack node:
[from BridgeOnGround.value_changed to set_translation
]
[from TiltBridgeToGround.value_changed to set_rotation
]
-->
<Transform DEF='HABstack' translation='-7 0.9 0.3'> |
211 |
<!-- Transform
BridgeHalf is a DEF node that has 1 USE node: USE_1
<!-- ROUTE information for BridgeHalf node: [from BridgePathBottomPositions.value_changed to set_translation ] --> <Transform DEF='BridgeHalf'> |
212 |
<!-- Transform
BridgeSection1 is a DEF node that has 1 USE node: USE_1 -->
<Transform DEF='BridgeSection1' scale='.5 .5 .5'> |
213 | <Group DEF='InsideNearSection'> |
214 | |
215 | <Extrusion creaseAngle='3.14' crossSection='0 0 26 0 26 -2 2 -0.5 0 0' solid='false' spine='0 0 0 0 0 0.25 0 0 0.5 0 0 0.75 0 0 1'/> |
216 | <Appearance USE='sand_color'/> |
217 | </Shape> |
218 | |
219 | <Transform DEF='pivotPole' rotation='1 0 0 -1.57'> |
220 | <Shape> |
221 | <Cylinder height='1.0' radius='.05'/> |
222 | <Appearance USE='sand_color'/> |
223 | </Shape> |
224 | </Transform> |
225 | <Transform rotation='1 0 0 1.57' scale='.025 .025 .025' translation='0 0 0.5'> |
226 | |
227 | <Extrusion beginCap='false' convex='false' creaseAngle='1.57' crossSection='1.00 0.00 0.92 -0.38 0.71 -0.71 0.38 -0.92 0.00 -1.00 -0.38 -0.92 -0.71 -0.71 -0.92 -0.38 -1.00 -0.00 -0.92 0.38 -0.71 0.71 -0.38 0.92 0.00 1.00 0.38 0.92 0.71 0.71 0.92 0.38 1.00 0.' endCap='false' spine='2.00 0.0 0.00 1.85 0.0 0.77 1.41 0.0 1.41 0.77 0.0 1.85 0.00 0.0 2.00 -0.77 0.0 1.85 -1.41 0.0 1.41 -1.85 0.0 0.77 -2.00 0.0 0.00 -1.85 0.0 -0.77 -1.41 0.0 -1.41 -0.77 0.0 -1.85 0.00 0.0 -2.00 0.77 0.0 -1.85 1.41 0.0 -1.41 1.85 0.0 -0.77 2.00 0.0 0.00'/> |
228 | <Appearance> |
229 | <Material diffuseColor='0 0 0'/> |
230 | </Appearance> |
231 | </Shape> |
232 | </Transform> |
233 | <Transform rotation='1 0 0 1.57' scale='.025 .025 .025' translation='0 0 -0.5'> |
234 | <Shape USE='wheel'/> |
235 | </Transform> |
236 | </Transform> |
237 | <Transform DEF='AllRails'> |
238 | <Transform DEF='BottomRails' translation='13.5 0.1 1.0'> |
239 |
<!-- Shape
BottomRail is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
<Shape DEF='BottomRail'> |
240 | <Box size='25.5 0.175 0.025'/> |
241 | <Appearance USE='sand_color'/> |
242 | </Shape> |
243 | <Transform translation='0 0 -1'> |
244 | <Shape USE='BottomRail'/> |
245 | <Transform rotation='1 0 0 1.57' scale='.05 .05 .05' translation='12.7 0 -0.05'> |
246 | <Shape USE='wheel'/> |
247 | </Transform> |
248 | </Transform> |
249 | |
250 | |
251 | <Cylinder height='.5' radius='8.5'/> |
252 | <Appearance> |
253 | <Material diffuseColor='0 0 0'/> |
254 | </Appearance> |
255 | </Shape> |
256 | <Transform translation='50.0 0 0'> |
257 | <Shape USE='bolt'/> |
258 | </Transform> |
259 | <Transform translation='50.0 0 -40.0'> |
260 | <Shape USE='bolt'/> |
261 | </Transform> |
262 | <Transform translation='0 0 -40'> |
263 | <Shape USE='bolt'/> |
264 | </Transform> |
265 | </Transform> |
266 | </Transform> |
267 | </Transform> |
268 | <Transform DEF='InnerSide2' translation='0 0 -2'/> |
269 | </Group> |
270 | <Transform DEF='InsideFarSection' translation='0 0 -2'> |
271 | <Shape USE='InnerSide'/> |
272 | <Transform USE='Roller'/> |
273 | <Transform translation='13.5 0.1 0'> |
274 | <Shape USE='BottomRail'/> |
275 | <Transform USE='Bolts'/> |
276 | </Transform> |
277 | <Transform translation='13.5 0.1 1.0'> |
278 | <Shape USE='BottomRail'/> |
279 | <Transform rotation='1 0 0 1.57' scale='.05 .05 .05' translation='12.7 0 0.05'> |
280 | <Shape USE='wheel'/> |
281 | </Transform> |
282 | </Transform> |
283 | </Transform> |
284 | <Transform DEF='RoadSurface' translation='0 0.01 -2.1'> |
285 | <Shape DEF='Surface'> |
286 | <Extrusion creaseAngle='3.14' crossSection='0 -0.05 2 -0.6 26 -2.2 26 -2.0 2 -0.50 0 0.0' scale='1 1 1 1 1 1 1 1 1 1' spine='0 0 0 0 0 0.5 0 0 1 0 0 1.5 0 0 3.2'/> |
287 | <Appearance> |
288 |
<ImageTexture
url=' "wellwall.jpg![]() ![]() |
289 | </Appearance> |
290 | </Shape> |
291 | </Transform> |
292 | </Transform> |
293 | <Transform DEF='BridgeSection2' translation='0 0 -3.1'> |
294 | <Transform USE='BridgeSection1'/> |
295 | </Transform> |
296 | <Transform DEF='ExtraDetails' translation='5.5 0.25 -1.5'> |
297 | <Transform DEF='crossMember1'> |
298 | |
299 | <Appearance> |
300 | <Material DEF='white' diffuseColor='1 1 1'/> |
301 | </Appearance> |
302 | <Box size='0.1 0.2 2.5'/> |
303 | </Shape> |
304 | </Transform> |
305 | <Transform DEF='crossMember2' translation='1 0.05 0'> |
306 | <Shape USE='Beam'/> |
307 | </Transform> |
308 | <Transform DEF='crossMember3' translation='3 .15 0'> |
309 | <Shape USE='Beam'/> |
310 | </Transform> |
311 | <Transform DEF='crossMember4' translation='4 0.2 0'> |
312 | <Shape USE='Beam'/> |
313 | </Transform> |
314 | </Transform> |
315 | </Transform> |
316 |
<!-- ROUTE information for BridgeHalf2 node:
[from BridgePathTopPositions.value_changed to set_translation
]
[from TopTilt.value_changed to set_rotation
]
-->
<Transform DEF='BridgeHalf2'> |
317 | <Transform rotation='0 1 0 3.14' translation='15 1.25 -3.65'> |
318 | <Transform rotation='0 0 1 -0.065'> |
319 | <Transform USE='BridgeHalf'/> |
320 | </Transform> |
321 | </Transform> |
322 | </Transform> |
323 | <Group DEF='ExtendBridgeRoutes'> |
324 | < ROUTE fromNode='BridgePathBottomPositions' fromField='value_changed' toNode='BridgeHalf' toField='set_translation'/> |
325 | < ROUTE fromNode='BridgePathTopPositions' fromField='value_changed' toNode='BridgeHalf2' toField='set_translation'/> |
326 | < ROUTE fromNode='TopTilt' fromField='value_changed' toNode='BridgeHalf2' toField='set_rotation'/> |
327 | < ROUTE fromNode='ExtendFrontHydraulic' fromField='value_changed' toNode='LittleFrontHydro' toField='set_translation'/> |
328 | < ROUTE fromNode='BackHydCylinder' fromField='value_changed' toNode='BackHydroCylinder' toField='set_translation'/> |
329 | < ROUTE fromNode='BackHydCylTilt' fromField='value_changed' toNode='BackHydraulic' toField='set_rotation'/> |
330 | < ROUTE fromNode='unfold' fromField='touchTime' toNode='BridgeSound' toField='set_startTime'/> |
331 | </Group> |
332 | </Transform> |
333 | <!-- MovementRoutes --> |
334 | <Group DEF='LayBridgeRoutes'> |
335 | < ROUTE fromNode='BridgeOnGround' fromField='value_changed' toNode='HABstack' toField='set_translation'/> |
336 | < ROUTE fromNode='unfold' fromField='touchTime' toNode='ExtendHABClock' toField='startTime'/> |
337 | < ROUTE fromNode='TiltBridgeToGround' fromField='value_changed' toNode='HABstack' toField='set_rotation'/> |
338 | < ROUTE fromNode='LayOnGroundSensor' fromField='touchTime' toNode='lauchTimer' toField='startTime'/> |
339 | < ROUTE fromNode='TiltFrontArm' fromField='value_changed' toNode='FrontArm' toField='set_rotation'/> |
340 | </Group> |
341 | <Group DEF='CrossBridgeRoutes'> |
342 | < ROUTE fromNode='MoveTankAcrossBridge' fromField='value_changed' toNode='M1ChassisPlus' toField='set_translation'/> |
343 | < ROUTE fromNode='TiltTankAcrossBridge' fromField='value_changed' toNode='M1ChassisPlus' toField='set_rotation'/> |
344 | < ROUTE fromNode='MoveTankSensor' fromField='touchTime' toNode='MoveTankTimer' toField='startTime'/> |
345 | < ROUTE fromNode='MoveTankSensor' fromField='touchTime' toNode='TankSound' toField='set_startTime'/> |
346 | </Group> |
347 | </Group> |
348 | </Scene> |
349 | </X3D> |
Event Graph ROUTE Table entries with 27 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.
LayOnGroundSensor
TouchSensor touchTime SFTime |
lauchTimer
TimeSensor startTime SFTime |
then
|
lauchTimer
TimeSensor fraction_changed SFFloat |
BridgeOnGround
PositionInterpolator set_fraction SFFloat |
then
|
BridgeOnGround
PositionInterpolator value_changed SFVec3f |
HABstack
Transform set_translation SFVec3f |
|||
then
|
lauchTimer
TimeSensor fraction_changed SFFloat |
TiltBridgeToGround
OrientationInterpolator set_fraction SFFloat |
then
|
TiltBridgeToGround
OrientationInterpolator value_changed SFRotation |
HABstack
Transform set_rotation SFRotation |
|||||
then
|
lauchTimer
TimeSensor fraction_changed SFFloat |
TiltFrontArm
OrientationInterpolator set_fraction SFFloat |
then
|
TiltFrontArm
OrientationInterpolator value_changed SFRotation |
FrontArm
Transform set_rotation SFRotation |
|||||
then
|
lauchTimer
TimeSensor fraction_changed SFFloat |
ExtendFrontHydraulic
PositionInterpolator set_fraction SFFloat |
then
|
ExtendFrontHydraulic
PositionInterpolator value_changed SFVec3f |
LittleFrontHydro
Transform set_translation SFVec3f |
MoveTankSensor
TouchSensor touchTime SFTime |
MoveTankTimer
TimeSensor startTime SFTime |
then
|
MoveTankTimer
TimeSensor fraction_changed SFFloat |
MoveTankAcrossBridge
PositionInterpolator set_fraction SFFloat |
then
|
MoveTankAcrossBridge
PositionInterpolator value_changed SFVec3f |
M1ChassisPlus
Transform set_translation SFVec3f |
|||
then
|
MoveTankTimer
TimeSensor fraction_changed SFFloat |
TiltTankAcrossBridge
OrientationInterpolator set_fraction SFFloat |
then
|
TiltTankAcrossBridge
OrientationInterpolator value_changed SFRotation |
M1ChassisPlus
Transform set_rotation SFRotation |
|||||
MoveTankSensor
TouchSensor touchTime SFTime |
TankSound
AudioClip set_startTime SFTime |
<!--
Color-coding legend: X3D terminology
<X3dNode
DEF='idName' field='value'/>
matches XML terminology
<XmlElement
DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->