@prefix :        <https://www.web3d.org/x3d/content/examples/Savage/Environment/SeaState/SeaStateExtrusionPrototype.ttl#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema:  <http://schema.org/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix x3d:     <https://www.web3d.org/specifications/x3d-4.0.xsd#> .
@prefix x3do:    <https://www.web3d.org/specifications/X3dOntology4.0#> .

:X3D a owl:NamedIndividual, x3do:X3D ;
  x3do:hasHead :head ;
  x3do:hasScene :Scene ;
  x3do:profile 'Immersive' ;
  x3do:version '3.0' ;
  x3do:noNamespaceSchemaLocation 'https://www.web3d.org/specifications/x3d-3.0.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 'SeaStateExtrusionPrototype.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: prototype for reproducing sea state surface in other scenes.' ;
  x3do:name 'description' .
:meta_1_6 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/content/examples/Savage/Environment/SeaState/SeaStateExtrusionPrototype.x3d' ;
  x3do:name 'identifier' .
:meta_1_7 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'X3D-Edit 3.2, https://www.web3d.org/x3d/tools/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 "SeaStateExtrusionPrototype.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: prototype for reproducing sea state surface in other scenes." .
:meta dcterms:identifier "https://www.web3d.org/x3d/content/examples/Savage/Environment/SeaState/SeaStateExtrusionPrototype.x3d" .
:meta dcterms:generator "X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit" .
:meta dcterms:license "../../license.html" .
:Scene a owl:NamedIndividual, x3do:Scene ;
  x3do:hasParent :X3D ;
  x3do:hasChildren :WorldInfo_2_1, :NavigationInfo_2_3, :Background_2_4, :Anchor_2_5 ;
  x3do:hasProtoDeclare :ProtoDeclare_2_2 .
:WorldInfo_2_1 a owl:NamedIndividual, x3do:WorldInfo ;
  x3do:hasParent :Scene ;
  x3do:title 'SeaStateExtrusionPrototype.x3d' .
:ProtoDeclare_2_2 a owl:NamedIndividual, x3do:ProtoDeclare ;
  x3do:hasParent :Scene ;
  x3do:hasProtoInterface :ProtoInterface_2_2_1 ;
  x3do:hasProtoBody :ProtoBody_2_2_2 ;
  x3do:name 'SeaStateExtrusion' .
:ProtoInterface_2_2_1 a owl:NamedIndividual, x3do:ProtoInterface ;
  x3do:hasParent :ProtoDeclare_2_2 ;
  x3do:hasField :field_2_2_1_1, :field_2_2_1_2 .
:field_2_2_1_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'shipPitch' ;
  x3do:type 'SFRotation' .
:field_2_2_1_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'shipRoll' ;
  x3do:type 'SFRotation' .
:ProtoBody_2_2_2 a owl:NamedIndividual, x3do:ProtoBody ;
  x3do:hasParent :ProtoDeclare_2_2 ;
  x3do:hasChildren :Group_2_2_2_1 ;
  x3do:hasROUTE :ROUTE_2_2_2_2, :ROUTE_2_2_2_3, :ROUTE_2_2_2_4, :ROUTE_2_2_2_5, :ROUTE_2_2_2_6, :ROUTE_2_2_2_7, :ROUTE_2_2_2_8, :ROUTE_2_2_2_9, :ROUTE_2_2_2_10, :ROUTE_2_2_2_11, :ROUTE_2_2_2_12, :ROUTE_2_2_2_13, :ROUTE_2_2_2_14 .
:Group_2_2_2_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:hasChildren :TimeSensors, :OrientationInterpolators, :CoordinateInterpolator, :SeaStateNumber, :SeaStateAndDirection, :ScriptsForWaveMovement .
:TimeSensors a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_2_2_1 ;
  x3do:hasChildren :WaveClock, :PitchandRollClock ;
  x3do:DEF 'TimeSensors' .
:WaveClock a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :TimeSensors ;
  x3do:DEF 'WaveClock' ;
  x3do:cycleInterval '15' ;
  x3do:loop true .
:PitchandRollClock a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :TimeSensors ;
  x3do:DEF 'PitchandRollClock' ;
  x3do:cycleInterval '10' ;
  x3do:loop true .
:OrientationInterpolators a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_2_2_1 ;
  x3do:hasChildren :PitchInterpolator, :RollInterpolator ;
  x3do:DEF 'OrientationInterpolators' .
:PitchInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :OrientationInterpolators ;
  x3do:hasIS :IS_2_2_2_1_2_1_1 ;
  x3do:DEF 'PitchInterpolator' ;
  x3do:key ( 0.0 0.5 1.0 ) ;
  x3do:keyValue ( 0 0 1 -0.05 0 0 1 0.0 0 0 1 -0.05 ) .
:IS_2_2_2_1_2_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :PitchInterpolator ;
  x3do:hasConnect :connect_2_2_2_1_2_1_1_1 .
:connect_2_2_2_1_2_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_2_1_1 ;
  x3do:nodeField 'value_changed' ;
  x3do:protoField 'shipPitch' .
:RollInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :OrientationInterpolators ;
  x3do:hasIS :IS_2_2_2_1_2_2_1 ;
  x3do:DEF 'RollInterpolator' ;
  x3do:key ( 0.0 0.5 1.0 ) ;
  x3do:keyValue ( 1 0 0 -0.05 1 0 0 0.0 1 0 0 -0.05 ) .
:IS_2_2_2_1_2_2_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :RollInterpolator ;
  x3do:hasConnect :connect_2_2_2_1_2_2_1_1 .
:connect_2_2_2_1_2_2_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_2_2_1 ;
  x3do:nodeField 'value_changed' ;
  x3do:protoField 'shipRoll' .
:CoordinateInterpolator a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_2_2_1 ;
  x3do:hasChildren :Ondulation ;
  x3do:DEF 'CoordinateInterpolator' .
:Ondulation a owl:NamedIndividual, x3do:CoordinateInterpolator ;
  x3do:hasParent :CoordinateInterpolator ;
  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 ) .
:SeaStateNumber a owl:NamedIndividual, x3do:Switch ;
  x3do:hasParent :Group_2_2_2_1 ;
  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 :Transform_2_2_2_1_4_1_1 ;
  x3do:DEF 'SeaState_1' .
:Transform_2_2_2_1_4_1_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :SeaState_1 ;
  x3do:hasChildren :TheSea .
:TheSea a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_2_2_1_4_1_1 ;
  x3do:hasChildren :Basic ;
  x3do:DEF 'TheSea' .
:Basic a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :TheSea ;
  x3do:hasChildren :BasicWave ;
  x3do:DEF 'Basic' ;
  x3do:scale ( 250 1 10 ) .
:BasicWave a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Basic ;
  x3do:hasAppearance :SeaColor ;
  x3do:hasGeometry :BasicExtrusion ;
  x3do:DEF 'BasicWave' .
:SeaColor a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :BasicWave ;
  x3do:hasTexture :ImageTexture_2_2_2_1_4_1_1_1_1_1_1_1 ;
  x3do:hasMaterial :Material_2_2_2_1_4_1_1_1_1_1_1_2 ;
  x3do:DEF 'SeaColor' .
:ImageTexture_2_2_2_1_4_1_1_1_1_1_1_1 a owl:NamedIndividual, x3do:ImageTexture ;
  x3do:hasParent :SeaColor ;
  x3do:url '"../../Environment/SeaState/pool.jpg" "https://www.web3d.org/x3d/content/examples/Savage/Environment/SeaState/pool.jpg"' .
:Material_2_2_2_1_4_1_1_1_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 200 0 0 ) ;
  x3do:endCap false ;
  x3do:solid false ;
  x3do:spine ( 0.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.0000 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 ) .
:SeaState_2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :SeaStateNumber ;
  x3do:hasChildren :Transform_2_2_2_1_4_2_1 ;
  x3do:DEF 'SeaState_2' .
:Transform_2_2_2_1_4_2_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :SeaState_2 ;
  x3do:hasChildren :SeaState_1-USE-1 ;
  x3do:scale ( 1 5 1 ) .
:SeaState_1-USE-1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_2_2_1_4_2_1 ;
  owl:sameAs :SeaState_1 . # DEF matching this USE
:SeaState_3 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :SeaStateNumber ;
  x3do:hasChildren :Transform_2_2_2_1_4_3_1 ;
  x3do:DEF 'SeaState_3' .
:Transform_2_2_2_1_4_3_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :SeaState_3 ;
  x3do:hasChildren :SeaState_1-USE-2 ;
  x3do:scale ( 1 8 1 ) .
