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 | <component level='1' name='DIS'/> |
6 | <meta name='title' content='EspduTransformSenderReceiver.x3d'/> |
7 | <meta name='description' content='Example DIS communications: sending and receiving data via EspduTransform nodes.'/> |
8 | <meta name='creator' content='Don Brutzman'/> |
9 | <meta name='created' content='21 April 2009'/> |
10 | <meta name='modified' content='20 October 2019'/> |
11 | <meta name='subject' content='Distributed Interactive Simulation DIS ESPDU'/> |
12 | <meta name='identifier' content='https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/EspduTransformSenderReceiver.x3d'/> |
13 | <meta name='generator' content='Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html'/> |
14 | <meta name='license' content='../license.html'/> |
15 | </head> |
16 | <Scene> |
17 | <WorldInfo title='EspduTransformSenderReceiver.x3d'/> |
18 | <Viewpoint description='looking down from above surface 50m' orientation='1 0 0 -1.57' position='0 50 0'/> |
19 | <!-- ============================= --> |
20 | <!-- Default scene listens for PDUs with networkMode=remote. This is the basic design pattern. --> |
21 |
<!-- ROUTE information for EspduSender node:
[from PI.value_changed to set_translation
]
[from OI.value_changed to set_rotation
]
[from translation to ConvertFloatsToText.set_position
]
[from rotation_changed to ConvertFloatsToText.set_rotation
]
-->
<EspduTransform DEF='EspduSender' address='224.2.181.145' entityID='2' marking='Test Cube' networkMode='networkWriter' port='62040' writeInterval='0.1' containerField='children'/> |
22 | <Group DEF='AnimationGroup'> |
23 |
<!-- ROUTE information for LoopTimeSensor node:
[from fraction_changed to PI.set_fraction
]
[from fraction_changed to OI.set_fraction
]
-->
<TimeSensor DEF='LoopTimeSensor' cycleInterval='33.0' loop='true'/> |
24 |
<!-- ROUTE information for PI node:
[from LoopTimeSensor.fraction_changed to set_fraction
]
[from value_changed to EspduSender.set_translation
]
-->
<PositionInterpolator DEF='PI' key='0.0 0.03976 0.0581 0.07034 0.08257 0.09174 0.10092 0.11009 0.11927 0.12844 0.13761 0.14373 0.14985 0.15596 0.16208 0.1682 0.17431 0.18043 0.18654 0.19266 0.19878 0.20489 0.21101 0.21713 0.22324 0.22936 0.23547 0.24159 0.24771 0.25382 0.25994 0.26606 0.27217 0.27829 0.2844 0.29052 0.29664 0.30275 0.30887 0.31498 0.3211 0.32416 0.32722 0.33028 0.33333 0.33639 0.33945 0.34251 0.34557 0.34862 0.35168 0.35474 0.3578 0.36086 0.36391 0.36697 0.37003 0.37309 0.37615 0.3792 0.38226 0.38532 0.38838 0.39144 0.3945 0.39755 0.40061 0.40367 0.40673 0.40979 0.41284 0.4159 0.41896 0.42202 0.42508 0.42813 0.43119 0.43425 0.43731 0.44037 0.44342 0.44648 0.44954 0.4526 0.45566 0.45872 0.46177 0.46483 0.46789 0.47095 0.47401 0.47706 0.48012 0.48318 0.48624 0.4893 0.49235 0.49541 0.49847 0.50153 0.50459 0.50765 0.5107 0.51376 0.51682 0.51988 0.52294 0.52599 0.52905 0.53211 0.53517 0.53823 0.54128 0.54434 0.5474 0.55046 0.55352 0.55657 0.55963 0.56269 0.56575 0.56881 0.57187 0.57492 0.58104 0.58716 0.59327 0.59939 0.6055 0.61162 0.61774 0.62385 0.62997 0.63609 0.6422 0.64832 0.65443 0.66055 0.66667 0.67278 0.6789 0.68502 0.69113 0.69725 0.70336 0.70948 0.7156 0.72171 0.72783 0.73394 0.74006 0.74618 0.75229 0.75841 0.76453 0.77064 0.77676 0.78287 0.78899 0.79511 0.80122 0.80734 0.81346 0.81957 0.82569 0.8318 0.83792 0.84404 0.85015 0.85627 0.86239 0.8685 0.87462 0.88073 0.88685 0.89297 0.89908 0.9052 0.91131 0.91743 0.92355 0.92966 0.93578 0.9419 0.94801 0.95413 0.96024 0.96636 0.97248 0.97859 0.98471 0.99083 0.99388 0.99694 1.0' keyValue='5.0 -2.0 5.0 5.08 -2.06 5.0 5.19 -2.13 5.01 5.28 -2.19 5.02 5.38 -2.25 5.04 5.47 -2.31 5.05 5.57 -2.36 5.07 5.68 -2.42 5.1 5.79 -2.48 5.13 5.91 -2.55 5.17 6.04 -2.61 5.21 6.13 -2.65 5.25 6.23 -2.69 5.28 6.32 -2.73 5.32 6.42 -2.78 5.36 6.53 -2.82 5.41 6.63 -2.86 5.46 6.74 -2.9 5.51 6.85 -2.94 5.57 6.96 -2.98 5.63 7.08 -3.02 5.69 7.19 -3.05 5.76 7.31 -3.09 5.83 7.43 -3.13 5.9 7.55 -3.16 5.98 7.68 -3.2 6.06 7.8 -3.24 6.15 7.93 -3.27 6.24 8.06 -3.31 6.34 8.18 -3.34 6.44 8.31 -3.38 6.54 8.44 -3.41 6.65 8.57 -3.44 6.76 8.7 -3.48 6.88 8.84 -3.51 7.0 8.97 -3.55 7.12 9.1 -3.58 7.25 9.23 -3.61 7.38 9.36 -3.65 7.52 9.49 -3.68 7.67 9.62 -3.72 7.81 9.69 -3.73 7.89 9.75 -3.75 7.96 9.81 -3.77 8.04 9.88 -3.79 8.12 9.94 -3.8 8.2 10.0 -3.82 8.28 10.07 -3.84 8.36 10.13 -3.86 8.45 10.19 -3.87 8.53 10.25 -3.89 8.62 10.31 -3.91 8.7 10.37 -3.93 8.79 10.42 -3.95 8.88 10.48 -3.96 8.97 10.54 -3.98 9.06 10.59 -4.0 9.16 10.64 -4.02 9.25 10.7 -4.04 9.35 10.75 -4.06 9.44 10.8 -4.08 9.54 10.84 -4.1 9.64 10.89 -4.11 9.74 10.93 -4.13 9.84 10.97 -4.15 9.94 11.01 -4.17 10.04 11.05 -4.19 10.15 11.09 -4.21 10.25 11.12 -4.23 10.36 11.15 -4.25 10.47 11.18 -4.27 10.57 11.21 -4.29 10.68 11.23 -4.31 10.79 11.25 -4.33 10.9 11.27 -4.34 11.01 11.29 -4.36 11.12 11.3 -4.38 11.23 11.31 -4.4 11.34 11.32 -4.42 11.45 11.32 -4.44 11.56 11.33 -4.46 11.68 11.33 -4.48 11.79 11.32 -4.5 11.9 11.32 -4.51 12.01 11.31 -4.53 12.12 11.3 -4.55 12.23 11.28 -4.57 12.34 11.26 -4.59 12.44 11.24 -4.61 12.55 11.22 -4.62 12.66 11.19 -4.64 12.76 11.17 -4.66 12.87 11.14 -4.68 12.98 11.1 -4.7 13.08 11.06 -4.71 13.18 11.03 -4.73 13.28 10.98 -4.75 13.38 10.94 -4.76 13.48 10.89 -4.78 13.57 10.84 -4.8 13.67 10.79 -4.82 13.76 10.74 -4.83 13.85 10.68 -4.85 13.94 10.62 -4.87 14.03 10.56 -4.88 14.12 10.5 -4.9 14.2 10.44 -4.92 14.28 10.37 -4.93 14.36 10.3 -4.95 14.44 10.23 -4.97 14.52 10.16 -4.98 14.59 10.09 -5.0 14.66 10.01 -5.02 14.73 9.94 -5.03 14.8 9.86 -5.05 14.87 9.78 -5.07 14.93 9.7 -5.08 14.99 9.61 -5.1 15.05 9.53 -5.12 15.1 9.45 -5.14 15.15 9.36 -5.15 15.21 9.27 -5.17 15.25 9.18 -5.18 15.3 9.1 -5.2 15.34 8.92 -5.23 15.42 8.73 -5.27 15.49 8.55 -5.3 15.55 8.36 -5.33 15.6 8.17 -5.37 15.63 7.98 -5.4 15.66 7.79 -5.43 15.68 7.61 -5.47 15.69 7.42 -5.5 15.68 7.23 -5.53 15.67 7.05 -5.57 15.65 6.87 -5.6 15.62 6.69 -5.64 15.58 6.51 -5.67 15.53 6.34 -5.7 15.47 6.17 -5.74 15.4 6.0 -5.77 15.33 5.84 -5.8 15.25 5.69 -5.84 15.16 5.54 -5.87 15.06 5.39 -5.9 14.95 5.25 -5.94 14.84 5.12 -5.97 14.73 4.99 -6.01 14.6 4.87 -6.04 14.47 4.75 -6.07 14.34 4.64 -6.11 14.2 4.54 -6.14 14.05 4.45 -6.17 13.9 4.36 -6.21 13.75 4.28 -6.24 13.59 4.21 -6.27 13.43 4.14 -6.31 13.26 4.08 -6.34 13.1 4.03 -6.37 12.92 3.99 -6.41 12.75 3.95 -6.44 12.58 3.93 -6.47 12.4 3.91 -6.51 12.22 3.9 -6.54 12.04 3.89 -6.57 11.86 3.9 -6.61 11.68 3.91 -6.64 11.5 3.93 -6.67 11.32 3.95 -6.71 11.15 3.99 -6.74 10.97 4.03 -6.77 10.79 4.08 -6.8 10.61 4.14 -6.84 10.44 4.2 -6.87 10.27 4.28 -6.9 10.1 4.36 -6.94 9.93 4.44 -6.97 9.77 4.53 -7.0 9.61 4.64 -7.04 9.45 4.74 -7.07 9.3 4.86 -7.1 9.14 4.97 -7.14 9.0 5.1 -7.17 8.85 5.23 -7.2 8.72 5.37 -7.24 8.58 5.51 -7.27 8.45 5.66 -7.3 8.33 5.82 -7.34 8.21 5.98 -7.37 8.1 6.14 -7.41 7.99 6.31 -7.44 7.89 6.48 -7.47 7.8 6.57 -7.49 7.76 6.66 -7.51 7.71 6.75 -7.52 7.67'/> |
25 | < ROUTE fromNode='LoopTimeSensor' fromField='fraction_changed' toNode='PI' toField='set_fraction'/> |
26 | < ROUTE fromNode='PI' fromField='value_changed' toNode='EspduSender' toField='set_translation'/> |
27 |
<!-- ROUTE information for OI node:
[from LoopTimeSensor.fraction_changed to set_fraction
]
[from value_changed to EspduSender.set_rotation
]
-->
<OrientationInterpolator DEF='OI' key='0.0 0.06728 0.11315 0.16208 0.22018 0.2844 0.33945 0.37309 0.39755 0.41896 0.43731 0.45566 0.47401 0.49235 0.5107 0.52905 0.55046 0.57187 0.59327 0.61468 0.63609 0.65749 0.6789 0.70336 0.72783 0.75229 0.77982 0.80734 0.83486 0.86239 0.89297 0.92355 0.95413 0.98471 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 -0.18469 0.0 1.0 0.0 -0.37008 0.0 1.0 0.0 -0.54531 0.0 1.0 0.0 -0.72211 0.0 1.0 0.0 -0.8994 0.0 1.0 0.0 -1.07997 0.0 1.0 0.0 -1.25779 0.0 1.0 0.0 -1.45067 0.0 1.0 0.0 -1.65407 0.0 1.0 0.0 -1.8375 0.0 1.0 0.0 -2.02252 0.0 1.0 0.0 -2.20652 0.0 1.0 0.0 -2.38843 0.0 1.0 0.0 -2.56787 0.0 1.0 0.0 -2.74479 0.0 1.0 0.0 -2.94807 0.0 1.0 0.0 -3.14826 0.0 1.0 0.0 -3.34564 0.0 1.0 0.0 -3.5401 0.0 1.0 0.0 -3.72909 0.0 1.0 0.0 -3.91127 0.0 1.0 0.0 -4.08679 0.0 1.0 0.0 -4.27977 0.0 1.0 0.0 -4.4653 0.0 1.0 0.0 -4.64413 0.0 1.0 0.0 -4.83818 0.0 1.0 0.0 -5.02559 0.0 1.0 0.0 -5.2074 0.0 1.0 0.0 -5.38457 0.0 1.0 0.0 -5.57596 0.0 1.0 0.0 -5.76035 0.0 1.0 0.0 -5.94039 0.0 1.0 0.0 -6.12005 0.0 1.0 0.0 -6.21114'/> |
28 | < ROUTE fromNode='LoopTimeSensor' fromField='fraction_changed' toNode='OI' toField='set_fraction'/> |
29 | < ROUTE fromNode='OI' fromField='value_changed' toNode='EspduSender' toField='set_rotation'/> |
30 | </Group> |
31 | <!-- ============================= --> |
32 | <EspduTransform DEF='EspduReceiver' address='224.2.181.145' entityID='2' marking='local AUV' networkMode='networkReader' port='62040' containerField='children'> |
33 | <Inline url=' "TestCube.x3d" "https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/TestCube.x3d" '/> |
34 | <Viewpoint description='Local viewpoint moving with test cube'/> |
35 | </EspduTransform> |
36 | <!-- ============================= --> |
37 | <Transform translation='0 1.5 0'> |
38 | <Billboard axisOfRotation='0 0 0'> |
39 | <Shape> |
40 |
<!-- ROUTE information for TraceText node:
[from ConvertFloatsToText.traceTextLabel to string
]
-->
<Text DEF='TraceText'> |
41 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='1.5'/> |
42 | </Text> |
43 | <Appearance> |
44 | <Material/> |
45 | </Appearance> |
46 | </Shape> |
47 | </Billboard> |
48 |
<!-- ROUTE information for ConvertFloatsToText node:
[from EspduSender.translation to set_position
]
[from EspduSender.rotation_changed to set_rotation
]
[from traceTextLabel to TraceText.string
]
-->
<Script DEF='ConvertFloatsToText'> |
49 | <field name='set_position' type='SFVec3f' accessType='inputOnly'/> |
50 | <field name='set_rotation' type='SFRotation' accessType='inputOnly'/> |
51 | <field name='position' type='SFVec3f' value='0.0 0.0 0.0' accessType='initializeOnly'/> |
52 | <field name='rotation' type='SFRotation' value='0 1 0 0.0' accessType='initializeOnly'/> |
53 | <field name='traceTextLabel' type='MFString' accessType='outputOnly'/> |
<![CDATA[
ecmascript: function set_position (newValue) { position = newValue; // remember latest value traceTextLabel = new MFString (position.toString(), rotation.toString()); // send update } function set_rotation (newValue) { rotation = newValue; // remember latest value traceTextLabel = new MFString (position.toString(), rotation.toString()); // send update to Text node } // TODO clean up text output by rounding off fractional values after 1 decimal place
]]>
|
|
55 | </Script> |
56 | < ROUTE fromNode='EspduSender' fromField='translation' toNode='ConvertFloatsToText' toField='set_position'/> |
57 | < ROUTE fromNode='EspduSender' fromField='rotation_changed' toNode='ConvertFloatsToText' toField='set_rotation'/> |
58 | < ROUTE fromNode='ConvertFloatsToText' fromField='traceTextLabel' toNode='TraceText' toField='string'/> |
59 | </Transform> |
60 | <!-- ============================= --> |
61 | <Transform translation='-20 -10 -20'> |
62 | <Shape> |
63 | <ElevationGrid DEF='SimpleCheckboard' colorPerVertex='false' solid='false' xDimension='5' xSpacing='10' zDimension='5' zSpacing='10' height='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0'> |
64 | <Color color='0 0.6 0.2 0 0.3 0.1 0 0.6 0.2 0 0.3 0.1 0 0.3 0.1 0 0.6 0.2 0 0.3 0.1 0 0.6 0.2 0 0.6 0.2 0 0.3 0.1 0 0.6 0.2 0 0.3 0.1 0 0.3 0.1 0 0.6 0.2 0 0.3 0.1 0 0.6 0.2'/> |
65 | </ElevationGrid> |
66 | <Appearance> |
67 | <Material diffuseColor='0 0 0' transparency='0.25'/> |
68 | </Appearance> |
69 | </Shape> |
70 | </Transform> |
71 | </Scene> |
72 | </X3D> |
Event Graph ROUTE Table entries with 7 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.
<!--
Color 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)
-->
<!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->