#X3D V3.3 utf8 PROFILE Immersive # [X3D] version=3.3 # [X3D] noNamespaceSchemaLocation=https://www.web3d.org/specifications/x3d-3.3.xsd # X3D-to-ClassicVRML XSL translation autogenerated by X3dToClassicVrmlEncoding.xslt and X3dToVrml97.xslt # https://www.web3d.org/x3d/content/X3dToClassicVrmlEncoding.xslt # https://www.web3d.org/x3d/content/X3dToVrml97.xslt # Transformation using XSLT processor: Saxonica # head META "title" "MoveSeaByExtrusion14.x3d" META "creator" "Marcus V. da S. Simoes" META "created" "11 January 2001" META "modified" "20 October 2019" META "description" "Sea state rendering of ocean wave motion." META "identifier" "https://savage.nps.edu/Savage/Environment/SeaState/MoveSeaByExtrusion14.x3d" META "generator" "X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit" META "license" "../../license.html" # [Scene] ========== ========== ========== # Axis WorldInfo { title "MoveSeaByExtrusion14.x3d" } NavigationInfo { speed 100 } 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 ] } # ================================================= # SeaState&DirectionControlPanel # ================================================= DEF SeaBoxSeaandRockIsland Transform { children [ Shape { geometry Box { size 800 400 1000 } appearance Appearance { material Material { transparency 1 } } } DEF TheSeaState Transform { translation 0 0 -500 children [ Transform { translation 0 -5000 0 children [ DEF BasicWave Shape { appearance DEF SeaColor Appearance { texture ImageTexture { url [ "pool.jpg" "https://savage.nps.edu/Savage/Environment/SeaState/pool.jpg" ] } material Material { diffuseColor 0 0 0 transparency 0.3 } } geometry DEF BasicExtrusion Extrusion { 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 ] } } ] } DEF SeaStateNumber Switch { whichChoice 0 children [ ### children3 DEF SeaState_1 Group { children [ DEF SST1Escale Transform { scale 100 .05 100 children [ USE BasicWave ] } ] } DEF SeaState_2 Group { children [ DEF SST2Scale Transform { scale 100 1 100 children [ USE BasicWave ] } ] } DEF SeaState_3 Group { children [ DEF SST3Scale Transform { scale 100 2 100 children [ USE BasicWave ] } ] } DEF SeaState_4 Group { children [ DEF SST4Scale Transform { scale 100 4 100 children [ USE BasicWave ] } ] } DEF SeaState_5 Group { children [ DEF SST5Scale Transform { scale 100 8 100 children [ USE BasicWave ] } ] } DEF SeaState_6 Group { children [ DEF SSTScale6 Transform { scale 100 12 100 children [ USE BasicWave ] } ] } DEF SeaState_7 Group { children [ DEF SSTScale7 Transform { scale 100 16 100 children [ USE BasicWave ] } ] } DEF SeaState_8 Group { children [ DEF SSTScale8 Transform { scale 100 21 100 children [ USE BasicWave ] } ] } ] } ] } DEF TheBeach Group { children [ Transform { scale 25 120 25 translation -400 -2 -400 children [ Shape { geometry DEF BeachElevation ElevationGrid { 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 ] xDimension 10 zDimension 10 } appearance Appearance { texture ImageTexture { url [ "rocks_1.jpg" "https://savage.nps.edu/Savage/Environment/SeaState/clouds2.jpg" ] } } } ] } DEF BeachView Transform { rotation 0 1 0 1.2 translation 250 10 100 children [ Viewpoint { description "ROCK VIEW" } ] } ] } ] } # ================================================= # SeaLevelChoiceGroup # ================================================= DEF SeaStateAndDirectionControlPanel Group { children [ Transform { translation 0 100 4000 children [ Billboard { children [ DEF SeaStateChoice Group { children [ DEF Option1 Transform { translation 0 -2.0 0 children [ DEF Box1 Transform { translation 0 .1 0 children [ DEF BoxSensor Shape { geometry Box { size 1 .4 .1 } appearance Appearance { material Material { diffuseColor 0 0 1 specularColor 0 0 1 transparency .9 } } } DEF TouchSensorSeaState1 TouchSensor { description "touch to activate" } DEF Text1 Transform { scale .25 .25 .25 translation 0 0 .1 children [ Shape { geometry Text { string [ "SST 1" ] fontStyle FontStyle { justify [ "MIDDLE" "MIDDLE" ] } } appearance Appearance { material Material { emissiveColor .8 .8 .8 } } } ] } ] } ] } DEF Option2 Transform { translation 0 -1.5 0 children [ DEF Box2 Transform { translation 0 .1 0 children [ Shape { geometry Box { size 1 .4 .1 } appearance Appearance { material Material { diffuseColor 0 0 .8 transparency .7 } } } DEF TouchSensorSeaState2 TouchSensor { description "touch to activate" } DEF Text2 Transform { scale .25 .25 .25 translation 0 0 .1 children [ Shape { geometry Text { string [ "SST 2" ] fontStyle FontStyle { justify [ "MIDDLE" "MIDDLE" ] } } appearance Appearance { material Material { emissiveColor .8 .8 .8 } } } ] } ] } ] } DEF Option3 Transform { translation 0 -1.0 0 children [ DEF Box3 Transform { translation 0 .1 0 children [ Shape { geometry Box { size 1 .4 .1 } appearance Appearance { material Material { diffuseColor 0 0 .8 transparency .7 } } } DEF TouchSensorSeaState3 TouchSensor { description "touch to activate" } DEF Text3 Transform { scale .25 .25 .25 translation 0 0 .1 children [ Shape { geometry Text { string [ "SST 3" ] fontStyle FontStyle { justify [ "MIDDLE" "MIDDLE" ] } } appearance Appearance { material Material { emissiveColor .8 .8 .8 } } } ] } ] } ] } DEF Option4 Transform { translation 0 -0.5 0 children [ DEF Box4 Transform { translation 0 .1 0 children [ Shape { geometry Box { size 1 .4 .1 } appearance Appearance { material Material { diffuseColor 0 0.8 0 transparency 0.8 } } } DEF TouchSensorSeaState4 TouchSensor { description "touch to activate" } DEF Text4 Transform { scale .25 .25 .25 translation 0 0 .1 children [ Shape { geometry Text { string [ "SST 4" ] fontStyle FontStyle { justify [ "MIDDLE" "MIDDLE" ] } } appearance Appearance { material Material { emissiveColor .8 .8 .8 } } } ] } ] } ] } DEF Option5 Transform { children [ DEF Box5 Transform { translation 0 .1 0 children [ Shape { geometry Box { size 1 .4 .1 } appearance Appearance { material Material { diffuseColor 0 .5 0 transparency .4 } } } DEF Text5 Transform { scale .25 .25 .25 translation 0 0 .1 children [ Shape { geometry Text { string [ "SST 5" ] fontStyle FontStyle { justify [ "MIDDLE" "MIDDLE" ] } } appearance Appearance { material Material { emissiveColor .8 .8 .8 } } } ] } DEF TouchSensorSeaState5 TouchSensor { description "touch to activate" } ] } ] } DEF Option6 Transform { translation 0 .5 0 children [ DEF Box6 Transform { translation 0 .1 0 children [ DEF Text6 Transform { scale .25 .25 .25 translation 0 0 .1 children [ Shape { geometry Text { string [ "SST 6" ] fontStyle FontStyle { justify [ "MIDDLE" "MIDDLE" ] } } appearance Appearance { material Material { emissiveColor .8 .8 .8 } } } ] } Shape { geometry Box { size 1 .4 .1 } appearance Appearance { material Material { diffuseColor .2 0 0 transparency 0.8 } } } DEF TouchSensorSeaState6 TouchSensor { description "touch to activate" } ] } ] } DEF Option7 Transform { translation 0 1.0 0 children [ DEF Box7 Transform { translation 0 .1 0 children [ DEF Text7 Transform { scale .25 .25 .25 translation 0 0 .1 children [ Shape { geometry Text { string [ "SST 7" ] fontStyle FontStyle { justify [ "MIDDLE" "MIDDLE" ] } } appearance Appearance { material Material { emissiveColor .8 .8 .8 } } } ] } Shape { geometry Box { size 1 .4 .1 } appearance Appearance { material Material { diffuseColor .5 0 0 transparency 0.7 } } } DEF TouchSensorSeaState7 TouchSensor { description "touch to activate" } ] } ] } DEF Option8 Transform { translation 0 1.5 0 children [ DEF Box8 Transform { translation 0 .1 0 children [ DEF Text8 Transform { scale .25 .25 .25 translation 0 0 .1 children [ Shape { geometry Text { string [ "SST 8" ] fontStyle FontStyle { justify [ "MIDDLE" "MIDDLE" ] } } appearance Appearance { material Material { emissiveColor .8 .8 .8 } } } ] } Shape { geometry Box { size 1 .4 .1 } appearance Appearance { material Material { diffuseColor 1 0 0 transparency 0.5 } } } DEF TouchSensorSeaState8 TouchSensor { description "touch to activate" } ] } ] } Transform { translation 0 0 -3 children [ Shape { geometry Box { size 2 6.5 0.2 } appearance Appearance { material Material { diffuseColor .3 .3 .3 } } } ] } ] } ] } Viewpoint { description "SEA PANEL" position -2 0 6 } ] } ] } # ================================================= # TaskForce # ================================================= DEF TaskForce Group { children [ # Cruiser DEF ShipVelocity Transform { rotation 0 1 0 2.357 children [ DEF ShipBuoyance Transform { children [ DEF ShipPitch Transform { children [ DEF ShipRoll Transform { children [ 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" ] } Transform { translation 38 18.5 -9.5 children [ DEF ShipBridge Viewpoint { description "BRIDGE VIEW" fieldOfView 1.51 orientation 0 1 0 -1.57 } ] } ] } ] } DEF TopView Viewpoint { description "AERIAL VIEW" orientation 1 0 0 -1.571 position 0 500 0 } ] } ] } # SubmarineSimulation@5mDepth DEF SubBuoyance Transform { rotation 0 1 0 0.785 scale .1 .1 .1 translation 300 -10 -300 children [ DEF SubPitch Transform { children [ DEF SubRoll Transform { children [ Transform { children [ 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" ] } Viewpoint { description "PERISCOPE VIEW" fieldOfView 0.4 orientation 0 1 0 1.57 position 0 120 0 } ] } ] } ] } ] } ] } # ================================================= # AnimationClock # ================================================= DEF TimeSensors Group { children [ DEF ShipClock TimeSensor { cycleInterval 80 loop TRUE } DEF BuoyanceClock TimeSensor { cycleInterval 80 loop TRUE } DEF PitchClock TimeSensor { cycleInterval 25 loop TRUE } DEF RollClock TimeSensor { cycleInterval 40 loop TRUE } DEF Clock TimeSensor { cycleInterval 45 loop TRUE } ] } # ================================================= # Interpolators # ================================================= # MovingTheShip DEF Orientation Group { children [ DEF Roll OrientationInterpolator { key [ 0.0 0.5 1.0 ] keyValue [ 1 0 0 -0.08 1 0 0 0.08 1 0 0 -0.08 ] } DEF Pitch OrientationInterpolator { key [ 0.0 0.5 1.0 ] keyValue [ 0 0 1 -0.03 0 0 1 0.03 0 0 1 -0.03 ] } DEF ShipBuoyanceHeight PositionInterpolator { 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 ] } DEF SubBuoyanceHeigth PositionInterpolator { 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 ] } ] } # MovingTheSea DEF Coordinate Group { children [ DEF Ondulation CoordinateInterpolator { 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 ] } ] } # ================================================= # Scripts # ================================================= DEF ScriptsForWaveMovement Group { children [ DEF SeaStateChoiceToValue Script { inputOnly SFBool SeaStateChoice0 inputOnly SFBool SeaStateChoice1 inputOnly SFBool SeaStateChoice2 inputOnly SFBool SeaStateChoice3 inputOnly SFBool SeaStateChoice4 inputOnly SFBool SeaStateChoice5 inputOnly SFBool SeaStateChoice6 inputOnly SFBool SeaStateChoice7 inputOnly SFBool SeaStateChoice8 outputOnly SFInt32 SeaStateValue outputOnly MFVec3f BuoyanceValue outputOnly MFFloat BuoyanceKeyValues outputOnly MFRotation PitchValue outputOnly MFRotation RollValue ### Warning: inputOnly field 'SeaStateChoice0' has no input-event method definition 'function SeaStateChoice0 (SFBoolValue, timestamp) { }' in contained ecmascript: code ### Warning: Script 'var' declarations of variables are not persistent in contained ecmascript: code, values are lost after each call. Use definitions instead. ### Warning: mismatched parentheses (445 left, 444 right) in contained ecmascript: code url [ "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) } } " ] } ] } # ================================================= # RoutesToChooseSST # ================================================= ROUTE TouchSensorSeaState1.isActive TO SeaStateChoiceToValue.SeaStateChoice1 ROUTE TouchSensorSeaState2.isActive TO SeaStateChoiceToValue.SeaStateChoice2 ROUTE TouchSensorSeaState3.isActive TO SeaStateChoiceToValue.SeaStateChoice3 ROUTE TouchSensorSeaState4.isActive TO SeaStateChoiceToValue.SeaStateChoice4 ROUTE TouchSensorSeaState5.isActive TO SeaStateChoiceToValue.SeaStateChoice5 ROUTE TouchSensorSeaState6.isActive TO SeaStateChoiceToValue.SeaStateChoice6 ROUTE TouchSensorSeaState7.isActive TO SeaStateChoiceToValue.SeaStateChoice7 ROUTE TouchSensorSeaState8.isActive TO SeaStateChoiceToValue.SeaStateChoice8 ROUTE SeaStateChoiceToValue.SeaStateValue TO SeaStateNumber.whichChoice ROUTE SeaStateChoiceToValue.BuoyanceValue TO ShipBuoyanceHeight.set_keyValue ROUTE SeaStateChoiceToValue.BuoyanceKeyValues TO ShipBuoyanceHeight.set_key ROUTE SeaStateChoiceToValue.PitchValue TO Pitch.set_keyValue ROUTE SeaStateChoiceToValue.RollValue TO Roll.set_keyValue # # ================================================= # RoutesToMoveTheSea # ================================================= ROUTE Clock.fraction_changed TO Ondulation.set_fraction ROUTE Ondulation.value_changed TO BasicExtrusion.set_spine # ================================================= # RoutesToMoveTheShip # ================================================= ROUTE PitchClock.fraction_changed TO Pitch.set_fraction ROUTE Pitch.value_changed TO ShipPitch.set_rotation ROUTE Pitch.value_changed TO SubPitch.set_rotation ROUTE RollClock.fraction_changed TO Roll.set_fraction ROUTE Roll.value_changed TO ShipRoll.set_rotation ROUTE Roll.value_changed TO SubRoll.set_rotation ROUTE BuoyanceClock.fraction_changed TO ShipBuoyanceHeight.set_fraction ROUTE ShipBuoyanceHeight.value_changed TO ShipBuoyance.set_translation ROUTE BuoyanceClock.fraction_changed TO SubBuoyanceHeigth.set_fraction ROUTE SubBuoyanceHeigth.value_changed TO ShipBuoyance.set_translation ROUTE ShipClock.fraction_changed TO ShipBuoyanceHeight.set_fraction ROUTE ShipBuoyanceHeight.value_changed TO ShipVelocity.set_translation