:SeaState_1-USE-2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_2_2_1_4_3_1 ;
  owl:sameAs :SeaState_1 . # DEF matching this USE
:SeaState_4 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :SeaStateNumber ;
  x3do:hasChildren :Transform_2_2_2_1_4_4_1 ;
  x3do:DEF 'SeaState_4' .
:Transform_2_2_2_1_4_4_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :SeaState_4 ;
  x3do:hasChildren :SeaState_1-USE-3 ;
  x3do:scale ( 1 12 1 ) .
:SeaState_1-USE-3 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_2_2_1_4_4_1 ;
  owl:sameAs :SeaState_1 . # DEF matching this USE
:SeaState_5 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :SeaStateNumber ;
  x3do:hasChildren :Transform_2_2_2_1_4_5_1 ;
  x3do:DEF 'SeaState_5' .
:Transform_2_2_2_1_4_5_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :SeaState_5 ;
  x3do:hasChildren :SeaState_1-USE-4 ;
  x3do:scale ( 1 15 1 ) .
:SeaState_1-USE-4 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_2_2_1_4_5_1 ;
  owl:sameAs :SeaState_1 . # DEF matching this USE
:SeaState_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :SeaStateNumber ;
  x3do:hasChildren :Transform_2_2_2_1_4_6_1 ;
  x3do:DEF 'SeaState_6' .
:Transform_2_2_2_1_4_6_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :SeaState_6 ;
  x3do:hasChildren :SeaState_1-USE-5 ;
  x3do:scale ( 1 20 1 ) .
:SeaState_1-USE-5 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_2_2_1_4_6_1 ;
  owl:sameAs :SeaState_1 . # DEF matching this USE
:SeaState_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :SeaStateNumber ;
  x3do:hasChildren :Transform_2_2_2_1_4_7_1 ;
  x3do:DEF 'SeaState_7' .
:Transform_2_2_2_1_4_7_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :SeaState_7 ;
  x3do:hasChildren :SeaState_1-USE-6 ;
  x3do:scale ( 1 25 1 ) .
:SeaState_1-USE-6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_2_2_1_4_7_1 ;
  owl:sameAs :SeaState_1 . # DEF matching this USE
:SeaState_8 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :SeaStateNumber ;
  x3do:hasChildren :Transform_2_2_2_1_4_8_1 ;
  x3do:DEF 'SeaState_8' .
:Transform_2_2_2_1_4_8_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :SeaState_8 ;
  x3do:hasChildren :SeaState_1-USE-7 ;
  x3do:scale ( 1 32 1 ) .
:SeaState_1-USE-7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_2_2_1_4_8_1 ;
  owl:sameAs :SeaState_1 . # DEF matching this USE
:SeaStateAndDirection a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_2_2_1 ;
  x3do:hasChildren :Transform_2_2_2_1_5_1 ;
  x3do:DEF 'SeaStateAndDirection' .
:Transform_2_2_2_1_5_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :SeaStateAndDirection ;
  x3do:hasChildren :Viewpoint_2_2_2_1_5_1_1, :Billboard_2_2_2_1_5_1_2 ;
  x3do:translation ( 0 100 4000 ) .
:Viewpoint_2_2_2_1_5_1_1 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Transform_2_2_2_1_5_1 ;
  x3do:description 'Sea State Control Panel' ;
  x3do:position ( -2 0 6 ) .
:Billboard_2_2_2_1_5_1_2 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Transform_2_2_2_1_5_1 ;
  x3do:hasChildren :SeaStateChoice .
:SeaStateChoice a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Billboard_2_2_2_1_5_1_2 ;
  x3do:hasChildren :Option1, :Option2, :Option3, :Option4, :Option5, :Option6, :Option7, :Option8, :Transform_2_2_2_1_5_1_2_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_2_2_1_5_1_2_1_1_1_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_1_1_1_2 ;
  x3do:DEF 'BoxSensor' .
:Box_2_2_2_1_5_1_2_1_1_1_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :BoxSensor ;
  x3do:size ( 1 .4 .1 ) .
