X3D Model Documentation: MoveSeaByExtrusion14.x3d

  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='titlecontent='MoveSeaByExtrusion14.x3d'/>
  6            <meta name='creatorcontent='Marcus V. da S. Simoes'/>
  7            <meta name='createdcontent='11 January 2001'/>
  8            <meta name='modifiedcontent='20 October 2019'/>
  9            <meta name='descriptioncontent='Sea state rendering of ocean wave motion.'/>
 10            <meta name='identifiercontent='https://savage.nps.edu/Savage/Environment/SeaState/MoveSeaByExtrusion14.x3d'/>
 11            <meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
 12            <meta name='licensecontent='../../license.html'/>
 13       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: BasicExtrusion, BasicWave, BeachElevation, BeachView, Box1, Box2, Box3, Box4, Box5, Box6, Box7, Box8, BoxSensor, BuoyanceClock, Clock, Coordinate, Ondulation, Option1, Option2, Option3, Option4, Option5, Option6, Option7, Option8, Orientation, Pitch, PitchClock, Roll, RollClock, ScriptsForWaveMovement, SeaBoxSeaandRockIsland, SeaColor, SeaState_1, SeaState_2, SeaState_3, SeaState_4, SeaState_5, SeaState_6, SeaState_7, SeaState_8, SeaStateAndDirectionControlPanel, SeaStateChoice, SeaStateChoiceToValue, SeaStateNumber, ShipBridge, ShipBuoyance, ShipBuoyanceHeight, ShipClock, ShipPitch, ShipRoll, ShipVelocity, SST1Escale, SST2Scale, SST3Scale, SST4Scale, SST5Scale, SSTScale6, SSTScale7, SSTScale8, SubBuoyance, SubBuoyanceHeigth, SubPitch, SubRoll, TaskForce, Text1, Text2, Text3, Text4, Text5, Text6, Text7, Text8, TheBeach, TheSeaState, TimeSensors, TopView, TouchSensorSeaState1, TouchSensorSeaState2, TouchSensorSeaState3, TouchSensorSeaState4, TouchSensorSeaState5, TouchSensorSeaState6, TouchSensorSeaState7, TouchSensorSeaState8

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, ShipBridge, TopView
-->
 14       <Scene>
 15            <!-- Axis -->
 16            <WorldInfo title='MoveSeaByExtrusion14.x3d'/>
 17            <NavigationInfo speed='100'/>
 18            <Background groundAngle='1.309 1.570796groundColor='0.0 0.2 0.7 0.0 0.5 1.0 0.6 0.6 0.6skyAngle='1.309 1.571skyColor='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='TheSeaStatetranslation='0 0 -500'>
 30                      <Transform translation='0 -5000 0'>
 31 
                         <!-- Shape BasicWave is a DEF node that has 8 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7, USE_8 -->
                         <Shape DEF='BasicWave'>
 32                                <Appearance DEF='SeaColor'>
 33                                     <ImageTexture   url=' "pool.jpg " "https://savage.nps.edu/Savage/Environment/SeaState/pool.jpg " '/>
 34                                     <Material diffuseColor='0 0 0transparency='0.3'/>
 35                                </Appearance>
 36 
                              <!-- ROUTE information for BasicExtrusion node:  [from Ondulation.value_changed to set_spine ] -->
                              <Extrusion DEF='BasicExtrusionbeginCap='falseconvex='falsecreaseAngle='0.01crossSection='0 0 0 10 0 0endCap='falsesolid='falsespine='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='SeaStateNumberwhichChoice='0'>
 40                           <Group DEF='SeaState_1'>
 41                                <Transform DEF='SST1Escalescale='100 .05 100'>
 42                                     <Shape USE='BasicWave'/>
 43                                </Transform>
 44                           </Group>
 45                           <Group DEF='SeaState_2'>
 46                                <Transform DEF='SST2Scalescale='100 1 100'>
 47                                     <Shape USE='BasicWave'/>
 48                                </Transform>
 49                           </Group>
 50                           <Group DEF='SeaState_3'>
 51                                <Transform DEF='SST3Scalescale='100 2 100'>
 52                                     <Shape USE='BasicWave'/>
 53                                </Transform>
 54                           </Group>
 55                           <Group DEF='SeaState_4'>
 56                                <Transform DEF='SST4Scalescale='100 4 100'>
 57                                     <Shape USE='BasicWave'/>
 58                                </Transform>
 59                           </Group>
 60                           <Group DEF='SeaState_5'>
 61                                <Transform DEF='SST5Scalescale='100 8 100'>
 62                                     <Shape USE='BasicWave'/>
 63                                </Transform>
 64                           </Group>
 65                           <Group DEF='SeaState_6'>
 66                                <Transform DEF='SSTScale6scale='100 12 100'>
 67                                     <Shape USE='BasicWave'/>
 68                                </Transform>
 69                           </Group>
 70                           <Group DEF='SeaState_7'>
 71                                <Transform DEF='SSTScale7scale='100 16 100'>
 72                                     <Shape USE='BasicWave'/>
 73                                </Transform>
 74                           </Group>
 75                           <Group DEF='SeaState_8'>
 76                                <Transform DEF='SSTScale8scale='100 21 100'>
 77                                     <Shape USE='BasicWave'/>
 78                                </Transform>
 79                           </Group>
 80                      </Switch>
 81                 </Transform>
 82                 <Group DEF='TheBeach'>
 83                      <Transform scale='25 120 25translation='-400 -2 -400'>
 84                           <Shape>
 85                                <ElevationGrid DEF='BeachElevationxDimension='10zDimension='10height='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='BeachViewrotation='0 1 0 1.2translation='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='Option1translation='0 -2.0 0'>
