| 1 |
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
|
| 3 | <X3D profile='Immersive' version='3.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'> |
| 4 | <head> |
| 5 | <meta name='title' content=' SeaStateExtrusionPrototype.x3d '/> |
| 6 | <meta name='creator' content='Marcus V. da S. Simoes'/> |
| 7 | <meta name='created' content='11 January 2001'/> |
| 8 | <meta name='modified' content='20 October 2019'/> |
| 9 | <meta name='description' content='Sea state rendering of ocean wave motion: prototype for reproducing sea state surface in other scenes.'/> |
| 10 | <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/Savage/Environment/SeaState/SeaStateExtrusionPrototype.x3d '/> |
| 11 | <meta name='generator' content='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/> |
| 12 | <meta name='license' content='../../license.html'/> |
| 13 | </head> |
| 14 | <Scene> |
| 15 | <WorldInfo title='SeaStateExtrusionPrototype.x3d'/> |
| 16 | <ProtoDeclare name='SeaStateExtrusion'> |
| 17 | <ProtoInterface> |
| 18 | <field name='shipPitch' type='SFRotation' accessType='outputOnly'/> |
| 19 | <field name='shipRoll' type='SFRotation' accessType='outputOnly'/> |
| 20 | </ProtoInterface> |
| 21 | <ProtoBody> |
| 22 | <Group> |
| 23 | <!-- AnimationClock --> |
| 24 | <!-- ================================================= --> |
| 25 | <Group DEF='TimeSensors'> |
| 26 |
<!-- ROUTE information for WaveClock node:
[from fraction_changed to Ondulation.set_fraction
]
-->
<TimeSensor DEF='WaveClock' cycleInterval='15' loop='true'/> |
| 27 |
<!-- ROUTE information for PitchandRollClock node:
[from fraction_changed to PitchInterpolator.set_fraction
]
[from fraction_changed to RollInterpolator.set_fraction
]
-->
<TimeSensor DEF='PitchandRollClock' cycleInterval='10' loop='true'/> |
| 28 | </Group> |
| 29 | <!-- ================================================= --> |
| 30 | <!-- Interpolators --> |
| 31 | <!-- ================================================= --> |
| 32 | <!-- MovingTheShip --> |
| 33 | <Group DEF='OrientationInterpolators'> |
| 34 |
<!-- ROUTE information for PitchInterpolator node:
[from PitchandRollClock.fraction_changed to set_fraction
]
-->
<OrientationInterpolator DEF='PitchInterpolator' key='0.0 0.5 1.0' keyValue='0 0 1 -0.05 0 0 1 0.0 0 0 1 -0.05'> |
| 35 | <IS> |
| 36 | <connect nodeField='value_changed' protoField='shipPitch'/> |
| 37 | </IS> |
| 38 | </OrientationInterpolator> |
| 39 |
<!-- ROUTE information for RollInterpolator node:
[from PitchandRollClock.fraction_changed to set_fraction
]
-->
<OrientationInterpolator DEF='RollInterpolator' key='0.0 0.5 1.0' keyValue='1 0 0 -0.05 1 0 0 0.0 1 0 0 -0.05'> |
| 40 | <IS> |
| 41 | <connect nodeField='value_changed' protoField='shipRoll'/> |
| 42 | </IS> |
| 43 | </OrientationInterpolator> |
| 44 | </Group> |
| 45 | <!-- ================================================= --> |
| 46 | <!-- MovingTheSea --> |
| 47 | <Group DEF='CoordinateInterpolator'> |
| 48 |
<!-- ROUTE information for Ondulation node:
[from WaveClock.fraction_changed to set_fraction
]
[from value_changed to BasicExtrusion.set_spine
]
-->
<CoordinateInterpolator DEF='Ondulation' key='0.0 0.25 0.50 0.75 1.0' keyValue='-4.100 0.0 0 -4.0 0.0 0 -3.529 0.674 0 -3.059 0.996 0 -2.588 0.798 0 -2.118 0.184 0 -1.647 -0.526 0 -1.176 -0.962 0 -0.706 -0.895 0 -0.235 -0.361 0 0.235 0.361 0 0.706 0.895 0 1.176 0.962 0 1.647 0.526 0 2.118 -0.184 0 2.588 -0.798 0 3.059 -0.996 0 3.529 -0.674 0 4.0 0.0 0 -4.100 -1.0 0 -4.0 -1.0 0 -3.529 -0.739 0 -3.059 -0.092 0 -2.588 0.603 0 -2.118 0.983 0 -1.647 0.850 0 -1.176 0.274 0 -0.706 -0.446 0 -0.235 -0.932 0 0.235 -0.932 0 0.706 -0.446 0 1.176 0.274 0 1.647 0.850 0 2.118 0.983 0 2.588 0.603 0 3.059 -0.092 0 3.529 -0.739 0 4.0 -1.0 0 -4.100 0.0 0 -4.0 0.0 0 -3.529 -0.674 0 -3.059 -0.996 0 -2.588 -0.798 0 -2.118 -0.184 0 -1.647 0.526 0 -1.176 0.962 0 -0.706 0.895 0 -0.235 0.361 0 0.235 -0.361 0 0.706 -0.895 0 1.176 -0.962 0 1.647 -0.526 0 2.118 0.184 0 2.588 0.798 0 3.059 0.996 0 3.529 0.674 0 4.0 0.0 0 -4.100 1.0 0 -4.0 1.0 0 -3.529 0.739 0 -3.059 0.092 0 -2.588 -0.603 0 -2.118 -0.983 0 -1.647 -0.850 0 -1.176 -0.274 0 -0.706 0.446 0 -0.235 0.932 0 0.235 0.932 0 0.706 0.446 0 1.176 -0.274 0 1.647 -0.850 0 2.118 -0.983 0 2.588 -0.603 0 3.059 0.092 0 3.529 0.739 0 4.0 1.0 0 -4.100 0.0 0 -4.0 0.0 0 -3.529 0.674 0 -3.059 0.996 0 -2.588 0.798 0 -2.118 0.184 0 -1.647 -0.526 0 -1.176 -0.962 0 -0.706 -0.895 0 -0.235 -0.361 0 0.235 0.361 0 0.706 0.895 0 1.176 0.962 0 1.647 0.526 0 2.118 -0.184 0 2.588 -0.798 0 3.059 -0.996 0 3.529 -0.674 0 4.0 0.0 0'/> |
| 49 | </Group> |
| 50 | <!-- ================================================= --> |
| 51 | <!-- SeaLevelChoiceGroup --> |
| 52 |
<!-- ROUTE information for SeaStateNumber node:
[from SeaStateChoiceToValue.SeaStateValue to whichChoice
]
-->
<Switch DEF='SeaStateNumber' whichChoice='0'> |
| 53 | |
| 54 | <Transform> |
| 55 | <Transform DEF='TheSea'> |
| 56 | <!-- BasicWave --> |
| 57 | <Transform DEF='Basic' scale='250 1 10'> |
| 58 | <Shape DEF='BasicWave'> |
| 59 | <Appearance DEF='SeaColor'> |
| 60 |
<ImageTexture
url=' "../../Environment/SeaState/pool.jpg
" "https://www.web3d.org/x3d/content/examples/Savage/Environment/SeaState/pool.jpg
" '/>
|
| 61 | <Material diffuseColor='0 0 0' transparency='0.3'/> |
| 62 | </Appearance> |
| 63 |
<!-- ROUTE information for BasicExtrusion node:
[from Ondulation.value_changed to set_spine
]
-->
<Extrusion DEF='BasicExtrusion' beginCap='false' convex='false' creaseAngle='0.01' crossSection='0 0 0 200 0 0' endCap='false' solid='false' 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'/> |
| 64 | </Shape> |
| 65 | </Transform> |
| 66 | </Transform> |
| 67 | </Transform> |
| 68 | </Group> |
| 69 | <Group DEF='SeaState_2'> |
| 70 | <Transform scale='1 5 1'> |
| 71 | <Group USE='SeaState_1'/> |
| 72 | </Transform> |
| 73 | </Group> |
| 74 | <Group DEF='SeaState_3'> |
| 75 | <Transform scale='1 8 1'> |
| 76 | <Group USE='SeaState_1'/> |
| 77 | </Transform> |
| 78 | </Group> |
| 79 | <Group DEF='SeaState_4'> |
| 80 | <Transform scale='1 12 1'> |
| 81 | <Group USE='SeaState_1'/> |
| 82 | </Transform> |
| 83 | </Group> |
| 84 | <Group DEF='SeaState_5'> |
| 85 | <Transform scale='1 15 1'> |
| 86 | <Group USE='SeaState_1'/> |
| 87 | </Transform> |
| 88 | </Group> |
| 89 | <Group DEF='SeaState_6'> |
| 90 | <Transform scale='1 20 1'> |
| 91 | <Group USE='SeaState_1'/> |
| 92 | </Transform> |
| 93 | </Group> |
| 94 | <Group DEF='SeaState_7'> |
| 95 | <Transform scale='1 25 1'> |
| 96 | <Group USE='SeaState_1'/> |
| 97 | </Transform> |
| 98 | </Group> |
| 99 | <Group DEF='SeaState_8'> |
| 100 | <Transform scale='1 32 1'> |
| 101 | <Group USE='SeaState_1'/> |
| 102 | </Transform> |
| 103 | </Group> |
| 104 | </Switch> |
| 105 | <!-- ================================================= --> |
| 106 | <!-- Sea State Control Panel --> |
| 107 | <Group DEF='SeaStateAndDirection'> |
| 108 | <Transform translation='0 100 4000'> |
| 109 | <Viewpoint description='Sea State Control Panel' position='-2 0 6'/> |
| 110 | <Billboard> |
| 111 | <Group DEF='SeaStateChoice'> |
| 112 | <Transform DEF='Option1' translation='0 -2.0 0'> |
| 113 | <Transform DEF='Box1' translation='0 .1 0'> |
| 114 | <Shape DEF='BoxSensor'> |
| 115 | <Box size='1 .4 .1'/> |
| 116 | <Appearance> |
| 117 | <Material diffuseColor='0 0 1' specularColor='0 0 1' transparency='.9'/> |
| 118 | </Appearance> |
| 119 | </Shape> |
| 120 |
<!-- ROUTE information for TouchSensorSeaState1 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice1
]
-->
<TouchSensor DEF='TouchSensorSeaState1' description='click to select sea state'/> |
| 121 | <Transform DEF='Text1' scale='.25 .25 .25' translation='0 0 .1'> |
| 122 | <Shape> |
| 123 | <Text string='"SST 1"'> |
| 124 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
| 125 | </Text> |
| 126 | <Appearance> |
| 127 | <Material emissiveColor='.8 .8 .8'/> |
| 128 | </Appearance> |
| 129 | </Shape> |
| 130 | </Transform> |
| 131 | </Transform> |
| 132 | </Transform> |
| 133 | <Transform DEF='Option2' translation='0 -1.5 0'> |
| 134 | <Transform DEF='Box2' translation='0 .1 0'> |
| 135 | <Shape> |
| 136 | <Box size='1 .4 .1'/> |
| 137 | <Appearance> |
| 138 | <Material diffuseColor='0 0 .8' transparency='.7'/> |
| 139 | </Appearance> |
| 140 | </Shape> |
| 141 |
<!-- ROUTE information for TouchSensorSeaState2 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice2
]
-->
<TouchSensor DEF='TouchSensorSeaState2' description='click to select sea state'/> |
| 142 | <Transform DEF='Text2' scale='.25 .25 .25' translation='0 0 .1'> |
| 143 | <Shape> |
| 144 | <Text string='"SST 2"'> |
| 145 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
| 146 | </Text> |
| 147 | <Appearance> |
| 148 | <Material emissiveColor='.8 .8 .8'/> |
| 149 | </Appearance> |
| 150 | </Shape> |
| 151 | </Transform> |
| 152 | </Transform> |
| 153 | </Transform> |
| 154 | <Transform DEF='Option3' translation='0 -1.0 0'> |
| 155 | <Transform DEF='Box3' translation='0 .1 0'> |
| 156 | <Shape> |
| 157 | <Box size='1 .4 .1'/> |
| 158 | <Appearance> |
| 159 | <Material diffuseColor='0 0 .8' transparency='.7'/> |
| 160 | </Appearance> |
| 161 | </Shape> |
| 162 |
<!-- ROUTE information for TouchSensorSeaState3 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice3
]
-->
<TouchSensor DEF='TouchSensorSeaState3' description='click to select sea state'/> |
| 163 | <Transform DEF='Text3' scale='.25 .25 .25' translation='0 0 .1'> |
| 164 | <Shape> |
| 165 | <Text string='"SST 3"'> |
| 166 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
| 167 | </Text> |
| 168 | <Appearance> |
| 169 | <Material emissiveColor='.8 .8 .8'/> |
| 170 | </Appearance> |
| 171 | </Shape> |
| 172 | </Transform> |
| 173 | </Transform> |
| 174 | </Transform> |
| 175 | <Transform DEF='Option4' translation='0 -0.5 0'> |
| 176 | <Transform DEF='Box4' translation='0 .1 0'> |
| 177 | <Shape> |
| 178 | <Box size='1 .4 .1'/> |
| 179 | <Appearance> |
| 180 | <Material diffuseColor='0 0.8 0' transparency='0.8'/> |
| 181 | </Appearance> |
| 182 | </Shape> |
| 183 |
<!-- ROUTE information for TouchSensorSeaState4 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice4
]
-->
<TouchSensor DEF='TouchSensorSeaState4' description='click to select sea state'/> |
| 184 | <Transform DEF='Text4' scale='.25 .25 .25' translation='0 0 .1'> |
| 185 | <Shape> |
| 186 | <Text string='"SST 4"'> |
| 187 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
| 188 | </Text> |
| 189 | <Appearance> |
| 190 | <Material emissiveColor='.8 .8 .8'/> |
| 191 | </Appearance> |
| 192 | </Shape> |
| 193 | </Transform> |
| 194 | </Transform> |
| 195 | </Transform> |
| 196 | <Transform DEF='Option5'> |
| 197 | <Transform DEF='Box5' translation='0 .1 0'> |
| 198 | <Shape> |
| 199 | <Box size='1 .4 .1'/> |
| 200 | <Appearance> |
| 201 | <Material diffuseColor='0 .5 0' transparency='.4'/> |
| 202 | </Appearance> |
| 203 | </Shape> |
| 204 | <Transform DEF='Text5' scale='.25 .25 .25' translation='0 0 .1'> |
| 205 | <Shape> |
| 206 | <Text string='"SST 5"'> |
| 207 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
| 208 | </Text> |
| 209 | <Appearance> |
| 210 | <Material emissiveColor='.8 .8 .8'/> |
| 211 | </Appearance> |
| 212 | </Shape> |
| 213 | </Transform> |
| 214 |
<!-- ROUTE information for TouchSensorSeaState5 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice5
]
-->
<TouchSensor DEF='TouchSensorSeaState5' description='click to select sea state'/> |
| 215 | </Transform> |
| 216 | </Transform> |
| 217 | <Transform DEF='Option6' translation='0 .5 0'> |
| 218 | <Transform DEF='Box6' translation='0 .1 0'> |
| 219 | <Transform DEF='Text6' scale='.25 .25 .25' translation='0 0 .1'> |
| 220 | <Shape> |
| 221 | <Text string='"SST 6"'> |
| 222 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
| 223 | </Text> |
| 224 | <Appearance> |
| 225 | <Material emissiveColor='.8 .8 .8'/> |
| 226 | </Appearance> |
| 227 | </Shape> |
| 228 | </Transform> |
| 229 | <Shape> |
| 230 | <Box size='1 .4 .1'/> |
| 231 | <Appearance> |
| 232 | <Material diffuseColor='.2 0 0' transparency='0.8'/> |
| 233 | </Appearance> |
| 234 | </Shape> |
| 235 |
<!-- ROUTE information for TouchSensorSeaState6 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice6
]
-->
<TouchSensor DEF='TouchSensorSeaState6' description='click to select sea state'/> |
| 236 | </Transform> |
| 237 | </Transform> |
| 238 | <Transform DEF='Option7' translation='0 1.0 0'> |
| 239 | <Transform DEF='Box7' translation='0 .1 0'> |
| 240 | <Transform DEF='Text7' scale='.25 .25 .25' translation='0 0 .1'> |
| 241 | <Shape> |
| 242 | <Text string='"SST 7"'> |
| 243 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
| 244 | </Text> |
| 245 | <Appearance> |
| 246 | <Material emissiveColor='.8 .8 .8'/> |
| 247 | </Appearance> |
| 248 | </Shape> |
| 249 | </Transform> |
| 250 | <Shape> |
| 251 | <Box size='1 .4 .1'/> |
| 252 | <Appearance> |
| 253 | <Material diffuseColor='.5 0 0' transparency='0.7'/> |
| 254 | </Appearance> |
| 255 | </Shape> |
| 256 |
<!-- ROUTE information for TouchSensorSeaState7 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice7
]
-->
<TouchSensor DEF='TouchSensorSeaState7' description='click to select sea state'/> |
| 257 | </Transform> |
| 258 | </Transform> |
| 259 | <Transform DEF='Option8' translation='0 1.5 0'> |
| 260 | <Transform DEF='Box8' translation='0 .1 0'> |
| 261 | <Transform DEF='Text8' scale='.25 .25 .25' translation='0 0 .1'> |
| 262 | <Shape> |
| 263 | <Text string='"SST 8"'> |
| 264 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
| 265 | </Text> |
| 266 | <Appearance> |
| 267 | <Material emissiveColor='.8 .8 .8'/> |
| 268 | </Appearance> |
| 269 | </Shape> |
| 270 | </Transform> |
| 271 | <Shape> |
| 272 | <Box size='1 .4 .1'/> |
| 273 | <Appearance> |
| 274 | <Material diffuseColor='1 0 0' transparency='0.5'/> |
| 275 | </Appearance> |
| 276 | </Shape> |
| 277 |
<!-- ROUTE information for TouchSensorSeaState8 node:
[from isActive to SeaStateChoiceToValue.SeaStateChoice8
]
-->
<TouchSensor DEF='TouchSensorSeaState8' description='click to select sea state'/> |
| 278 | </Transform> |
| 279 | </Transform> |
| 280 | <Transform translation='0 0 -3'> |
| 281 | <Shape> |
| 282 | <Box size='2 6.5 0.2'/> |
| 283 | <Appearance> |
| 284 | <Material diffuseColor='.3 .3 .3'/> |
| 285 | <ImageTexture/> |
| 286 | </Appearance> |
| 287 | </Shape> |
| 288 | </Transform> |
| 289 | </Group> |
| 290 | </Billboard> |
| 291 | </Transform> |
| 292 | </Group> |
| 293 | <Group DEF='ScriptsForWaveMovement'> |
| 294 |
<!-- ROUTE information for SeaStateChoiceToValue node:
[from TouchSensorSeaState1.isActive to SeaStateChoice1
]
[from TouchSensorSeaState2.isActive to SeaStateChoice2
]
[from TouchSensorSeaState3.isActive to SeaStateChoice3
]
[from TouchSensorSeaState4.isActive to SeaStateChoice4
]
[from TouchSensorSeaState5.isActive to SeaStateChoice5
]
[from TouchSensorSeaState6.isActive to SeaStateChoice6
]
[from TouchSensorSeaState7.isActive to SeaStateChoice7
]
[from TouchSensorSeaState8.isActive to SeaStateChoice8
]
[from SeaStateValue to SeaStateNumber.whichChoice
]
-->
<Script DEF='SeaStateChoiceToValue'> |
| 295 | <field name='SeaStateChoice0' type='SFBool' accessType='inputOnly'/> |
| 296 | <field name='SeaStateChoice1' type='SFBool' accessType='inputOnly'/> |
| 297 | <field name='SeaStateChoice2' type='SFBool' accessType='inputOnly'/> |
| 298 | <field name='SeaStateChoice3' type='SFBool' accessType='inputOnly'/> |
| 299 | <field name='SeaStateChoice4' type='SFBool' accessType='inputOnly'/> |
| 300 | <field name='SeaStateChoice5' type='SFBool' accessType='inputOnly'/> |
| 301 | <field name='SeaStateChoice6' type='SFBool' accessType='inputOnly'/> |
| 302 | <field name='SeaStateChoice7' type='SFBool' accessType='inputOnly'/> |
| 303 | <field name='SeaStateChoice8' type='SFBool' accessType='inputOnly'/> |
| 304 | <field name='SeaStateValue' type='SFInt32' accessType='outputOnly'/> |
<![CDATA[
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;
}
]]>
|
|
| 306 | </Script> |
| 307 | </Group> |
| 308 | </Group> |
| 309 | <!-- ================================================= --> |
| 310 | <!-- RoutesToChooseSST --> |
| 311 | < ROUTE fromNode='TouchSensorSeaState1' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice1'/> |
| 312 | < ROUTE fromNode='TouchSensorSeaState2' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice2'/> |
| 313 | < ROUTE fromNode='TouchSensorSeaState3' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice3'/> |
| 314 | < ROUTE fromNode='TouchSensorSeaState4' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice4'/> |
| 315 | < ROUTE fromNode='TouchSensorSeaState5' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice5'/> |
| 316 | < ROUTE fromNode='TouchSensorSeaState6' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice6'/> |
| 317 | < ROUTE fromNode='TouchSensorSeaState7' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice7'/> |
| 318 | < ROUTE fromNode='TouchSensorSeaState8' fromField='isActive' toNode='SeaStateChoiceToValue' toField='SeaStateChoice8'/> |
| 319 | < ROUTE fromNode='SeaStateChoiceToValue' fromField='SeaStateValue' toNode='SeaStateNumber' toField='whichChoice'/> |
| 320 | <!-- ================================================= --> |
| 321 | <!-- RoutesToMoveTheSea --> |
| 322 | < ROUTE fromNode='WaveClock' fromField='fraction_changed' toNode='Ondulation' toField='set_fraction'/> |
| 323 | < ROUTE fromNode='PitchandRollClock' fromField='fraction_changed' toNode='PitchInterpolator' toField='set_fraction'/> |
| 324 | < ROUTE fromNode='PitchandRollClock' fromField='fraction_changed' toNode='RollInterpolator' toField='set_fraction'/> |
| 325 | < ROUTE fromNode='Ondulation' fromField='value_changed' toNode='BasicExtrusion' toField='set_spine'/> |
| 326 | </ProtoBody> |
| 327 | </ProtoDeclare> |
| 328 | <!-- ================================================= --> |
| 329 | <NavigationInfo speed='100'/> |
| 330 | <Background groundAngle='1.309 1.570796' groundColor='0.0 0.2 0.7 0.0 0.5 1.0 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0.0 0.2 0.7 0.0 0.5 1.0 0.6 0.6 0.6'/> |
| 331 | <Anchor description='Sea State Extrusion Example' parameter='"target=_blank"' 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" '> |
| 332 | <Shape> |
| 333 | <Text string='"SeaStateExtrusionPrototype" "is a prototype definition file" "" "To see an example scene" "click on this text and view" "SeaStateExtrusionExample"'> |
| 334 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
| 335 | </Text> |
| 336 | <Appearance> |
| 337 | <Material diffuseColor='1 1 0'/> |
| 338 | </Appearance> |
| 339 | </Shape> |
| 340 | </Anchor> |
| 341 | </Scene> |
| 342 | </X3D> |
Event Graph ROUTE Table entries with 13 ROUTE connections total, showing X3D event-model relationships for this scene.
Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.
|
TouchSensorSeaState1
TouchSensor isActive SFBool |
SeaStateChoiceToValue
Script SeaStateChoice1 SFBool |
then
|
SeaStateChoiceToValue
Script SeaStateValue SFInt32 |
SeaStateNumber
Switch whichChoice SFInt32 |
|
TouchSensorSeaState2
TouchSensor isActive SFBool |
SeaStateChoiceToValue
Script SeaStateChoice2 SFBool |
then
|
SeaStateChoiceToValue
Script SeaStateValue SFInt32 |
SeaStateNumber
Switch whichChoice SFInt32 |
|
TouchSensorSeaState3
TouchSensor isActive SFBool |
SeaStateChoiceToValue
Script SeaStateChoice3 SFBool |
then
|
SeaStateChoiceToValue
Script SeaStateValue SFInt32 |
SeaStateNumber
Switch whichChoice SFInt32 |
|
TouchSensorSeaState4
TouchSensor isActive SFBool |
SeaStateChoiceToValue
Script SeaStateChoice4 SFBool |
then
|
SeaStateChoiceToValue
Script SeaStateValue SFInt32 |
SeaStateNumber
Switch whichChoice SFInt32 |
|
TouchSensorSeaState5
TouchSensor isActive SFBool |
SeaStateChoiceToValue
Script SeaStateChoice5 SFBool |
then
|
SeaStateChoiceToValue
Script SeaStateValue SFInt32 |
SeaStateNumber
Switch whichChoice SFInt32 |
|
TouchSensorSeaState6
TouchSensor isActive SFBool |
SeaStateChoiceToValue
Script SeaStateChoice6 SFBool |
then
|
SeaStateChoiceToValue
Script SeaStateValue SFInt32 |
SeaStateNumber
Switch whichChoice SFInt32 |
|
TouchSensorSeaState7
TouchSensor isActive SFBool |
SeaStateChoiceToValue
Script SeaStateChoice7 SFBool |
then
|
SeaStateChoiceToValue
Script SeaStateValue SFInt32 |
SeaStateNumber
Switch whichChoice SFInt32 |
|
TouchSensorSeaState8
TouchSensor isActive SFBool |
SeaStateChoiceToValue
Script SeaStateChoice8 SFBool |
then
|
SeaStateChoiceToValue
Script SeaStateValue SFInt32 |
SeaStateNumber
Switch whichChoice SFInt32 |
|
PitchandRollClock
TimeSensor fraction_changed SFFloat |
PitchInterpolator
OrientationInterpolator set_fraction SFFloat |
|
|
PitchandRollClock
TimeSensor fraction_changed SFFloat |
RollInterpolator
OrientationInterpolator set_fraction SFFloat |
|
WaveClock
TimeSensor fraction_changed SFFloat |
Ondulation
CoordinateInterpolator set_fraction SFFloat |
then
|
Ondulation
CoordinateInterpolator value_changed MFVec3f |
BasicExtrusion
Extrusion set_spine MFVec3f |
|
SeaStateChoiceToValue
Script SeaStateValue SFInt32 |
SeaStateNumber
Switch whichChoice SFInt32 |
| line 331
Anchor |
description='Sea State Extrusion Example' User-interaction hint for this node. |
<!--
Color-coding legend: X3D terminology
<X3dNode
DEF='idName' field='value'/>
matches XML terminology
<XmlElement
DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
<ProtoDeclare name='ProtoName'>
<field
name='fieldName'/> </ProtoDeclare>
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->