:Appearance_2_2_2_1_5_1_2_1_1_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :BoxSensor ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_1_1_1_2_1 .
:Material_2_2_2_1_5_1_2_1_1_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_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 'click to select sea state' .
:Text1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Box1 ;
  x3do:hasChildren :Shape_2_2_2_1_5_1_2_1_1_1_3_1 ;
  x3do:DEF 'Text1' ;
  x3do:scale ( .25 .25 .25 ) ;
  x3do:translation ( 0 0 .1 ) .
:Shape_2_2_2_1_5_1_2_1_1_1_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Text1 ;
  x3do:hasGeometry :Text_2_2_2_1_5_1_2_1_1_1_3_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_1_1_3_1_2 .
:Text_2_2_2_1_5_1_2_1_1_1_3_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_1_1_3_1 ;
  x3do:hasFontStyle :FontStyle_2_2_2_1_5_1_2_1_1_1_3_1_1_1 ;
  x3do:string '"SST 1"' .
:FontStyle_2_2_2_1_5_1_2_1_1_1_3_1_1_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_5_1_2_1_1_1_3_1_1 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_2_2_1_5_1_2_1_1_1_3_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_1_1_3_1 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_1_1_3_1_2_1 .
:Material_2_2_2_1_5_1_2_1_1_1_3_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_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_2_2_1_5_1_2_1_2_1_1, :TouchSensorSeaState2, :Text2 ;
  x3do:DEF 'Box2' ;
  x3do:translation ( 0 .1 0 ) .
:Shape_2_2_2_1_5_1_2_1_2_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Box2 ;
  x3do:hasGeometry :Box_2_2_2_1_5_1_2_1_2_1_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_2_1_1_2 .
:Box_2_2_2_1_5_1_2_1_2_1_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_2_1_1 ;
  x3do:size ( 1 .4 .1 ) .
:Appearance_2_2_2_1_5_1_2_1_2_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_2_1_1 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_2_1_1_2_1 .
:Material_2_2_2_1_5_1_2_1_2_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_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 'click to select sea state' .
:Text2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Box2 ;
  x3do:hasChildren :Shape_2_2_2_1_5_1_2_1_2_1_3_1 ;
  x3do:DEF 'Text2' ;
  x3do:scale ( .25 .25 .25 ) ;
  x3do:translation ( 0 0 .1 ) .
:Shape_2_2_2_1_5_1_2_1_2_1_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Text2 ;
  x3do:hasGeometry :Text_2_2_2_1_5_1_2_1_2_1_3_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_2_1_3_1_2 .
:Text_2_2_2_1_5_1_2_1_2_1_3_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_2_1_3_1 ;
  x3do:hasFontStyle :FontStyle_2_2_2_1_5_1_2_1_2_1_3_1_1_1 ;
  x3do:string '"SST 2"' .
:FontStyle_2_2_2_1_5_1_2_1_2_1_3_1_1_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_5_1_2_1_2_1_3_1_1 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_2_2_1_5_1_2_1_2_1_3_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_2_1_3_1 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_2_1_3_1_2_1 .
:Material_2_2_2_1_5_1_2_1_2_1_3_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_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_2_2_1_5_1_2_1_3_1_1, :TouchSensorSeaState3, :Text3 ;
  x3do:DEF 'Box3' ;
  x3do:translation ( 0 .1 0 ) .
:Shape_2_2_2_1_5_1_2_1_3_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Box3 ;
  x3do:hasGeometry :Box_2_2_2_1_5_1_2_1_3_1_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_3_1_1_2 .
:Box_2_2_2_1_5_1_2_1_3_1_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_3_1_1 ;
  x3do:size ( 1 .4 .1 ) .
:Appearance_2_2_2_1_5_1_2_1_3_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_3_1_1 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_3_1_1_2_1 .
:Material_2_2_2_1_5_1_2_1_3_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_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 'click to select sea state' .
:Text3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Box3 ;
  x3do:hasChildren :Shape_2_2_2_1_5_1_2_1_3_1_3_1 ;
  x3do:DEF 'Text3' ;
  x3do:scale ( .25 .25 .25 ) ;
  x3do:translation ( 0 0 .1 ) .
:Shape_2_2_2_1_5_1_2_1_3_1_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Text3 ;
  x3do:hasGeometry :Text_2_2_2_1_5_1_2_1_3_1_3_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_3_1_3_1_2 .
:Text_2_2_2_1_5_1_2_1_3_1_3_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_3_1_3_1 ;
  x3do:hasFontStyle :FontStyle_2_2_2_1_5_1_2_1_3_1_3_1_1_1 ;
  x3do:string '"SST 3"' .
