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=' UssColeTerroristAttack.x3d '/> |
6 | <meta name='description' content='Unclassified physical based model of the Al-Qaida sponsored terrorist attack on the USS COLE on 12 October 2000. Click on the Terrorist boat to trigger the explosion.'/> |
7 | <meta name='creator' content='James Harney'/> |
8 | <meta name='created' content='7 October 2001'/> |
9 | <meta name='modified' content='23 August 2023'/> |
10 | <meta name='reference' content='http://en.wikipedia.org/wiki/USS_Cole_bombing'/> |
11 | <meta name='reference' content=' http://www.foia.navy.mil/usscole/index.html '/> |
12 | <meta name='reference' content=' UssColeTerroristAttack.ppt '/> |
13 | <meta name='reference' content=' https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/UssColeTerroristAttack.ppt '/> |
14 | <meta name='reference' content='http://www.pilotonline.com'/> |
15 | <meta name='reference' content=' http://www.prop1.org/nucnews/nucnews.htm '/> |
16 | <meta name='reference' content=' http://www.jpost.com/Editions/2001/08/12/Features/Features.32382.html '/> |
17 | <meta name='reference' content=' https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CollisionUssGreenvilleEhimeMaru/CollisionCourses.x3d '/> |
18 | <meta name='reference' content='https://www.web3d.org/x3d/content/examples/Savage/Scenarios/CollisionUssGreenvilleEhimeMaru/CollisionCourses.wrl'/> |
19 | <meta name='reference' content=' https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d '/> |
20 | <meta name='reference' content=' https://www.fas.org/man/dod-101/navy/docs/swos/cmd/cp17/sld001.htm '/> |
21 | <meta name='reference' content='NIMA Chart No. 62098 Banda at Tdwahi, 4th Ed. 30 Sep 1995'/> |
22 |
<meta name='reference' content='NIMA62098.jpg'![]() |
23 |
<meta name='reference' content='https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/NIMA62098.jpg'![]() |
24 | <meta name='reference' content=' https://www.fas.org/irp/doddir/dod/app-j_THREATCON.htm '/> |
25 | <meta name='reference' content=' https://www.fas.org/irp/program/core/dted.htm '/> |
26 | <meta name='subject' content='USS COLE, Al-Qaida sponsored Terrorist Attacks'/> |
27 | <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/UssColeTerroristAttack.x3d '/> |
28 | <meta name='generator' content='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/> |
29 | <meta name='license' content='../../license.html'/> |
30 | </head> |
31 | <Scene> |
32 | <!-- <Group DEF='ExternProtoDeclareGroup'> </Group> --> |
33 | <!-- This group holds ExternProtoDeclare statements to simplify editing --> |
34 | <WorldInfo title='UssColeTerroristAttack.x3d'/> |
35 | <ExternProtoDeclare name='WaypointInterpolator' appinfo='Reads waypoints and legSpeeds/legDurations/defaultSpeed to provide a customizable position/orientation interpolator.' url=' "../../../Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator" "../../../Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator" '> |
36 | <!-- Priority of use: legSpeeds (m/sec), legDurations (seconds), defaultSpeed (m/sec) --> |
37 | <!-- interpolation fields --> |
38 | <!-- display-related fields --> |
39 |
<field name='description' type='SFString' accessType='initializeOnly'
appinfo='Short description of what is animated by this WaypointInterpolator.'/> |
40 |
<field name='waypoints' type='MFVec3f' accessType='initializeOnly'
appinfo='Waypoints being traversed with interpolation of intermediate positions and orientations.'/> |
41 |
<field name='add_waypoint' type='SFVec3f' accessType='inputOnly'
appinfo='Add another single waypoint to array of waypoints recalculate interpolator values.'/> |
42 |
<field name='set_waypoints' type='MFVec3f' accessType='inputOnly'
appinfo='Replace all waypoints recalculate interpolator values.'/> |
43 |
<field name='pitchUpDownForVerticalWaypoints' type='SFBool' accessType='initializeOnly'
appinfo='Whether to pitch child geometry (such as a vehicle) up or down to match vertical slope'/> |
44 |
<field name='legSpeeds' type='MFFloat' accessType='initializeOnly'
appinfo='Units m/sec. If used array lengths for legSpeeds and legDurations must be one less than number of waypoints.'/> |
45 |
<field name='legDurations' type='MFTime' accessType='initializeOnly'
appinfo='Units in seconds. If used array lengths for legSpeeds and legDurations must be one less than number of waypoints.'/> |
46 |
<field name='defaultSpeed' type='SFFloat' accessType='initializeOnly'
appinfo='Units m/sec.'/> |
47 |
<field name='turningRate' type='SFFloat' accessType='initializeOnly'
appinfo='turningRate (degrees/second) also determines standoff distance prior to waypoint where turn commences. If 0 turns are instantaneous.'/> |
48 |
<field name='totalDuration' type='SFTime' accessType='outputOnly'
appinfo='Output calculation summing all leg durations, useful for setting TimeSensor cycleInterval. Units in seconds.'/> |
49 |
<field name='set_fraction' type='SFFloat' accessType='inputOnly'
appinfo='exposed PositionInterpolator and OrientationInterpolator setting'/> |
50 |
<field name='position_changed' type='SFVec3f' accessType='outputOnly'
appinfo='exposed PositionInterpolator setting'/> |
51 |
<field name='orientation_changed' type='SFRotation' accessType='outputOnly'
appinfo='exposed OrientationInterpolator setting'/> |
52 |
<field name='lineColor' type='SFColor' accessType='inputOutput'
appinfo='default color for non-active line segments'/> |
53 |
<field name='highlightSegmentColor' type='SFColor' accessType='inputOutput'
appinfo='active segment highlight color'/> |
54 |
<field name='transparency' type='SFFloat' accessType='inputOutput'
appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/> |
55 |
<field name='labelDisplayMode' type='SFString' accessType='initializeOnly'
appinfo='allowed values: none; waypoints (produce labels at each waypoint); or interpolation (produce single moving label at interpolator time course speed location)'/> |
56 |
<field name='heightLabel' type='SFString' accessType='initializeOnly'
appinfo='allowed values: altitude depth (negate Y value) none'/> |
57 |
<field name='labelOffset' type='SFVec3f' accessType='initializeOnly'
appinfo='heightLabel relative location'/> |
58 |
<field name='labelFontSize' type='SFFloat' accessType='initializeOnly'
appinfo='heightLabel text size'/> |
59 |
<field name='labelColor' type='SFColor' accessType='initializeOnly'
appinfo='heightLabel text color'/> |
60 |
<field name='traceEnabled' type='SFBool' accessType='initializeOnly'
appinfo='enable console output to trace script computations and prototype progress'/> |
61 |
<field name='outputInitializationComputations' type='SFBool' accessType='initializeOnly'
appinfo='Output the number of waypoints totalDistance and totalDuration to console upon initialization'/> |
62 |
<field name='verticalDropLineColor' type='SFColor' accessType='inputOutput'
appinfo='default color for vertical drop-line segments'/> |
63 |
<field name='verticalDropLineTransparency' type='SFFloat' accessType='inputOutput'
appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/> |
64 | </ExternProtoDeclare> |
65 | <ExternProtoDeclare name='TNTBasedExplosion' appinfo='Physics-based explosion model' url=' "PhysicsBasedExplosionPrototype.x3d#TNTBasedExplosion" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/PhysicsBasedExplosionPrototype.x3d#TNTBasedExplosion" "PhysicsBasedExplosionPrototype.wrl#TNTBasedExplosion" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/PhysicsBasedExplosionPrototype.wrl#TNTBasedExplosion" '> |
66 | <field name='startExplosion' type='SFTime' accessType='inputOnly'/> |
67 | </ExternProtoDeclare> |
68 | <ExternProtoDeclare name='TerroristBoat' url=' "TerroristBoatPrototype.x3d#TerroristBoat" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/TerroristBoatPrototype.x3d#TerroristBoat" "TerroristBoatPrototype.wrl#TerroristBoat" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/TerroristBoatPrototype.wrl#TerroristBoat" '> |
69 | <field name='startExplosion' type='SFTime' accessType='inputOnly'/> |
70 | </ExternProtoDeclare> |
71 | <ExternProtoDeclare name='ArleighBurke' appinfo='Arleigh Burke class destroyer' url=' "../../ShipsMilitary/DDGArleighBurkeUnitedStates/ArleighBurkePrototype.x3d#ArleighBurke" "https://www.web3d.org/x3d/content/examples/Savage/ShipsMilitary/DDGArleighBurkeUnitedStates/ArleighBurkePrototype.x3d#ArleighBurke" "../../ShipsMilitary/DDGArleighBurkeUnitedStates/ArleighBurkePrototype.wrl#ArleighBurke" "https://www.web3d.org/x3d/content/examples/Savage/ShipsMilitary/DDGArleighBurkeUnitedStates/ArleighBurkePrototype.wrl#ArleighBurke" '> |
72 | <field name='startExplosion' type='SFTime' accessType='inputOnly'/> |
73 | </ExternProtoDeclare> |
74 | <ExternProtoDeclare name='CameraCompass12' appinfo='Circular set of compass bearings that follow the active viewpoint set at 360/12 = 30 degree intervals. North = +X axis East = +Z axis up = +Y axis.' url=' "../../../Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.x3d#CameraCompass12" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.x3d#CameraCompass12" "../../../Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.wrl#CameraCompass12" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.wrl#CameraCompass12" '> |
75 | <field name='enabled' type='SFBool' accessType='inputOutput'/> |
76 | <field name='positionOffsetFromCamera' type='SFVec3f' accessType='inputOutput'/> |
77 | <field name='markerColor' type='SFColor' accessType='inputOutput'/> |
78 | <field name='labelColor' type='SFColor' accessType='inputOutput'/> |
79 | </ExternProtoDeclare> |
80 | <ExternProtoDeclare name='DvdController' appinfo='Digital Virtual Display (DVD) Controller Prototype is a heads-up display (HUD) to control animation timing' url=' "../../Tools/HeadsUpDisplays/DvdControllerPrototype.x3d#DvdController" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/DvdControllerPrototype.x3d#DvdController" "../../Tools/HeadsUpDisplays/DvdControllerPrototype.wrl#DvdController" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/DvdControllerPrototype.wrl#DvdController" '> |
81 |
<field name='description' type='SFString' accessType='initializeOnly'
appinfo='Short description of what is animated by this DvdController.'/> |
82 |
<field name='playEnabled' type='SFBool' accessType='initializeOnly'
appinfo='Whether or not play mode is enabled including during startup.'/> |
83 |
<field name='displayMode' type='SFString' accessType='initializeOnly'
appinfo='Initializes how control buttons and slider are displayed. The control buttons include DIS control (i.e. Master Ghost Local) and Playback control (i.e. Reset to Start Fast Rewind Rewind Pause Play Fast Forward Reset to End). Possible values are (case sensitive): ALL DIS_ONLY PLAYBACK_ONLY SLIDER_ONLY DIS_PLAYBACK DIS_SLIDER PLAYBACK_SLIDER and NONE.'/> |
84 |
<field name='setDisplayMode' type='SFString' accessType='inputOnly'
appinfo='Sets how control buttons and slider are displayed. The control buttons include DIS control (i.e. Master Ghost Local) and Playback control (i.e. Reset to Start Fast Rewind Rewind Pause Play Fast Forward Reset to End). Possible values are (case sensitive): ALL DIS_ONLY PLAYBACK_ONLY SLIDER_ONLY DIS_PLAYBACK DIS_SLIDER PLAYBACK_SLIDER and NONE.'/> |
85 |
<field name='buttonColor' type='SFColor' accessType='initializeOnly'
appinfo='Default button color.'/> |
86 |
<field name='selectedButtonColor' type='SFColor' accessType='initializeOnly'
appinfo='Button color when selected by user.'/> |
87 |
<field name='labelColor' type='SFColor' accessType='initializeOnly'
appinfo='Default label color.'/> |
88 |
<field name='selectedLabelColor' type='SFColor' accessType='initializeOnly'
appinfo='Label color when selected by user.'/> |
89 |
<field name='locationOffset' type='SFVec3f' accessType='initializeOnly'
appinfo='Modified screen location and distance (for size).'/> |
90 | <field name='clockEnabled' type='SFBool' accessType='initializeOnly'/> |
91 |
<field name='cycleInterval' type='SFTime' accessType='initializeOnly'
appinfo='Time for complete loop cycle in seconds.'/> |
92 | <field name='set_cycleInterval' type='SFTime' accessType='inputOnly'/> |
93 | <field name='cycleInterval_changed' type='SFTime' accessType='outputOnly'/> |
94 |
<field name='speedFactor' type='SFFloat' accessType='initializeOnly'
appinfo='Factor used to determine the speed increase/decrease for Fast Rewind and Fast Forward action.'/> |
95 | <field name='isActive' type='SFBool' accessType='outputOnly'/> |
96 | <field name='startTime_changed' type='SFTime' accessType='outputOnly'/> |
97 | <field name='stopTime_changed' type='SFTime' accessType='outputOnly'/> |
98 | <field name='time_changed' type='SFTime' accessType='outputOnly'/> |
99 | <field name='fraction_changed' type='SFFloat' accessType='outputOnly'/> |
100 | <field name='secondsElapsed' type='SFTime' accessType='outputOnly'/> |
101 |
<field name='isMaster' type='SFBool' accessType='outputOnly'
appinfo='isMaster isRemote and isLocal are booleans represent a 3-way toggle. Only one of them can have a true value at any time.'/> |
102 |
<field name='isRemote' type='SFBool' accessType='outputOnly'
appinfo='isMaster isRemote and isLocal are booleans represent a 3-way toggle. Only one of them can have a true value at any time.'/> |
103 |
<field name='isLocal' type='SFBool' accessType='outputOnly'
appinfo='isMaster isRemote and isLocal are booleans represent a 3-way toggle. Only one of them can have a true value at any time.'/> |
104 |
<field name='isPaused' type='SFBool' accessType='outputOnly'
appinfo='isPaused and isRunning always have opposite values. When isPaused is true isRunning will be false and vice versa.'/> |
105 |
<field name='isRunning' type='SFBool' accessType='outputOnly'
appinfo='isPaused and isRunning always have opposite values. When isPaused is true isRunning will be false and vice versa.'/> |
106 |
<field name='traceEnabled' type='SFBool' accessType='initializeOnly'
appinfo='Enable/disable console output for troubleshooting'/> |
107 | <field name='testTimeVal' type='SFTime' accessType='initializeOnly'/> |
108 | </ExternProtoDeclare> |
109 | <ExternProtoDeclare name='LineBoat' url=' "LineBoatPrototype.x3d#LineBoat" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/LineBoatPrototype.x3d#TerroristBoat" "LineBoatPrototype.wrl#LineBoat" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/LineBoatPrototype.wrl#TerroristBoat" '> |
110 | <field name='startExplosion' type='SFTime' accessType='inputOnly'/> |
111 | </ExternProtoDeclare> |
112 | <ExternProtoDeclare name='GarbageBoat' url=' "GarbageBoatPrototype.x3d#GarbageBoat" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/GarbageBoatPrototype.x3d#GarbageBoat" "GarbageBoatPrototype.wrl#GarbageBoat" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/GarbageBoatPrototype.wrl#GarbageBoat" '> |
113 | <field name='startExplosion' type='SFTime' accessType='inputOnly'/> |
114 | </ExternProtoDeclare> |
115 | <Group> |
116 | <NavigationInfo speed='100' type='"EXAMINE" "FLY" "ANY"' visibilityLimit='50000'/> |
117 | <Background groundAngle='1.309 1.570796' groundColor='0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0 0.2 0.7 0 0.5 1 1 1 1'/> |
118 | <!-- *****************************Main Scene Viewpoints****************** --> |
119 | <Group DEF='ViewPoints'> |
120 | <Viewpoint DEF='EntryView' description='Aden Chart' position='0 .1 4'/> |
121 | <Viewpoint description='Aden Chart Close Up' position='0 .5 2'/> |
122 | <Viewpoint description='Harbor View' orientation='1 0 0 -.95' position='17000 20000 40000'/> |
123 | <Viewpoint description='Overhead RefuelingDolphin Seven' orientation='1 0 0 -1.57' position='27838.31 700 14166.67'/> |
124 | <Viewpoint description='Final View of Terrorist Attack' position='27793.31 10 14330'/> |
125 | <!-- ***************************Scene Compass********************** --> |
126 | </Group> |
127 | <Transform DEF='Compass'> |
128 | <ProtoInstance name='CameraCompass12'> |
129 | <fieldValue name='enabled' value='true'/> |
130 | <fieldValue name='positionOffsetFromCamera' value='0 5 0'/> |
131 | <fieldValue name='markerColor' value='0.3 0.3 0.8'/> |
132 | <fieldValue name='labelColor' value='1 1 1'/> |
133 | </ProtoInstance> |
134 | </Transform> |
135 | <!-- ************DVD Controller for Scene************ --> |
136 | <!-- Looks like this must be instantiated before WaypointInterpolator in order to receive totalDuration value; this is a browser bug. --> |
137 | <!-- initialilze cycleInterval to correct value as default, in case initialization ROUTE fails. cycleInterval should not need to be reset, so this is superfluous. --> |
138 |
<!-- ROUTE information for ColeAnimationDvdController node:
[from ColeInterpolator.totalDuration to set_cycleInterval
]
[from fraction_changed to TerroristInterpolator.set_fraction
]
[from fraction_changed to LineBoatAInterpolator.set_fraction
]
[from fraction_changed to LineBoatBInterpolator.set_fraction
]
[from fraction_changed to GarbageBoatInterpolator.set_fraction
]
[from fraction_changed to ExplosionBinder.set_fraction
]
-->
<ProtoInstance name='DvdController' DEF='ColeAnimationDvdController'> |
139 | <fieldValue name='description' value='ColeAnimationDvdController'/> |
140 | <fieldValue name='buttonColor' value='0.655 0.655 0.655'/> |
141 | <fieldValue name='selectedButtonColor' value='0.675 0.675 0.675'/> |
142 | <fieldValue name='selectedLabelColor' value='0.9 0 0'/> |
143 | <fieldValue name='locationOffset' value='-6 -3 -1'/> |
144 | <fieldValue name='cycleInterval' value='13416'/> |
145 | <fieldValue name='speedFactor' value='25'/> |
146 | </ProtoInstance> |
147 | <!-- *************COLE Code************* --> |
148 |
<!-- ROUTE information for ColeTransform node:
[from ColeInterpolator.position_changed to set_translation
]
[from ColeInterpolator.orientation_changed to set_rotation
]
-->
<Transform DEF='ColeTransform'> |
149 |
<!-- ROUTE information for DDG-51 node:
[from TerroristTouch.touchTime to startExplosion
]
[from TimeFilter.startEventTime to startExplosion
]
-->
<ProtoInstance name='ArleighBurke' DEF='DDG-51'/> |
150 | </Transform> |
151 |
<!-- ROUTE information for ColeInterpolator node:
[from totalDuration to MasterClock.cycleInterval
]
[from totalDuration to ColeAnimationDvdController.set_cycleInterval
]
[from position_changed to ColeTransform.set_translation
]
[from orientation_changed to ColeTransform.set_rotation
]
-->
<ProtoInstance name='WaypointInterpolator' DEF='ColeInterpolator'> |
152 | <fieldValue name='description' value='ColeInterpolator'/> |
153 | <fieldValue name='waypoints' value='27000 0 34000 24000 0 29000 23000 0 22000 23000 0 18000 26500 0 15000 28950 0 14000 27838.31 0 14167 27838.31 0 14167'/> |
154 | <!-- 1 knot = 0.514444444 meters/second, 11 knots = 5.66 meters/second --> |
155 | <fieldValue name='legDurations' value='700 723 754 811 819 849 8760'/> |
156 | <fieldValue name='turningRate' value='5'/> |
157 | <fieldValue name='labelDisplayMode' value='interpolation'/> |
158 | <fieldValue name='lineColor' value='0 0.8 0.8'/> |
159 | <fieldValue name='labelColor' value='0 0.8 0.8'/> |
160 | <fieldValue name='labelOffset' value='0 20 0'/> |
161 | <fieldValue name='labelFontSize' value='6'/> |
162 | <fieldValue name='traceEnabled' value='false'/> |
163 | </ProtoInstance> |
164 | <!-- *************Terrorist Boat and Explosion Code*** --> |
165 |
<!-- ROUTE information for TerroristBoatTransform node:
[from TerroristInterpolator.position_changed to set_translation
]
[from TerroristInterpolator.orientation_changed to set_rotation
]
-->
<Transform DEF='TerroristBoatTransform' rotation='0 1 0 -0.5'> |
166 |
<!-- ROUTE information for Boat node:
[from TerroristTouch.touchTime to startExplosion
]
[from TimeFilter.startEventTime to startExplosion
]
-->
<ProtoInstance name='TerroristBoat' DEF='Boat'/> |
167 |
<!-- ROUTE information for TerroristTouch node:
[from touchTime to Boat.startExplosion
]
[from touchTime to TerroristExplosion.startExplosion
]
[from touchTime to DDG-51.startExplosion
]
-->
<TouchSensor DEF='TerroristTouch' description='touch to trigger explosion'/> |
168 | < ROUTE fromNode='TerroristTouch' fromField='touchTime' toNode='Boat' toField='startExplosion'/> |
169 | <!-- ********************Explosion Code***************** --> |
170 | <Transform DEF='TNTtransform' translation='9 0 0'> |
171 |
<!-- ROUTE information for TerroristExplosion node:
[from TerroristTouch.touchTime to startExplosion
]
[from TimeFilter.startEventTime to startExplosion
]
-->
<ProtoInstance name='TNTBasedExplosion' DEF='TerroristExplosion'/> |
172 | </Transform> |
173 | </Transform> |
174 |
<!-- ROUTE information for TerroristInterpolator node:
[from ColeAnimationDvdController.fraction_changed to set_fraction
]
[from totalDuration to TerroristClock.cycleInterval
]
[from position_changed to TerroristBoatTransform.set_translation
]
[from orientation_changed to TerroristBoatTransform.set_rotation
]
-->
<ProtoInstance name='WaypointInterpolator' DEF='TerroristInterpolator'> |
175 | <fieldValue name='description' value='TerroristInterpolator'/> |
176 | <fieldValue name='waypoints' value='25000 -9.5 14000 27000 -9.5 15000 27000 -9.5 14350 27793.31 -9.5 14300 27760.31 -9.5 14201 27760.31 -9.5 14201'/> |
177 | <!-- 1 knot = 0.514444444 meters/second, 11 knots = 5.66 meters/second --> |
178 | <fieldValue name='legDurations' value='9068 811 819 2698 88'/> |
179 | <fieldValue name='turningRate' value='5'/> |
180 | <fieldValue name='labelDisplayMode' value='interpolation'/> |
181 | <fieldValue name='lineColor' value='0.8 0.4 0.1'/> |
182 | <fieldValue name='labelColor' value='0.8 0.4 0.1'/> |
183 | <fieldValue name='labelOffset' value='0 10 0'/> |
184 | <fieldValue name='labelFontSize' value='3'/> |
185 | <fieldValue name='traceEnabled' value='false'/> |
186 | </ProtoInstance> |
187 | < ROUTE fromNode='TerroristTouch' fromField='touchTime' toNode='TerroristExplosion' toField='startExplosion'/> |
188 | < ROUTE fromNode='TerroristTouch' fromField='touchTime' toNode='DDG-51' toField='startExplosion'/> |
189 | <!-- *************Clock control************* --> |
190 | <!-- TimeSensor cycleInterval is reset when each WaypointInterpolator is initialized --> |
191 |
<!-- ROUTE information for MasterClock node:
[from ColeInterpolator.totalDuration to cycleInterval
]
[from fraction_changed to DummyInterpolator.set_fraction
]
-->
<TimeSensor DEF='MasterClock'/> |
192 |
<!-- ROUTE information for TerroristClock node:
[from TerroristInterpolator.totalDuration to cycleInterval
]
[from fraction_changed to DummyInterpolator.set_fraction
]
-->
<TimeSensor DEF='TerroristClock'/> |
193 | <!-- TODO: Delete if unneeded --> |
194 |
<!-- ROUTE information for DummyInterpolator node:
[from MasterClock.fraction_changed to set_fraction
]
[from TerroristClock.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='DummyInterpolator' key='0 1' keyValue='0 0 0 0 0 0'/> |
195 | <Group DEF='InlineGroup'> |
196 | <!-- *************Geography and Entry Point Code*** --> |
197 | <!-- <LOD center='27793.31 0 14159'/> --> |
198 | <Inline url=' "AdenHarbor.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/AdenHarbor.x3d" "AdenHarbor.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/AdenHarbor.wrl" '/> |
199 | <Inline url=' "AdenHarborChart.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/AdenHarborChart.x3d" "AdenHarborChart.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/AdenHarborChart.wrl" '/> |
200 | <!-- *************Refueling Pier Code************* --> |
201 | <Transform DEF='RefuelingDolphin' translation='27793.31 -10 14159'> |
202 | <Inline url=' "RefuelingPierSeven.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/RefuelingPierSeven.x3d" "RefuelingPierSeven.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Scenarios/UssColeTerroristAttack/RefuelingPierSeven.wrl" '/> |
203 | </Transform> |
204 | <!-- *******Background entities*********** --> |
205 | <Transform DEF='TankerTransform' rotation='0 1 0 3.24' translation='28550 0 14700'> |
206 | <Inline DEF='TANKER' url=' "../../ShipsCivilian/Supertanker/SupertankerExampleDay.x3d" "https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/Supertanker/SupertankerExampleDay.x3d" "../../ShipsCivilian/Supertanker/SupertankerExampleDay.wrl" "https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/Supertanker/SupertankerExampleDay.wrl" '/> |
207 | </Transform> |
208 | <Transform DEF='MerchantATransform' translation='27200 -6.5 15100'> |
209 |
<!-- Inline
MERCHANT is a DEF node that has 1 USE node: USE_1 --> <Inline DEF='MERCHANT' url=' "../../ShipsCivilian/MerchantLivestockCarrier/MerchantLivestockCarrier.x3d" "https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/MerchantLivestockCarrier/MerchantLivestockCarrier.x3d" "https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/MerchantLivestockCarrier/MerchantLivestockCarrier.wrl" '/> |
210 | </Transform> |
211 | <Transform DEF='MerchantBTransform' rotation='0 1 0 -.1' translation='27850 -6.5 14900'> |
212 | <Inline USE='MERCHANT'/> |
213 | </Transform> |
214 | </Group> |
215 | <!-- ***********Other Boat Entities in Scene********* --> |
216 | <!-- *******Line Boats************ --> |
217 |
<!-- ROUTE information for LineBoatATransform node:
[from LineBoatAInterpolator.position_changed to set_translation
]
[from LineBoatAInterpolator.orientation_changed to set_rotation
]
-->
<Transform DEF='LineBoatATransform' rotation='0 1 0 1.57'> |
218 | <ProtoInstance name='LineBoat' DEF='LINEBOATA'/> |
219 | </Transform> |
220 |
<!-- ROUTE information for LineBoatAInterpolator node:
[from ColeAnimationDvdController.fraction_changed to set_fraction
]
[from position_changed to LineBoatATransform.set_translation
]
[from orientation_changed to LineBoatATransform.set_rotation
]
-->
<ProtoInstance name='WaypointInterpolator' DEF='LineBoatAInterpolator'> |
221 | <fieldValue name='description' value='LineBoatAInterpolator'/> |
222 | <fieldValue name='waypoints' value='31215 -9.5 14316 31215 -9.5 14316 27838 -9.5 14186 27838 -9.5 14186 31215 -9.5 14316 31215 -9.5 14316 31215 -9.5 14316'/> |
223 | <!-- 1 knot = 0.514444444 meters/second, 11 knots = 5.66 meters/second --> |
224 | <fieldValue name='legDurations' value='4296 360 1260 360 10 7130'/> |
225 | <fieldValue name='turningRate' value='5'/> |
226 | <fieldValue name='labelDisplayMode' value='none'/> |
227 | <fieldValue name='lineColor' value='1 1 1'/> |
228 | <fieldValue name='labelColor' value='1 1 1'/> |
229 | <fieldValue name='labelOffset' value='0 10 0'/> |
230 | <fieldValue name='labelFontSize' value='3'/> |
231 | <fieldValue name='traceEnabled' value='false'/> |
232 | </ProtoInstance> |
233 |
<!-- ROUTE information for LineBoatBTransform node:
[from LineBoatBInterpolator.position_changed to set_translation
]
[from LineBoatBInterpolator.orientation_changed to set_rotation
]
-->
<Transform DEF='LineBoatBTransform' rotation='0 1 0 1.57'> |
234 | <ProtoInstance name='LineBoat' DEF='LINEBOATB'/> |
235 | </Transform> |
236 |
<!-- ROUTE information for LineBoatBInterpolator node:
[from ColeAnimationDvdController.fraction_changed to set_fraction
]
[from position_changed to LineBoatBTransform.set_translation
]
[from orientation_changed to LineBoatBTransform.set_rotation
]
-->
<ProtoInstance name='WaypointInterpolator' DEF='LineBoatBInterpolator'> |
237 | <fieldValue name='description' value='LineBoatBInterpolator'/> |
238 | <fieldValue name='waypoints' value='31200 -9.5 14216 31200 -9.5 14216 27760 -9.5 14201 27720 -9.5 14201 27720 -9.5 14201 31200 -9.5 14216 31200 -9.5 14216'/> |
239 | <!-- 1 knot = 0.514444444 meters/second, 11 knots = 5.66 meters/second --> |
240 | <fieldValue name='legDurations' value='4296 360 200 1260 360 6940'/> |
241 | <fieldValue name='turningRate' value='5'/> |
242 | <fieldValue name='labelDisplayMode' value='none'/> |
243 | <fieldValue name='lineColor' value='1 1 1'/> |
244 | <fieldValue name='labelColor' value='1 1 1'/> |
245 | <fieldValue name='labelOffset' value='0 10 0'/> |
246 | <fieldValue name='labelFontSize' value='3'/> |
247 | <fieldValue name='traceEnabled' value='false'/> |
248 | </ProtoInstance> |
249 | <!-- **********Garbage Boat*********** --> |
250 |
<!-- ROUTE information for GarbageBoatTransform node:
[from GarbageBoatInterpolator.position_changed to set_translation
]
[from GarbageBoatInterpolator.orientation_changed to set_rotation
]
-->
<Transform DEF='GarbageBoatTransform'> |
251 | <ProtoInstance name='GarbageBoat' DEF='GARBAGEBOAT'/> |
252 | </Transform> |
253 |
<!-- ROUTE information for GarbageBoatInterpolator node:
[from ColeAnimationDvdController.fraction_changed to set_fraction
]
[from position_changed to GarbageBoatTransform.set_translation
]
[from orientation_changed to GarbageBoatTransform.set_rotation
]
-->
<ProtoInstance name='WaypointInterpolator' DEF='GarbageBoatInterpolator'> |
254 | <fieldValue name='description' value='GarbageBoatInterpolator'/> |
255 | <fieldValue name='waypoints' value='30000 -9.75 14216 30000 -9.75 14216 27838 -9.75 14176 27838 -9.75 14176 27838 -9.75 14200 31200 -9.75 14200 31200 -9.75 14220'/> |
256 | <!-- 1 knot = 0.514444444 meters/second, 11 knots = 5.66 meters/second --> |
257 | <fieldValue name='legDurations' value='5736 300 600 600 360 5820'/> |
258 | <fieldValue name='turningRate' value='5'/> |
259 | <fieldValue name='labelDisplayMode' value='none'/> |
260 | <fieldValue name='lineColor' value='1 1 0'/> |
261 | <fieldValue name='labelColor' value='1 1 0'/> |
262 | <fieldValue name='labelOffset' value='0 10 0'/> |
263 | <fieldValue name='labelFontSize' value='3'/> |
264 | <fieldValue name='traceEnabled' value='false'/> |
265 | </ProtoInstance> |
266 | <!-- MasterClock is a simple TimeSensor, these ROUTEs are replaced. Farther down, route totalDuration to ColeAnimationDvdController.set_cycleInterval --> |
267 | < ROUTE fromNode='ColeInterpolator' fromField='totalDuration' toNode='MasterClock' toField='cycleInterval'/> |
268 | < ROUTE fromNode='TerroristInterpolator' fromField='totalDuration' toNode='TerroristClock' toField='cycleInterval'/> |
269 | < ROUTE fromNode='MasterClock' fromField='fraction_changed' toNode='DummyInterpolator' toField='set_fraction'/> |
270 | < ROUTE fromNode='TerroristClock' fromField='fraction_changed' toNode='DummyInterpolator' toField='set_fraction'/> |
271 | <!-- ColeAnimationDvdController replaces TimeSensor functionality --> |
272 | < ROUTE fromNode='ColeInterpolator' fromField='totalDuration' toNode='ColeAnimationDvdController' toField='set_cycleInterval'/> |
273 | < ROUTE fromNode='ColeAnimationDvdController' fromField='fraction_changed' toNode='TerroristInterpolator' toField='set_fraction'/> |
274 | < ROUTE fromNode='ColeAnimationDvdController' fromField='fraction_changed' toNode='LineBoatAInterpolator' toField='set_fraction'/> |
275 | < ROUTE fromNode='ColeAnimationDvdController' fromField='fraction_changed' toNode='LineBoatBInterpolator' toField='set_fraction'/> |
276 | < ROUTE fromNode='ColeAnimationDvdController' fromField='fraction_changed' toNode='GarbageBoatInterpolator' toField='set_fraction'/> |
277 | <!-- WaypointInterpolator drives both translation and rotation --> |
278 | < ROUTE fromNode='ColeInterpolator' fromField='position_changed' toNode='ColeTransform' toField='set_translation'/> |
279 | < ROUTE fromNode='ColeInterpolator' fromField='orientation_changed' toNode='ColeTransform' toField='set_rotation'/> |
280 | < ROUTE fromNode='TerroristInterpolator' fromField='position_changed' toNode='TerroristBoatTransform' toField='set_translation'/> |
281 | < ROUTE fromNode='TerroristInterpolator' fromField='orientation_changed' toNode='TerroristBoatTransform' toField='set_rotation'/> |
282 | < ROUTE fromNode='LineBoatAInterpolator' fromField='position_changed' toNode='LineBoatATransform' toField='set_translation'/> |
283 | < ROUTE fromNode='LineBoatAInterpolator' fromField='orientation_changed' toNode='LineBoatATransform' toField='set_rotation'/> |
284 | < ROUTE fromNode='LineBoatBInterpolator' fromField='position_changed' toNode='LineBoatBTransform' toField='set_translation'/> |
285 | < ROUTE fromNode='LineBoatBInterpolator' fromField='orientation_changed' toNode='LineBoatBTransform' toField='set_rotation'/> |
286 | < ROUTE fromNode='GarbageBoatInterpolator' fromField='position_changed' toNode='GarbageBoatTransform' toField='set_translation'/> |
287 | < ROUTE fromNode='GarbageBoatInterpolator' fromField='orientation_changed' toNode='GarbageBoatTransform' toField='set_rotation'/> |
288 | <!-- Boolean Sequencer Triggers Explosion at appropriate time if user hasn't. Sends a true value to the script TimeFilter which then sends the current timestamp to the appropriate proto's in the scene to trigger the explosion. --> |
289 |
<!-- ROUTE information for ExplosionBinder node:
[from ColeAnimationDvdController.fraction_changed to set_fraction
]
[from value_changed to TimeFilter.setStart
]
-->
<BooleanSequencer DEF='ExplosionBinder' key='0 0.9999999 1' keyValue='false false true'/> |
290 |
<!-- ROUTE information for TimeFilter node:
[from ExplosionBinder.value_changed to setStart
]
[from startEventTime to TerroristExplosion.startExplosion
]
[from startEventTime to DDG-51.startExplosion
]
[from startEventTime to Boat.startExplosion
]
-->
<Script DEF='TimeFilter'> |
291 | <field name='setStart' type='SFBool' accessType='inputOnly'/> |
292 | <field name='startEventTime' type='SFTime' accessType='outputOnly'/> |
<![CDATA[
ecmascript: function setStart ( value,timeStamp ) { if (value == true) startEventTime = timeStamp; }
]]>
|
|
294 | </Script> |
295 | < ROUTE fromNode='ColeAnimationDvdController' fromField='fraction_changed' toNode='ExplosionBinder' toField='set_fraction'/> |
296 | < ROUTE fromNode='ExplosionBinder' fromField='value_changed' toNode='TimeFilter' toField='setStart'/> |
297 | < ROUTE fromNode='TimeFilter' fromField='startEventTime' toNode='TerroristExplosion' toField='startExplosion'/> |
298 | < ROUTE fromNode='TimeFilter' fromField='startEventTime' toNode='DDG-51' toField='startExplosion'/> |
299 | < ROUTE fromNode='TimeFilter' fromField='startEventTime' toNode='Boat' toField='startExplosion'/> |
300 | </Group> |
301 | </Scene> |
302 | </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.
TerroristTouch
TouchSensor touchTime SFTime |
Boat
ProtoInstance startExplosion SFTime |
|
TerroristTouch
TouchSensor touchTime SFTime |
TerroristExplosion
ProtoInstance startExplosion SFTime |
|
TerroristTouch
TouchSensor touchTime SFTime |
DDG-51
ProtoInstance startExplosion SFTime |
line 128
ProtoInstance CameraCompass12 |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Boat
ProtoInstance TerroristBoat |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
DDG-51
ProtoInstance ArleighBurke |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
GARBAGEBOAT
ProtoInstance GarbageBoat |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
GarbageBoatInterpolator
ProtoInstance position_changed SFVec3f |
GarbageBoatTransform
Transform set_translation SFVec3f |
|
GarbageBoatInterpolator
ProtoInstance orientation_changed SFRotation |
GarbageBoatTransform
Transform set_rotation SFRotation |
LINEBOATA
ProtoInstance LineBoat |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
LineBoatAInterpolator
ProtoInstance position_changed SFVec3f |
LineBoatATransform
Transform set_translation SFVec3f |
|
LineBoatAInterpolator
ProtoInstance orientation_changed SFRotation |
LineBoatATransform
Transform set_rotation SFRotation |
LINEBOATB
ProtoInstance LineBoat |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
LineBoatBInterpolator
ProtoInstance position_changed SFVec3f |
LineBoatBTransform
Transform set_translation SFVec3f |
|
LineBoatBInterpolator
ProtoInstance orientation_changed SFRotation |
LineBoatBTransform
Transform set_rotation SFRotation |
TerroristExplosion
ProtoInstance TNTBasedExplosion |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
TerroristInterpolator
ProtoInstance totalDuration SFTime |
TerroristClock
TimeSensor cycleInterval SFTime |
then
|
TerroristClock
TimeSensor fraction_changed SFFloat |
DummyInterpolator
PositionInterpolator set_fraction SFFloat |
TerroristInterpolator
ProtoInstance position_changed SFVec3f |
TerroristBoatTransform
Transform set_translation SFVec3f |
|
TerroristInterpolator
ProtoInstance orientation_changed SFRotation |
TerroristBoatTransform
Transform set_rotation SFRotation |
<!--
Color-coding legend: X3D terminology
<X3dNode
DEF='idName' field='value'/>
matches XML terminology
<XmlElement
DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
<ProtoInstance name='ProtoName'>
<field
name='fieldName'/> </ProtoInstance>
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->