104                                     <Transform DEF='Box1translation='0 .1 0'>
105                                          <Shape DEF='BoxSensor'>
106                                               <Box size='1 .4 .1'/>
107                                               <Appearance>
108                                                    <Material diffuseColor='0 0 1specularColor='0 0 1transparency='.9'/>
109                                               </Appearance>
110                                          </Shape>
111 
                                        <!-- ROUTE information for TouchSensorSeaState1 node:  [from isActive to SeaStateChoiceToValue.SeaStateChoice1 ] -->
                                        <TouchSensor DEF='TouchSensorSeaState1description='touch to activate'/>
112                                          <Transform DEF='Text1scale='.25 .25 .25translation='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='Option2translation='0 -1.5 0'>
125                                     <Transform DEF='Box2translation='0 .1 0'>
126                                          <Shape>
127                                               <Box size='1 .4 .1'/>
128                                               <Appearance>
129                                                    <Material diffuseColor='0 0 .8transparency='.7'/>
130                                               </Appearance>
131                                          </Shape>
132 
                                        <!-- ROUTE information for TouchSensorSeaState2 node:  [from isActive to SeaStateChoiceToValue.SeaStateChoice2 ] -->
                                        <TouchSensor DEF='TouchSensorSeaState2description='touch to activate'/>
133                                          <Transform DEF='Text2scale='.25 .25 .25translation='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='Option3translation='0 -1.0 0'>
146                                     <Transform DEF='Box3translation='0 .1 0'>
147                                          <Shape>
148                                               <Box size='1 .4 .1'/>
149                                               <Appearance>
150                                                    <Material diffuseColor='0 0 .8transparency='.7'/>
151                                               </Appearance>
152                                          </Shape>
153 
                                        <!-- ROUTE information for TouchSensorSeaState3 node:  [from isActive to SeaStateChoiceToValue.SeaStateChoice3 ] -->
                                        <TouchSensor DEF='TouchSensorSeaState3description='touch to activate'/>
154                                          <Transform DEF='Text3scale='.25 .25 .25translation='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='Option4translation='0 -0.5 0'>
167                                     <Transform DEF='Box4translation='0 .1 0'>
168                                          <Shape>
169                                               <Box size='1 .4 .1'/>
170                                               <Appearance>
171                                                    <Material diffuseColor='0 0.8 0transparency='0.8'/>
172                                               </Appearance>
173                                          </Shape>
174 
                                        <!-- ROUTE information for TouchSensorSeaState4 node:  [from isActive to SeaStateChoiceToValue.SeaStateChoice4 ] -->
                                        <TouchSensor DEF='TouchSensorSeaState4description='touch to activate'/>