:FontStyle_2_2_2_1_5_1_2_1_3_1_3_1_1_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_5_1_2_1_3_1_3_1_1 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_2_2_1_5_1_2_1_3_1_3_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_3_1_3_1 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_3_1_3_1_2_1 .
:Material_2_2_2_1_5_1_2_1_3_1_3_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_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_2_2_1_5_1_2_1_4_1_1, :TouchSensorSeaState4, :Text4 ;
  x3do:DEF 'Box4' ;
  x3do:translation ( 0 .1 0 ) .
:Shape_2_2_2_1_5_1_2_1_4_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Box4 ;
  x3do:hasGeometry :Box_2_2_2_1_5_1_2_1_4_1_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_4_1_1_2 .
:Box_2_2_2_1_5_1_2_1_4_1_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_4_1_1 ;
  x3do:size ( 1 .4 .1 ) .
:Appearance_2_2_2_1_5_1_2_1_4_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_4_1_1 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_4_1_1_2_1 .
:Material_2_2_2_1_5_1_2_1_4_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_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 'click to select sea state' .
:Text4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Box4 ;
  x3do:hasChildren :Shape_2_2_2_1_5_1_2_1_4_1_3_1 ;
  x3do:DEF 'Text4' ;
  x3do:scale ( .25 .25 .25 ) ;
  x3do:translation ( 0 0 .1 ) .
:Shape_2_2_2_1_5_1_2_1_4_1_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Text4 ;
  x3do:hasGeometry :Text_2_2_2_1_5_1_2_1_4_1_3_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_4_1_3_1_2 .
:Text_2_2_2_1_5_1_2_1_4_1_3_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_4_1_3_1 ;
  x3do:hasFontStyle :FontStyle_2_2_2_1_5_1_2_1_4_1_3_1_1_1 ;
  x3do:string '"SST 4"' .
:FontStyle_2_2_2_1_5_1_2_1_4_1_3_1_1_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_5_1_2_1_4_1_3_1_1 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_2_2_1_5_1_2_1_4_1_3_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_4_1_3_1 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_4_1_3_1_2_1 .
:Material_2_2_2_1_5_1_2_1_4_1_3_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_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_2_2_1_5_1_2_1_5_1_1, :Text5, :TouchSensorSeaState5 ;
  x3do:DEF 'Box5' ;
  x3do:translation ( 0 .1 0 ) .
:Shape_2_2_2_1_5_1_2_1_5_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Box5 ;
  x3do:hasGeometry :Box_2_2_2_1_5_1_2_1_5_1_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_5_1_1_2 .
:Box_2_2_2_1_5_1_2_1_5_1_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_5_1_1 ;
  x3do:size ( 1 .4 .1 ) .
:Appearance_2_2_2_1_5_1_2_1_5_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_5_1_1 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_5_1_1_2_1 .
:Material_2_2_2_1_5_1_2_1_5_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_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_2_2_1_5_1_2_1_5_1_2_1 ;
  x3do:DEF 'Text5' ;
  x3do:scale ( .25 .25 .25 ) ;
  x3do:translation ( 0 0 .1 ) .
:Shape_2_2_2_1_5_1_2_1_5_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Text5 ;
  x3do:hasGeometry :Text_2_2_2_1_5_1_2_1_5_1_2_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_5_1_2_1_2 .
:Text_2_2_2_1_5_1_2_1_5_1_2_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_5_1_2_1 ;
  x3do:hasFontStyle :FontStyle_2_2_2_1_5_1_2_1_5_1_2_1_1_1 ;
  x3do:string '"SST 5"' .
:FontStyle_2_2_2_1_5_1_2_1_5_1_2_1_1_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_5_1_2_1_5_1_2_1_1 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_2_2_1_5_1_2_1_5_1_2_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_5_1_2_1 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_5_1_2_1_2_1 .
:Material_2_2_2_1_5_1_2_1_5_1_2_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_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 'click to select sea state' .
: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_2_2_1_5_1_2_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_2_2_1_5_1_2_1_6_1_1_1 ;
  x3do:DEF 'Text6' ;
  x3do:scale ( .25 .25 .25 ) ;
  x3do:translation ( 0 0 .1 ) .
