X3D Model Documentation: EspduTransformSenderReceiver.x3d

  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='1name='DIS'/>
  6            <meta name='titlecontent='EspduTransformSenderReceiver.x3d'/>
  7            <meta name='descriptioncontent='Example DIS communications: sending and receiving data via EspduTransform nodes.'/>
  8            <meta name='creatorcontent='Don Brutzman'/>
  9            <meta name='createdcontent='21 April 2009'/>
 10            <meta name='modifiedcontent='20 October 2019'/>
 11            <meta name='subjectcontent='Distributed Interactive Simulation DIS ESPDU'/>
 12            <meta name='identifiercontent='https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/EspduTransformSenderReceiver.x3d'/>
 13            <meta name='generatorcontent='Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html'/>
 14            <meta name='licensecontent='../license.html'/>
 15       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->

<!-- to top Index for DEF nodes: AnimationGroup, ConvertFloatsToText, EspduReceiver, EspduSender, LoopTimeSensor, OI, PI, SimpleCheckboard, TraceText

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2
-->
 16       <Scene>
 17            <WorldInfo title='EspduTransformSenderReceiver.x3d'/>
 18            <Viewpoint description='looking down from above surface 50morientation='1 0 0 -1.57position='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='EspduSenderaddress='224.2.181.145entityID='2marking='Test CubenetworkMode='networkWriterport='62040writeInterval='0.1containerField='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='LoopTimeSensorcycleInterval='33.0loop='true'/>
 24 
               <!-- ROUTE information for PI node:  [from LoopTimeSensor.fraction_changed to set_fraction ] [from value_changed to EspduSender.set_translation ] -->
               <PositionInterpolator DEF='PIkey='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.0keyValue='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='OIkey='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.0keyValue='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='EspduReceiveraddress='224.2.181.145entityID='2marking='local AUVnetworkMode='networkReaderport='62040containerField='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_positiontype='SFVec3faccessType='inputOnly'/>
 50                      <field name='set_rotationtype='SFRotationaccessType='inputOnly'/>
 51                      <field name='positiontype='SFVec3fvalue='0.0 0.0 0.0accessType='initializeOnly'/>
 52                      <field name='rotationtype='SFRotationvalue='0 1 0 0.0accessType='initializeOnly'/>
 53                      <field name='traceTextLabeltype='MFStringaccessType='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='SimpleCheckboardcolorPerVertex='falsesolid='falsexDimension='5xSpacing='10zDimension='5zSpacing='10height='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 0transparency='0.25'/>
 68                      </Appearance>
 69                 </Shape>
 70            </Transform>
 71       </Scene>
 72  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->

<!-- to top Index for DEF nodes: AnimationGroup, ConvertFloatsToText, EspduReceiver, EspduSender, LoopTimeSensor, OI, PI, SimpleCheckboard, TraceText

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2
-->
X3D Tooltips element index: Appearance, Billboard, Color, component, ElevationGrid, EspduTransform, field, FontStyle, Group, head, Inline, Material, meta, OrientationInterpolator, PositionInterpolator, ROUTE, Scene, Script, Shape, Text, TimeSensor, Transform, Viewpoint, WorldInfo, X3D, accessType and type, XML data types, field types

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.

LoopTimeSensor
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
PI
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
PI
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
EspduSender
EspduTransform
set_translation
SFVec3f
then
 
 
 
EspduSender
EspduTransform
rotation_changed
SFRotation

ROUTE
event to
(3)
ConvertFloatsToText
Script
set_rotation
SFRotation
then
 
 
 
ConvertFloatsToText
Script
traceTextLabel
MFString

ROUTE
event to
(4)
TraceText
Text
string
MFString
  then
 
 
 
EspduSender
EspduTransform
translation
SFVec3f

ROUTE
event to
(3)
ConvertFloatsToText
Script
set_position
SFVec3f
then
 
 
 
ConvertFloatsToText
Script
traceTextLabel
MFString

ROUTE
event to
(4)
TraceText
Text
string
MFString
LoopTimeSensor
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
OI
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
OI
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
EspduSender
EspduTransform
set_rotation
SFRotation
then
 
 
 
EspduSender
EspduTransform
rotation_changed
SFRotation

ROUTE
event to
(3)
ConvertFloatsToText
Script
set_rotation
SFRotation
then
 
 
 
ConvertFloatsToText
Script
traceTextLabel
MFString

ROUTE
event to
(4)
TraceText
Text
string
MFString
  then
 
 
 
EspduSender
EspduTransform
translation
SFVec3f

ROUTE
event to
(3)
ConvertFloatsToText
Script
set_position
SFVec3f
then
 
 
 
ConvertFloatsToText
Script
traceTextLabel
MFString

ROUTE
event to
(4)
TraceText
Text
string
MFString

Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/EspduTransformSenderReceiverIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/EspduTransformSenderReceiver.x3d -->

<!-- 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)
-->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->