175                                          <Transform DEF='Text4scale='.25 .25 .25translation='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='Box5translation='0 .1 0'>
189                                          <Shape>
190                                               <Box size='1 .4 .1'/>
191                                               <Appearance>
192                                                    <Material diffuseColor='0 .5 0transparency='.4'/>
193                                               </Appearance>
194                                          </Shape>
195                                          <Transform DEF='Text5scale='.25 .25 .25translation='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='TouchSensorSeaState5description='touch to activate'/>
206                                     </Transform>
207                                </Transform>
208                                <Transform DEF='Option6translation='0 .5 0'>
209                                     <Transform DEF='Box6translation='0 .1 0'>
210                                          <Transform DEF='Text6scale='.25 .25 .25translation='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 0transparency='0.8'/>
224                                               </Appearance>
225                                          </Shape>
226 
                                        <!-- ROUTE information for TouchSensorSeaState6 node:  [from isActive to SeaStateChoiceToValue.SeaStateChoice6 ] -->
                                        <TouchSensor DEF='TouchSensorSeaState6description='touch to activate'/>
227                                     </Transform>
228                                </Transform>
229                                <Transform DEF='Option7translation='0 1.0 0'>
230                                     <Transform DEF='Box7translation='0 .1 0'>
231                                          <Transform DEF='Text7scale='.25 .25 .25translation='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 0transparency='0.7'/>
245                                               </Appearance>
246                                          </Shape>
247 
                                        <!-- ROUTE information for TouchSensorSeaState7 node:  [from isActive to SeaStateChoiceToValue.SeaStateChoice7 ] -->
                                        <TouchSensor DEF='TouchSensorSeaState7description='touch to activate'/>
248                                     </Transform>
249                                </Transform>
250                                <Transform DEF='Option8translation='0 1.5 0'>
251                                     <Transform DEF='Box8translation='0 .1 0'>
252                                          <Transform DEF='Text8scale='.25 .25 .25translation='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 0transparency='0.5'/>
266                                               </Appearance>
267                                          </Shape>
268 
                                        <!-- ROUTE information for TouchSensorSeaState8 node:  [from isActive to SeaStateChoiceToValue.SeaStateChoice8 ] -->
                                        <TouchSensor DEF='TouchSensorSeaState8description='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 PANELposition='-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='ShipVelocityrotation='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='ShipBridgedescription='BRIDGE VIEWfieldOfView='1.51orientation='0 1 0 -1.57'/>
296                                     </Transform>
297                                </Transform>
298                           </Transform>
299                           <Viewpoint DEF='TopViewdescription='AERIAL VIEWorientation='1 0 0 -1.571position='0 500 0'/>
300                      </Transform>
301                 </Transform>
302                 <!-- SubmarineSimulation@5mDepth -->
303                 <Transform DEF='SubBuoyancerotation='0 1 0 0.785scale='.1 .1 .1translation='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 VIEWfieldOfView='0.4orientation='0 1 0 1.57position='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='ShipClockcycleInterval='80loop='true'/>
319 
               <!-- ROUTE information for BuoyanceClock node:  [from fraction_changed to ShipBuoyanceHeight.set_fraction ] [from fraction_changed to SubBuoyanceHeigth.set_fraction ] -->
               <TimeSensor DEF='BuoyanceClockcycleInterval='80loop='true'/>
320 
               <!-- ROUTE information for PitchClock node:  [from fraction_changed to Pitch.set_fraction ] -->
               <TimeSensor DEF='PitchClockcycleInterval='25loop='true'/>
321 
               <!-- ROUTE information for RollClock node:  [from fraction_changed to Roll.set_fraction ] -->
               <TimeSensor DEF='RollClockcycleInterval='40loop='true'/>