:Shape_2_2_2_1_5_1_2_1_6_1_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Text6 ;
  x3do:hasGeometry :Text_2_2_2_1_5_1_2_1_6_1_1_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_6_1_1_1_2 .
:Text_2_2_2_1_5_1_2_1_6_1_1_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_6_1_1_1 ;
  x3do:hasFontStyle :FontStyle_2_2_2_1_5_1_2_1_6_1_1_1_1_1 ;
  x3do:string '"SST 6"' .
:FontStyle_2_2_2_1_5_1_2_1_6_1_1_1_1_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_5_1_2_1_6_1_1_1_1 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_2_2_1_5_1_2_1_6_1_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_6_1_1_1 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_6_1_1_1_2_1 .
:Material_2_2_2_1_5_1_2_1_6_1_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_1_6_1_1_1_2 ;
  x3do:emissiveColor ( .8 .8 .8 ) .
:Shape_2_2_2_1_5_1_2_1_6_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Box6 ;
  x3do:hasGeometry :Box_2_2_2_1_5_1_2_1_6_1_2_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_6_1_2_2 .
:Box_2_2_2_1_5_1_2_1_6_1_2_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_6_1_2 ;
  x3do:size ( 1 .4 .1 ) .
:Appearance_2_2_2_1_5_1_2_1_6_1_2_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_6_1_2 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_6_1_2_2_1 .
:Material_2_2_2_1_5_1_2_1_6_1_2_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_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 'click to select sea state' .
: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_2_2_1_5_1_2_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_2_2_1_5_1_2_1_7_1_1_1 ;
  x3do:DEF 'Text7' ;
  x3do:scale ( .25 .25 .25 ) ;
  x3do:translation ( 0 0 .1 ) .
:Shape_2_2_2_1_5_1_2_1_7_1_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Text7 ;
  x3do:hasGeometry :Text_2_2_2_1_5_1_2_1_7_1_1_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_7_1_1_1_2 .
:Text_2_2_2_1_5_1_2_1_7_1_1_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_7_1_1_1 ;
  x3do:hasFontStyle :FontStyle_2_2_2_1_5_1_2_1_7_1_1_1_1_1 ;
  x3do:string '"SST 7"' .
:FontStyle_2_2_2_1_5_1_2_1_7_1_1_1_1_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_5_1_2_1_7_1_1_1_1 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_2_2_1_5_1_2_1_7_1_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_7_1_1_1 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_7_1_1_1_2_1 .
:Material_2_2_2_1_5_1_2_1_7_1_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_1_7_1_1_1_2 ;
  x3do:emissiveColor ( .8 .8 .8 ) .
:Shape_2_2_2_1_5_1_2_1_7_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Box7 ;
  x3do:hasGeometry :Box_2_2_2_1_5_1_2_1_7_1_2_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_7_1_2_2 .
:Box_2_2_2_1_5_1_2_1_7_1_2_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_7_1_2 ;
  x3do:size ( 1 .4 .1 ) .
:Appearance_2_2_2_1_5_1_2_1_7_1_2_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_7_1_2 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_7_1_2_2_1 .
:Material_2_2_2_1_5_1_2_1_7_1_2_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_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 'click to select sea state' .
: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_2_2_1_5_1_2_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_2_2_1_5_1_2_1_8_1_1_1 ;
  x3do:DEF 'Text8' ;
  x3do:scale ( .25 .25 .25 ) ;
  x3do:translation ( 0 0 .1 ) .
:Shape_2_2_2_1_5_1_2_1_8_1_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Text8 ;
  x3do:hasGeometry :Text_2_2_2_1_5_1_2_1_8_1_1_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_8_1_1_1_2 .
:Text_2_2_2_1_5_1_2_1_8_1_1_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_8_1_1_1 ;
  x3do:hasFontStyle :FontStyle_2_2_2_1_5_1_2_1_8_1_1_1_1_1 ;
  x3do:string '"SST 8"' .
:FontStyle_2_2_2_1_5_1_2_1_8_1_1_1_1_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_5_1_2_1_8_1_1_1_1 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_2_2_1_5_1_2_1_8_1_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_8_1_1_1 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_8_1_1_1_2_1 .
:Material_2_2_2_1_5_1_2_1_8_1_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_1_8_1_1_1_2 ;
  x3do:emissiveColor ( .8 .8 .8 ) .
