1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
|
3 | <X3D profile='Immersive' version='3.3' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.3.xsd'> |
4 | <head> |
5 | <meta name='title' content='MoveSeaByExtrusion14.x3d'/> |
6 | <meta name='creator' content='Marcus V. da S. Simoes'/> |
7 | <meta name='created' content='11 January 2001'/> |
8 | <meta name='modified' content='20 October 2019'/> |
9 | <meta name='description' content='Sea state rendering of ocean wave motion.'/> |
10 | <meta name='identifier' content='https://savage.nps.edu/Savage/Environment/SeaState/MoveSeaByExtrusion14.x3d'/> |
11 | <meta name='generator' content='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/> |
12 | <meta name='license' content='../../license.html'/> |
13 | </head> |
14 | <Scene> |
15 | <!-- Axis --> |
16 | <WorldInfo title='MoveSeaByExtrusion14.x3d'/> |
17 | <NavigationInfo speed='100'/> |
18 | <Background groundAngle='1.309 1.570796' groundColor='0.0 0.2 0.7 0.0 0.5 1.0 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0.0 0.2 0.7 0.0 0.5 1.0 0.6 0.6 0.6'/> |
19 | <!-- ================================================= --> |
20 | <!-- SeaState&DirectionControlPanel --> |
21 | <!-- ================================================= --> |
22 | <Transform DEF='SeaBoxSeaandRockIsland'> |
23 | <Shape> |
24 | <Box size='800 400 1000'/> |
25 | <Appearance> |
26 | <Material transparency='1'/> |
27 | </Appearance> |
28 | </Shape> |
29 | <Transform DEF='TheSeaState' translation='0 0 -500'> |
30 | <Transform translation='0 -5000 0'> |
31 | |
32 | <Appearance DEF='SeaColor'> |
33 | <ImageTexture url=' "pool.jpg " "https://savage.nps.edu/Savage/Environment/SeaState/pool.jpg " '/> |
34 | <Material diffuseColor='0 0 0' transparency='0.3'/> |
35 | </Appearance> |
36 |
<!-- ROUTE information for BasicExtrusion node:
[from Ondulation.value_changed to set_spine
]
-->
<Extrusion DEF='BasicExtrusion' beginCap='false' convex='false' creaseAngle='0.01' crossSection='0 0 0 10 0 0' endCap='false' solid='false' spine='0 0.0 0.0000 1.0 0.0204 1.0000 2.0 0.0161 2.0000 3.0 -0.0218 3.0000 4.0 -0.0791 4.0000 5.0 -0.1237 5.0000 6.0 -0.1224 6.000 7.0 -0.0598 7.0000 8.0 0.0503 8.0000 9.0 0.1661 9.0000 10.0 0.2348 10.0000 11.0 0.2163 11.0000 12.0 0.1041 12.0000 13.0 -0.0672 13.0000 14.0 -0.2326 14.0000 15.0 -0.3224 15.0000 16.0 -0.2920 16.0000 17.0 -0.1434 17.0000 18.0 0.0723 18.0000 19.0 0.2728 19.0000 20.0 0.3776 20.0000 21.0 0.3408 21.0000 22.0 0.1718 22.0000 23.0 -0.0670 23.0000 24.0 -0.2840 24.0000 25.0 -0.3951 25.0000 26.0 -0.3568 26.0000 27.0 -0.1846 27.0000 28.0 0.0541 28.0000 29.0 0.2668 29.0000 30.0 0.3734 30.0000 31.0 0.3373 31.0000 32.0 0.1782 32.0000 33.0 -0.0373 33.0000 34.0 -0.2246 34.0000 35.0 -0.3153 35.0000 36.0 -0.2831 36.0000 37.0 -0.1513 37.0000 38.0 0.0205 38.0000 39.0 0.1632 39.0000 40.0 0.2269 40.0000 41.0 0.1990 41.0000 42.0 0.1048 42.0000 43.0 -0.0074 43.0000 44.0 -0.0903 44.0000 45.0 -0.1177 45.0000 46.0 -0.0928 46.0000 47.0 -0.0423 47.0000 48.0 0.0006 48.0000 49.0 0.0142 49.0000 50.0 -0.0012 50.0000 51.0 -0.0251 51.0000 52.0 -0.0307 52.0000 53.0 -0.0015 53.0000 54.0 0.0571 54.0000 55.0 0.1175 55.0000 56.0 0.1429 56.0000 57.0 0.1069 57.0000 58.0 0.0098 58.0000 59.0 -0.1166 59.0000 60.0 -0.2197 60.0000 61.0 -0.2485 61.0000 62.0 -0.1780 62.0000 63.0 -0.0240 63.0000 64.0 0.1590 64.0000 65.0 0.2978 65.0000 66.0 0.3309 66.0000 67.0 0.2357 67.0000 68.0 0.0411 68.0000 69.0 -0.1814 69.0000 70.0 -0.3446 70.0000 71.0 -0.3815 71.0000 72.0 -0.2729 72.0000 73.0 -0.0574 73.0000 74.0 0.1834 74.0000 75.0 0.3563 75.0000 76.0 0.3946 76.0000 77.0 0.2841 77.0000 78.0 0.0689 78.0000 79.0 -0.1668 79.0000 80.0 -0.3327 80.0000 81.0 -0.3686 81.0000 82.0 -0.2664 82.0000 83.0 -0.0721 83.0000 84.0 0.1355 84.0000 85.0 0.2774 85.0000 86.0 0.3057 86.0000 87.0 0.2201 87.0000 88.0 0.0645 88.0000 89.0 -0.0946 89.0000 90.0 -0.1969 90.0000 91.0 -0.2121 91.0000 92.0 -0.1485 92.0000 93.0 -0.0450 93.0000 94.0 0.0499 94.0000 95.0 0.1004 95.0000 96.0 0.0972 96.0000 97.0 0.0580 97.0000 98.0 0.0142 98.0000 99.0 -0.0071 99.0000 100.0 0.0020 100.0'/> |
37 | </Shape> |
38 | </Transform> |
39 |
<!-- ROUTE information for SeaStateNumber node:
[from SeaStateChoiceToValue.SeaStateValue to whichChoice
]
-->
<Switch DEF='SeaStateNumber' whichChoice='0'> |
40 | <Group DEF='SeaState_1'> |
41 | <Transform DEF='SST1Escale' scale='100 .05 100'> |
42 | <Shape USE='BasicWave'/> |
43 | </Transform> |
44 | </Group> |
45 | <Group DEF='SeaState_2'> |
46 | <Transform DEF='SST2Scale' scale='100 1 100'> |
47 | <Shape USE='BasicWave'/> |
48 | </Transform> |
49 | </Group> |
50 | <Group DEF='SeaState_3'> |
51 | <Transform DEF='SST3Scale' scale='100 2 100'> |
52 | <Shape USE='BasicWave'/> |
53 | </Transform> |
54 | </Group> |
55 | <Group DEF='SeaState_4'> |
56 | <Transform DEF='SST4Scale' scale='100 4 100'> |
57 | <Shape USE='BasicWave'/> |
58 | </Transform> |
59 | </Group> |
60 | <Group DEF='SeaState_5'> |
61 | <Transform DEF='SST5Scale' scale='100 8 100'> |
62 | <Shape USE='BasicWave'/> |
63 | </Transform> |
64 | </Group> |
65 | <Group DEF='SeaState_6'> |
66 | <Transform DEF='SSTScale6' scale='100 12 100'> |
67 | <Shape USE='BasicWave'/> |
68 | </Transform> |
69 | </Group> |
70 | <Group DEF='SeaState_7'> |
71 | <Transform DEF='SSTScale7' scale='100 16 100'> |
72 | <Shape USE='BasicWave'/> |
73 | </Transform> |
74 | </Group> |
75 | <Group DEF='SeaState_8'> |
76 | <Transform DEF='SSTScale8' scale='100 21 100'> |
77 | <Shape USE='BasicWave'/> |
78 | </Transform> |
79 | </Group> |
80 | </Switch> |
81 | </Transform> |
82 | <Group DEF='TheBeach'> |
83 | <Transform scale='25 120 25' translation='-400 -2 -400'> |
84 | <Shape> |
85 | <ElevationGrid DEF='BeachElevation' xDimension='10' zDimension='10' height='0.0000 0.0025 0.0049 0.0070 0.0088 0.0102 0.0110 0.0112 0.0108 0.0096 0.0078 0.0052 0.0019 -0.0020 -0.0066 -0.0116 -0.0171 -0.0228 -0.0287 -0.0347 -0.0405 -0.0461 -0.0512 -0.0558 -0.0596 -0.0626 -0.0645 -0.0654 -0.0651 -0.0636 -0.0607 -0.0565 -0.0510 -0.0443 -0.0363 -0.0271 -0.0170 -0.0060 0.0057 0.0179 0.0305 0.0431 0.0557 0.0678 0.0794 0.0901 0.0997 0.1081 0.1150 0.1202 0.1236 0.1250 0.1244 0.1217 0.1268 0.1299 0.128 0.0897 0.0768 0.0622 0.0460 0.0286 0.101 -0.0091 -0.0287 -0.0485 -0.0680 -0.0870 -0.1051 -0.1220 -0.1373 -0.1508 -0.1622 -0.1713 -0.1778 -0.1815 -0.1824 -0.1804 -0.1754 -0.1673 -0.1564 -0.1427 -0.1264 -0.1076 -0.0867 -0.0639 -0.0396 -0.0142 0.0 0.0 0.0 0.0 0.10 0.1 0.14 0.11 0.11 0.0 0.04 0.0'/> |
86 | <Appearance> |
87 | <ImageTexture url=' "rocks_1.jpg " "https://savage.nps.edu/Savage/Environment/SeaState/clouds2.jpg " '/> |
88 | </Appearance> |
89 | </Shape> |
90 | </Transform> |
91 | <Transform DEF='BeachView' rotation='0 1 0 1.2' translation='250 10 100'> |
92 | <Viewpoint description='ROCK VIEW'/> |
93 | </Transform> |
94 | </Group> |
95 | </Transform> |
96 | <!-- ================================================= --> |
97 | <!-- SeaLevelChoiceGroup --> |
98 | <!-- ================================================= --> |
99 | <Group DEF='SeaStateAndDirectionControlPanel'> |
100 | <Transform translation='0 100 4000'> |
101 | <Billboard> |
102 | <Group DEF='SeaStateChoice'> |
103 | <Transform DEF='Option1' translation='0 -2.0 0'> |
104 | <Transform DEF='Box1' translation='0 .1 0'> |
105 | <Shape DEF='BoxSensor'> |
106 | <Box size='1 .4 .1'/> |
107 | <Appearance> |
108 | <Material diffuseColor='0 0 1' specularColor='0 0 1' transparency='.9'/> |
109 | </Appearance> |
110 | </Shape> |
111 |
<!-- ROUTE information for TouchSensorSeaState1 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice1
]
-->
<TouchSensor DEF='TouchSensorSeaState1' description='touch to activate'/> |
112 | <Transform DEF='Text1' scale='.25 .25 .25' translation='0 0 .1'> |
113 | <Shape> |
114 | <Text string='"SST 1"'> |
115 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
116 | </Text> |
117 | <Appearance> |
118 | <Material emissiveColor='.8 .8 .8'/> |
119 | </Appearance> |
120 | </Shape> |
121 | </Transform> |
122 | </Transform> |
123 | </Transform> |
124 | <Transform DEF='Option2' translation='0 -1.5 0'> |
125 | <Transform DEF='Box2' translation='0 .1 0'> |
126 | <Shape> |
127 | <Box size='1 .4 .1'/> |
128 | <Appearance> |
129 | <Material diffuseColor='0 0 .8' transparency='.7'/> |
130 | </Appearance> |
131 | </Shape> |
132 |
<!-- ROUTE information for TouchSensorSeaState2 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice2
]
-->
<TouchSensor DEF='TouchSensorSeaState2' description='touch to activate'/> |
133 | <Transform DEF='Text2' scale='.25 .25 .25' translation='0 0 .1'> |
134 | <Shape> |
135 | <Text string='"SST 2"'> |
136 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
137 | </Text> |
138 | <Appearance> |
139 | <Material emissiveColor='.8 .8 .8'/> |
140 | </Appearance> |
141 | </Shape> |
142 | </Transform> |
143 | </Transform> |
144 | </Transform> |
145 | <Transform DEF='Option3' translation='0 -1.0 0'> |
146 | <Transform DEF='Box3' translation='0 .1 0'> |
147 | <Shape> |
148 | <Box size='1 .4 .1'/> |
149 | <Appearance> |
150 | <Material diffuseColor='0 0 .8' transparency='.7'/> |
151 | </Appearance> |
152 | </Shape> |
153 |
<!-- ROUTE information for TouchSensorSeaState3 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice3
]
-->
<TouchSensor DEF='TouchSensorSeaState3' description='touch to activate'/> |
154 | <Transform DEF='Text3' scale='.25 .25 .25' translation='0 0 .1'> |
155 | <Shape> |
156 | <Text string='"SST 3"'> |
157 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
158 | </Text> |
159 | <Appearance> |
160 | <Material emissiveColor='.8 .8 .8'/> |
161 | </Appearance> |
162 | </Shape> |
163 | </Transform> |
164 | </Transform> |
165 | </Transform> |
166 | <Transform DEF='Option4' translation='0 -0.5 0'> |
167 | <Transform DEF='Box4' translation='0 .1 0'> |
168 | <Shape> |
169 | <Box size='1 .4 .1'/> |
170 | <Appearance> |
171 | <Material diffuseColor='0 0.8 0' transparency='0.8'/> |
172 | </Appearance> |
173 | </Shape> |
174 |
<!-- ROUTE information for TouchSensorSeaState4 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice4
]
-->
<TouchSensor DEF='TouchSensorSeaState4' description='touch to activate'/> |
175 | <Transform DEF='Text4' scale='.25 .25 .25' translation='0 0 .1'> |
176 | <Shape> |
177 | <Text string='"SST 4"'> |
178 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
179 | </Text> |
180 | <Appearance> |
181 | <Material emissiveColor='.8 .8 .8'/> |
182 | </Appearance> |
183 | </Shape> |
184 | </Transform> |
185 | </Transform> |
186 | </Transform> |
187 | <Transform DEF='Option5'> |
188 | <Transform DEF='Box5' translation='0 .1 0'> |
189 | <Shape> |
190 | <Box size='1 .4 .1'/> |
191 | <Appearance> |
192 | <Material diffuseColor='0 .5 0' transparency='.4'/> |
193 | </Appearance> |
194 | </Shape> |
195 | <Transform DEF='Text5' scale='.25 .25 .25' translation='0 0 .1'> |
196 | <Shape> |
197 | <Text string='"SST 5"'> |
198 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
199 | </Text> |
200 | <Appearance> |
201 | <Material emissiveColor='.8 .8 .8'/> |
202 | </Appearance> |
203 | </Shape> |
204 | </Transform> |
205 |
<!-- ROUTE information for TouchSensorSeaState5 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice5
]
-->
<TouchSensor DEF='TouchSensorSeaState5' description='touch to activate'/> |
206 | </Transform> |
207 | </Transform> |
208 | <Transform DEF='Option6' translation='0 .5 0'> |
209 | <Transform DEF='Box6' translation='0 .1 0'> |
210 | <Transform DEF='Text6' scale='.25 .25 .25' translation='0 0 .1'> |
211 | <Shape> |
212 | <Text string='"SST 6"'> |
213 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
214 | </Text> |
215 | <Appearance> |
216 | <Material emissiveColor='.8 .8 .8'/> |
217 | </Appearance> |
218 | </Shape> |
219 | </Transform> |
220 | <Shape> |
221 | <Box size='1 .4 .1'/> |
222 | <Appearance> |
223 | <Material diffuseColor='.2 0 0' transparency='0.8'/> |
224 | </Appearance> |
225 | </Shape> |
226 |
<!-- ROUTE information for TouchSensorSeaState6 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice6
]
-->
<TouchSensor DEF='TouchSensorSeaState6' description='touch to activate'/> |
227 | </Transform> |
228 | </Transform> |
229 | <Transform DEF='Option7' translation='0 1.0 0'> |
230 | <Transform DEF='Box7' translation='0 .1 0'> |
231 | <Transform DEF='Text7' scale='.25 .25 .25' translation='0 0 .1'> |
232 | <Shape> |
233 | <Text string='"SST 7"'> |
234 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
235 | </Text> |
236 | <Appearance> |
237 | <Material emissiveColor='.8 .8 .8'/> |
238 | </Appearance> |
239 | </Shape> |
240 | </Transform> |
241 | <Shape> |
242 | <Box size='1 .4 .1'/> |
243 | <Appearance> |
244 | <Material diffuseColor='.5 0 0' transparency='0.7'/> |
245 | </Appearance> |
246 | </Shape> |
247 |
<!-- ROUTE information for TouchSensorSeaState7 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice7
]
-->
<TouchSensor DEF='TouchSensorSeaState7' description='touch to activate'/> |
248 | </Transform> |
249 | </Transform> |
250 | <Transform DEF='Option8' translation='0 1.5 0'> |
251 | <Transform DEF='Box8' translation='0 .1 0'> |
252 | <Transform DEF='Text8' scale='.25 .25 .25' translation='0 0 .1'> |
253 | <Shape> |
254 | <Text string='"SST 8"'> |
255 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
256 | </Text> |
257 | <Appearance> |
258 | <Material emissiveColor='.8 .8 .8'/> |
259 | </Appearance> |
260 | </Shape> |
261 | </Transform> |
262 | <Shape> |
263 | <Box size='1 .4 .1'/> |
264 | <Appearance> |
265 | <Material diffuseColor='1 0 0' transparency='0.5'/> |
266 | </Appearance> |
267 | </Shape> |
268 |
<!-- ROUTE information for TouchSensorSeaState8 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice8
]
-->
<TouchSensor DEF='TouchSensorSeaState8' description='touch to activate'/> |
269 | </Transform> |
270 | </Transform> |
271 | <Transform translation='0 0 -3'> |
272 | <Shape> |
273 | <Box size='2 6.5 0.2'/> |
274 | <Appearance> |
275 | <Material diffuseColor='.3 .3 .3'/> |
276 | </Appearance> |
277 | </Shape> |
278 | </Transform> |
279 | </Group> |
280 | </Billboard> |
281 | <Viewpoint description='SEA PANEL' position='-2 0 6'/> |
282 | </Transform> |
283 | </Group> |
284 | <!-- ================================================= --> |
285 | <!-- TaskForce --> |
286 | <!-- ================================================= --> |
287 | <Group DEF='TaskForce'> |
288 | <!-- Cruiser --> |
289 |
<!-- ROUTE information for ShipVelocity node:
[from ShipBuoyanceHeight.value_changed to set_translation
]
-->
<Transform DEF='ShipVelocity' rotation='0 1 0 2.357'> |
290 |
<!-- ROUTE information for ShipBuoyance node:
[from ShipBuoyanceHeight.value_changed to set_translation
]
[from SubBuoyanceHeigth.value_changed to set_translation
]
-->
<Transform DEF='ShipBuoyance'> |
291 |
<!-- ROUTE information for ShipPitch node:
[from Pitch.value_changed to set_rotation
]
-->
<Transform DEF='ShipPitch'> |
292 |
<!-- ROUTE information for ShipRoll node:
[from Roll.value_changed to set_rotation
]
-->
<Transform DEF='ShipRoll'> |
293 | <Inline url=' "../../ShipsMilitary/CruiserUnitedStates/Cruiser.x3d" "https://savage.nps.edu/Savage/ShipsMilitary/CruiserUnitedStates/Cruiser.x3d" "../../ShipsMilitary/CruiserUnitedStates/Cruiser.wrl" "https://savage.nps.edu/Savage/ShipsMilitary/CruiserUnitedStates/Cruiser.wrl" '/> |
294 | <Transform translation='38 18.5 -9.5'> |
295 | <Viewpoint DEF='ShipBridge' description='BRIDGE VIEW' fieldOfView='1.51' orientation='0 1 0 -1.57'/> |
296 | </Transform> |
297 | </Transform> |
298 | </Transform> |
299 | <Viewpoint DEF='TopView' description='AERIAL VIEW' orientation='1 0 0 -1.571' position='0 500 0'/> |
300 | </Transform> |
301 | </Transform> |
302 | <!-- SubmarineSimulation@5mDepth --> |
303 | <Transform DEF='SubBuoyance' rotation='0 1 0 0.785' scale='.1 .1 .1' translation='300 -10 -300'> |
304 |
<!-- ROUTE information for SubPitch node:
[from Pitch.value_changed to set_rotation
]
-->
<Transform DEF='SubPitch'> |
305 |
<!-- ROUTE information for SubRoll node:
[from Roll.value_changed to set_rotation
]
-->
<Transform DEF='SubRoll'> |
306 | <Transform> |
307 | <Inline url=' "../../Submarines/SsnLosAngelesUnitedStates/688.x3d" "https://savage.nps.edu/Savage/Submarines/SsnLosAngelesUnitedStates/688.x3d" "../../Submarines/SsnLosAngelesUnitedStates/688.wrl" "https://savage.nps.edu/Savage/Submarines/SsnLosAngelesUnitedStates/688.wrl" '/> |
308 | <Viewpoint description='PERISCOPE VIEW' fieldOfView='0.4' orientation='0 1 0 1.57' position='0 120 0'/> |
309 | </Transform> |
310 | </Transform> |
311 | </Transform> |
312 | </Transform> |
313 | </Group> |
314 | <!-- ================================================= --> |
315 | <!-- AnimationClock --> |
316 | <!-- ================================================= --> |
317 | <Group DEF='TimeSensors'> |
318 |
<!-- ROUTE information for ShipClock node:
[from fraction_changed to ShipBuoyanceHeight.set_fraction
]
-->
<TimeSensor DEF='ShipClock' cycleInterval='80' loop='true'/> |
319 |
<!-- ROUTE information for BuoyanceClock node:
[from fraction_changed to ShipBuoyanceHeight.set_fraction
]
[from fraction_changed to SubBuoyanceHeigth.set_fraction
]
-->
<TimeSensor DEF='BuoyanceClock' cycleInterval='80' loop='true'/> |
320 |
<!-- ROUTE information for PitchClock node:
[from fraction_changed to Pitch.set_fraction
]
-->
<TimeSensor DEF='PitchClock' cycleInterval='25' loop='true'/> |
321 |
<!-- ROUTE information for RollClock node:
[from fraction_changed to Roll.set_fraction
]
-->
<TimeSensor DEF='RollClock' cycleInterval='40' loop='true'/> |
322 |
<!-- ROUTE information for Clock node:
[from fraction_changed to Ondulation.set_fraction
]
-->
<TimeSensor DEF='Clock' cycleInterval='45' loop='true'/> |
323 | </Group> |
324 | <!-- ================================================= --> |
325 | <!-- Interpolators --> |
326 | <!-- ================================================= --> |
327 | <!-- MovingTheShip --> |
328 | <Group DEF='Orientation'> |
329 |
<!-- ROUTE information for Roll node:
[from SeaStateChoiceToValue.RollValue to set_keyValue
]
[from RollClock.fraction_changed to set_fraction
]
[from value_changed to ShipRoll.set_rotation
]
[from value_changed to SubRoll.set_rotation
]
-->
<OrientationInterpolator DEF='Roll' key='0.0 0.5 1.0' keyValue='1 0 0 -0.08 1 0 0 0.08 1 0 0 -0.08'/> |
330 |
<!-- ROUTE information for Pitch node:
[from SeaStateChoiceToValue.PitchValue to set_keyValue
]
[from PitchClock.fraction_changed to set_fraction
]
[from value_changed to ShipPitch.set_rotation
]
[from value_changed to SubPitch.set_rotation
]
-->
<OrientationInterpolator DEF='Pitch' key='0.0 0.5 1.0' keyValue='0 0 1 -0.03 0 0 1 0.03 0 0 1 -0.03'/> |
331 |
<!-- ROUTE information for ShipBuoyanceHeight node:
[from SeaStateChoiceToValue.BuoyanceValue to set_keyValue
]
[from SeaStateChoiceToValue.BuoyanceKeyValues to set_key
]
[from BuoyanceClock.fraction_changed to set_fraction
]
[from ShipClock.fraction_changed to set_fraction
]
[from value_changed to ShipBuoyance.set_translation
]
[from value_changed to ShipVelocity.set_translation
]
-->
<PositionInterpolator DEF='ShipBuoyanceHeight' key='0 0.0100 0.0200 0.0300 0.0400 0.0500 0.0600 0.0700 0.0800 0.0900 0.1000 0.1100 0.1200 0.1300 0.1400 0.1500 0.1600 0.1700 0.1800 0.1900 0.2000 0.2100 0.2200 0.2300 0.2400 0.2500 0.2600 0.2700 0.2800 0.2900 0.3000 0.3100 0.3200 0.3300 0.3400 0.3500 0.3600 0.3700 0.3800 0.3900 0.4000' keyValue='400.0 1.1345 400.0000 390.0 0.8160 390.0000 380.0 0.1025 380.0000 370.0 -0.7565 370.0000 360.0 -1.4155 360.0000 350.0 -1.5765 350.0000 340.0 -1.1230 340.0000 330.0 -0.1865 330.0000 320.0 0.8910 320.0000 310.0 1.6865 310.0000 300.0 1.8670 300.0000 290.0 1.3340 290.0000 280.0 0.2705 280.0000 270.0 -0.9230 270.0000 260.0 -1.7840 260.0000 250.0 -1.9755 250.0000 240.0 -1.4200 240.0000 230.0 -0.3350 230.0000 220.0 0.8590 220.0000 210.0 1.7040 210.0000 200.0 1.8880 200.0000 190.0 1.3640 190.0000 180.0 0.3615 180.0000 170.0 -0.7170 170.0000 160.0 -1.4600 160.0000 150.0 -1.6120 150.0000 140.0 -1.1630 140.0000 130.0 -0.3360 130.0000 120.0 0.5205 120.0000 110.0 1.0815 110.0000 100.0 1.1740 100.0000 90.0 0.8305 90.0000 80.0 0.2515 80.0000 70.0 -0.2990 70.0000 60.0 -0.6120 60.0000 50.0 -0.6185 50.0000 40.0 -0.3955 40.0000 30.0 -0.1090 30.0000 20.0 0.0805 20.0000 10.0 0.1020 10.0000 0 0 0'/> |
332 |
<!-- ROUTE information for SubBuoyanceHeigth node:
[from BuoyanceClock.fraction_changed to set_fraction
]
[from value_changed to ShipBuoyance.set_translation
]
-->
<PositionInterpolator DEF='SubBuoyanceHeigth' key='0 0.0100 0.0200 0.0300 0.0400 0.0500 0.0600 0.0700 0.0800 0.0900 0.1000 0.1100 0.1200 0.1300 0.1400 0.1500 0.1600 0.1700 0.1800 0.1900 0.2000 0.2100 0.2200 0.2300 0.2400 0.2500 0.2600 0.2700 0.2800 0.2900 0.3000 0.3100 0.3200 0.3300 0.3400 0.3500 0.3600 0.3700 0.3800 0.3900 0.4000' keyValue='300.0 -0.0060 -300.0000 300.0 0.0710 -300.0000 300.0 0.0030 -300.0000 300.0 -0.2115 -300.0000 300.0 -0.4640 -300.0000 300.0 -0.5885 -300.0000 300.0 -0.4515 -300.0000 300.0 -0.0370 -300.0000 300.0 0.5240 -300.0000 300.0 0.9950 -300.0000 300.0 1.1345 -300.0000 300.0 0.8160 -300.0000 300.0 0.1025 -300.0000 300.0 -0.7565 -300.0000 300.0 -1.4155 -300.0000 300.0 -1.5765 -300.0000 300.0 -1.1230 -300.0000 300.0 -0.1865 -300.0000 300.0 0.8910 -300.0000 300.0 1.6865 -300.0000 300.0 1.8670 -300.0000 300.0 1.3340 -300.0000 300.0 0.2705 -300.0000 300.0 -0.9230 -300.0000 300.0 -1.7840 -300.0000 300.0 -1.9755 -300.0000 300.0 -1.4200 -300.0000 300.0 -0.3350 -300.0000 300.0 0.8590 -300.0000 300.0 1.7040 -300.0000 300.0 1.8880 -300.0000 300.0 1.3640 -300.0000 300.0 -0.7170 -300.0000 300.0 -1.4600 -300.0000 300.0 -1.6120 -300.0000 300.0 -1.1630 -300.0000 300.0 -0.3360 -300.0000 300.0 0.5205 -300.0000 300.0 1.0815 -300.0000 300.0 1.1740 -300.0000 300.0 0.8305 -300.0'/> |
333 | </Group> |
334 | <!-- MovingTheSea --> |
335 | <Group DEF='Coordinate'> |
336 |
<!-- ROUTE information for Ondulation node:
[from Clock.fraction_changed to set_fraction
]
[from value_changed to BasicExtrusion.set_spine
]
-->
<CoordinateInterpolator DEF='Ondulation' key='0.0 0.25 0.50 0.75 1.0' keyValue='-4.100 0.0 0 -4.0 0.0 0 -3.529 0.674 0 -3.059 0.996 0 -2.588 0.798 0 -2.118 0.184 0 -1.647 -0.526 0 -1.176 -0.962 0 -0.706 -0.895 0 -0.235 -0.361 0 0.235 0.361 0 0.706 0.895 0 1.176 0.962 0 1.647 0.526 0 2.118 -0.184 0 2.588 -0.798 0 3.059 -0.996 0 3.529 -0.674 0 4.0 0.0 0 -4.100 -1.0 0 -4.0 -1.0 0 -3.529 -0.739 0 -3.059 -0.092 0 -2.588 0.603 0 -2.118 0.983 0 -1.647 0.850 0 -1.176 0.274 0 -0.706 -0.446 0 -0.235 -0.932 0 0.235 -0.932 0 0.706 -0.446 0 1.176 0.274 0 1.647 0.850 0 2.118 0.983 0 2.588 0.603 0 3.059 -0.092 0 3.529 -0.739 0 4.0 -1.0 0 -4.100 0.0 0 -4.0 0.0 0 -3.529 -0.674 0 -3.059 -0.996 0 -2.588 -0.798 0 -2.118 -0.184 0 -1.647 0.526 0 -1.176 0.962 0 -0.706 0.895 0 -0.235 0.361 0 0.235 -0.361 0 0.706 -0.895 0 1.176 -0.962 0 1.647 -0.526 0 2.118 0.184 0 2.588 0.798 0 3.059 0.996 0 3.529 0.674 0 4.0 0.0 0 -4.100 1.0 0 -4.0 1.0 0 -3.529 0.739 0 -3.059 0.092 0 -2.588 -0.603 0 -2.118 -0.983 0 -1.647 -0.850 0 -1.176 -0.274 0 -0.706 0.446 0 -0.235 0.932 0 0.235 0.932 0 0.706 0.446 0 1.176 -0.274 0 1.647 -0.850 0 2.118 -0.983 0 2.588 -0.603 0 3.059 0.092 0 3.529 0.739 0 4.0 1.0 0 -4.100 0.0 0 -4.0 0.0 0 -3.529 0.674 0 -3.059 0.996 0 -2.588 0.798 0 -2.118 0.184 0 -1.647 -0.526 0 -1.176 -0.962 0 -0.706 -0.895 0 -0.235 -0.361 0 0.235 0.361 0 0.706 0.895 0 1.176 0.962 0 1.647 0.526 0 2.118 -0.184 0 2.588 -0.798 0 3.059 -0.996 0 3.529 -0.674 0 4.0 0.0 0'/> |
337 | </Group> |
338 | <!-- ================================================= --> |
339 | <!-- Scripts --> |
340 | <!-- ================================================= --> |
341 | <Group DEF='ScriptsForWaveMovement'> |
342 |
<!-- ROUTE information for SeaStateChoiceToValue node:
[from TouchSensorSeaState1.isActive to SeaStateChoice1
]
[from TouchSensorSeaState2.isActive to SeaStateChoice2
]
[from TouchSensorSeaState3.isActive to SeaStateChoice3
]
[from TouchSensorSeaState4.isActive to SeaStateChoice4
]
[from TouchSensorSeaState5.isActive to SeaStateChoice5
]
[from TouchSensorSeaState6.isActive to SeaStateChoice6
]
[from TouchSensorSeaState7.isActive to SeaStateChoice7
]
[from TouchSensorSeaState8.isActive to SeaStateChoice8
]
[from SeaStateValue to SeaStateNumber.whichChoice
]
[from BuoyanceValue to ShipBuoyanceHeight.set_keyValue
]
[from BuoyanceKeyValues to ShipBuoyanceHeight.set_key
]
[from PitchValue to Pitch.set_keyValue
]
[from RollValue to Roll.set_keyValue
]
-->
<Script DEF='SeaStateChoiceToValue'> |
343 | <field name='SeaStateChoice0' type='SFBool' accessType='inputOnly'/> |
344 | <field name='SeaStateChoice1' type='SFBool' accessType='inputOnly'/> |
345 | <field name='SeaStateChoice2' type='SFBool' accessType='inputOnly'/> |
346 | <field name='SeaStateChoice3' type='SFBool' accessType='inputOnly'/> |
347 | <field name='SeaStateChoice4' type='SFBool' accessType='inputOnly'/> |
348 | <field name='SeaStateChoice5' type='SFBool' accessType='inputOnly'/> |
349 | <field name='SeaStateChoice6' type='SFBool' accessType='inputOnly'/> |
350 | <field name='SeaStateChoice7' type='SFBool' accessType='inputOnly'/> |
351 | <field name='SeaStateChoice8' type='SFBool' accessType='inputOnly'/> |
352 | <field name='SeaStateValue' type='SFInt32' accessType='outputOnly'/> |
353 | <field name='BuoyanceValue' type='MFVec3f' accessType='outputOnly'/> |
354 | <field name='BuoyanceKeyValues' type='MFFloat' accessType='outputOnly'/> |
355 | <field name='PitchValue' type='MFRotation' accessType='outputOnly'/> |
356 | <field name='RollValue' type='MFRotation' accessType='outputOnly'/> |
<![CDATA[
ecmascript: // Return the numeric value of SST button clicked //mfVec3fObjectName = new MFVec3f(SFVec3f v1, SFVec3f v2,...) //sfVec3fObjectName = new SFVec3f(numeric x, numeric y, numeric z) //sfRotationObjectName = new SFRotation(numeric x, numeric y, numeric z, numeric angle) //mfRotationObjectName = new MFRotation(SFRotation r1, SFRotation r2, ...) //mfFloatObjectName = new MFFloat(numeric n1, numeric n2, ...) //Sea state 4 ( Beaufort=4-6)with wind=20 Knots // freq=0.124(8.1 period) // wavelength=159.2m // waveheight=4-8 ft or 1.32m-2.64 meam +/- 1.98=2.00m function initialize () { SeaStateValue = 0; } //function ComputeSSH(Ssh) //Sea state 1 (Beaufort 2 to 3) with wind 4 to 10 Knots // freq = .5 ( period (T)) // wavelength= 12.5 m (L) // waveheight=2-4 (3 as mean or ft or 0.91 meam +/- .91m ( A ) //{ // A=0.91; // L=12.5; // k=1/159.2; // f=0.5; // pi=3.141592; // T=8.1; // for ( var x=0, t=0 ; i <= 10 ; x=x+0.1, t=t+0.1); // theta0=0; // theta1=pi/12; // theta2=-pi/12; // w=2*pi*0.124; // height=A*cos(2*pi*((x/L)-(t/T))); // saida=[x t height]; // return height; //} function SeaStateChoice1 (inputBoolean, timestamp) { if (inputBoolean) { // ComputeSSH(1); SeaStateValue = 0; L=1 y0=L* -0.0060 y1=L*0.0710 y2=L*0.0030 y3=L*-0.2115 y4=L*-0.4640 y5=L*-0.5885 y6=L*-0.4515 y7=L*-0.0370 y8=L*0.5240 y9=L*0.9950 y10=L*1.1345 y11=L*0.8160 y12=L*0.1025 y13=L*-0.7565 y14=L*-1.4155 y15=L*-1.5765 y16=L*-1.1230 y17=L*-0.1865 y18=L*0.8910 y19=L*1.6865 y20=L*1.8670 y21=L*1.3340 y22=L*0.2705 y23=L*-0.9230 y24=L*-1.7840 y25=L*-1.9755 y26=L*-1.4200 y27=L*-0.3350 y28=L*0.8590 y29=L*1.7040 y30=L*1.8880 y31=L*1.3640 y32=L*0.3615 y33=L*-0.7170 y34=L*-1.4600 y35=L*-1.6120 y36=L*-1.1630 y37=L*-0.3360 y38=L*-0.5205 y39=L*-1.0815 y40=L*-0.1740 x1 = new SFVec3f(400, y0, 400); x2 = new SFVec3f(390, y1, 390); x3 = new SFVec3f(380, y2, 380); x4 = new SFVec3f(370, y3, 370); x5 = new SFVec3f(360, y4, 360); x6= new SFVec3f(350, y5, 350); x7 = new SFVec3f(340, y6, 340); x8 = new SFVec3f(330, y7, 330); x9 = new SFVec3f(320, y8, 320); x10 = new SFVec3f(310,y9, 310); x11 = new SFVec3f(300, y10, 300); x12 = new SFVec3f(290, y11, 290); x13 = new SFVec3f(280, y12, 280); x14 = new SFVec3f(260, y13, 260); x15 = new SFVec3f(250, y14, 250); x16= new SFVec3f(240, y15, 240); x17 = new SFVec3f(230, y16, 230); x18 = new SFVec3f(220, y17, 220); x19 = new SFVec3f(210, y18, 210); x20 = new SFVec3f(200,y19, 200); x21 = new SFVec3f(190, y20, 190); x22 = new SFVec3f(180, y21, 180); x23 = new SFVec3f(170, y22, 170); x24 = new SFVec3f(160, y23, 160); x25 = new SFVec3f(150, y4, 150); x26= new SFVec3f(140, y25, 140); x27 = new SFVec3f(130, y26, 130); x28 = new SFVec3f(120, y27, 120); x29 = new SFVec3f(110, y28, 110); x30 = new SFVec3f(100, y29, 100); x31 = new SFVec3f(90, y30, 90); x32= new SFVec3f(80, y31, 80); x33 = new SFVec3f(70, y32, 70); x34 = new SFVec3f(60, y33, 60); x35 = new SFVec3f(50, y34, 50); x36= new SFVec3f(40, y35, 40); x37 = new SFVec3f(30, y36, 30); x38 = new SFVec3f(20, y37, 20); x39 = new SFVec3f(10, y38, 10); x40 = new SFVec3f(5,y39, 5); x41 = new SFVec3f(0,y40, 0); R1 = new SFRotation(1, 0, 0, 0.01); R2 = new SFRotation(1, 0, 0, -0.01); R3 = new SFRotation(1, 0, 0, 0.01); P1 = new SFRotation(0, 0, 1, 0.01); P2 = new SFRotation(0, 0, 1, -0.01); P3 = new SFRotation(0, 0, 1, 0.01); PitchValue = new MFRotation(P1, P2, P3); RollValue = new MFRotation(R1, R2, R3); BuoyanceValue = new MFVec3f(x1, x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41) BuoyanceKeyValues = new MFFloat( 0, 0.01, 0.02,0.03, 0.04, 0.05, 0.06, 0.07,0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.2500 , 0.2600 , 0.2700 , 0.2800 , 0.2900 , 0.3000 , 0.3100 , 0.3200 , 0.3300 , 0.3400 , 0.3500 , 0.3600 , 0.3700 , 0.3800 ,0.3900 ,0.4000) } } function SeaStateChoice2 (inputBoolean, timestamp) { if (inputBoolean) { SeaStateValue = 1; L=1.5 y0=L* -0.0060 y1=L*0.0710 y2=L*0.0030 y3=L*-0.2115 y4=L*-0.4640 y5=L*-0.5885 y6=L*-0.4515 y7=L*-0.0370 y8=L*0.5240 y9=L*0.9950 y10=L*1.1345 y11=L*0.8160 y12=L*0.1025 y13=L*-0.7565 y14=L*-1.4155 y15=L*-1.5765 y16=L*-1.1230 y17=L*-0.1865 y18=L*0.8910 y19=L*1.6865 y20=L*1.8670 y21=L*1.3340 y22=L*0.2705 y23=L*-0.9230 y24=L*-1.7840 y25=L*-1.9755 y26=L*-1.4200 y27=L*-0.3350 y28=L*0.8590 y29=L*1.7040 y30=L*1.8880 y31=L*1.3640 y32=L*0.3615 y33=L*-0.7170 y34=L*-1.4600 y35=L*-1.6120 y36=L*-1.1630 y37=L*-0.3360 y38=L*-0.5205 y39=L*-1.0815 y40=L*-0.1740 x1 = new SFVec3f(400, y0, 400); x2 = new SFVec3f(390, y1, 390); x3 = new SFVec3f(380, y2, 380); x4 = new SFVec3f(370, y3, 370); x5 = new SFVec3f(360, y4, 360); x6= new SFVec3f(350, y5, 350); x7 = new SFVec3f(340, y6, 340); x8 = new SFVec3f(330, y7, 330); x9 = new SFVec3f(320, y8, 320); x10 = new SFVec3f(310,y9, 310); x11 = new SFVec3f(300, y10, 300); x12 = new SFVec3f(290, y11, 290); x13 = new SFVec3f(280, y12, 280); x14 = new SFVec3f(260, y13, 260); x15 = new SFVec3f(250, y14, 250); x16= new SFVec3f(240, y15, 240); x17 = new SFVec3f(230, y16, 230); x18 = new SFVec3f(220, y17, 220); x19 = new SFVec3f(210, y18, 210); x20 = new SFVec3f(200,y19, 200); x21 = new SFVec3f(190, y20, 190); x22 = new SFVec3f(180, y21, 180); x23 = new SFVec3f(170, y22, 170); x24 = new SFVec3f(160, y23, 160); x25 = new SFVec3f(150, y4, 150); x26= new SFVec3f(140, y25, 140); x27 = new SFVec3f(130, y26, 130); x28 = new SFVec3f(120, y27, 120); x29 = new SFVec3f(110, y28, 110); x30 = new SFVec3f(100, y29, 100); x31 = new SFVec3f(90, y30, 90); x32= new SFVec3f(80, y31, 80); x33 = new SFVec3f(70, y32, 70); x34 = new SFVec3f(60, y33, 60); x35 = new SFVec3f(50, y34, 50); x36= new SFVec3f(40, y35, 40); x37 = new SFVec3f(30, y36, 30); x38 = new SFVec3f(20, y37, 20); x39 = new SFVec3f(10, y38, 10); x40 = new SFVec3f(5,y39, 5); x41 = new SFVec3f(0,y40, 0); R1 = new SFRotation(1, 0, 0, 0.02); R2 = new SFRotation(1, 0, 0, -0.02); R3 = new SFRotation(1, 0, 0, 0.02); P1 = new SFRotation(0, 0, 1, 0.02); P2 = new SFRotation(0, 0, 1, -0.02); P3 = new SFRotation(0, 0, 1, 0.02); PitchValue = new MFRotation(P1, P2, P3); RollValue = new MFRotation(R1, R2, R3); BuoyanceValue = new MFVec3f(x1, x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41) BuoyanceKeyValues = new MFFloat( 0, 0.01, 0.02,0.03, 0.04, 0.05, 0.06, 0.07,0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.2500 , 0.2600 , 0.2700 , 0.2800 , 0.2900 , 0.3000 , 0.3100 , 0.3200 , 0.3300 , 0.3400 , 0.3500 , 0.3600 , 0.3700 , 0.3800 ,0.3900 ,0.4000) } } function SeaStateChoice3 (inputBoolean,timestamp) { if (inputBoolean) { SeaStateValue = 2; L=2 y0=L* -0.0060 y1=L*0.0710 y2=L*0.0030 y3=L*-0.2115 y4=L*-0.4640 y5=L*-0.5885 y6=L*-0.4515 y7=L*-0.0370 y8=L*0.5240 y9=L*0.9950 y10=L*1.1345 y11=L*0.8160 y12=L*0.1025 y13=L*-0.7565 y14=L*-1.4155 y15=L*-1.5765 y16=L*-1.1230 y17=L*-0.1865 y18=L*0.8910 y19=L*1.6865 y20=L*1.8670 y21=L*1.3340 y22=L*0.2705 y23=L*-0.9230 y24=L*-1.7840 y25=L*-1.9755 y26=L*-1.4200 y27=L*-0.3350 y28=L*0.8590 y29=L*1.7040 y30=L*1.8880 y31=L*1.3640 y32=L*0.3615 y33=L*-0.7170 y34=L*-1.4600 y35=L*-1.6120 y36=L*-1.1630 y37=L*-0.3360 y38=L*-0.5205 y39=L*-1.0815 y40=L*-0.1740 x1 = new SFVec3f(400, y0, 400); x2 = new SFVec3f(390, y1, 390); x3 = new SFVec3f(380, y2, 380); x4 = new SFVec3f(370, y3, 370); x5 = new SFVec3f(360, y4, 360); x6= new SFVec3f(350, y5, 350); x7 = new SFVec3f(340, y6, 340); x8 = new SFVec3f(330, y7, 330); x9 = new SFVec3f(320, y8, 320); x10 = new SFVec3f(310,y9, 310); x11 = new SFVec3f(300, y10, 300); x12 = new SFVec3f(290, y11, 290); x13 = new SFVec3f(280, y12, 280); x14 = new SFVec3f(260, y13, 260); x15 = new SFVec3f(250, y14, 250); x16= new SFVec3f(240, y15, 240); x17 = new SFVec3f(230, y16, 230); x18 = new SFVec3f(220, y17, 220); x19 = new SFVec3f(210, y18, 210); x20 = new SFVec3f(200,y19, 200); x21 = new SFVec3f(190, y20, 190); x22 = new SFVec3f(180, y21, 180); x23 = new SFVec3f(170, y22, 170); x24 = new SFVec3f(160, y23, 160); x25 = new SFVec3f(150, y4, 150); x26= new SFVec3f(140, y25, 140); x27 = new SFVec3f(130, y26, 130); x28 = new SFVec3f(120, y27, 120); x29 = new SFVec3f(110, y28, 110); x30 = new SFVec3f(100, y29, 100); x31 = new SFVec3f(90, y30, 90); x32= new SFVec3f(80, y31, 80); x33 = new SFVec3f(70, y32, 70); x34 = new SFVec3f(60, y33, 60); x35 = new SFVec3f(50, y34, 50); x36= new SFVec3f(40, y35, 40); x37 = new SFVec3f(30, y36, 30); x38 = new SFVec3f(20, y37, 20); x39 = new SFVec3f(10, y38, 10); x40 = new SFVec3f(5,y39, 5); x41 = new SFVec3f(0,y40, 0); R1 = new SFRotation(1, 0, 0, 0.03); R2 = new SFRotation(1, 0, 0, -0.03); R3 = new SFRotation(1, 0, 0, 0.03); P1 = new SFRotation(0, 0, 1, 0.03); P2 = new SFRotation(0, 0, 1, -0.03); P3 = new SFRotation(0, 0, 1, 0.03); PitchValue = new MFRotation(P1, P2, P3); RollValue = new MFRotation(R1, R2, R3); BuoyanceValue = new MFVec3f(x1, x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41) BuoyanceKeyValues = new MFFloat( 0, 0.01, 0.02,0.03, 0.04, 0.05, 0.06, 0.07,0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.2500 , 0.2600 , 0.2700 , 0.2800 , 0.2900 , 0.3000 , 0.3100 , 0.3200 , 0.3300 , 0.3400 , 0.3500 , 0.3600 , 0.3700 , 0.3800 ,0.3900 ,0.4000) } } function SeaStateChoice4 (inputBoolean, timestamp) { if (inputBoolean) { L=3 y0=L* -0.0060 y1=L*0.0710 y2=L*0.0030 y3=L*-0.2115 y4=L*-0.4640 y5=L*-0.5885 y6=L*-0.4515 y7=L*-0.0370 y8=L*0.5240 y9=L*0.9950 y10=L*1.1345 y11=L*0.8160 y12=L*0.1025 y13=L*-0.7565 y14=L*-1.4155 y15=L*-1.5765 y16=L*-1.1230 y17=L*-0.1865 y18=L*0.8910 y19=L*1.6865 y20=L*1.8670 y21=L*1.3340 y22=L*0.2705 y23=L*-0.9230 y24=L*-1.7840 y25=L*-1.9755 y26=L*-1.4200 y27=L*-0.3350 y28=L*0.8590 y29=L*1.7040 y30=L*1.8880 y31=L*1.3640 y32=L*0.3615 y33=L*-0.7170 y34=L*-1.4600 y35=L*-1.6120 y36=L*-1.1630 y37=L*-0.3360 y38=L*-0.5205 y39=L*-1.0815 y40=L*-0.1740 x1 = new SFVec3f(400, y0, 400); x2 = new SFVec3f(390, y1, 390); x3 = new SFVec3f(380, y2, 380); x4 = new SFVec3f(370, y3, 370); x5 = new SFVec3f(360, y4, 360); x6= new SFVec3f(350, y5, 350); x7 = new SFVec3f(340, y6, 340); x8 = new SFVec3f(330, y7, 330); x9 = new SFVec3f(320, y8, 320); x10 = new SFVec3f(310,y9, 310); x11 = new SFVec3f(300, y10, 300); x12 = new SFVec3f(290, y11, 290); x13 = new SFVec3f(280, y12, 280); x14 = new SFVec3f(260, y13, 260); x15 = new SFVec3f(250, y14, 250); x16= new SFVec3f(240, y15, 240); x17 = new SFVec3f(230, y16, 230); x18 = new SFVec3f(220, y17, 220); x19 = new SFVec3f(210, y18, 210); x20 = new SFVec3f(200,y19, 200); x21 = new SFVec3f(190, y20, 190); x22 = new SFVec3f(180, y21, 180); x23 = new SFVec3f(170, y22, 170); x24 = new SFVec3f(160, y23, 160); x25 = new SFVec3f(150, y4, 150); x26= new SFVec3f(140, y25, 140); x27 = new SFVec3f(130, y26, 130); x28 = new SFVec3f(120, y27, 120); x29 = new SFVec3f(110, y28, 110); x30 = new SFVec3f(100, y29, 100); x31 = new SFVec3f(90, y30, 90); x32= new SFVec3f(80, y31, 80); x33 = new SFVec3f(70, y32, 70); x34 = new SFVec3f(60, y33, 60); x35 = new SFVec3f(50, y34, 50); x36= new SFVec3f(40, y35, 40); x37 = new SFVec3f(30, y36, 30); x38 = new SFVec3f(20, y37, 20); x39 = new SFVec3f(10, y38, 10); x40 = new SFVec3f(5,y39, 5); x41 = new SFVec3f(0,y40, 0); R1 = new SFRotation(1, 0, 0, 0.07); R2 = new SFRotation(1, 0, 0, -0.07); R3 = new SFRotation(1, 0, 0, 0.07); P1 = new SFRotation(0, 0, 1, 0.07); P2 = new SFRotation(0, 0, 1, -0.07); P3 = new SFRotation(0, 0, 1, 0.07); PitchValue = new MFRotation(P1, P2, P3); RollValue = new MFRotation(R1, R2, R3); BuoyanceValue = new MFVec3f(x1, x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41) BuoyanceKeyValues = new MFFloat( 0, 0.01, 0.02,0.03, 0.04, 0.05, 0.06, 0.07,0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.2500 , 0.2600 , 0.2700 , 0.2800 , 0.2900 , 0.3000 , 0.3100 , 0.3200 , 0.3300 , 0.3400 , 0.3500 , 0.3600 , 0.3700 , 0.3800 ,0.3900 ,0.4000) } } function SeaStateChoice5 (inputBoolean, timestamp) { if (inputBoolean) { SeaStateValue = 4; L=5 y0=L* -0.0060 y1=L*0.0710 y2=L*0.0030 y3=L*-0.2115 y4=L*-0.4640 y5=L*-0.5885 y6=L*-0.4515 y7=L*-0.0370 y8=L*0.5240 y9=L*0.9950 y10=L*1.1345 y11=L*0.8160 y12=L*0.1025 y13=L*-0.7565 y14=L*-1.4155 y15=L*-1.5765 y16=L*-1.1230 y17=L*-0.1865 y18=L*0.8910 y19=L*1.6865 y20=L*1.8670 y21=L*1.3340 y22=L*0.2705 y23=L*-0.9230 y24=L*-1.7840 y25=L*-1.9755 y26=L*-1.4200 y27=L*-0.3350 y28=L*0.8590 y29=L*1.7040 y30=L*1.8880 y31=L*1.3640 y32=L*0.3615 y33=L*-0.7170 y34=L*-1.4600 y35=L*-1.6120 y36=L*-1.1630 y37=L*-0.3360 y38=L*-0.5205 y39=L*-1.0815 y40=L*-0.1740 x1 = new SFVec3f(400, y0, 400); x2 = new SFVec3f(390, y1, 390); x3 = new SFVec3f(380, y2, 380); x4 = new SFVec3f(370, y3, 370); x5 = new SFVec3f(360, y4, 360); x6= new SFVec3f(350, y5, 350); x7 = new SFVec3f(340, y6, 340); x8 = new SFVec3f(330, y7, 330); x9 = new SFVec3f(320, y8, 320); x10 = new SFVec3f(310,y9, 310); x11 = new SFVec3f(300, y10, 300); x12 = new SFVec3f(290, y11, 290); x13 = new SFVec3f(280, y12, 280); x14 = new SFVec3f(260, y13, 260); x15 = new SFVec3f(250, y14, 250); x16= new SFVec3f(240, y15, 240); x17 = new SFVec3f(230, y16, 230); x18 = new SFVec3f(220, y17, 220); x19 = new SFVec3f(210, y18, 210); x20 = new SFVec3f(200,y19, 200); x21 = new SFVec3f(190, y20, 190); x22 = new SFVec3f(180, y21, 180); x23 = new SFVec3f(170, y22, 170); x24 = new SFVec3f(160, y23, 160); x25 = new SFVec3f(150, y4, 150); x26= new SFVec3f(140, y25, 140); x27 = new SFVec3f(130, y26, 130); x28 = new SFVec3f(120, y27, 120); x29 = new SFVec3f(110, y28, 110); x30 = new SFVec3f(100, y29, 100); x31 = new SFVec3f(90, y30, 90); x32= new SFVec3f(80, y31, 80); x33 = new SFVec3f(70, y32, 70); x34 = new SFVec3f(60, y33, 60); x35 = new SFVec3f(50, y34, 50); x36= new SFVec3f(40, y35, 40); x37 = new SFVec3f(30, y36, 30); x38 = new SFVec3f(20, y37, 20); x39 = new SFVec3f(10, y38, 10); x40 = new SFVec3f(5,y39, 5); x41 = new SFVec3f(0,y40, 0); R1 = new SFRotation(1, 0, 0, 0.1); R2 = new SFRotation(1, 0, 0, -0.1); R3 = new SFRotation(1, 0, 0, 0.1); P1 = new SFRotation(0, 0, 1, 0.1); P2 = new SFRotation(0, 0, 1, -0.1); P3 = new SFRotation(0, 0, 1, 0.1); PitchValue = new MFRotation(P1, P2, P3); RollValue = new MFRotation(R1, R2, R3); BuoyanceValue = new MFVec3f(x1, x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41) BuoyanceKeyValues = new MFFloat( 0, 0.01, 0.02,0.03, 0.04, 0.05, 0.06, 0.07,0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.2500 , 0.2600 , 0.2700 , 0.2800 , 0.2900 , 0.3000 , 0.3100 , 0.3200 , 0.3300 , 0.3400 , 0.3500 , 0.3600 , 0.3700 , 0.3800 ,0.3900 ,0.4000) } } function SeaStateChoice6 (inputBoolean, timestamp) { if (inputBoolean) { SeaStateValue = 5; L=7 y0=L* -0.0060 y1=L*0.0710 y2=L*0.0030 y3=L*-0.2115 y4=L*-0.4640 y5=L*-0.5885 y6=L*-0.4515 y7=L*-0.0370 y8=L*0.5240 y9=L*0.9950 y10=L*1.1345 y11=L*0.8160 y12=L*0.1025 y13=L*-0.7565 y14=L*-1.4155 y15=L*-1.5765 y16=L*-1.1230 y17=L*-0.1865 y18=L*0.8910 y19=L*1.6865 y20=L*1.8670 y21=L*1.3340 y22=L*0.2705 y23=L*-0.9230 y24=L*-1.7840 y25=L*-1.9755 y26=L*-1.4200 y27=L*-0.3350 y28=L*0.8590 y29=L*1.7040 y30=L*1.8880 y31=L*1.3640 y32=L*0.3615 y33=L*-0.7170 y34=L*-1.4600 y35=L*-1.6120 y36=L*-1.1630 y37=L*-0.3360 y38=L*-0.5205 y39=L*-1.0815 y40=L*-0.1740 x1 = new SFVec3f(400, y0, 400); x2 = new SFVec3f(390, y1, 390); x3 = new SFVec3f(380, y2, 380); x4 = new SFVec3f(370, y3, 370); x5 = new SFVec3f(360, y4, 360); x6= new SFVec3f(350, y5, 350); x7 = new SFVec3f(340, y6, 340); x8 = new SFVec3f(330, y7, 330); x9 = new SFVec3f(320, y8, 320); x10 = new SFVec3f(310,y9, 310); x11 = new SFVec3f(300, y10, 300); x12 = new SFVec3f(290, y11, 290); x13 = new SFVec3f(280, y12, 280); x14 = new SFVec3f(260, y13, 260); x15 = new SFVec3f(250, y14, 250); x16= new SFVec3f(240, y15, 240); x17 = new SFVec3f(230, y16, 230); x18 = new SFVec3f(220, y17, 220); x19 = new SFVec3f(210, y18, 210); x20 = new SFVec3f(200,y19, 200); x21 = new SFVec3f(190, y20, 190); x22 = new SFVec3f(180, y21, 180); x23 = new SFVec3f(170, y22, 170); x24 = new SFVec3f(160, y23, 160); x25 = new SFVec3f(150, y4, 150); x26= new SFVec3f(140, y25, 140); x27 = new SFVec3f(130, y26, 130); x28 = new SFVec3f(120, y27, 120); x29 = new SFVec3f(110, y28, 110); x30 = new SFVec3f(100, y29, 100); x31 = new SFVec3f(90, y30, 90); x32= new SFVec3f(80, y31, 80); x33 = new SFVec3f(70, y32, 70); x34 = new SFVec3f(60, y33, 60); x35 = new SFVec3f(50, y34, 50); x36= new SFVec3f(40, y35, 40); x37 = new SFVec3f(30, y36, 30); x38 = new SFVec3f(20, y37, 20); x39 = new SFVec3f(10, y38, 10); x40 = new SFVec3f(5,y39, 5); x41 = new SFVec3f(0,y40, 0); R1 = new SFRotation(1, 0, 0, 0.1); R2 = new SFRotation(1, 0, 0, -0.1); R3 = new SFRotation(1, 0, 0, 0.1); P1 = new SFRotation(0, 0, 1, 0.15); P2 = new SFRotation(0, 0, 1, -0.15); P3 = new SFRotation(0, 0, 1, 0.15); PitchValue = new MFRotation(P1, P2, P3); RollValue = new MFRotation(R1, R2, R3); BuoyanceValue = new MFVec3f(x1, x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41) BuoyanceKeyValues = new MFFloat( 0, 0.01, 0.02,0.03, 0.04, 0.05, 0.06, 0.07,0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.2500 , 0.2600 , 0.2700 , 0.2800 , 0.2900 , 0.3000 , 0.3100 , 0.3200 , 0.3300 , 0.3400 , 0.3500 , 0.3600 , 0.3700 , 0.3800 ,0.3900 ,0.4000) } } function SeaStateChoice7 (inputBoolean, timestamp) { if (inputBoolean) { SeaStateValue = 6; L=9 y0=L* -0.0060 y1=L*0.0710 y2=L*0.0030 y3=L*-0.2115 y4=L*-0.4640 y5=L*-0.5885 y6=L*-0.4515 y7=L*-0.0370 y8=L*0.5240 y9=L*0.9950 y10=L*1.1345 y11=L*0.8160 y12=L*0.1025 y13=L*-0.7565 y14=L*-1.4155 y15=L*-1.5765 y16=L*-1.1230 y17=L*-0.1865 y18=L*0.8910 y19=L*1.6865 y20=L*1.8670 y21=L*1.3340 y22=L*0.2705 y23=L*-0.9230 y24=L*-1.7840 y25=L*-1.9755 y26=L*-1.4200 y27=L*-0.3350 y28=L*0.8590 y29=L*1.7040 y30=L*1.8880 y31=L*1.3640 y32=L*0.3615 y33=L*-0.7170 y34=L*-1.4600 y35=L*-1.6120 y36=L*-1.1630 y37=L*-0.3360 y38=L*-0.5205 y39=L*-1.0815 y40=L*-0.1740 x1 = new SFVec3f(400, y0, 400); x2 = new SFVec3f(390, y1, 390); x3 = new SFVec3f(380, y2, 380); x4 = new SFVec3f(370, y3, 370); x5 = new SFVec3f(360, y4, 360); x6= new SFVec3f(350, y5, 350); x7 = new SFVec3f(340, y6, 340); x8 = new SFVec3f(330, y7, 330); x9 = new SFVec3f(320, y8, 320); x10 = new SFVec3f(310,y9, 310); x11 = new SFVec3f(300, y10, 300); x12 = new SFVec3f(290, y11, 290); x13 = new SFVec3f(280, y12, 280); x14 = new SFVec3f(260, y13, 260); x15 = new SFVec3f(250, y14, 250); x16= new SFVec3f(240, y15, 240); x17 = new SFVec3f(230, y16, 230); x18 = new SFVec3f(220, y17, 220); x19 = new SFVec3f(210, y18, 210); x20 = new SFVec3f(200,y19, 200); x21 = new SFVec3f(190, y20, 190); x22 = new SFVec3f(180, y21, 180); x23 = new SFVec3f(170, y22, 170); x24 = new SFVec3f(160, y23, 160); x25 = new SFVec3f(150, y4, 150); x26= new SFVec3f(140, y25, 140); x27 = new SFVec3f(130, y26, 130); x28 = new SFVec3f(120, y27, 120); x29 = new SFVec3f(110, y28, 110); x30 = new SFVec3f(100, y29, 100); x31 = new SFVec3f(90, y30, 90); x32= new SFVec3f(80, y31, 80); x33 = new SFVec3f(70, y32, 70); x34 = new SFVec3f(60, y33, 60); x35 = new SFVec3f(50, y34, 50); x36= new SFVec3f(40, y35, 40); x37 = new SFVec3f(30, y36, 30); x38 = new SFVec3f(20, y37, 20); x39 = new SFVec3f(10, y38, 10); x40 = new SFVec3f(5,y39, 5); x41 = new SFVec3f(0,y40, 0); R1 = new SFRotation(1, 0, 0, 0.15); R2 = new SFRotation(1, 0, 0, -0.15); R3 = new SFRotation(1, 0, 0, 0.15); P1 = new SFRotation(0, 0, 1, 0.2); P2 = new SFRotation(0, 0, 1, -0.2); P3 = new SFRotation(0, 0, 1, 0.2); PitchValue = new MFRotation(P1, P2, P3); RollValue = new MFRotation(R1, R2, R3); BuoyanceValue = new MFVec3f(x1, x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41) BuoyanceKeyValues = new MFFloat( 0, 0.01, 0.02,0.03, 0.04, 0.05, 0.06, 0.07,0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.2500 , 0.2600 , 0.2700 , 0.2800 , 0.2900 , 0.3000 , 0.3100 , 0.3200 , 0.3300 , 0.3400 , 0.3500 , 0.3600 , 0.3700 , 0.3800 ,0.3900 ,0.4000) } } function SeaStateChoice8 (inputBoolean, timestamp) { if (inputBoolean) { SeaStateValue = 7; L=10 y0=L* -0.0060 y1=L*0.0710 y2=L*0.0030 y3=L*-0.2115 y4=L*-0.4640 y5=L*-0.5885 y6=L*-0.4515 y7=L*-0.0370 y8=L*0.5240 y9=L*0.9950 y10=L*1.1345 y11=L*0.8160 y12=L*0.1025 y13=L*-0.7565 y14=L*-1.4155 y15=L*-1.5765 y16=L*-1.1230 y17=L*-0.1865 y18=L*0.8910 y19=L*1.6865 y20=L*1.8670 y21=L*1.3340 y22=L*0.2705 y23=L*-0.9230 y24=L*-1.7840 y25=L*-1.9755 y26=L*-1.4200 y27=L*-0.3350 y28=L*0.8590 y29=L*1.7040 y30=L*1.8880 y31=L*1.3640 y32=L*0.3615 y33=L*-0.7170 y34=L*-1.4600 y35=L*-1.6120 y36=L*-1.1630 y37=L*-0.3360 y38=L*-0.5205 y39=L*-1.0815 y40=L*-0.1740 x1 = new SFVec3f(400, y0, 400); x2 = new SFVec3f(390, y1, 390); x3 = new SFVec3f(380, y2, 380); x4 = new SFVec3f(370, y3, 370); x5 = new SFVec3f(360, y4, 360); x6= new SFVec3f(350, y5, 350); x7 = new SFVec3f(340, y6, 340); x8 = new SFVec3f(330, y7, 330); x9 = new SFVec3f(320, y8, 320); x10 = new SFVec3f(310,y9, 310); x11 = new SFVec3f(300, y10, 300); x12 = new SFVec3f(290, y11, 290); x13 = new SFVec3f(280, y12, 280); x14 = new SFVec3f(260, y13, 260); x15 = new SFVec3f(250, y14, 250); x16= new SFVec3f(240, y15, 240); x17 = new SFVec3f(230, y16, 230); x18 = new SFVec3f(220, y17, 220); x19 = new SFVec3f(210, y18, 210); x20 = new SFVec3f(200,y19, 200); x21 = new SFVec3f(190, y20, 190); x22 = new SFVec3f(180, y21, 180); x23 = new SFVec3f(170, y22, 170); x24 = new SFVec3f(160, y23, 160); x25 = new SFVec3f(150, y4, 150); x26= new SFVec3f(140, y25, 140); x27 = new SFVec3f(130, y26, 130); x28 = new SFVec3f(120, y27, 120); x29 = new SFVec3f(110, y28, 110); x30 = new SFVec3f(100, y29, 100); x31 = new SFVec3f(90, y30, 90); x32= new SFVec3f(80, y31, 80); x33 = new SFVec3f(70, y32, 70); x34 = new SFVec3f(60, y33, 60); x35 = new SFVec3f(50, y34, 50); x36= new SFVec3f(40, y35, 40); x37 = new SFVec3f(30, y36, 30); x38 = new SFVec3f(20, y37, 20); x39 = new SFVec3f(10, y38, 10); x40 = new SFVec3f(5,y39, 5); x41 = new SFVec3f(0,y40, 0); R1 = new SFRotation(1, 0, 0, 0.25); R2 = new SFRotation(1, 0, 0, -0.25); R3 = new SFRotation(1, 0, 0, 0.25); P1 = new SFRotation(0, 0, 1, 0.3); P2 = new SFRotation(0, 0, 1, -0.3); P3 = new SFRotation(0, 0, 1, 0.3); PitchValue = new MFRotation(P1, P2, P3); RollValue = new MFRotation(R1, R2, R3); BuoyanceValue = new MFVec3f(x1, x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41) BuoyanceKeyValues = new MFFloat( 0, 0.01, 0.02,0.03, 0.04, 0.05, 0.06, 0.07,0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.2500 , 0.2600 , 0.2700 , 0.2800 , 0.2900 , 0.3000 , 0.3100 , 0.3200 , 0.3300 , 0.3400 , 0.3500 , 0.3600 , 0.3700 , 0.3800 ,0.3900 ,0.4000) } }
]]>
|
|
358 | </Script> |
359 | </Group> |
360 | <!-- ================================================= --> |
361 | <!-- RoutesToChooseSST --> |
362 | <!-- ================================================= --> |
363 | < ROUTE fromNode='TouchSensorSeaState1' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice1'/> |
364 | < ROUTE fromNode='TouchSensorSeaState2' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice2'/> |
365 | < ROUTE fromNode='TouchSensorSeaState3' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice3'/> |
366 | < ROUTE fromNode='TouchSensorSeaState4' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice4'/> |
367 | < ROUTE fromNode='TouchSensorSeaState5' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice5'/> |
368 | < ROUTE fromNode='TouchSensorSeaState6' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice6'/> |
369 | < ROUTE fromNode='TouchSensorSeaState7' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice7'/> |
370 | < ROUTE fromNode='TouchSensorSeaState8' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice8'/> |
371 | < ROUTE fromNode='SeaStateChoiceToValue' fromField='SeaStateValue' toNode='SeaStateNumber' toField='whichChoice'/> |
372 | < ROUTE fromNode='SeaStateChoiceToValue' fromField='BuoyanceValue' toNode='ShipBuoyanceHeight' toField='set_keyValue'/> |
373 | < ROUTE fromNode='SeaStateChoiceToValue' fromField='BuoyanceKeyValues' toNode='ShipBuoyanceHeight' toField='set_key'/> |
374 | < ROUTE fromNode='SeaStateChoiceToValue' fromField='PitchValue' toNode='Pitch' toField='set_keyValue'/> |
375 | < ROUTE fromNode='SeaStateChoiceToValue' fromField='RollValue' toNode='Roll' toField='set_keyValue'/> |
376 | <!-- --> |
377 | <!-- ================================================= --> |
378 | <!-- RoutesToMoveTheSea --> |
379 | <!-- ================================================= --> |
380 | < ROUTE fromNode='Clock' fromField='fraction_changed' toNode='Ondulation' toField='set_fraction'/> |
381 | < ROUTE fromNode='Ondulation' fromField='value_changed' toNode='BasicExtrusion' toField='set_spine'/> |
382 | <!-- ================================================= --> |
383 | <!-- RoutesToMoveTheShip --> |
384 | <!-- ================================================= --> |
385 | < ROUTE fromNode='PitchClock' fromField='fraction_changed' toNode='Pitch' toField='set_fraction'/> |
386 | < ROUTE fromNode='Pitch' fromField='value_changed' toNode='ShipPitch' toField='set_rotation'/> |
387 | < ROUTE fromNode='Pitch' fromField='value_changed' toNode='SubPitch' toField='set_rotation'/> |
388 | < ROUTE fromNode='RollClock' fromField='fraction_changed' toNode='Roll' toField='set_fraction'/> |
389 | < ROUTE fromNode='Roll' fromField='value_changed' toNode='ShipRoll' toField='set_rotation'/> |
390 | < ROUTE fromNode='Roll' fromField='value_changed' toNode='SubRoll' toField='set_rotation'/> |
391 | < ROUTE fromNode='BuoyanceClock' fromField='fraction_changed' toNode='ShipBuoyanceHeight' toField='set_fraction'/> |
392 | < ROUTE fromNode='ShipBuoyanceHeight' fromField='value_changed' toNode='ShipBuoyance' toField='set_translation'/> |
393 | < ROUTE fromNode='BuoyanceClock' fromField='fraction_changed' toNode='SubBuoyanceHeigth' toField='set_fraction'/> |
394 | < ROUTE fromNode='SubBuoyanceHeigth' fromField='value_changed' toNode='ShipBuoyance' toField='set_translation'/> |
395 | < ROUTE fromNode='ShipClock' fromField='fraction_changed' toNode='ShipBuoyanceHeight' toField='set_fraction'/> |
396 | < ROUTE fromNode='ShipBuoyanceHeight' fromField='value_changed' toNode='ShipVelocity' toField='set_translation'/> |
397 | </Scene> |
398 | </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.
BuoyanceClock
TimeSensor fraction_changed SFFloat |
ShipBuoyanceHeight
PositionInterpolator set_fraction SFFloat |
then
|
ShipBuoyanceHeight
PositionInterpolator value_changed SFVec3f |
ShipBuoyance
Transform set_translation SFVec3f |
||
then
|
ShipBuoyanceHeight
PositionInterpolator value_changed SFVec3f |
ShipVelocity
Transform set_translation SFVec3f |
||||
BuoyanceClock
TimeSensor fraction_changed SFFloat |
SubBuoyanceHeigth
PositionInterpolator set_fraction SFFloat |
then
|
SubBuoyanceHeigth
PositionInterpolator value_changed SFVec3f |
ShipBuoyance
Transform set_translation SFVec3f |
Clock
TimeSensor fraction_changed SFFloat |
Ondulation
CoordinateInterpolator set_fraction SFFloat |
then
|
Ondulation
CoordinateInterpolator value_changed MFVec3f |
BasicExtrusion
Extrusion set_spine MFVec3f |
PitchClock
TimeSensor fraction_changed SFFloat |
Pitch
OrientationInterpolator set_fraction SFFloat |
then
|
Pitch
OrientationInterpolator value_changed SFRotation |
ShipPitch
Transform set_rotation SFRotation |
||
then
|
Pitch
OrientationInterpolator value_changed SFRotation |
SubPitch
Transform set_rotation SFRotation |
RollClock
TimeSensor fraction_changed SFFloat |
Roll
OrientationInterpolator set_fraction SFFloat |
then
|
Roll
OrientationInterpolator value_changed SFRotation |
ShipRoll
Transform set_rotation SFRotation |
||
then
|
Roll
OrientationInterpolator value_changed SFRotation |
SubRoll
Transform set_rotation SFRotation |
ShipClock
TimeSensor fraction_changed SFFloat |
ShipBuoyanceHeight
PositionInterpolator set_fraction SFFloat |
then
|
ShipBuoyanceHeight
PositionInterpolator value_changed SFVec3f |
ShipBuoyance
Transform set_translation SFVec3f |
||
then
|
ShipBuoyanceHeight
PositionInterpolator value_changed SFVec3f |
ShipVelocity
Transform set_translation SFVec3f |
<!--
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. -->