322 
               <!-- ROUTE information for Clock node:  [from fraction_changed to Ondulation.set_fraction ] -->
               <TimeSensor DEF='ClockcycleInterval='45loop='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='Rollkey='0.0 0.5 1.0keyValue='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='Pitchkey='0.0 0.5 1.0keyValue='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='ShipBuoyanceHeightkey='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.4000keyValue='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='SubBuoyanceHeigthkey='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.4000keyValue='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='Ondulationkey='0.0 0.25 0.50 0.75 1.0keyValue='-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 
343                      <field name='SeaStateChoice0type='SFBoolaccessType='inputOnly'/>
344                      <field name='SeaStateChoice1type='SFBoolaccessType='inputOnly'/>
345                      <field name='SeaStateChoice2type='SFBoolaccessType='inputOnly'/>
346                      <field name='SeaStateChoice3type='SFBoolaccessType='inputOnly'/>
347                      <field name='SeaStateChoice4type='SFBoolaccessType='inputOnly'/>
348                      <field name='SeaStateChoice5type='SFBoolaccessType='inputOnly'/>
349                      <field name='SeaStateChoice6type='SFBoolaccessType='inputOnly'/>
350                      <field name='SeaStateChoice7type='SFBoolaccessType='inputOnly'/>
351                      <field name='SeaStateChoice8type='SFBoolaccessType='inputOnly'/>
352                      <field name='SeaStateValuetype='SFInt32accessType='outputOnly'/>
353                      <field name='BuoyanceValuetype='MFVec3faccessType='outputOnly'/>
354                      <field name='BuoyanceKeyValuestype='MFFloataccessType='outputOnly'/>
355                      <field name='PitchValuetype='MFRotationaccessType='outputOnly'/>
356                      <field name='RollValuetype='MFRotationaccessType='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 shows event connections.
-->
<!-- to top Index for DEF nodes: BasicExtrusion, BasicWave, BeachElevation, BeachView, Box1, Box2, Box3, Box4, Box5, Box6, Box7, Box8, BoxSensor, BuoyanceClock, Clock, Coordinate, Ondulation, Option1, Option2, Option3, Option4, Option5, Option6, Option7, Option8, Orientation, Pitch, PitchClock, Roll, RollClock, ScriptsForWaveMovement, SeaBoxSeaandRockIsland, SeaColor, SeaState_1, SeaState_2, SeaState_3, SeaState_4, SeaState_5, SeaState_6, SeaState_7, SeaState_8, SeaStateAndDirectionControlPanel, SeaStateChoice, SeaStateChoiceToValue, SeaStateNumber, ShipBridge, ShipBuoyance, ShipBuoyanceHeight, ShipClock, ShipPitch, ShipRoll, ShipVelocity, SST1Escale, SST2Scale, SST3Scale, SST4Scale, SST5Scale, SSTScale6, SSTScale7, SSTScale8, SubBuoyance, SubBuoyanceHeigth, SubPitch, SubRoll, TaskForce, Text1, Text2, Text3, Text4, Text5, Text6, Text7, Text8, TheBeach, TheSeaState, TimeSensors, TopView, TouchSensorSeaState1, TouchSensorSeaState2, TouchSensorSeaState3, TouchSensorSeaState4, TouchSensorSeaState5, TouchSensorSeaState6, TouchSensorSeaState7, TouchSensorSeaState8

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, ShipBridge, TopView
-->
X3D Tooltips element index: Appearance, Background, Billboard, Box, CoordinateInterpolator, ElevationGrid, Extrusion, field, FontStyle, Group, head, ImageTexture, Inline, Material, meta, NavigationInfo, OrientationInterpolator, PositionInterpolator, ROUTE, Scene, Script, Shape, Switch, Text, TimeSensor, TouchSensor, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

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.

TouchSensorSeaState1
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
SeaStateChoiceToValue
Script
SeaStateChoice1
SFBool
then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceKeyValues
MFFloat

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_key
MFFloat
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceValue
MFVec3f

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_keyValue
MFVec3f
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
PitchValue
MFRotation

ROUTE
event to
(2)
Pitch
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipPitch
Transform
set_rotation
SFRotation
  then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubPitch
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
RollValue
MFRotation

ROUTE
event to
(2)
Roll
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipRoll
Transform
set_rotation
SFRotation
  then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubRoll
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
SeaStateValue
SFInt32