:Shape_2_2_2_1_5_1_2_1_8_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Box8 ;
  x3do:hasGeometry :Box_2_2_2_1_5_1_2_1_8_1_2_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_8_1_2_2 .
:Box_2_2_2_1_5_1_2_1_8_1_2_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_8_1_2 ;
  x3do:size ( 1 .4 .1 ) .
:Appearance_2_2_2_1_5_1_2_1_8_1_2_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_8_1_2 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_8_1_2_2_1 .
:Material_2_2_2_1_5_1_2_1_8_1_2_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_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 'click to select sea state' .
:Transform_2_2_2_1_5_1_2_1_9 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :SeaStateChoice ;
  x3do:hasChildren :Shape_2_2_2_1_5_1_2_1_9_1 ;
  x3do:translation ( 0 0 -3 ) .
:Shape_2_2_2_1_5_1_2_1_9_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_2_1_5_1_2_1_9 ;
  x3do:hasGeometry :Box_2_2_2_1_5_1_2_1_9_1_1 ;
  x3do:hasAppearance :Appearance_2_2_2_1_5_1_2_1_9_1_2 .
:Box_2_2_2_1_5_1_2_1_9_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_9_1 ;
  x3do:size ( 2 6.5 0.2 ) .
:Appearance_2_2_2_1_5_1_2_1_9_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_5_1_2_1_9_1 ;
  x3do:hasMaterial :Material_2_2_2_1_5_1_2_1_9_1_2_1 ;
  x3do:hasTexture :ImageTexture_2_2_2_1_5_1_2_1_9_1_2_2 .
:Material_2_2_2_1_5_1_2_1_9_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_1_9_1_2 ;
  x3do:diffuseColor ( .3 .3 .3 ) .
:ImageTexture_2_2_2_1_5_1_2_1_9_1_2_2 a owl:NamedIndividual, x3do:ImageTexture ;
  x3do:hasParent :Appearance_2_2_2_1_5_1_2_1_9_1_2 .
:ScriptsForWaveMovement a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_2_2_1 ;
  x3do:hasChildren :SeaStateChoiceToValue ;
  x3do:DEF 'ScriptsForWaveMovement' .
:SeaStateChoiceToValue a owl:NamedIndividual, x3do:Script ;
  x3do:hasParent :ScriptsForWaveMovement ;
  x3do:hasField :field_2_2_2_1_6_1_1, :field_2_2_2_1_6_1_2, :field_2_2_2_1_6_1_3, :field_2_2_2_1_6_1_4, :field_2_2_2_1_6_1_5, :field_2_2_2_1_6_1_6, :field_2_2_2_1_6_1_7, :field_2_2_2_1_6_1_8, :field_2_2_2_1_6_1_9, :field_2_2_2_1_6_1_10 ;
  x3do:DEF 'SeaStateChoiceToValue' ;
  x3do:sourceCode """
ecmascript:

// Return the numeric value of SST button clicked

function initialize ()
{
	SeaStateValue = 2;


}
function SeaStateChoice1 (inputBoolean, timestamp)
{
	if (inputBoolean) SeaStateValue = 0;
}
function SeaStateChoice2 (inputBoolean, timestamp)
{
	if (inputBoolean) SeaStateValue = 1;
}
function SeaStateChoice3 (inputBoolean, timestamp)
{
	if (inputBoolean) SeaStateValue = 2;
}
function SeaStateChoice4 (inputBoolean, timestamp)
{
	if (inputBoolean) SeaStateValue = 3;
}
function SeaStateChoice5 (inputBoolean, timestamp)
{
	if (inputBoolean) SeaStateValue = 4;
}
function SeaStateChoice6 (inputBoolean, timestamp)
{
	if (inputBoolean) SeaStateValue = 5;
}
function SeaStateChoice7 (inputBoolean, timestamp)
{
	if (inputBoolean) SeaStateValue = 6;
}
function SeaStateChoice8 (inputBoolean, timestamp)
{
	if (inputBoolean) SeaStateValue = 7;
}
""" .
:field_2_2_2_1_6_1_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :SeaStateChoiceToValue ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'SeaStateChoice0' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_6_1_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :SeaStateChoiceToValue ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'SeaStateChoice1' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_6_1_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :SeaStateChoiceToValue ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'SeaStateChoice2' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_6_1_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :SeaStateChoiceToValue ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'SeaStateChoice3' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_6_1_5 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :SeaStateChoiceToValue ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'SeaStateChoice4' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_6_1_6 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :SeaStateChoiceToValue ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'SeaStateChoice5' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_6_1_7 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :SeaStateChoiceToValue ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'SeaStateChoice6' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_6_1_8 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :SeaStateChoiceToValue ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'SeaStateChoice7' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_6_1_9 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :SeaStateChoiceToValue ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'SeaStateChoice8' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_6_1_10 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :SeaStateChoiceToValue ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'SeaStateValue' ;
  x3do:type 'SFInt32' .
