@prefix : . @prefix owl: . @prefix rdf: . @prefix rdfs: . @prefix schema: . @prefix dcterms: . @prefix xsd: . @prefix x3d: . @prefix x3do: . :X3D a owl:NamedIndividual, x3do:X3D ; x3do:hasHead :head ; x3do:hasScene :Scene ; x3do:profile 'Immersive' ; x3do:version '3.3' ; x3do:noNamespaceSchemaLocation 'https://www.web3d.org/specifications/x3d-3.3.xsd' . :head a owl:NamedIndividual, x3do:head ; x3do:hasParent :X3D ; x3do:hasMeta :meta_1_1, :meta_1_2, :meta_1_3, :meta_1_4, :meta_1_5, :meta_1_6, :meta_1_7, :meta_1_8 . :meta_1_1 a owl:NamedIndividual, x3do:meta ; x3do:hasParent :head ; x3do:content 'MoveSeaByExtrusion14.x3d' ; x3do:name 'title' . :meta_1_2 a owl:NamedIndividual, x3do:meta ; x3do:hasParent :head ; x3do:content 'Marcus V. da S. Simoes' ; x3do:name 'creator' . :meta_1_3 a owl:NamedIndividual, x3do:meta ; x3do:hasParent :head ; x3do:content '11 January 2001' ; x3do:name 'created' . :meta_1_4 a owl:NamedIndividual, x3do:meta ; x3do:hasParent :head ; x3do:content '20 October 2019' ; x3do:name 'modified' . :meta_1_5 a owl:NamedIndividual, x3do:meta ; x3do:hasParent :head ; x3do:content 'Sea state rendering of ocean wave motion.' ; x3do:name 'description' . :meta_1_6 a owl:NamedIndividual, x3do:meta ; x3do:hasParent :head ; x3do:content 'https://savage.nps.edu/Savage/Environment/SeaState/MoveSeaByExtrusion14.x3d' ; x3do:name 'identifier' . :meta_1_7 a owl:NamedIndividual, x3do:meta ; x3do:hasParent :head ; x3do:content 'X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit' ; x3do:name 'generator' . :meta_1_8 a owl:NamedIndividual, x3do:meta ; x3do:hasParent :head ; x3do:content '../../license.html' ; x3do:name 'license' . :meta dcterms:title "MoveSeaByExtrusion14.x3d" . :meta dcterms:creator "Marcus V. da S. Simoes" . :meta dcterms:created "11 January 2001" . :meta dcterms:modified "20 October 2019" . :meta dcterms:description "Sea state rendering of ocean wave motion." . :meta dcterms:identifier "https://savage.nps.edu/Savage/Environment/SeaState/MoveSeaByExtrusion14.x3d" . :meta dcterms:generator "X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit" . :meta dcterms:license "../../license.html" . :Scene a owl:NamedIndividual, x3do:Scene ; x3do:hasParent :X3D ; x3do:hasChildren :WorldInfo_2_1, :NavigationInfo_2_2, :Background_2_3, :SeaBoxSeaandRockIsland, :SeaStateAndDirectionControlPanel, :TaskForce, :TimeSensors, :Orientation, :Coordinate, :ScriptsForWaveMovement ; x3do:hasROUTE :ROUTE_2_11, :ROUTE_2_12, :ROUTE_2_13, :ROUTE_2_14, :ROUTE_2_15, :ROUTE_2_16, :ROUTE_2_17, :ROUTE_2_18, :ROUTE_2_19, :ROUTE_2_20, :ROUTE_2_21, :ROUTE_2_22, :ROUTE_2_23, :ROUTE_2_24, :ROUTE_2_25, :ROUTE_2_26, :ROUTE_2_27, :ROUTE_2_28, :ROUTE_2_29, :ROUTE_2_30, :ROUTE_2_31, :ROUTE_2_32, :ROUTE_2_33, :ROUTE_2_34, :ROUTE_2_35, :ROUTE_2_36, :ROUTE_2_37 . :WorldInfo_2_1 a owl:NamedIndividual, x3do:WorldInfo ; x3do:hasParent :Scene ; x3do:title 'MoveSeaByExtrusion14.x3d' . :NavigationInfo_2_2 a owl:NamedIndividual, x3do:NavigationInfo ; x3do:hasParent :Scene ; x3do:speed 100 . :Background_2_3 a owl:NamedIndividual, x3do:Background ; x3do:hasParent :Scene ; x3do:groundAngle ( 1.309 1.570796 ) ; x3do:groundColor ( 0.0 0.2 0.7 0.0 0.5 1.0 0.6 0.6 0.6 ) ; x3do:skyAngle ( 1.309 1.571 ) ; x3do:skyColor ( 0.0 0.2 0.7 0.0 0.5 1.0 0.6 0.6 0.6 ) . :SeaBoxSeaandRockIsland a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Scene ; x3do:hasChildren :Shape_2_4_1, :TheSeaState, :TheBeach ; x3do:DEF 'SeaBoxSeaandRockIsland' . :Shape_2_4_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :SeaBoxSeaandRockIsland ; x3do:hasGeometry :Box_2_4_1_1 ; x3do:hasAppearance :Appearance_2_4_1_2 . :Box_2_4_1_1 a owl:NamedIndividual, x3do:Box ; x3do:hasParent :Shape_2_4_1 ; x3do:size ( 800 400 1000 ) . :Appearance_2_4_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_4_1 ; x3do:hasMaterial :Material_2_4_1_2_1 . :Material_2_4_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_4_1_2 ; x3do:transparency 1 . :TheSeaState a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaBoxSeaandRockIsland ; x3do:hasChildren :Transform_2_4_2_1, :SeaStateNumber ; x3do:DEF 'TheSeaState' ; x3do:translation ( 0 0 -500 ) . :Transform_2_4_2_1 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :TheSeaState ; x3do:hasChildren :BasicWave ; x3do:translation ( 0 -5000 0 ) . :BasicWave a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Transform_2_4_2_1 ; x3do:hasAppearance :SeaColor ; x3do:hasGeometry :BasicExtrusion ; x3do:DEF 'BasicWave' . :SeaColor a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :BasicWave ; x3do:hasTexture :ImageTexture_2_4_2_1_1_1_1 ; x3do:hasMaterial :Material_2_4_2_1_1_1_2 ; x3do:DEF 'SeaColor' . :ImageTexture_2_4_2_1_1_1_1 a owl:NamedIndividual, x3do:ImageTexture ; x3do:hasParent :SeaColor ; x3do:url '"pool.jpg" "https://savage.nps.edu/Savage/Environment/SeaState/pool.jpg"' . :Material_2_4_2_1_1_1_2 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :SeaColor ; x3do:diffuseColor ( 0 0 0 ) ; x3do:transparency 0.3 . :BasicExtrusion a owl:NamedIndividual, x3do:Extrusion ; x3do:hasParent :BasicWave ; x3do:DEF 'BasicExtrusion' ; x3do:beginCap false ; x3do:convex false ; x3do:creaseAngle 0.01 ; x3do:crossSection ( 0 0 0 10 0 0 ) ; x3do:endCap false ; x3do:solid false ; x3do: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 ) . :SeaStateNumber a owl:NamedIndividual, x3do:Switch ; x3do:hasParent :TheSeaState ; x3do:hasChildren :SeaState_1, :SeaState_2, :SeaState_3, :SeaState_4, :SeaState_5, :SeaState_6, :SeaState_7, :SeaState_8 ; x3do:DEF 'SeaStateNumber' ; x3do:whichChoice 0 . :SeaState_1 a owl:NamedIndividual, x3do:Group ; x3do:hasParent :SeaStateNumber ; x3do:hasChildren :SST1Escale ; x3do:DEF 'SeaState_1' . :SST1Escale a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaState_1 ; x3do:hasChildren :BasicWave-USE-1 ; x3do:DEF 'SST1Escale' ; x3do:scale ( 100 .05 100 ) . :BasicWave-USE-1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :SST1Escale ; owl:sameAs :BasicWave . # DEF matching this USE :SeaState_2 a owl:NamedIndividual, x3do:Group ; x3do:hasParent :SeaStateNumber ; x3do:hasChildren :SST2Scale ; x3do:DEF 'SeaState_2' . :SST2Scale a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaState_2 ; x3do:hasChildren :BasicWave-USE-2 ; x3do:DEF 'SST2Scale' ; x3do:scale ( 100 1 100 ) . :BasicWave-USE-2 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :SST2Scale ; owl:sameAs :BasicWave . # DEF matching this USE :SeaState_3 a owl:NamedIndividual, x3do:Group ; x3do:hasParent :SeaStateNumber ; x3do:hasChildren :SST3Scale ; x3do:DEF 'SeaState_3' . :SST3Scale a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaState_3 ; x3do:hasChildren :BasicWave-USE-3 ; x3do:DEF 'SST3Scale' ; x3do:scale ( 100 2 100 ) . :BasicWave-USE-3 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :SST3Scale ; owl:sameAs :BasicWave . # DEF matching this USE :SeaState_4 a owl:NamedIndividual, x3do:Group ; x3do:hasParent :SeaStateNumber ; x3do:hasChildren :SST4Scale ; x3do:DEF 'SeaState_4' . :SST4Scale a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaState_4 ; x3do:hasChildren :BasicWave-USE-4 ; x3do:DEF 'SST4Scale' ; x3do:scale ( 100 4 100 ) . :BasicWave-USE-4 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :SST4Scale ; owl:sameAs :BasicWave . # DEF matching this USE :SeaState_5 a owl:NamedIndividual, x3do:Group ; x3do:hasParent :SeaStateNumber ; x3do:hasChildren :SST5Scale ; x3do:DEF 'SeaState_5' . :SST5Scale a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaState_5 ; x3do:hasChildren :BasicWave-USE-5 ; x3do:DEF 'SST5Scale' ; x3do:scale ( 100 8 100 ) . :BasicWave-USE-5 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :SST5Scale ; owl:sameAs :BasicWave . # DEF matching this USE :SeaState_6 a owl:NamedIndividual, x3do:Group ; x3do:hasParent :SeaStateNumber ; x3do:hasChildren :SSTScale6 ; x3do:DEF 'SeaState_6' . :SSTScale6 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaState_6 ; x3do:hasChildren :BasicWave-USE-6 ; x3do:DEF 'SSTScale6' ; x3do:scale ( 100 12 100 ) . :BasicWave-USE-6 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :SSTScale6 ; owl:sameAs :BasicWave . # DEF matching this USE :SeaState_7 a owl:NamedIndividual, x3do:Group ; x3do:hasParent :SeaStateNumber ; x3do:hasChildren :SSTScale7 ; x3do:DEF 'SeaState_7' . :SSTScale7 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaState_7 ; x3do:hasChildren :BasicWave-USE-7 ; x3do:DEF 'SSTScale7' ; x3do:scale ( 100 16 100 ) . :BasicWave-USE-7 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :SSTScale7 ; owl:sameAs :BasicWave . # DEF matching this USE :SeaState_8 a owl:NamedIndividual, x3do:Group ; x3do:hasParent :SeaStateNumber ; x3do:hasChildren :SSTScale8 ; x3do:DEF 'SeaState_8' . :SSTScale8 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaState_8 ; x3do:hasChildren :BasicWave-USE-8 ; x3do:DEF 'SSTScale8' ; x3do:scale ( 100 21 100 ) . :BasicWave-USE-8 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :SSTScale8 ; owl:sameAs :BasicWave . # DEF matching this USE :TheBeach a owl:NamedIndividual, x3do:Group ; x3do:hasParent :SeaBoxSeaandRockIsland ; x3do:hasChildren :Transform_2_4_3_1, :BeachView ; x3do:DEF 'TheBeach' . :Transform_2_4_3_1 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :TheBeach ; x3do:hasChildren :Shape_2_4_3_1_1 ; x3do:scale ( 25 120 25 ) ; x3do:translation ( -400 -2 -400 ) . :Shape_2_4_3_1_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Transform_2_4_3_1 ; x3do:hasGeometry :BeachElevation ; x3do:hasAppearance :Appearance_2_4_3_1_1_2 . :BeachElevation a owl:NamedIndividual, x3do:ElevationGrid ; x3do:hasParent :Shape_2_4_3_1_1 ; x3do:DEF 'BeachElevation' ; x3do: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 ) ; x3do:xDimension 10 ; x3do:zDimension 10 . :Appearance_2_4_3_1_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_4_3_1_1 ; x3do:hasTexture :ImageTexture_2_4_3_1_1_2_1 . :ImageTexture_2_4_3_1_1_2_1 a owl:NamedIndividual, x3do:ImageTexture ; x3do:hasParent :Appearance_2_4_3_1_1_2 ; x3do:url '"rocks_1.jpg" "https://savage.nps.edu/Savage/Environment/SeaState/clouds2.jpg"' . :BeachView a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :TheBeach ; x3do:hasChildren :Viewpoint_2_4_3_2_1 ; x3do:DEF 'BeachView' ; x3do:rotation ( 0 1 0 1.2 ) ; x3do:translation ( 250 10 100 ) . :Viewpoint_2_4_3_2_1 a owl:NamedIndividual, x3do:Viewpoint ; x3do:hasParent :BeachView ; x3do:description 'ROCK VIEW' . :SeaStateAndDirectionControlPanel a owl:NamedIndividual, x3do:Group ; x3do:hasParent :Scene ; x3do:hasChildren :Transform_2_5_1 ; x3do:DEF 'SeaStateAndDirectionControlPanel' . :Transform_2_5_1 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaStateAndDirectionControlPanel ; x3do:hasChildren :Billboard_2_5_1_1, :Viewpoint_2_5_1_2 ; x3do:translation ( 0 100 4000 ) . :Billboard_2_5_1_1 a owl:NamedIndividual, x3do:Billboard ; x3do:hasParent :Transform_2_5_1 ; x3do:hasChildren :SeaStateChoice . :SeaStateChoice a owl:NamedIndividual, x3do:Group ; x3do:hasParent :Billboard_2_5_1_1 ; x3do:hasChildren :Option1, :Option2, :Option3, :Option4, :Option5, :Option6, :Option7, :Option8, :Transform_2_5_1_1_1_9 ; x3do:DEF 'SeaStateChoice' . :Option1 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaStateChoice ; x3do:hasChildren :Box1 ; x3do:DEF 'Option1' ; x3do:translation ( 0 -2.0 0 ) . :Box1 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Option1 ; x3do:hasChildren :BoxSensor, :TouchSensorSeaState1, :Text1 ; x3do:DEF 'Box1' ; x3do:translation ( 0 .1 0 ) . :BoxSensor a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Box1 ; x3do:hasGeometry :Box_2_5_1_1_1_1_1_1_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_1_1_1_2 ; x3do:DEF 'BoxSensor' . :Box_2_5_1_1_1_1_1_1_1 a owl:NamedIndividual, x3do:Box ; x3do:hasParent :BoxSensor ; x3do:size ( 1 .4 .1 ) . :Appearance_2_5_1_1_1_1_1_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :BoxSensor ; x3do:hasMaterial :Material_2_5_1_1_1_1_1_1_2_1 . :Material_2_5_1_1_1_1_1_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_1_1_1_2 ; x3do:diffuseColor ( 0 0 1 ) ; x3do:specularColor ( 0 0 1 ) ; x3do:transparency .9 . :TouchSensorSeaState1 a owl:NamedIndividual, x3do:TouchSensor ; x3do:hasParent :Box1 ; x3do:DEF 'TouchSensorSeaState1' ; x3do:description 'touch to activate' . :Text1 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Box1 ; x3do:hasChildren :Shape_2_5_1_1_1_1_1_3_1 ; x3do:DEF 'Text1' ; x3do:scale ( .25 .25 .25 ) ; x3do:translation ( 0 0 .1 ) . :Shape_2_5_1_1_1_1_1_3_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Text1 ; x3do:hasGeometry :Text_2_5_1_1_1_1_1_3_1_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_1_1_3_1_2 . :Text_2_5_1_1_1_1_1_3_1_1 a owl:NamedIndividual, x3do:Text ; x3do:hasParent :Shape_2_5_1_1_1_1_1_3_1 ; x3do:hasFontStyle :FontStyle_2_5_1_1_1_1_1_3_1_1_1 ; x3do:string '"SST 1"' . :FontStyle_2_5_1_1_1_1_1_3_1_1_1 a owl:NamedIndividual, x3do:FontStyle ; x3do:hasParent :Text_2_5_1_1_1_1_1_3_1_1 ; x3do:justify '"MIDDLE" "MIDDLE"' . :Appearance_2_5_1_1_1_1_1_3_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_1_1_3_1 ; x3do:hasMaterial :Material_2_5_1_1_1_1_1_3_1_2_1 . :Material_2_5_1_1_1_1_1_3_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_1_1_3_1_2 ; x3do:emissiveColor ( .8 .8 .8 ) . :Option2 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaStateChoice ; x3do:hasChildren :Box2 ; x3do:DEF 'Option2' ; x3do:translation ( 0 -1.5 0 ) . :Box2 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Option2 ; x3do:hasChildren :Shape_2_5_1_1_1_2_1_1, :TouchSensorSeaState2, :Text2 ; x3do:DEF 'Box2' ; x3do:translation ( 0 .1 0 ) . :Shape_2_5_1_1_1_2_1_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Box2 ; x3do:hasGeometry :Box_2_5_1_1_1_2_1_1_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_2_1_1_2 . :Box_2_5_1_1_1_2_1_1_1 a owl:NamedIndividual, x3do:Box ; x3do:hasParent :Shape_2_5_1_1_1_2_1_1 ; x3do:size ( 1 .4 .1 ) . :Appearance_2_5_1_1_1_2_1_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_2_1_1 ; x3do:hasMaterial :Material_2_5_1_1_1_2_1_1_2_1 . :Material_2_5_1_1_1_2_1_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_2_1_1_2 ; x3do:diffuseColor ( 0 0 .8 ) ; x3do:transparency .7 . :TouchSensorSeaState2 a owl:NamedIndividual, x3do:TouchSensor ; x3do:hasParent :Box2 ; x3do:DEF 'TouchSensorSeaState2' ; x3do:description 'touch to activate' . :Text2 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Box2 ; x3do:hasChildren :Shape_2_5_1_1_1_2_1_3_1 ; x3do:DEF 'Text2' ; x3do:scale ( .25 .25 .25 ) ; x3do:translation ( 0 0 .1 ) . :Shape_2_5_1_1_1_2_1_3_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Text2 ; x3do:hasGeometry :Text_2_5_1_1_1_2_1_3_1_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_2_1_3_1_2 . :Text_2_5_1_1_1_2_1_3_1_1 a owl:NamedIndividual, x3do:Text ; x3do:hasParent :Shape_2_5_1_1_1_2_1_3_1 ; x3do:hasFontStyle :FontStyle_2_5_1_1_1_2_1_3_1_1_1 ; x3do:string '"SST 2"' . :FontStyle_2_5_1_1_1_2_1_3_1_1_1 a owl:NamedIndividual, x3do:FontStyle ; x3do:hasParent :Text_2_5_1_1_1_2_1_3_1_1 ; x3do:justify '"MIDDLE" "MIDDLE"' . :Appearance_2_5_1_1_1_2_1_3_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_2_1_3_1 ; x3do:hasMaterial :Material_2_5_1_1_1_2_1_3_1_2_1 . :Material_2_5_1_1_1_2_1_3_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_2_1_3_1_2 ; x3do:emissiveColor ( .8 .8 .8 ) . :Option3 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaStateChoice ; x3do:hasChildren :Box3 ; x3do:DEF 'Option3' ; x3do:translation ( 0 -1.0 0 ) . :Box3 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Option3 ; x3do:hasChildren :Shape_2_5_1_1_1_3_1_1, :TouchSensorSeaState3, :Text3 ; x3do:DEF 'Box3' ; x3do:translation ( 0 .1 0 ) . :Shape_2_5_1_1_1_3_1_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Box3 ; x3do:hasGeometry :Box_2_5_1_1_1_3_1_1_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_3_1_1_2 . :Box_2_5_1_1_1_3_1_1_1 a owl:NamedIndividual, x3do:Box ; x3do:hasParent :Shape_2_5_1_1_1_3_1_1 ; x3do:size ( 1 .4 .1 ) . :Appearance_2_5_1_1_1_3_1_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_3_1_1 ; x3do:hasMaterial :Material_2_5_1_1_1_3_1_1_2_1 . :Material_2_5_1_1_1_3_1_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_3_1_1_2 ; x3do:diffuseColor ( 0 0 .8 ) ; x3do:transparency .7 . :TouchSensorSeaState3 a owl:NamedIndividual, x3do:TouchSensor ; x3do:hasParent :Box3 ; x3do:DEF 'TouchSensorSeaState3' ; x3do:description 'touch to activate' . :Text3 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Box3 ; x3do:hasChildren :Shape_2_5_1_1_1_3_1_3_1 ; x3do:DEF 'Text3' ; x3do:scale ( .25 .25 .25 ) ; x3do:translation ( 0 0 .1 ) . :Shape_2_5_1_1_1_3_1_3_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Text3 ; x3do:hasGeometry :Text_2_5_1_1_1_3_1_3_1_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_3_1_3_1_2 . :Text_2_5_1_1_1_3_1_3_1_1 a owl:NamedIndividual, x3do:Text ; x3do:hasParent :Shape_2_5_1_1_1_3_1_3_1 ; x3do:hasFontStyle :FontStyle_2_5_1_1_1_3_1_3_1_1_1 ; x3do:string '"SST 3"' . :FontStyle_2_5_1_1_1_3_1_3_1_1_1 a owl:NamedIndividual, x3do:FontStyle ; x3do:hasParent :Text_2_5_1_1_1_3_1_3_1_1 ; x3do:justify '"MIDDLE" "MIDDLE"' . :Appearance_2_5_1_1_1_3_1_3_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_3_1_3_1 ; x3do:hasMaterial :Material_2_5_1_1_1_3_1_3_1_2_1 . :Material_2_5_1_1_1_3_1_3_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_3_1_3_1_2 ; x3do:emissiveColor ( .8 .8 .8 ) . :Option4 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaStateChoice ; x3do:hasChildren :Box4 ; x3do:DEF 'Option4' ; x3do:translation ( 0 -0.5 0 ) . :Box4 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Option4 ; x3do:hasChildren :Shape_2_5_1_1_1_4_1_1, :TouchSensorSeaState4, :Text4 ; x3do:DEF 'Box4' ; x3do:translation ( 0 .1 0 ) . :Shape_2_5_1_1_1_4_1_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Box4 ; x3do:hasGeometry :Box_2_5_1_1_1_4_1_1_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_4_1_1_2 . :Box_2_5_1_1_1_4_1_1_1 a owl:NamedIndividual, x3do:Box ; x3do:hasParent :Shape_2_5_1_1_1_4_1_1 ; x3do:size ( 1 .4 .1 ) . :Appearance_2_5_1_1_1_4_1_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_4_1_1 ; x3do:hasMaterial :Material_2_5_1_1_1_4_1_1_2_1 . :Material_2_5_1_1_1_4_1_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_4_1_1_2 ; x3do:diffuseColor ( 0 0.8 0 ) ; x3do:transparency 0.8 . :TouchSensorSeaState4 a owl:NamedIndividual, x3do:TouchSensor ; x3do:hasParent :Box4 ; x3do:DEF 'TouchSensorSeaState4' ; x3do:description 'touch to activate' . :Text4 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Box4 ; x3do:hasChildren :Shape_2_5_1_1_1_4_1_3_1 ; x3do:DEF 'Text4' ; x3do:scale ( .25 .25 .25 ) ; x3do:translation ( 0 0 .1 ) . :Shape_2_5_1_1_1_4_1_3_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Text4 ; x3do:hasGeometry :Text_2_5_1_1_1_4_1_3_1_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_4_1_3_1_2 . :Text_2_5_1_1_1_4_1_3_1_1 a owl:NamedIndividual, x3do:Text ; x3do:hasParent :Shape_2_5_1_1_1_4_1_3_1 ; x3do:hasFontStyle :FontStyle_2_5_1_1_1_4_1_3_1_1_1 ; x3do:string '"SST 4"' . :FontStyle_2_5_1_1_1_4_1_3_1_1_1 a owl:NamedIndividual, x3do:FontStyle ; x3do:hasParent :Text_2_5_1_1_1_4_1_3_1_1 ; x3do:justify '"MIDDLE" "MIDDLE"' . :Appearance_2_5_1_1_1_4_1_3_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_4_1_3_1 ; x3do:hasMaterial :Material_2_5_1_1_1_4_1_3_1_2_1 . :Material_2_5_1_1_1_4_1_3_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_4_1_3_1_2 ; x3do:emissiveColor ( .8 .8 .8 ) . :Option5 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaStateChoice ; x3do:hasChildren :Box5 ; x3do:DEF 'Option5' . :Box5 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Option5 ; x3do:hasChildren :Shape_2_5_1_1_1_5_1_1, :Text5, :TouchSensorSeaState5 ; x3do:DEF 'Box5' ; x3do:translation ( 0 .1 0 ) . :Shape_2_5_1_1_1_5_1_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Box5 ; x3do:hasGeometry :Box_2_5_1_1_1_5_1_1_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_5_1_1_2 . :Box_2_5_1_1_1_5_1_1_1 a owl:NamedIndividual, x3do:Box ; x3do:hasParent :Shape_2_5_1_1_1_5_1_1 ; x3do:size ( 1 .4 .1 ) . :Appearance_2_5_1_1_1_5_1_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_5_1_1 ; x3do:hasMaterial :Material_2_5_1_1_1_5_1_1_2_1 . :Material_2_5_1_1_1_5_1_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_5_1_1_2 ; x3do:diffuseColor ( 0 .5 0 ) ; x3do:transparency .4 . :Text5 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Box5 ; x3do:hasChildren :Shape_2_5_1_1_1_5_1_2_1 ; x3do:DEF 'Text5' ; x3do:scale ( .25 .25 .25 ) ; x3do:translation ( 0 0 .1 ) . :Shape_2_5_1_1_1_5_1_2_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Text5 ; x3do:hasGeometry :Text_2_5_1_1_1_5_1_2_1_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_5_1_2_1_2 . :Text_2_5_1_1_1_5_1_2_1_1 a owl:NamedIndividual, x3do:Text ; x3do:hasParent :Shape_2_5_1_1_1_5_1_2_1 ; x3do:hasFontStyle :FontStyle_2_5_1_1_1_5_1_2_1_1_1 ; x3do:string '"SST 5"' . :FontStyle_2_5_1_1_1_5_1_2_1_1_1 a owl:NamedIndividual, x3do:FontStyle ; x3do:hasParent :Text_2_5_1_1_1_5_1_2_1_1 ; x3do:justify '"MIDDLE" "MIDDLE"' . :Appearance_2_5_1_1_1_5_1_2_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_5_1_2_1 ; x3do:hasMaterial :Material_2_5_1_1_1_5_1_2_1_2_1 . :Material_2_5_1_1_1_5_1_2_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_5_1_2_1_2 ; x3do:emissiveColor ( .8 .8 .8 ) . :TouchSensorSeaState5 a owl:NamedIndividual, x3do:TouchSensor ; x3do:hasParent :Box5 ; x3do:DEF 'TouchSensorSeaState5' ; x3do:description 'touch to activate' . :Option6 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaStateChoice ; x3do:hasChildren :Box6 ; x3do:DEF 'Option6' ; x3do:translation ( 0 .5 0 ) . :Box6 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Option6 ; x3do:hasChildren :Text6, :Shape_2_5_1_1_1_6_1_2, :TouchSensorSeaState6 ; x3do:DEF 'Box6' ; x3do:translation ( 0 .1 0 ) . :Text6 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Box6 ; x3do:hasChildren :Shape_2_5_1_1_1_6_1_1_1 ; x3do:DEF 'Text6' ; x3do:scale ( .25 .25 .25 ) ; x3do:translation ( 0 0 .1 ) . :Shape_2_5_1_1_1_6_1_1_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Text6 ; x3do:hasGeometry :Text_2_5_1_1_1_6_1_1_1_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_6_1_1_1_2 . :Text_2_5_1_1_1_6_1_1_1_1 a owl:NamedIndividual, x3do:Text ; x3do:hasParent :Shape_2_5_1_1_1_6_1_1_1 ; x3do:hasFontStyle :FontStyle_2_5_1_1_1_6_1_1_1_1_1 ; x3do:string '"SST 6"' . :FontStyle_2_5_1_1_1_6_1_1_1_1_1 a owl:NamedIndividual, x3do:FontStyle ; x3do:hasParent :Text_2_5_1_1_1_6_1_1_1_1 ; x3do:justify '"MIDDLE" "MIDDLE"' . :Appearance_2_5_1_1_1_6_1_1_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_6_1_1_1 ; x3do:hasMaterial :Material_2_5_1_1_1_6_1_1_1_2_1 . :Material_2_5_1_1_1_6_1_1_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_6_1_1_1_2 ; x3do:emissiveColor ( .8 .8 .8 ) . :Shape_2_5_1_1_1_6_1_2 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Box6 ; x3do:hasGeometry :Box_2_5_1_1_1_6_1_2_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_6_1_2_2 . :Box_2_5_1_1_1_6_1_2_1 a owl:NamedIndividual, x3do:Box ; x3do:hasParent :Shape_2_5_1_1_1_6_1_2 ; x3do:size ( 1 .4 .1 ) . :Appearance_2_5_1_1_1_6_1_2_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_6_1_2 ; x3do:hasMaterial :Material_2_5_1_1_1_6_1_2_2_1 . :Material_2_5_1_1_1_6_1_2_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_6_1_2_2 ; x3do:diffuseColor ( .2 0 0 ) ; x3do:transparency 0.8 . :TouchSensorSeaState6 a owl:NamedIndividual, x3do:TouchSensor ; x3do:hasParent :Box6 ; x3do:DEF 'TouchSensorSeaState6' ; x3do:description 'touch to activate' . :Option7 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaStateChoice ; x3do:hasChildren :Box7 ; x3do:DEF 'Option7' ; x3do:translation ( 0 1.0 0 ) . :Box7 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Option7 ; x3do:hasChildren :Text7, :Shape_2_5_1_1_1_7_1_2, :TouchSensorSeaState7 ; x3do:DEF 'Box7' ; x3do:translation ( 0 .1 0 ) . :Text7 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Box7 ; x3do:hasChildren :Shape_2_5_1_1_1_7_1_1_1 ; x3do:DEF 'Text7' ; x3do:scale ( .25 .25 .25 ) ; x3do:translation ( 0 0 .1 ) . :Shape_2_5_1_1_1_7_1_1_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Text7 ; x3do:hasGeometry :Text_2_5_1_1_1_7_1_1_1_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_7_1_1_1_2 . :Text_2_5_1_1_1_7_1_1_1_1 a owl:NamedIndividual, x3do:Text ; x3do:hasParent :Shape_2_5_1_1_1_7_1_1_1 ; x3do:hasFontStyle :FontStyle_2_5_1_1_1_7_1_1_1_1_1 ; x3do:string '"SST 7"' . :FontStyle_2_5_1_1_1_7_1_1_1_1_1 a owl:NamedIndividual, x3do:FontStyle ; x3do:hasParent :Text_2_5_1_1_1_7_1_1_1_1 ; x3do:justify '"MIDDLE" "MIDDLE"' . :Appearance_2_5_1_1_1_7_1_1_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_7_1_1_1 ; x3do:hasMaterial :Material_2_5_1_1_1_7_1_1_1_2_1 . :Material_2_5_1_1_1_7_1_1_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_7_1_1_1_2 ; x3do:emissiveColor ( .8 .8 .8 ) . :Shape_2_5_1_1_1_7_1_2 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Box7 ; x3do:hasGeometry :Box_2_5_1_1_1_7_1_2_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_7_1_2_2 . :Box_2_5_1_1_1_7_1_2_1 a owl:NamedIndividual, x3do:Box ; x3do:hasParent :Shape_2_5_1_1_1_7_1_2 ; x3do:size ( 1 .4 .1 ) . :Appearance_2_5_1_1_1_7_1_2_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_7_1_2 ; x3do:hasMaterial :Material_2_5_1_1_1_7_1_2_2_1 . :Material_2_5_1_1_1_7_1_2_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_7_1_2_2 ; x3do:diffuseColor ( .5 0 0 ) ; x3do:transparency 0.7 . :TouchSensorSeaState7 a owl:NamedIndividual, x3do:TouchSensor ; x3do:hasParent :Box7 ; x3do:DEF 'TouchSensorSeaState7' ; x3do:description 'touch to activate' . :Option8 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaStateChoice ; x3do:hasChildren :Box8 ; x3do:DEF 'Option8' ; x3do:translation ( 0 1.5 0 ) . :Box8 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Option8 ; x3do:hasChildren :Text8, :Shape_2_5_1_1_1_8_1_2, :TouchSensorSeaState8 ; x3do:DEF 'Box8' ; x3do:translation ( 0 .1 0 ) . :Text8 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :Box8 ; x3do:hasChildren :Shape_2_5_1_1_1_8_1_1_1 ; x3do:DEF 'Text8' ; x3do:scale ( .25 .25 .25 ) ; x3do:translation ( 0 0 .1 ) . :Shape_2_5_1_1_1_8_1_1_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Text8 ; x3do:hasGeometry :Text_2_5_1_1_1_8_1_1_1_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_8_1_1_1_2 . :Text_2_5_1_1_1_8_1_1_1_1 a owl:NamedIndividual, x3do:Text ; x3do:hasParent :Shape_2_5_1_1_1_8_1_1_1 ; x3do:hasFontStyle :FontStyle_2_5_1_1_1_8_1_1_1_1_1 ; x3do:string '"SST 8"' . :FontStyle_2_5_1_1_1_8_1_1_1_1_1 a owl:NamedIndividual, x3do:FontStyle ; x3do:hasParent :Text_2_5_1_1_1_8_1_1_1_1 ; x3do:justify '"MIDDLE" "MIDDLE"' . :Appearance_2_5_1_1_1_8_1_1_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_8_1_1_1 ; x3do:hasMaterial :Material_2_5_1_1_1_8_1_1_1_2_1 . :Material_2_5_1_1_1_8_1_1_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_8_1_1_1_2 ; x3do:emissiveColor ( .8 .8 .8 ) . :Shape_2_5_1_1_1_8_1_2 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Box8 ; x3do:hasGeometry :Box_2_5_1_1_1_8_1_2_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_8_1_2_2 . :Box_2_5_1_1_1_8_1_2_1 a owl:NamedIndividual, x3do:Box ; x3do:hasParent :Shape_2_5_1_1_1_8_1_2 ; x3do:size ( 1 .4 .1 ) . :Appearance_2_5_1_1_1_8_1_2_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_8_1_2 ; x3do:hasMaterial :Material_2_5_1_1_1_8_1_2_2_1 . :Material_2_5_1_1_1_8_1_2_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_8_1_2_2 ; x3do:diffuseColor ( 1 0 0 ) ; x3do:transparency 0.5 . :TouchSensorSeaState8 a owl:NamedIndividual, x3do:TouchSensor ; x3do:hasParent :Box8 ; x3do:DEF 'TouchSensorSeaState8' ; x3do:description 'touch to activate' . :Transform_2_5_1_1_1_9 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SeaStateChoice ; x3do:hasChildren :Shape_2_5_1_1_1_9_1 ; x3do:translation ( 0 0 -3 ) . :Shape_2_5_1_1_1_9_1 a owl:NamedIndividual, x3do:Shape ; x3do:hasParent :Transform_2_5_1_1_1_9 ; x3do:hasGeometry :Box_2_5_1_1_1_9_1_1 ; x3do:hasAppearance :Appearance_2_5_1_1_1_9_1_2 . :Box_2_5_1_1_1_9_1_1 a owl:NamedIndividual, x3do:Box ; x3do:hasParent :Shape_2_5_1_1_1_9_1 ; x3do:size ( 2 6.5 0.2 ) . :Appearance_2_5_1_1_1_9_1_2 a owl:NamedIndividual, x3do:Appearance ; x3do:hasParent :Shape_2_5_1_1_1_9_1 ; x3do:hasMaterial :Material_2_5_1_1_1_9_1_2_1 . :Material_2_5_1_1_1_9_1_2_1 a owl:NamedIndividual, x3do:Material ; x3do:hasParent :Appearance_2_5_1_1_1_9_1_2 ; x3do:diffuseColor ( .3 .3 .3 ) . :Viewpoint_2_5_1_2 a owl:NamedIndividual, x3do:Viewpoint ; x3do:hasParent :Transform_2_5_1 ; x3do:description 'SEA PANEL' ; x3do:position ( -2 0 6 ) . :TaskForce a owl:NamedIndividual, x3do:Group ; x3do:hasParent :Scene ; x3do:hasChildren :ShipVelocity, :SubBuoyance ; x3do:DEF 'TaskForce' . :ShipVelocity a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :TaskForce ; x3do:hasChildren :ShipBuoyance ; x3do:DEF 'ShipVelocity' ; x3do:rotation ( 0 1 0 2.357 ) . :ShipBuoyance a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :ShipVelocity ; x3do:hasChildren :ShipPitch, :TopView ; x3do:DEF 'ShipBuoyance' . :ShipPitch a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :ShipBuoyance ; x3do:hasChildren :ShipRoll ; x3do:DEF 'ShipPitch' . :ShipRoll a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :ShipPitch ; x3do:hasChildren :Inline_2_6_1_1_1_1_1, :Transform_2_6_1_1_1_1_2 ; x3do:DEF 'ShipRoll' . :Inline_2_6_1_1_1_1_1 a owl:NamedIndividual, x3do:Inline ; x3do:hasParent :ShipRoll ; x3do: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_2_6_1_1_1_1_2 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :ShipRoll ; x3do:hasChildren :ShipBridge ; x3do:translation ( 38 18.5 -9.5 ) . :ShipBridge a owl:NamedIndividual, x3do:Viewpoint ; x3do:hasParent :Transform_2_6_1_1_1_1_2 ; x3do:DEF 'ShipBridge' ; x3do:description 'BRIDGE VIEW' ; x3do:fieldOfView 1.51 ; x3do:orientation ( 0 1 0 -1.57 ) . :TopView a owl:NamedIndividual, x3do:Viewpoint ; x3do:hasParent :ShipBuoyance ; x3do:DEF 'TopView' ; x3do:description 'AERIAL VIEW' ; x3do:orientation ( 1 0 0 -1.571 ) ; x3do:position ( 0 500 0 ) . :SubBuoyance a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :TaskForce ; x3do:hasChildren :SubPitch ; x3do:DEF 'SubBuoyance' ; x3do:rotation ( 0 1 0 0.785 ) ; x3do:scale ( .1 .1 .1 ) ; x3do:translation ( 300 -10 -300 ) . :SubPitch a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SubBuoyance ; x3do:hasChildren :SubRoll ; x3do:DEF 'SubPitch' . :SubRoll a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SubPitch ; x3do:hasChildren :Transform_2_6_2_1_1_1 ; x3do:DEF 'SubRoll' . :Transform_2_6_2_1_1_1 a owl:NamedIndividual, x3do:Transform ; x3do:hasParent :SubRoll ; x3do:hasChildren :Inline_2_6_2_1_1_1_1, :Viewpoint_2_6_2_1_1_1_2 . :Inline_2_6_2_1_1_1_1 a owl:NamedIndividual, x3do:Inline ; x3do:hasParent :Transform_2_6_2_1_1_1 ; x3do: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_2_6_2_1_1_1_2 a owl:NamedIndividual, x3do:Viewpoint ; x3do:hasParent :Transform_2_6_2_1_1_1 ; x3do:description 'PERISCOPE VIEW' ; x3do:fieldOfView 0.4 ; x3do:orientation ( 0 1 0 1.57 ) ; x3do:position ( 0 120 0 ) . :TimeSensors a owl:NamedIndividual, x3do:Group ; x3do:hasParent :Scene ; x3do:hasChildren :ShipClock, :BuoyanceClock, :PitchClock, :RollClock, :Clock ; x3do:DEF 'TimeSensors' . :ShipClock a owl:NamedIndividual, x3do:TimeSensor ; x3do:hasParent :TimeSensors ; x3do:DEF 'ShipClock' ; x3do:cycleInterval '80' ; x3do:loop true . :BuoyanceClock a owl:NamedIndividual, x3do:TimeSensor ; x3do:hasParent :TimeSensors ; x3do:DEF 'BuoyanceClock' ; x3do:cycleInterval '80' ; x3do:loop true . :PitchClock a owl:NamedIndividual, x3do:TimeSensor ; x3do:hasParent :TimeSensors ; x3do:DEF 'PitchClock' ; x3do:cycleInterval '25' ; x3do:loop true . :RollClock a owl:NamedIndividual, x3do:TimeSensor ; x3do:hasParent :TimeSensors ; x3do:DEF 'RollClock' ; x3do:cycleInterval '40' ; x3do:loop true . :Clock a owl:NamedIndividual, x3do:TimeSensor ; x3do:hasParent :TimeSensors ; x3do:DEF 'Clock' ; x3do:cycleInterval '45' ; x3do:loop true . :Orientation a owl:NamedIndividual, x3do:Group ; x3do:hasParent :Scene ; x3do:hasChildren :Roll, :Pitch, :ShipBuoyanceHeight, :SubBuoyanceHeigth ; x3do:DEF 'Orientation' . :Roll a owl:NamedIndividual, x3do:OrientationInterpolator ; x3do:hasParent :Orientation ; x3do:DEF 'Roll' ; x3do:key ( 0.0 0.5 1.0 ) ; x3do:keyValue ( 1 0 0 -0.08 1 0 0 0.08 1 0 0 -0.08 ) . :Pitch a owl:NamedIndividual, x3do:OrientationInterpolator ; x3do:hasParent :Orientation ; x3do:DEF 'Pitch' ; x3do:key ( 0.0 0.5 1.0 ) ; x3do:keyValue ( 0 0 1 -0.03 0 0 1 0.03 0 0 1 -0.03 ) . :ShipBuoyanceHeight a owl:NamedIndividual, x3do:PositionInterpolator ; x3do:hasParent :Orientation ; x3do:DEF 'ShipBuoyanceHeight' ; x3do: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 ) ; x3do: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 ) . :SubBuoyanceHeigth a owl:NamedIndividual, x3do:PositionInterpolator ; x3do:hasParent :Orientation ; x3do:DEF 'SubBuoyanceHeigth' ; x3do: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 ) ; x3do: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 ) . :Coordinate a owl:NamedIndividual, x3do:Group ; x3do:hasParent :Scene ; x3do:hasChildren :Ondulation ; x3do:DEF 'Coordinate' . :Ondulation a owl:NamedIndividual, x3do:CoordinateInterpolator ; x3do:hasParent :Coordinate ; x3do:DEF 'Ondulation' ; x3do:key ( 0.0 0.25 0.50 0.75 1.0 ) ; x3do: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 ) . :ScriptsForWaveMovement a owl:NamedIndividual, x3do:Group ; x3do:hasParent :Scene ; x3do:hasChildren :SeaStateChoiceToValue ; x3do:DEF 'ScriptsForWaveMovement' . :SeaStateChoiceToValue a owl:NamedIndividual, x3do:Script ; x3do:hasParent :ScriptsForWaveMovement ; x3do:hasField :field_2_10_1_1, :field_2_10_1_2, :field_2_10_1_3, :field_2_10_1_4, :field_2_10_1_5, :field_2_10_1_6, :field_2_10_1_7, :field_2_10_1_8, :field_2_10_1_9, :field_2_10_1_10, :field_2_10_1_11, :field_2_10_1_12, :field_2_10_1_13, :field_2_10_1_14 ; x3do:DEF 'SeaStateChoiceToValue' ; x3do:sourceCode """ 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) } } """ . :field_2_10_1_1 a owl:NamedIndividual, x3do:field ; x3do:hasParent :SeaStateChoiceToValue ; x3do:accessType 'inputOnly' ; x3do:name 'SeaStateChoice0' ; x3do:type 'SFBool' . :field_2_10_1_2 a owl:NamedIndividual, x3do:field ; x3do:hasParent :SeaStateChoiceToValue ; x3do:accessType 'inputOnly' ; x3do:name 'SeaStateChoice1' ; x3do:type 'SFBool' . :field_2_10_1_3 a owl:NamedIndividual, x3do:field ; x3do:hasParent :SeaStateChoiceToValue ; x3do:accessType 'inputOnly' ; x3do:name 'SeaStateChoice2' ; x3do:type 'SFBool' . :field_2_10_1_4 a owl:NamedIndividual, x3do:field ; x3do:hasParent :SeaStateChoiceToValue ; x3do:accessType 'inputOnly' ; x3do:name 'SeaStateChoice3' ; x3do:type 'SFBool' . :field_2_10_1_5 a owl:NamedIndividual, x3do:field ; x3do:hasParent :SeaStateChoiceToValue ; x3do:accessType 'inputOnly' ; x3do:name 'SeaStateChoice4' ; x3do:type 'SFBool' . :field_2_10_1_6 a owl:NamedIndividual, x3do:field ; x3do:hasParent :SeaStateChoiceToValue ; x3do:accessType 'inputOnly' ; x3do:name 'SeaStateChoice5' ; x3do:type 'SFBool' . :field_2_10_1_7 a owl:NamedIndividual, x3do:field ; x3do:hasParent :SeaStateChoiceToValue ; x3do:accessType 'inputOnly' ; x3do:name 'SeaStateChoice6' ; x3do:type 'SFBool' . :field_2_10_1_8 a owl:NamedIndividual, x3do:field ; x3do:hasParent :SeaStateChoiceToValue ; x3do:accessType 'inputOnly' ; x3do:name 'SeaStateChoice7' ; x3do:type 'SFBool' . :field_2_10_1_9 a owl:NamedIndividual, x3do:field ; x3do:hasParent :SeaStateChoiceToValue ; x3do:accessType 'inputOnly' ; x3do:name 'SeaStateChoice8' ; x3do:type 'SFBool' . :field_2_10_1_10 a owl:NamedIndividual, x3do:field ; x3do:hasParent :SeaStateChoiceToValue ; x3do:accessType 'outputOnly' ; x3do:name 'SeaStateValue' ; x3do:type 'SFInt32' . :field_2_10_1_11 a owl:NamedIndividual, x3do:field ; x3do:hasParent :SeaStateChoiceToValue ; x3do:accessType 'outputOnly' ; x3do:name 'BuoyanceValue' ; x3do:type 'MFVec3f' . :field_2_10_1_12 a owl:NamedIndividual, x3do:field ; x3do:hasParent :SeaStateChoiceToValue ; x3do:accessType 'outputOnly' ; x3do:name 'BuoyanceKeyValues' ; x3do:type 'MFFloat' . :field_2_10_1_13 a owl:NamedIndividual, x3do:field ; x3do:hasParent :SeaStateChoiceToValue ; x3do:accessType 'outputOnly' ; x3do:name 'PitchValue' ; x3do:type 'MFRotation' . :field_2_10_1_14 a owl:NamedIndividual, x3do:field ; x3do:hasParent :SeaStateChoiceToValue ; x3do:accessType 'outputOnly' ; x3do:name 'RollValue' ; x3do:type 'MFRotation' . :ROUTE_2_11 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'isActive' ; x3do:fromNode 'TouchSensorSeaState1' ; x3do:toField 'SeaStateChoice1' ; x3do:toNode 'SeaStateChoiceToValue' . :ROUTE_2_12 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'isActive' ; x3do:fromNode 'TouchSensorSeaState2' ; x3do:toField 'SeaStateChoice2' ; x3do:toNode 'SeaStateChoiceToValue' . :ROUTE_2_13 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'isActive' ; x3do:fromNode 'TouchSensorSeaState3' ; x3do:toField 'SeaStateChoice3' ; x3do:toNode 'SeaStateChoiceToValue' . :ROUTE_2_14 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'isActive' ; x3do:fromNode 'TouchSensorSeaState4' ; x3do:toField 'SeaStateChoice4' ; x3do:toNode 'SeaStateChoiceToValue' . :ROUTE_2_15 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'isActive' ; x3do:fromNode 'TouchSensorSeaState5' ; x3do:toField 'SeaStateChoice5' ; x3do:toNode 'SeaStateChoiceToValue' . :ROUTE_2_16 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'isActive' ; x3do:fromNode 'TouchSensorSeaState6' ; x3do:toField 'SeaStateChoice6' ; x3do:toNode 'SeaStateChoiceToValue' . :ROUTE_2_17 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'isActive' ; x3do:fromNode 'TouchSensorSeaState7' ; x3do:toField 'SeaStateChoice7' ; x3do:toNode 'SeaStateChoiceToValue' . :ROUTE_2_18 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'isActive' ; x3do:fromNode 'TouchSensorSeaState8' ; x3do:toField 'SeaStateChoice8' ; x3do:toNode 'SeaStateChoiceToValue' . :ROUTE_2_19 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'SeaStateValue' ; x3do:fromNode 'SeaStateChoiceToValue' ; x3do:toField 'whichChoice' ; x3do:toNode 'SeaStateNumber' . :ROUTE_2_20 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'BuoyanceValue' ; x3do:fromNode 'SeaStateChoiceToValue' ; x3do:toField 'set_keyValue' ; x3do:toNode 'ShipBuoyanceHeight' . :ROUTE_2_21 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'BuoyanceKeyValues' ; x3do:fromNode 'SeaStateChoiceToValue' ; x3do:toField 'set_key' ; x3do:toNode 'ShipBuoyanceHeight' . :ROUTE_2_22 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'PitchValue' ; x3do:fromNode 'SeaStateChoiceToValue' ; x3do:toField 'set_keyValue' ; x3do:toNode 'Pitch' . :ROUTE_2_23 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'RollValue' ; x3do:fromNode 'SeaStateChoiceToValue' ; x3do:toField 'set_keyValue' ; x3do:toNode 'Roll' . :ROUTE_2_24 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'fraction_changed' ; x3do:fromNode 'Clock' ; x3do:toField 'set_fraction' ; x3do:toNode 'Ondulation' . :ROUTE_2_25 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'value_changed' ; x3do:fromNode 'Ondulation' ; x3do:toField 'set_spine' ; x3do:toNode 'BasicExtrusion' . :ROUTE_2_26 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'fraction_changed' ; x3do:fromNode 'PitchClock' ; x3do:toField 'set_fraction' ; x3do:toNode 'Pitch' . :ROUTE_2_27 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'value_changed' ; x3do:fromNode 'Pitch' ; x3do:toField 'set_rotation' ; x3do:toNode 'ShipPitch' . :ROUTE_2_28 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'value_changed' ; x3do:fromNode 'Pitch' ; x3do:toField 'set_rotation' ; x3do:toNode 'SubPitch' . :ROUTE_2_29 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'fraction_changed' ; x3do:fromNode 'RollClock' ; x3do:toField 'set_fraction' ; x3do:toNode 'Roll' . :ROUTE_2_30 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'value_changed' ; x3do:fromNode 'Roll' ; x3do:toField 'set_rotation' ; x3do:toNode 'ShipRoll' . :ROUTE_2_31 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'value_changed' ; x3do:fromNode 'Roll' ; x3do:toField 'set_rotation' ; x3do:toNode 'SubRoll' . :ROUTE_2_32 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'fraction_changed' ; x3do:fromNode 'BuoyanceClock' ; x3do:toField 'set_fraction' ; x3do:toNode 'ShipBuoyanceHeight' . :ROUTE_2_33 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'value_changed' ; x3do:fromNode 'ShipBuoyanceHeight' ; x3do:toField 'set_translation' ; x3do:toNode 'ShipBuoyance' . :ROUTE_2_34 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'fraction_changed' ; x3do:fromNode 'BuoyanceClock' ; x3do:toField 'set_fraction' ; x3do:toNode 'SubBuoyanceHeigth' . :ROUTE_2_35 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'value_changed' ; x3do:fromNode 'SubBuoyanceHeigth' ; x3do:toField 'set_translation' ; x3do:toNode 'ShipBuoyance' . :ROUTE_2_36 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'fraction_changed' ; x3do:fromNode 'ShipClock' ; x3do:toField 'set_fraction' ; x3do:toNode 'ShipBuoyanceHeight' . :ROUTE_2_37 a owl:NamedIndividual, x3do:ROUTE ; x3do:hasParent :Scene ; x3do:fromField 'value_changed' ; x3do:fromNode 'ShipBuoyanceHeight' ; x3do:toField 'set_translation' ; x3do:toNode 'ShipVelocity' .