ROUTE
event to
(2)
SeaStateNumber
Switch
whichChoice
SFInt32

TouchSensorSeaState2
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
SeaStateChoiceToValue
Script
SeaStateChoice2
SFBool
then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceKeyValues
MFFloat

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_key
MFFloat
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceValue
MFVec3f

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_keyValue
MFVec3f
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
PitchValue
MFRotation

ROUTE
event to
(2)
Pitch
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipPitch
Transform
set_rotation
SFRotation
  then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubPitch
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
RollValue
MFRotation

ROUTE
event to
(2)
Roll
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipRoll
Transform
set_rotation
SFRotation
  then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubRoll
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
SeaStateValue
SFInt32

ROUTE
event to
(2)
SeaStateNumber
Switch
whichChoice
SFInt32

TouchSensorSeaState3
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
SeaStateChoiceToValue
Script
SeaStateChoice3
SFBool
then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceKeyValues
MFFloat

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_key
MFFloat
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceValue
MFVec3f

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_keyValue
MFVec3f
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
PitchValue
MFRotation

ROUTE
event to
(2)
Pitch
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipPitch
Transform
set_rotation
SFRotation
  then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubPitch
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
RollValue
MFRotation

ROUTE
event to
(2)
Roll
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipRoll
Transform
set_rotation
SFRotation
  then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubRoll
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
SeaStateValue
SFInt32

ROUTE
event to
(2)
SeaStateNumber
Switch
whichChoice
SFInt32

TouchSensorSeaState4
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
SeaStateChoiceToValue
Script
SeaStateChoice4
SFBool
then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceKeyValues
MFFloat

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_key
MFFloat
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceValue
MFVec3f

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_keyValue
MFVec3f
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
PitchValue
MFRotation

ROUTE
event to
(2)
Pitch
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipPitch
Transform
set_rotation
SFRotation
  then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubPitch
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
RollValue
MFRotation

ROUTE
event to
(2)
Roll
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipRoll
Transform
set_rotation
SFRotation
  then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubRoll
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
SeaStateValue
SFInt32

ROUTE
event to
(2)
SeaStateNumber
Switch
whichChoice
SFInt32

TouchSensorSeaState5
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
SeaStateChoiceToValue
Script
SeaStateChoice5
SFBool
then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceKeyValues
MFFloat

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_key
MFFloat
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceValue
MFVec3f

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_keyValue
MFVec3f
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
PitchValue
MFRotation

ROUTE
event to
(2)
Pitch
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipPitch
Transform
set_rotation
SFRotation
  then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubPitch
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
RollValue
MFRotation

ROUTE
event to
(2)
Roll
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipRoll
Transform
set_rotation
SFRotation
  then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubRoll
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
SeaStateValue
SFInt32

ROUTE
event to
(2)
SeaStateNumber
Switch
whichChoice
SFInt32

TouchSensorSeaState6
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
SeaStateChoiceToValue
Script
SeaStateChoice6
SFBool
then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceKeyValues
MFFloat

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_key
MFFloat
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceValue
MFVec3f

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_keyValue
MFVec3f
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
PitchValue
MFRotation

ROUTE
event to
(2)
Pitch
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipPitch
Transform
set_rotation
SFRotation
  then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubPitch
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
RollValue
MFRotation

ROUTE
event to
(2)
Roll
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipRoll
Transform
set_rotation
SFRotation
  then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubRoll
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
SeaStateValue
SFInt32

ROUTE
event to
(2)
SeaStateNumber
Switch
whichChoice
SFInt32

TouchSensorSeaState7
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
SeaStateChoiceToValue
Script
SeaStateChoice7
SFBool
then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceKeyValues
MFFloat

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_key
MFFloat
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceValue
MFVec3f

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_keyValue
MFVec3f
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
PitchValue
MFRotation

ROUTE
event to
(2)
Pitch
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipPitch
Transform
set_rotation
SFRotation
  then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubPitch
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
RollValue
MFRotation