:ROUTE_2_2_2_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'TouchSensorSeaState1' ;
  x3do:toField 'SeaStateChoice1' ;
  x3do:toNode 'SeaStateChoiceToValue' .
:ROUTE_2_2_2_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'TouchSensorSeaState2' ;
  x3do:toField 'SeaStateChoice2' ;
  x3do:toNode 'SeaStateChoiceToValue' .
:ROUTE_2_2_2_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'TouchSensorSeaState3' ;
  x3do:toField 'SeaStateChoice3' ;
  x3do:toNode 'SeaStateChoiceToValue' .
:ROUTE_2_2_2_5 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'TouchSensorSeaState4' ;
  x3do:toField 'SeaStateChoice4' ;
  x3do:toNode 'SeaStateChoiceToValue' .
:ROUTE_2_2_2_6 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'TouchSensorSeaState5' ;
  x3do:toField 'SeaStateChoice5' ;
  x3do:toNode 'SeaStateChoiceToValue' .
:ROUTE_2_2_2_7 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'TouchSensorSeaState6' ;
  x3do:toField 'SeaStateChoice6' ;
  x3do:toNode 'SeaStateChoiceToValue' .
:ROUTE_2_2_2_8 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'TouchSensorSeaState7' ;
  x3do:toField 'SeaStateChoice7' ;
  x3do:toNode 'SeaStateChoiceToValue' .
:ROUTE_2_2_2_9 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:fromField 'isActive' ;
  x3do:fromNode 'TouchSensorSeaState8' ;
  x3do:toField 'SeaStateChoice8' ;
  x3do:toNode 'SeaStateChoiceToValue' .
:ROUTE_2_2_2_10 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:fromField 'SeaStateValue' ;
  x3do:fromNode 'SeaStateChoiceToValue' ;
  x3do:toField 'whichChoice' ;
  x3do:toNode 'SeaStateNumber' .
:ROUTE_2_2_2_11 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'WaveClock' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'Ondulation' .
:ROUTE_2_2_2_12 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'PitchandRollClock' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'PitchInterpolator' .
:ROUTE_2_2_2_13 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'PitchandRollClock' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RollInterpolator' .
:ROUTE_2_2_2_14 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'Ondulation' ;
  x3do:toField 'set_spine' ;
  x3do:toNode 'BasicExtrusion' .
:NavigationInfo_2_3 a owl:NamedIndividual, x3do:NavigationInfo ;
  x3do:hasParent :Scene ;
  x3do:speed 100 .
:Background_2_4 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 ) .
:Anchor_2_5 a owl:NamedIndividual, x3do:Anchor ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Shape_2_5_1 ;
  x3do:description 'Sea State Extrusion Example' ;
  x3do:parameter '"target=_blank"' ;
  x3do:url '"SeaStateExtrusionExample.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Environment/SeaState/SeaStateExtrusionExample.x3d" "SeaStateExtrusionExample.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Environment/SeaState/SeaStateExtrusionExample.wrl"' .
:Shape_2_5_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Anchor_2_5 ;
  x3do:hasGeometry :Text_2_5_1_1 ;
  x3do:hasAppearance :Appearance_2_5_1_2 .
:Text_2_5_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_5_1 ;
  x3do:hasFontStyle :FontStyle_2_5_1_1_1 ;
  x3do:string '"SeaStateExtrusionPrototype" "is a prototype definition file" "" "To see an example scene" "click on this text and view" "SeaStateExtrusionExample"' .
:FontStyle_2_5_1_1_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_5_1_1 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_5_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_5_1 ;
  x3do:hasMaterial :Material_2_5_1_2_1 .
:Material_2_5_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_5_1_2 ;
  x3do:diffuseColor ( 1 1 0 ) .