ROUTE
event to
(2)
Roll
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipRoll
Transform
set_rotation
SFRotation
  then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubRoll
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
SeaStateValue
SFInt32

ROUTE
event to
(2)
SeaStateNumber
Switch
whichChoice
SFInt32

TouchSensorSeaState8
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
SeaStateChoiceToValue
Script
SeaStateChoice8
SFBool
then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceKeyValues
MFFloat

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_key
MFFloat
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
BuoyanceValue
MFVec3f

ROUTE
event to
(2)
ShipBuoyanceHeight
PositionInterpolator
set_keyValue
MFVec3f
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
ShipVelocity
Transform
set_translation
SFVec3f
  then
 
 
 
SeaStateChoiceToValue
Script
PitchValue
MFRotation

ROUTE
event to
(2)
Pitch
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipPitch
Transform
set_rotation
SFRotation
  then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubPitch
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
RollValue
MFRotation

ROUTE
event to
(2)
Roll
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
ShipRoll
Transform
set_rotation
SFRotation
  then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
SubRoll
Transform
set_rotation
SFRotation
  then
 
 
 
SeaStateChoiceToValue
Script
SeaStateValue
SFInt32

ROUTE
event to
(2)
SeaStateNumber
Switch
whichChoice
SFInt32

BuoyanceClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
ShipBuoyanceHeight
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
ShipVelocity
Transform
set_translation
SFVec3f
BuoyanceClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
SubBuoyanceHeigth
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
SubBuoyanceHeigth
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
ShipBuoyance
Transform
set_translation
SFVec3f

Clock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
Ondulation
CoordinateInterpolator
set_fraction
SFFloat
then
 
 
 
Ondulation
CoordinateInterpolator
value_changed
MFVec3f

ROUTE
event to
(2)
BasicExtrusion
Extrusion
set_spine
MFVec3f

PitchClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
Pitch
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
ShipPitch
Transform
set_rotation
SFRotation
  then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
SubPitch
Transform
set_rotation
SFRotation

RollClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
Roll
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
ShipRoll
Transform
set_rotation
SFRotation
  then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
SubRoll
Transform
set_rotation
SFRotation

ShipClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
ShipBuoyanceHeight
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
ShipVelocity
Transform
set_translation
SFVec3f

      SeaStateChoiceToValue
Script
SeaStateValue
SFInt32

ROUTE
event to
(1)
SeaStateNumber
Switch
whichChoice
SFInt32
SeaStateChoiceToValue
Script
BuoyanceValue
MFVec3f

ROUTE
event to
(1)
ShipBuoyanceHeight
PositionInterpolator
set_keyValue
MFVec3f
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
ShipVelocity
Transform
set_translation
SFVec3f
SeaStateChoiceToValue
Script
BuoyanceKeyValues
MFFloat

ROUTE
event to
(1)
ShipBuoyanceHeight
PositionInterpolator
set_key
MFFloat
then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
ShipBuoyance
Transform
set_translation
SFVec3f
  then
 
 
 
ShipBuoyanceHeight
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
ShipVelocity
Transform
set_translation
SFVec3f
SeaStateChoiceToValue
Script
PitchValue
MFRotation

ROUTE
event to
(1)
Pitch
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
ShipPitch
Transform
set_rotation
SFRotation
  then
 
 
 
Pitch
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
SubPitch
Transform
set_rotation
SFRotation
SeaStateChoiceToValue
Script
RollValue
MFRotation

ROUTE
event to
(1)
Roll
OrientationInterpolator
set_keyValue
MFRotation
then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
ShipRoll
Transform
set_rotation
SFRotation
  then
 
 
 
Roll
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
SubRoll
Transform
set_rotation
SFRotation

Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

-->
<!-- Online at
https://savage.nps.edu/Savage/Environment/SeaState/MoveSeaByExtrusion14Index.html -->
<!-- Version control at
https://gitlab.nps.edu/Savage/Savage/Environment/SeaState/MoveSeaByExtrusion14.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode  DEF='idNamefield='value'/> matches XML terminology <XmlElement  DEF='idNameattribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
-->

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