X3D
type: NamedIndividual
has head: head
has scene: Scene
profile: Immersive
version: 3.0
no namespace schema location: https://www.web3d.org/specifications/x3d-3.0.xsd

component 1 1
type: NamedIndividual
type: component
has parent: head
level: 1
name: DIS

meta 1 2
type: NamedIndividual
type: meta
has parent: head
content: EspduTransformPrototypes.x3d
name: title

meta 1 3
type: NamedIndividual
type: meta
has parent: head
content: Prototype definition for EspduTransform which handles network communications for multiple DIS Prototype Data Units (PDUs): EntityState, Collision, Detonate, Fire, CreateEntity and RemoveEntity. Also contains EspduTransformTrace which compatibly adds billboarded text-trace capabilities for run-time debugging inside a scene.
name: description

meta 1 4
type: NamedIndividual
type: meta
has parent: head
content: Don Brutzman, Don McGregor, and Duane Davis
name: creator

meta 1 5
type: NamedIndividual
type: meta
has parent: head
content: 7 December 2001
name: created

meta 1 6
type: NamedIndividual
type: meta
has parent: head
content: 18 November 2024
name: modified

meta 1 7
type: NamedIndividual
type: meta
has parent: head
content: under development but mostly complete. need articulationParameters and miscellany fields connected. ROUTE firstFired1/2 to sound node?
name: warning

meta 1 8
type: NamedIndividual
type: meta
has parent: head
content: unable to run Java classes in modern browsers
name: warning

meta 1 9
type: NamedIndividual
type: meta
has parent: head
content: X3D Specification issue: ability for Script to use .jar files to access Java classes
name: TODO

meta 1 10
type: NamedIndividual
type: meta
has parent: head
content: /vrtp/mil/navy/nps/dis/EspduTransformPROTO.wrl
name: reference

meta 1 11
type: NamedIndividual
type: meta
has parent: head
content: /vrtp/mil/navy/nps/dis/EspduTransform.java
name: reference

meta 1 12
type: NamedIndividual
type: meta
has parent: head
content: https://www.web3d.org/WorkingGroups/vrtp/mil/navy/nps/dis/EspduTransform.java
name: reference

meta 1 13
type: NamedIndividual
type: meta
has parent: head
content: https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/ExternProtoDeclareDefinitions.x3d
name: reference

meta 1 14
type: NamedIndividual
type: meta
has parent: head
content: DIS Find-It-Fast Guide at Simulation Interoperability Standards Organization (SISO)
name: reference

meta 1 15
type: NamedIndividual
type: meta
has parent: head
content: available via https://www.sisostds.org/DigitalLibrary.aspx?EntryId=16568
name: reference

meta 1 16
type: NamedIndividual
type: meta
has parent: head
content: https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/EspduTransformPrototypes.x3d
name: identifier

meta 1 17
type: NamedIndividual
type: meta
has parent: head
content: X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit
name: generator

meta 1 18
type: NamedIndividual
type: meta
has parent: head
content: ../license.html
name: license

EspduTransformPrototypes.x3d
description: Prototype definition for EspduTransform which handles network communications for multiple DIS Prototype Data Units (PDUs): EntityState, Collision, Detonate, Fire, CreateEntity and RemoveEntity. Also contains EspduTransformTrace which compatibly adds billboarded text-trace capabilities for run-time debugging inside a scene.
creator: Don Brutzman, Don McGregor, and Duane Davis
created: 7 December 2001
modified: 18 November 2024
warning: under development but mostly complete. need articulationParameters and miscellany fields connected. ROUTE firstFired1/2 to sound node?
warning: unable to run Java classes in modern browsers
reference: /vrtp/mil/navy/nps/dis/EspduTransformPROTO.wrl
reference: /vrtp/mil/navy/nps/dis/EspduTransform.java
reference: https://www.web3d.org/WorkingGroups/vrtp/mil/navy/nps/dis/EspduTransform.java
reference: https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/ExternProtoDeclareDefinitions.x3d
reference: DIS Find-It-Fast Guide at Simulation Interoperability Standards Organization (SISO)
reference: available via https://www.sisostds.org/DigitalLibrary.aspx?EntryId=16568
generator: X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit
license: ../license.html

ProtoDeclare 2 1
type: NamedIndividual
type: ProtoDeclare
has parent: Scene
has proto interface: ProtoInterface 2 1 1
has proto body: ProtoBody 2 1 2
appinfo: EspduTransform is a networked Grouping node that can contain most nodes. Prototype definition for EspduTransform which handles network communications for multiple DIS Prototype Data Units (PDUs): EntityState Collision Detonate Fire CreateEntity and RemoveEntity.
name: EspduTransform

field 2 1 1 1
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
appinfo: Double precision output for 64-bit Espdu translation usable by georeferenced nodes.
name: geoCoords_changed
type: SFVec3d

field 2 1 1 2
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOnly
appinfo: Adding a node to the children field will add that node to the EspduTransform's set of children. Warning: adding any node to the EspduTransform's children field that is already in that child list is illegal. Warning: adding any node to the EspduTransform's children that is an ancestor of that grouping is illegal.
name: addChildren
type: MFNode

field 2 1 1 3
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOnly
appinfo: The removeChildren event removes nodes from the EspduTransform's children field. Any nodes in the removeChildren event that are not in the EspduTransform's children list are ignored.
name: removeChildren
type: MFNode

field 2 1 1 4
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: Children nodes within translation and rotation coordinate system of EspduTransform. Hint: XML encoding can include child node(s) directly.
name: children
type: MFNode

field 2 1 1 5
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: Position of children relative to local coordinate system usually read from (or written to) remote networked EspduTransform nodes.
name: translation
type: SFVec3f
value: 0

field 2 1 1 6
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: Orientation of children relative to local coordinate system usually read from (or written to) remote networked EspduTransform nodes.
name: rotation
type: SFRotation
value: 0
value: 1

field 2 1 1 7
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: Translation offset from origin of local coordinate system.
name: center
type: SFVec3f
value: 0

field 2 1 1 8
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: Non-uniform x-y-z scale of child coordinate system adjusted by center and scaleOrientation.
name: scale
type: SFVec3f
value: 1

field 2 1 1 9
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: Non-uniform x-y-z scale of child coordinate system adjusted by center and scaleOrientation.
name: scaleOrientation
type: SFRotation
value: 0
value: 1

field 2 1 1 10
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: initializeOnly
appinfo: Bounding box center: position offset from origin of local coordinate system.
name: bboxCenter
type: SFVec3f
value: 0

field 2 1 1 11
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: initializeOnly
appinfo: Bounding box size: automatically calculated can be specified as an optimization or constraint.
name: bboxSize
type: SFVec3f
value: -1

field 2 1 1 12
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: 0-to-11 character label for entity.
name: marking
type: SFString

field 2 1 1 13
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [065535] EntityID: unique ID for that site.
name: siteID
type: SFInt32
value: 0

field 2 1 1 14
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [065535] EntityID: application ID unique ID for application at that site.
name: applicationID
type: SFInt32
value: 1

field 2 1 1 15
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [065535] EntityID: unique ID for entity within that application.
name: entityID
type: SFInt32
value: 0

field 2 1 1 16
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: multicast address or else "localhost" listens to local defaultBridge
name: address
type: SFString
value: localhost

field 2 1 1 17
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [065535] multicast port or else listen to local defaultBridge
name: port
type: SFInt32
value: 0

field 2 1 1 18
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: Host name of multicast relay server to provide alternative connectivity if local native multicast traffic not heard.
name: multicastRelayHost
type: SFString

field 2 1 1 19
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: Connection port on multicast relay server.
name: multicastRelayPort
type: SFInt32
value: 0

field 2 1 1 20
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: networkMode: standAlone (ignore network but still respond to local events), networkReader (listen to network as ghost entity), networkWriter (output to network as master entity at writeInterval)
name: networkMode
type: SFString
value: standAlone

field 2 1 1 21
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
appinfo: Whether networkMode standAlone (ignore network but still respond to local events) is true/false
name: isStandAlone
type: SFBool

field 2 1 1 22
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
appinfo: Whether networkMode 'networkWriter' (output to network as master entity at writeInterval) is true/false
name: isMaster
type: SFBool

field 2 1 1 23
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
appinfo: Whether networkMode 'networkReader' (listen to network as ghost entity) is true/false
name: isRemote
type: SFBool

field 2 1 1 24
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: seconds between read updates
name: readInterval
type: SFTime
value: 0.1

field 2 1 1 25
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: seconds between write updates
name: writeInterval
type: SFTime
value: 1.0

field 2 1 1 26
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
appinfo: Indicates if the node has received a DIS message (isActive=true) or not (isActive=false). Since DIS entities can be considered inactive after some period of time (typically five seconds) either event may be received by listening nodes.
name: isActive
type: SFBool

field 2 1 1 27
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
appinfo: DIS timestamp in VRML units
name: timestamp
type: SFTime

field 2 1 1 28
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: initializeOnly
appinfo: whether RTP header is expected to be prepended to DIS packet
name: rtpHeaderExpected
type: SFBool
value: false

field 2 1 1 29
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
appinfo: whether RTP header was found prepended to DIS packet
name: isRtpHeaderHeard
type: SFBool

field 2 1 1 30
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [0255]
name: forceID
type: SFInt32
value: 0

field 2 1 1 31
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [0255]
name: entityKind
type: SFInt32
value: 0

field 2 1 1 32
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [0255]
name: entityDomain
type: SFInt32
value: 0

field 2 1 1 33
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [065535]
name: entityCountry
type: SFInt32
value: 0

field 2 1 1 34
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [0255]
name: entityCategory
type: SFInt32
value: 0

field 2 1 1 35
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [0255]
name: entitySubCategory
type: SFInt32
value: 0

field 2 1 1 36
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [0255]
name: entitySpecific
type: SFInt32
value: 0

field 2 1 1 37
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [0255]
name: entityExtra
type: SFInt32
value: 0

field 2 1 1 38
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
name: linearVelocity
type: SFVec3f
value: 0

field 2 1 1 39
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
name: linearAcceleration
type: SFVec3f
value: 0

field 2 1 1 40
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: Dead reckoning algorithm being used to project position/orientation with velocities/accelerations.
name: deadReckoning
type: SFInt32
value: 0

field 2 1 1 41
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: isCollided
type: SFBool

field 2 1 1 42
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: collideTime
type: SFTime

field 2 1 1 43
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
appinfo: [065535]
name: eventApplicationID
type: SFInt32

field 2 1 1 44
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
appinfo: [065535]
name: eventSiteID
type: SFInt32

field 2 1 1 45
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
appinfo: [065535]
name: eventEntityID
type: SFInt32

field 2 1 1 46
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
appinfo: [0255]
name: collisionType
type: SFInt32

field 2 1 1 47
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
appinfo: [065535]
name: eventNumber
type: SFInt32

field 2 1 1 48
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
name: fired1
type: SFBool
value: false

field 2 1 1 49
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
name: fired2
type: SFBool
value: false

field 2 1 1 50
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: firedTime
type: SFTime

field 2 1 1 51
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
name: munitionStartPoint
type: SFVec3f
value: 0

field 2 1 1 52
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
name: munitionEndPoint
type: SFVec3f
value: 0

field 2 1 1 53
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [065535]
name: munitionApplicationID
type: SFInt32
value: 0

field 2 1 1 54
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [065535]
name: munitionSiteID
type: SFInt32
value: 0

field 2 1 1 55
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [065535]
name: munitionEntityID
type: SFInt32
value: 0

field 2 1 1 56
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [065535]
name: fireMissionIndex
type: SFInt32
value: 0

field 2 1 1 57
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [065535]
name: warhead
type: SFInt32
value: 0

field 2 1 1 58
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [065535]
name: fuse
type: SFInt32
value: 0

field 2 1 1 59
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [065535]
name: munitionQuantity
type: SFInt32
value: 1

field 2 1 1 60
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: [065535]
name: firingRate
type: SFInt32
value: 1

field 2 1 1 61
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
name: firingRange
type: SFFloat
value: 0

field 2 1 1 62
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: isDetonated
type: SFBool

field 2 1 1 63
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: detonateTime
type: SFTime

field 2 1 1 64
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: detonationLocation
type: SFVec3f

field 2 1 1 65
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: detonationRelativeLocation
type: SFVec3f

field 2 1 1 66
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: detonationResult
type: SFInt32

field 2 1 1 67
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: range [078]. Indicates the number of appended parameters that are being used to describe articulation of various segments of the entity model.
name: articulationParameterCount
type: SFInt32
value: 0

field 2 1 1 68
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: range [0255]. The Parameter Type Designator entries in the articulationParameterDesignatorArray indicate if the the parameter record is for an articulated or attached part. It is represented by an 8-bit enumeration.
name: articulationParameterDesignatorArray
type: MFInt32

field 2 1 1 69
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: range [0255]. The Change Indicator entries in the articulationChangeIndicatorArray indicate the change of any parameter for the associated articulated part. This is specified by an 8-bit unsigned integer. The value is initially set to zero for each exercise and is sequentially incremented by one for each change in the articulation parameters. The proper indicator is updated automatically by an X3D DIS implementation upon receipt of a set_articulationParameterValue event.
name: articulationParameterChangeIndicatorArray
type: MFInt32

field 2 1 1 70
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: range [065535]. The ID - Part Attached To entries in the articulationParameterIdPartAttachedToArray identify the articulated part to which this articulation parameter is attached. The value is specified by a 16-bit unsigned integer and is set to zero if the articulated part is attached directly to the entity.
name: articulationParameterIdPartAttachedToArray
type: MFInt32

field 2 1 1 71
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: range [0255]. The Parameter Type entries in the articulationParameterTypeArray are specified by 32-bit enumeration values.
name: articulationParameterTypeArray
type: MFInt32

field 2 1 1 72
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOutput
appinfo: The Parameter Value entries in the articulationParameterArray are specified by a 64-bit field. The definition of the 64 bits is determined based on the type of parameter indicated above.
name: articulationParameterArray
type: MFFloat

field 2 1 1 73
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOnly
name: set_articulationParameterValue0
type: SFFloat

field 2 1 1 74
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOnly
name: set_articulationParameterValue1
type: SFFloat

field 2 1 1 75
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOnly
name: set_articulationParameterValue2
type: SFFloat

field 2 1 1 76
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOnly
name: set_articulationParameterValue3
type: SFFloat

field 2 1 1 77
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOnly
name: set_articulationParameterValue4
type: SFFloat

field 2 1 1 78
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOnly
name: set_articulationParameterValue5
type: SFFloat

field 2 1 1 79
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOnly
name: set_articulationParameterValue6
type: SFFloat

field 2 1 1 80
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: inputOnly
name: set_articulationParameterValue7
type: SFFloat

field 2 1 1 81
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: articulationParameterValue0_changed
type: SFFloat

field 2 1 1 82
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: articulationParameterValue1_changed
type: SFFloat

field 2 1 1 83
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: articulationParameterValue2_changed
type: SFFloat

field 2 1 1 84
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: articulationParameterValue3_changed
type: SFFloat

field 2 1 1 85
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: articulationParameterValue4_changed
type: SFFloat

field 2 1 1 86
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: articulationParameterValue5_changed
type: SFFloat

field 2 1 1 87
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: articulationParameterValue6_changed
type: SFFloat

field 2 1 1 88
type: NamedIndividual
type: field
has parent: ProtoInterface 2 1 1
access type: outputOnly
name: articulationParameterValue7_changed
type: SFFloat

DisTransformNode
type: NamedIndividual
type: Transform
has parent: ProtoBody 2 1 2
has IS: IS 2 1 2 1 1
DEF: DisTransformNode

connect 2 1 2 1 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 1 1
node field: addChildren
proto field: addChildren

connect 2 1 2 1 1 2
type: NamedIndividual
type: connect
has parent: IS 2 1 2 1 1
node field: removeChildren
proto field: removeChildren

connect 2 1 2 1 1 3
type: NamedIndividual
type: connect
has parent: IS 2 1 2 1 1
node field: children
proto field: children

connect 2 1 2 1 1 4
type: NamedIndividual
type: connect
has parent: IS 2 1 2 1 1
node field: translation
proto field: translation

connect 2 1 2 1 1 5
type: NamedIndividual
type: connect
has parent: IS 2 1 2 1 1
node field: rotation
proto field: rotation

connect 2 1 2 1 1 6
type: NamedIndividual
type: connect
has parent: IS 2 1 2 1 1
node field: center
proto field: center

connect 2 1 2 1 1 7
type: NamedIndividual
type: connect
has parent: IS 2 1 2 1 1
node field: scale
proto field: scale

connect 2 1 2 1 1 8
type: NamedIndividual
type: connect
has parent: IS 2 1 2 1 1
node field: scaleOrientation
proto field: scaleOrientation

connect 2 1 2 1 1 9
type: NamedIndividual
type: connect
has parent: IS 2 1 2 1 1
node field: bboxCenter
proto field: bboxCenter

connect 2 1 2 1 1 10
type: NamedIndividual
type: connect
has parent: IS 2 1 2 1 1
node field: bboxSize
proto field: bboxSize

CacheExposedFieldNodes
type: NamedIndividual
type: Group
has parent: ProtoBody 2 1 2
has children: MarkingState
has children: SiteIdState
has children: ApplicationIdState
has children: EntityIdState
has children: NetworkModeState
has children: ReaderState
has children: MasterState
has children: LocalState
has children: ReadWriteIntervalState
has children: MunitionPointNode
has children: Switch 2 1 2 2 11
DEF: CacheExposedFieldNodes

MarkingState
type: NamedIndividual
type: Anchor
has parent: CacheExposedFieldNodes
has IS: IS 2 1 2 2 1 1
DEF: MarkingState

connect 2 1 2 2 1 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 1 1
node field: description
proto field: marking

SiteIdState
type: NamedIndividual
type: Switch
has parent: CacheExposedFieldNodes
has IS: IS 2 1 2 2 2 1
DEF: SiteIdState
which choice: -1

connect 2 1 2 2 2 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 2 1
node field: whichChoice
proto field: siteID

ApplicationIdState
type: NamedIndividual
type: Switch
has parent: CacheExposedFieldNodes
has IS: IS 2 1 2 2 3 1
DEF: ApplicationIdState
which choice: -1

connect 2 1 2 2 3 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 3 1
node field: whichChoice
proto field: applicationID

EntityIdState
type: NamedIndividual
type: Switch
has parent: CacheExposedFieldNodes
has IS: IS 2 1 2 2 4 1
DEF: EntityIdState
which choice: -1

connect 2 1 2 2 4 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 4 1
node field: whichChoice
proto field: entityID

NetworkModeState
type: NamedIndividual
type: Anchor
has parent: CacheExposedFieldNodes
has IS: IS 2 1 2 2 5 1
DEF: NetworkModeState

connect 2 1 2 2 5 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 5 1
node field: description
proto field: networkMode

ReaderState
type: NamedIndividual
type: NavigationInfo
has parent: CacheExposedFieldNodes
has IS: IS 2 1 2 2 6 1
DEF: ReaderState

connect 2 1 2 2 6 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 6 1
node field: headlight
proto field: isRemote

MasterState
type: NamedIndividual
type: NavigationInfo
has parent: CacheExposedFieldNodes
has IS: IS 2 1 2 2 7 1
DEF: MasterState

connect 2 1 2 2 7 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 7 1
node field: headlight
proto field: isMaster

LocalState
type: NamedIndividual
type: NavigationInfo
has parent: CacheExposedFieldNodes
has IS: IS 2 1 2 2 8 1
DEF: LocalState

connect 2 1 2 2 8 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 8 1
node field: headlight
proto field: isStandAlone

ReadWriteIntervalState
type: NamedIndividual
type: TimeSensor
has parent: CacheExposedFieldNodes
has IS: IS 2 1 2 2 9 1
DEF: ReadWriteIntervalState

connect 2 1 2 2 9 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 9 1
node field: startTime
proto field: readInterval

connect 2 1 2 2 9 1 2
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 9 1
node field: stopTime
proto field: writeInterval

MunitionPointNode
type: NamedIndividual
type: Transform
has parent: CacheExposedFieldNodes
has IS: IS 2 1 2 2 10 1
DEF: MunitionPointNode

connect 2 1 2 2 10 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 10 1
node field: translation
proto field: munitionStartPoint

connect 2 1 2 2 10 1 2
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 10 1
node field: center
proto field: munitionEndPoint

Switch 2 1 2 2 11
type: NamedIndividual
type: Switch
has parent: CacheExposedFieldNodes
has children: AddressHolder
has children: MulticastAddressHolder
has children: PortHolder
has children: MulticastPortHolder
has children: ArticulationParameterCountHolder
has children: ArticulationParameterArrayHolder
which choice: -1

AddressHolder
type: NamedIndividual
type: Anchor
has parent: Switch 2 1 2 2 11
has IS: IS 2 1 2 2 11 1 1
DEF: AddressHolder

connect 2 1 2 2 11 1 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 11 1 1
node field: description
proto field: address

MulticastAddressHolder
type: NamedIndividual
type: Anchor
has parent: Switch 2 1 2 2 11
has IS: IS 2 1 2 2 11 2 1
DEF: MulticastAddressHolder

connect 2 1 2 2 11 2 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 11 2 1
node field: description
proto field: multicastRelayHost

PortHolder
type: NamedIndividual
type: Switch
has parent: Switch 2 1 2 2 11
has IS: IS 2 1 2 2 11 3 1
DEF: PortHolder
which choice: -1

connect 2 1 2 2 11 3 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 11 3 1
node field: whichChoice
proto field: port

MulticastPortHolder
type: NamedIndividual
type: Switch
has parent: Switch 2 1 2 2 11
has IS: IS 2 1 2 2 11 4 1
DEF: MulticastPortHolder
which choice: -1

connect 2 1 2 2 11 4 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 11 4 1
node field: whichChoice
proto field: multicastRelayPort

ArticulationParameterCountHolder
type: NamedIndividual
type: Switch
has parent: Switch 2 1 2 2 11
has IS: IS 2 1 2 2 11 5 1
DEF: ArticulationParameterCountHolder
which choice: -1

connect 2 1 2 2 11 5 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 11 5 1
node field: whichChoice
proto field: articulationParameterCount

ArticulationParameterArrayHolder
type: NamedIndividual
type: ScalarInterpolator
has parent: Switch 2 1 2 2 11
has IS: IS 2 1 2 2 11 6 1
DEF: ArticulationParameterArrayHolder

connect 2 1 2 2 11 6 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 2 11 6 1
node field: keyValue
proto field: articulationParameterArray

NetworkingScriptAndReadWriteClocks
type: NamedIndividual
type: Group
has parent: ProtoBody 2 1 2
has children: EspduScriptNode
has children: ReadIntervalClock
has children: WriteIntervalClock
has ROUTE: ROUTE 2 1 2 3 4
has ROUTE: ROUTE 2 1 2 3 5
DEF: NetworkingScriptAndReadWriteClocks

EspduScriptNode
type: NamedIndividual
type: Script
has parent: NetworkingScriptAndReadWriteClocks
has field: field 2 1 2 3 1 1
has field: field 2 1 2 3 1 2
has field: field 2 1 2 3 1 3
has field: field 2 1 2 3 1 4
has field: field 2 1 2 3 1 5
has field: field 2 1 2 3 1 6
has field: field 2 1 2 3 1 7
has field: field 2 1 2 3 1 8
has field: field 2 1 2 3 1 9
has field: field 2 1 2 3 1 10
has field: field 2 1 2 3 1 11
has field: field 2 1 2 3 1 12
has field: field 2 1 2 3 1 13
has field: field 2 1 2 3 1 14
has field: field 2 1 2 3 1 15
has field: field 2 1 2 3 1 16
has field: field 2 1 2 3 1 17
has field: field 2 1 2 3 1 18
has field: field 2 1 2 3 1 19
has field: field 2 1 2 3 1 20
has field: field 2 1 2 3 1 21
has field: field 2 1 2 3 1 22
has field: field 2 1 2 3 1 23
has field: field 2 1 2 3 1 24
has field: field 2 1 2 3 1 25
has field: field 2 1 2 3 1 26
has field: field 2 1 2 3 1 27
has field: field 2 1 2 3 1 28
has field: field 2 1 2 3 1 29
has field: field 2 1 2 3 1 30
has field: field 2 1 2 3 1 31
has field: field 2 1 2 3 1 32
has field: field 2 1 2 3 1 33
has field: field 2 1 2 3 1 34
has field: field 2 1 2 3 1 35
has field: field 2 1 2 3 1 36
has field: field 2 1 2 3 1 37
has field: field 2 1 2 3 1 38
has field: field 2 1 2 3 1 39
has field: field 2 1 2 3 1 40
has field: field 2 1 2 3 1 41
has field: field 2 1 2 3 1 42
has IS: IS 2 1 2 3 1 43
DEF: EspduScriptNode
direct output: true
must evaluate: true
url: "EspduTransform.class" "dis-java-vrml.jar#EspduTransform.class" "https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/EspduTransform.class"

field 2 1 2 3 1 1
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
appinfo: Double precision outputs for 64-bit Espdu translation.
name: geoCoords_changed
type: SFVec3d

field 2 1 2 3 1 2
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: initializeOnly
name: traceJava
type: SFBool
value: false

field 2 1 2 3 1 3
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: inputOnly
appinfo: Used by TimeSensor clocks to trigger processEvents() method.
name: update
type: SFTime

field 2 1 2 3 1 4
type: NamedIndividual
type: field
has parent: EspduScriptNode
has children: DisTransformNode-USE-1
access type: initializeOnly
name: transformNode
type: SFNode

field 2 1 2 3 1 5
type: NamedIndividual
type: field
has parent: EspduScriptNode
has children: MarkingState-USE-1
access type: initializeOnly
name: markingNode
type: SFNode

field 2 1 2 3 1 6
type: NamedIndividual
type: field
has parent: EspduScriptNode
has children: SiteIdState-USE-1
access type: initializeOnly
name: siteIdNode
type: SFNode

field 2 1 2 3 1 7
type: NamedIndividual
type: field
has parent: EspduScriptNode
has children: ApplicationIdState-USE-1
access type: initializeOnly
name: applicationIdNode
type: SFNode

field 2 1 2 3 1 8
type: NamedIndividual
type: field
has parent: EspduScriptNode
has children: EntityIdState-USE-1
access type: initializeOnly
name: entityIdNode
type: SFNode

field 2 1 2 3 1 9
type: NamedIndividual
type: field
has parent: EspduScriptNode
has children: AddressHolder-USE-1
access type: initializeOnly
name: addressNode
type: SFNode

field 2 1 2 3 1 10
type: NamedIndividual
type: field
has parent: EspduScriptNode
has children: MulticastAddressHolder-USE-1
access type: initializeOnly
name: multicastAddressNode
type: SFNode

field 2 1 2 3 1 11
type: NamedIndividual
type: field
has parent: EspduScriptNode
has children: PortHolder-USE-1
access type: initializeOnly
name: portNode
type: SFNode

field 2 1 2 3 1 12
type: NamedIndividual
type: field
has parent: EspduScriptNode
has children: MulticastPortHolder-USE-1
access type: initializeOnly
name: multicastPortNode
type: SFNode

field 2 1 2 3 1 13
type: NamedIndividual
type: field
has parent: EspduScriptNode
has children: NetworkModeState-USE-1
access type: initializeOnly
name: networkModeNode
type: SFNode

field 2 1 2 3 1 14
type: NamedIndividual
type: field
has parent: EspduScriptNode
has children: ReadWriteIntervalState-USE-1
access type: initializeOnly
name: readWriteIntervalNode
type: SFNode

field 2 1 2 3 1 15
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: isActive
type: SFBool

field 2 1 2 3 1 16
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: timestamp
type: SFTime

field 2 1 2 3 1 17
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: initializeOnly
name: rtpHeaderExpected
type: SFBool

field 2 1 2 3 1 18
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: isRtpHeaderHeard
type: SFBool

field 2 1 2 3 1 19
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: isCollided
type: SFBool

field 2 1 2 3 1 20
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: collideTime
type: SFTime

field 2 1 2 3 1 21
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: isDetonated
type: SFBool

field 2 1 2 3 1 22
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: detonateTime
type: SFTime

field 2 1 2 3 1 23
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: firedTime
type: SFTime

field 2 1 2 3 1 24
type: NamedIndividual
type: field
has parent: EspduScriptNode
has children: MunitionPointNode-USE-1
access type: initializeOnly
name: munitionPointNode
type: SFNode

field 2 1 2 3 1 25
type: NamedIndividual
type: field
has parent: EspduScriptNode
has children: ArticulationParameterCountHolder-USE-1
access type: initializeOnly
name: articulationParameterCountNode
type: SFNode

field 2 1 2 3 1 26
type: NamedIndividual
type: field
has parent: EspduScriptNode
has children: ArticulationParameterArrayHolder-USE-1
access type: initializeOnly
name: articulationParameterArrayNode
type: SFNode

field 2 1 2 3 1 27
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: inputOnly
name: set_articulationParameterValue0
type: SFFloat

field 2 1 2 3 1 28
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: inputOnly
name: set_articulationParameterValue1
type: SFFloat

field 2 1 2 3 1 29
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: inputOnly
name: set_articulationParameterValue2
type: SFFloat

field 2 1 2 3 1 30
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: inputOnly
name: set_articulationParameterValue3
type: SFFloat

field 2 1 2 3 1 31
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: inputOnly
name: set_articulationParameterValue4
type: SFFloat

field 2 1 2 3 1 32
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: inputOnly
name: set_articulationParameterValue5
type: SFFloat

field 2 1 2 3 1 33
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: inputOnly
name: set_articulationParameterValue6
type: SFFloat

field 2 1 2 3 1 34
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: inputOnly
name: set_articulationParameterValue7
type: SFFloat

field 2 1 2 3 1 35
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: articulationParameterValue0_changed
type: SFFloat

field 2 1 2 3 1 36
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: articulationParameterValue1_changed
type: SFFloat

field 2 1 2 3 1 37
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: articulationParameterValue2_changed
type: SFFloat

field 2 1 2 3 1 38
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: articulationParameterValue3_changed
type: SFFloat

field 2 1 2 3 1 39
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: articulationParameterValue4_changed
type: SFFloat

field 2 1 2 3 1 40
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: articulationParameterValue5_changed
type: SFFloat

field 2 1 2 3 1 41
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: articulationParameterValue6_changed
type: SFFloat

field 2 1 2 3 1 42
type: NamedIndividual
type: field
has parent: EspduScriptNode
access type: outputOnly
name: articulationParameterValue7_changed
type: SFFloat

connect 2 1 2 3 1 43 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: geoCoords_changed
proto field: geoCoords_changed

connect 2 1 2 3 1 43 2
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: isActive
proto field: isActive

connect 2 1 2 3 1 43 3
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: timestamp
proto field: timestamp

connect 2 1 2 3 1 43 4
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: rtpHeaderExpected
proto field: rtpHeaderExpected

connect 2 1 2 3 1 43 5
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: isRtpHeaderHeard
proto field: isRtpHeaderHeard

connect 2 1 2 3 1 43 6
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: isCollided
proto field: isCollided

connect 2 1 2 3 1 43 7
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: collideTime
proto field: collideTime

connect 2 1 2 3 1 43 8
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: isDetonated
proto field: isDetonated

connect 2 1 2 3 1 43 9
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: detonateTime
proto field: detonateTime

connect 2 1 2 3 1 43 10
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: firedTime
proto field: firedTime

connect 2 1 2 3 1 43 11
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: set_articulationParameterValue0
proto field: set_articulationParameterValue0

connect 2 1 2 3 1 43 12
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: set_articulationParameterValue1
proto field: set_articulationParameterValue1

connect 2 1 2 3 1 43 13
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: set_articulationParameterValue2
proto field: set_articulationParameterValue2

connect 2 1 2 3 1 43 14
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: set_articulationParameterValue3
proto field: set_articulationParameterValue3

connect 2 1 2 3 1 43 15
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: set_articulationParameterValue4
proto field: set_articulationParameterValue4

connect 2 1 2 3 1 43 16
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: set_articulationParameterValue5
proto field: set_articulationParameterValue5

connect 2 1 2 3 1 43 17
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: set_articulationParameterValue6
proto field: set_articulationParameterValue6

connect 2 1 2 3 1 43 18
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: set_articulationParameterValue7
proto field: set_articulationParameterValue7

connect 2 1 2 3 1 43 19
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: articulationParameterValue0_changed
proto field: articulationParameterValue0_changed

connect 2 1 2 3 1 43 20
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: articulationParameterValue1_changed
proto field: articulationParameterValue1_changed

connect 2 1 2 3 1 43 21
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: articulationParameterValue2_changed
proto field: articulationParameterValue2_changed

connect 2 1 2 3 1 43 22
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: articulationParameterValue3_changed
proto field: articulationParameterValue3_changed

connect 2 1 2 3 1 43 23
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: articulationParameterValue4_changed
proto field: articulationParameterValue4_changed

connect 2 1 2 3 1 43 24
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: articulationParameterValue5_changed
proto field: articulationParameterValue5_changed

connect 2 1 2 3 1 43 25
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: articulationParameterValue6_changed
proto field: articulationParameterValue6_changed

connect 2 1 2 3 1 43 26
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 1 43
node field: articulationParameterValue7_changed
proto field: articulationParameterValue7_changed

ReadIntervalClock
type: NamedIndividual
type: TimeSensor
has parent: NetworkingScriptAndReadWriteClocks
has IS: IS 2 1 2 3 2 1
DEF: ReadIntervalClock
loop: true

connect 2 1 2 3 2 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 2 1
node field: cycleInterval
proto field: readInterval

WriteIntervalClock
type: NamedIndividual
type: TimeSensor
has parent: NetworkingScriptAndReadWriteClocks
has IS: IS 2 1 2 3 3 1
DEF: WriteIntervalClock
loop: true

connect 2 1 2 3 3 1 1
type: NamedIndividual
type: connect
has parent: IS 2 1 2 3 3 1
node field: cycleInterval
proto field: writeInterval

ROUTE 2 1 2 3 4
type: NamedIndividual
type: ROUTE
has parent: NetworkingScriptAndReadWriteClocks
from field: cycleTime
from node: ReadIntervalClock
to field: update
to node: EspduScriptNode

ROUTE 2 1 2 3 5
type: NamedIndividual
type: ROUTE
has parent: NetworkingScriptAndReadWriteClocks
from field: cycleTime
from node: WriteIntervalClock
to field: update
to node: EspduScriptNode

ProtoDeclare 2 2
type: NamedIndividual
type: ProtoDeclare
has parent: Scene
has proto interface: ProtoInterface 2 2 1
has proto body: ProtoBody 2 2 2
appinfo: EspduTransformTrace provides 3D trace values for a corresponding EspduTransorm usually as a child so that it stays local to an entity's position. EspduTransformTrace compatibly adds billboarded text-trace capabilities for run-time debugging inside a scene.
name: EspduTransformTrace

field 2 2 1 1
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: initializeOnly
appinfo: initialize with <EspduTransform USE="NodeToBeTraced"/> so that networked data is passed by reference
name: espduTransformNode
type: SFNode

field 2 2 1 2
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: initializeOnly
appinfo: Trace text color
name: traceColor
type: SFColor
value: 1
value: 0.4
value: 0.05

field 2 2 1 3
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: initializeOnly
appinfo: Trace text position relative to entity
name: traceOffset
type: SFVec3f
value: 0
value: 2.5

field 2 2 1 4
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: initializeOnly
appinfo: Trace text scale
name: traceFontSize
type: SFFloat
value: 0.8

field 2 2 1 5
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: initializeOnly
appinfo: whether or not to include verbose trace comments in Java console in order to help debug network connectivity
name: traceJava
type: SFBool
value: false

field 2 2 1 6
type: NamedIndividual
type: field
has parent: ProtoInterface 2 2 1
access type: initializeOnly
appinfo: Whether EspduTransformTrace debug scripting is visible inside the X3D scene
name: localTraceEnabled
type: SFBool
value: false

PrimaryControlScripts
type: NamedIndividual
type: Group
has parent: Group 2 2 2 1
has children: TraceScript
has children: ReadIntervalTraceClock
has children: WriteIntervalTraceClock
has children: DEBUG JAVASCRIPT
has ROUTE: ROUTE 2 2 2 1 1 3
has ROUTE: ROUTE 2 2 2 1 1 4
has ROUTE: ROUTE 2 2 2 1 1 6
has ROUTE: ROUTE 2 2 2 1 1 7
DEF: PrimaryControlScripts

TraceScript
type: NamedIndividual
type: Script
has parent: PrimaryControlScripts
has field: field 2 2 2 1 1 1 1
has field: field 2 2 2 1 1 1 2
has field: field 2 2 2 1 1 1 3
has field: field 2 2 2 1 1 1 4
has field: field 2 2 2 1 1 1 5
has field: field 2 2 2 1 1 1 6
has field: field 2 2 2 1 1 1 7
has field: field 2 2 2 1 1 1 8
has field: field 2 2 2 1 1 1 9
has field: field 2 2 2 1 1 1 10
has field: field 2 2 2 1 1 1 11
has field: field 2 2 2 1 1 1 12
has field: field 2 2 2 1 1 1 13
has field: field 2 2 2 1 1 1 14
has field: field 2 2 2 1 1 1 15
has field: field 2 2 2 1 1 1 16
has field: field 2 2 2 1 1 1 17
has field: field 2 2 2 1 1 1 18
has field: field 2 2 2 1 1 1 19
has field: field 2 2 2 1 1 1 20
has field: field 2 2 2 1 1 1 21
has field: field 2 2 2 1 1 1 22
has IS: IS 2 2 2 1 1 1 23
DEF: TraceScript
direct output: true
must evaluate: true
source code: ecmascript: function initialize () { tracePrint('TraceScript initialize() start...'); tracePrint('traceColor=' + traceColor); tracePrint('traceOffset=' + traceOffset); tracePrint('traceFontSize=' + traceFontSize); tracePrint('traceJava=' + traceJava); tracePrint('marking=' + espduTransformNode.marking); tracePrint('address=' + espduTransformNode.address); tracePrint(' port=' + espduTransformNode.port); tracePrint('networkMode=' + espduTransformNode.networkMode); if (espduTransformNode.networkMode == 'networkReader') { readInterval = espduTransformNode.readInterval; writeInterval = 0; } if (espduTransformNode.networkMode == 'networkWriter') { readInterval = 0; writeInterval = espduTransformNode.writeInterval; } tracePrint('readInterval=' + espduTransformNode.readInterval); tracePrint('writeInterval=' + espduTransformNode.writeInterval); prior_marking = espduTransformNode.marking; prior_readInterval = espduTransformNode.readInterval; prior_writeInterval = espduTransformNode.writeInterval; prior_translation = espduTransformNode.translation; prior_geoCoords_changed = espduTransformNode.geoCoords_changed; prior_fired1 = espduTransformNode.fired1; prior_fired2 = espduTransformNode.fired2; outputString1 = espduTransformNode.marking + ' (' + espduTransformNode.siteID + ', ' + espduTransformNode.applicationID + ', ' + espduTransformNode.entityID + ')'; outputString2 = 'awaiting PDUs...'; traceString = new MFString (outputString1, outputString2); tracePrint ('traceString=' + traceString); // if (offsetFollowsEspduTransform) // { // // create ROUTEs to connect parent EspduTransform // } tracePrint('TraceScript initialize() finish.'); } function touched (isActiveValue, timestamp) { tracePrint ('touched=' + isActiveValue + ', no action'); } function update (value, timestamp) { // tracePrint('begin update() ...'); changed = false; // only send output events when changed if (prior_marking != espduTransformNode.marking) { tracePrint('update() changed marking'); marking = espduTrans…

field 2 2 2 1 1 1 1
type: NamedIndividual
type: field
has parent: TraceScript
access type: initializeOnly
appinfo: initialize with <EspduTransform USE="NodeToBeTraced"/>
name: espduTransformNode
type: SFNode

field 2 2 2 1 1 1 2
type: NamedIndividual
type: field
has parent: TraceScript
access type: initializeOnly
appinfo: Trace text color
name: traceColor
type: SFColor

field 2 2 2 1 1 1 3
type: NamedIndividual
type: field
has parent: TraceScript
access type: initializeOnly
appinfo: Trace text position relative to entity
name: traceOffset
type: SFVec3f

field 2 2 2 1 1 1 4
type: NamedIndividual
type: field
has parent: TraceScript
access type: initializeOnly
appinfo: Trace text scale
name: traceFontSize
type: SFFloat

field 2 2 2 1 1 1 5
type: NamedIndividual
type: field
has parent: TraceScript
access type: initializeOnly
appinfo: (not passable???) whether or not to include verbose trace comments in Java console in order to help debug network connectivity
name: traceJava
type: SFBool

field 2 2 2 1 1 1 6
type: NamedIndividual
type: field
has parent: TraceScript
access type: initializeOnly
appinfo: Whether EspduTransformTrace debug scripting has verbose output
name: localTraceEnabled
type: SFBool

field 2 2 2 1 1 1 7
type: NamedIndividual
type: field
has parent: TraceScript
access type: inputOnly
name: touched
type: SFBool

field 2 2 2 1 1 1 8
type: NamedIndividual
type: field
has parent: TraceScript
access type: inputOnly
appinfo: Used by TimeSensor clocks to trigger processEvents() method.
name: update
type: SFTime

field 2 2 2 1 1 1 9
type: NamedIndividual
type: field
has parent: TraceScript
access type: outputOnly
name: marking
type: SFString

field 2 2 2 1 1 1 10
type: NamedIndividual
type: field
has parent: TraceScript
access type: outputOnly
name: readInterval
type: SFTime

field 2 2 2 1 1 1 11
type: NamedIndividual
type: field
has parent: TraceScript
access type: outputOnly
name: writeInterval
type: SFTime

field 2 2 2 1 1 1 12
type: NamedIndividual
type: field
has parent: TraceScript
access type: outputOnly
name: fired1
type: SFBool

field 2 2 2 1 1 1 13
type: NamedIndividual
type: field
has parent: TraceScript
access type: outputOnly
name: fired2
type: SFBool

field 2 2 2 1 1 1 14
type: NamedIndividual
type: field
has parent: TraceScript
access type: outputOnly
name: fireTime
type: SFTime

field 2 2 2 1 1 1 15
type: NamedIndividual
type: field
has parent: TraceScript
access type: outputOnly
name: traceString
type: MFString

field 2 2 2 1 1 1 16
type: NamedIndividual
type: field
has parent: TraceScript
access type: initializeOnly
name: prior_marking
type: SFString

field 2 2 2 1 1 1 17
type: NamedIndividual
type: field
has parent: TraceScript
access type: initializeOnly
name: prior_readInterval
type: SFTime
value: -1

field 2 2 2 1 1 1 18
type: NamedIndividual
type: field
has parent: TraceScript
access type: initializeOnly
name: prior_writeInterval
type: SFTime
value: -1

field 2 2 2 1 1 1 19
type: NamedIndividual
type: field
has parent: TraceScript
access type: initializeOnly
name: prior_fired1
type: SFBool
value: false

field 2 2 2 1 1 1 20
type: NamedIndividual
type: field
has parent: TraceScript
access type: initializeOnly
name: prior_fired2
type: SFBool
value: false

field 2 2 2 1 1 1 21
type: NamedIndividual
type: field
has parent: TraceScript
access type: initializeOnly
name: prior_translation
type: SFVec3f
value: 0

field 2 2 2 1 1 1 22
type: NamedIndividual
type: field
has parent: TraceScript
access type: initializeOnly
name: prior_geoCoords_changed
type: SFVec3d
value: 0

connect 2 2 2 1 1 1 23 1
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1 1 23
node field: espduTransformNode
proto field: espduTransformNode

connect 2 2 2 1 1 1 23 2
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1 1 23
node field: traceColor
proto field: traceColor

connect 2 2 2 1 1 1 23 3
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1 1 23
node field: traceOffset
proto field: traceOffset

connect 2 2 2 1 1 1 23 4
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1 1 23
node field: traceFontSize
proto field: traceFontSize

connect 2 2 2 1 1 1 23 5
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1 1 23
node field: traceJava
proto field: traceJava

connect 2 2 2 1 1 1 23 6
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1 1 23
node field: localTraceEnabled
proto field: localTraceEnabled

ReadIntervalTraceClock
type: NamedIndividual
type: TimeSensor
has parent: PrimaryControlScripts
DEF: ReadIntervalTraceClock
loop: true

ROUTE 2 2 2 1 1 3
type: NamedIndividual
type: ROUTE
has parent: PrimaryControlScripts
from field: readInterval
from node: TraceScript
to field: cycleInterval
to node: ReadIntervalTraceClock

ROUTE 2 2 2 1 1 4
type: NamedIndividual
type: ROUTE
has parent: PrimaryControlScripts
from field: cycleTime
from node: ReadIntervalTraceClock
to field: update
to node: TraceScript

WriteIntervalTraceClock
type: NamedIndividual
type: TimeSensor
has parent: PrimaryControlScripts
DEF: WriteIntervalTraceClock
loop: true

ROUTE 2 2 2 1 1 6
type: NamedIndividual
type: ROUTE
has parent: PrimaryControlScripts
from field: writeInterval
from node: TraceScript
to field: cycleInterval
to node: WriteIntervalTraceClock

ROUTE 2 2 2 1 1 7
type: NamedIndividual
type: ROUTE
has parent: PrimaryControlScripts
from field: cycleTime
from node: WriteIntervalTraceClock
to field: update
to node: TraceScript

DEBUG JAVASCRIPT
type: NamedIndividual
type: Script
has parent: PrimaryControlScripts
has field: field 2 2 2 1 1 8 1
has field: field 2 2 2 1 1 8 2
has field: field 2 2 2 1 1 8 3
has field: field 2 2 2 1 1 8 4
has field: field 2 2 2 1 1 8 5
has field: field 2 2 2 1 1 8 6
has field: field 2 2 2 1 1 8 7
has field: field 2 2 2 1 1 8 8
has field: field 2 2 2 1 1 8 9
has field: field 2 2 2 1 1 8 10
has field: field 2 2 2 1 1 8 11
has field: field 2 2 2 1 1 8 12
has field: field 2 2 2 1 1 8 13
has field: field 2 2 2 1 1 8 14
has field: field 2 2 2 1 1 8 15
has field: field 2 2 2 1 1 8 16
has field: field 2 2 2 1 1 8 17
has field: field 2 2 2 1 1 8 18
has field: field 2 2 2 1 1 8 19
has field: field 2 2 2 1 1 8 20
has field: field 2 2 2 1 1 8 21
has field: field 2 2 2 1 1 8 22
has IS: IS 2 2 2 1 1 8 23
DEF: DEBUG_JAVASCRIPT
direct output: true
source code: ecmascript: function initialize ( ) { tracePrint ('DEBUG_JAVASCRIPT initialize() start...'); translation_text[0] = espduTransformNode.marking + ' awaiting DIS'; // rotation_text [0] = 'translation and rotation updates'; // marking_address_text[0] = 'multicast group: ' + address +'/' + port + ', ID:'// + siteID + ',' + applicationID + ',' + entityID; MFmarking[0] = espduTransformNode.marking; tracePrint ('DEBUG_JAVASCRIPT initialize() finish.'); } function set_translation ( translation, ts ) { if (active) { // round to nearest tenth translation.x = Math.round (translation.x * 10.0) / 10.0; translation.y = Math.round (translation.y * 10.0) / 10.0; translation.z = Math.round (translation.z * 10.0) / 10.0; translation_text[0] = marking + ' translation ' + translation; } } function set_rotation ( rotation, ts ) { if (active) { // round terms to nearest thousandth rotation.x = Math.round (rotation.x * 1000.0) / 1000.0; rotation.y = Math.round (rotation.y * 1000.0) / 1000.0; rotation.z = Math.round (rotation.z * 1000.0) / 1000.0; rotation.angle = (rotation.angle * 180.0) / 3.141592653; rotation.angle = Math.round (rotation.angle * 10.0) / 10.0; // rotation_text [0] = 'rotation ' + rotation + ' axis/degrees'; } } function touch (value, time) { active = !active; result = active; if (result) { translation_text[0] = marking + ' awaiting DIS'; // rotation_text [0] = 'translation and rotation updates'; // marking_address_text[0] = 'multicast group: ' + address +'/' + port + ', ID:'// + siteID + ',' + applicationID + ',' + entityID; MFmarking[0] = marking; } else { translation_text[0] = ''; rotation_text [0] = ''; marking_address_text[0] = ''; MFmarking[0] = ''; } } function timestamp ( value, ts ) { tracePrint ('DIS timestamp=' + value + ', event timestamp=' + ts); } function collided ( value, ts ) { tracePrint ('collided=' + value); } function detonated ( value, ts ) { tracePrint ('detonated=' + value); } function articulationParameterCount ( value, ts ) { tracePrint ('articula…

field 2 2 2 1 1 8 1
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: initializeOnly
appinfo: initialize with <EspduTransform USE="NodeToBeTraced"/>
name: espduTransformNode
type: SFNode

field 2 2 2 1 1 8 2
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: initializeOnly
appinfo: Whether EspduTransformTrace debug scripting has verbose output
name: localTraceEnabled
type: SFBool

field 2 2 2 1 1 8 3
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: inputOnly
name: articulationParameterCount
type: SFInt32

field 2 2 2 1 1 8 4
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: outputOnly
name: MFmarking
type: MFString

field 2 2 2 1 1 8 5
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: inputOnly
name: set_rotation
type: SFRotation

field 2 2 2 1 1 8 6
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: inputOnly
name: timestamp
type: SFTime

field 2 2 2 1 1 8 7
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: inputOnly
name: set_translation
type: SFVec3f

field 2 2 2 1 1 8 8
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: inputOnly
name: detonated
type: SFBool

field 2 2 2 1 1 8 9
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: outputOnly
name: marking_address_text
type: MFString

field 2 2 2 1 1 8 10
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: outputOnly
name: result
type: SFBool

field 2 2 2 1 1 8 11
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: initializeOnly
name: entityID
type: SFInt32
value: 0

field 2 2 2 1 1 8 12
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: outputOnly
name: translation_text
type: MFString

field 2 2 2 1 1 8 13
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: initializeOnly
name: port
type: SFInt32
value: 0

field 2 2 2 1 1 8 14
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: inputOnly
name: collided
type: SFBool

field 2 2 2 1 1 8 15
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: inputOnly
name: rtpHeaderHeard
type: SFBool

field 2 2 2 1 1 8 16
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: outputOnly
name: rotation_text
type: MFString

field 2 2 2 1 1 8 17
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: initializeOnly
name: applicationID
type: SFInt32
value: 0

field 2 2 2 1 1 8 18
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: initializeOnly
name: address
type: SFString

field 2 2 2 1 1 8 19
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: initializeOnly
name: active
type: SFBool
value: true

field 2 2 2 1 1 8 20
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: inputOnly
name: touch
type: SFTime

field 2 2 2 1 1 8 21
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: initializeOnly
name: marking
type: SFString

field 2 2 2 1 1 8 22
type: NamedIndividual
type: field
has parent: DEBUG JAVASCRIPT
access type: initializeOnly
name: siteID
type: SFInt32
value: 0

connect 2 2 2 1 1 8 23 1
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1 8 23
node field: espduTransformNode
proto field: espduTransformNode

connect 2 2 2 1 1 8 23 2
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 1 8 23
node field: localTraceEnabled
proto field: localTraceEnabled

TouchToActivateGroup
type: NamedIndividual
type: Group
has parent: Group 2 2 2 1
has children: ActivationTouchSensor
has children: LOD 2 2 2 1 2 3
has ROUTE: ROUTE 2 2 2 1 2 2
DEF: TouchToActivateGroup

ActivationTouchSensor
type: NamedIndividual
type: TouchSensor
has parent: TouchToActivateGroup
DEF: ActivationTouchSensor
description: Touch trace text to toggle simple or verbose

ROUTE 2 2 2 1 2 2
type: NamedIndividual
type: ROUTE
has parent: TouchToActivateGroup
from field: isActive
from node: ActivationTouchSensor
to field: touched
to node: TraceScript

LOD 2 2 2 1 2 3
type: NamedIndividual
type: LOD
has parent: TouchToActivateGroup
has children: Transform 2 2 2 1 2 3 1
has children: WorldInfo 2 2 2 1 2 3 2
has children: Billboard 2 2 2 1 2 3 3
has children: WorldInfo 2 2 2 1 2 3 4
range: 300.0
range: 3000.0
range: 40000.0

connect 2 2 2 1 2 3 1 1 1
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 2 3 1 1
node field: translation
proto field: traceOffset

TextColor
type: NamedIndividual
type: Material
has parent: Appearance 2 2 2 1 2 3 1 2 1 1
has IS: IS 2 2 2 1 2 3 1 2 1 1 1 1
DEF: TextColor
diffuse color: 0

connect 2 2 2 1 2 3 1 2 1 1 1 1 1
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 2 3 1 2 1 1 1 1
node field: emissiveColor
proto field: traceColor

TraceText
type: NamedIndividual
type: Text
has parent: Shape 2 2 2 1 2 3 1 2 1
has font style: TraceFont
DEF: TraceText

TraceFont
type: NamedIndividual
type: FontStyle
has parent: TraceText
has IS: IS 2 2 2 1 2 3 1 2 1 2 1 1
DEF: TraceFont
justify: "MIDDLE" "MIDDLE"

connect 2 2 2 1 2 3 1 2 1 2 1 1 1
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 2 3 1 2 1 2 1 1
node field: size
proto field: traceFontSize

ROUTE 2 2 2 1 2 3 1 2 2
type: NamedIndividual
type: ROUTE
has parent: Billboard 2 2 2 1 2 3 1 2
from field: traceString
from node: TraceScript
to field: string
to node: TraceText

Transform 2 2 2 1 2 3 1 2 3
type: NamedIndividual
type: Transform
has parent: Billboard 2 2 2 1 2 3 1 2
has children: Shape 2 2 2 1 2 3 1 2 3 1
translation: 0.0
translation: -0.25

DEBUG ROTATION
type: NamedIndividual
type: Text
has parent: Shape 2 2 2 1 2 3 1 2 3 1
has font style: TraceFont-USE-1
DEF: DEBUG_ROTATION

Transform 2 2 2 1 2 3 1 2 4
type: NamedIndividual
type: Transform
has parent: Billboard 2 2 2 1 2 3 1 2
has children: Shape 2 2 2 1 2 3 1 2 4 1
translation: 0.0
translation: -0.5

DEBUG MARKING ADDRESS
type: NamedIndividual
type: Text
has parent: Shape 2 2 2 1 2 3 1 2 4 1
has font style: TraceFont-USE-2
DEF: DEBUG_MARKING_ADDRESS

Billboard 2 2 2 1 2 3 3
type: NamedIndividual
type: Billboard
has parent: LOD 2 2 2 1 2 3
has children: Transform 2 2 2 1 2 3 3 1
has children: Transform 2 2 2 1 2 3 3 2
axis of rotation: 0.0

Transform 2 2 2 1 2 3 3 1
type: NamedIndividual
type: Transform
has parent: Billboard 2 2 2 1 2 3 3
has children: Shape 2 2 2 1 2 3 3 1 1
translation: 0.0
translation: 800.0

LONG RANGE MARKING
type: NamedIndividual
type: Text
has parent: Shape 2 2 2 1 2 3 3 1 1
has font style: FontStyle 2 2 2 1 2 3 3 1 1 2 1
DEF: LONG_RANGE_MARKING

FontStyle 2 2 2 1 2 3 3 1 1 2 1
type: NamedIndividual
type: FontStyle
has parent: LONG RANGE MARKING
justify: "MIDDLE" "MIDDLE"
size: 125.0
css style: BOLD

Transform 2 2 2 1 2 3 3 2
type: NamedIndividual
type: Transform
has parent: Billboard 2 2 2 1 2 3 3
has children: Shape 2 2 2 1 2 3 3 2 1
translation: 0.0
translation: 40.0

Box 2 2 2 1 2 3 3 2 1 2
type: NamedIndividual
type: Box
has parent: Shape 2 2 2 1 2 3 3 2 1
size: 50.0

LineOfFireGroup
type: NamedIndividual
type: Group
has parent: Group 2 2 2 1
has children: Shape 2 2 2 1 3 1
has children: SetFireLineEndpoints
has children: FireSequenceScript
has ROUTE: ROUTE 2 2 2 1 3 3
has ROUTE: ROUTE 2 2 2 1 3 5
has ROUTE: ROUTE 2 2 2 1 3 6
has ROUTE: ROUTE 2 2 2 1 3 7
DEF: LineOfFireGroup

Material 2 2 2 1 3 1 1 1
type: NamedIndividual
type: Material
has parent: Appearance 2 2 2 1 3 1 1
emissive color: 0.3
emissive color: 0.15

IndexedLineSet 2 2 2 1 3 1 2
type: NamedIndividual
type: IndexedLineSet
has parent: Shape 2 2 2 1 3 1
has color: Color 2 2 2 1 3 1 2 1
has coord: LineOfFireCoordinateNode
color index: 0
color index: 1
color index: -1
coord index: 0
coord index: 1
coord index: -1

Color 2 2 2 1 3 1 2 1
type: NamedIndividual
type: Color
has parent: IndexedLineSet 2 2 2 1 3 1 2
color: 0.0
color: 1.0

LineOfFireCoordinateNode
type: NamedIndividual
type: Coordinate
has parent: IndexedLineSet 2 2 2 1 3 1 2
DEF: LineOfFireCoordinateNode
point: 0.0
point: 20.0

SetFireLineEndpoints
type: NamedIndividual
type: Script
has parent: LineOfFireGroup
has field: field 2 2 2 1 3 2 1
has field: field 2 2 2 1 3 2 2
has field: field 2 2 2 1 3 2 3
has field: field 2 2 2 1 3 2 4
has field: field 2 2 2 1 3 2 5
has IS: IS 2 2 2 1 3 2 6
DEF: SetFireLineEndpoints
source code: ecmascript: function initialize ( ) { tracePrint ('SetFireLineEndpoints initialize() start...'); holdArray [0] = new SFVec3f (0.0, 0.0, 0.0); holdArray [1] = new SFVec3f (0.0, 0.0, 0.0); pointArray = holdArray; tracePrint ('SetFireLineEndpoints initialize() start...'); } function set_munitionStartPoint ( value, timestamp ) { holdArray [0] = value; } function set_munitionEndPoint ( value, timestamp ) { holdArray [1] = value; pointArray = holdArray; // tracePrint ('fire line endpoints=' + holdArray); } function tracePrint(outputString) { if (localTraceEnabled) Browser.println ('[EspduTransformTrace SetFireLineEndpoints] ' + outputString); } function alwaysPrint(outputString) { Browser.println ('[EspduTransformTrace SetFireLineEndpoints] ' + outputString); }

field 2 2 2 1 3 2 1
type: NamedIndividual
type: field
has parent: SetFireLineEndpoints
access type: inputOnly
name: set_munitionStartPoint
type: SFVec3f

field 2 2 2 1 3 2 2
type: NamedIndividual
type: field
has parent: SetFireLineEndpoints
access type: inputOnly
name: set_munitionEndPoint
type: SFVec3f

field 2 2 2 1 3 2 3
type: NamedIndividual
type: field
has parent: SetFireLineEndpoints
access type: initializeOnly
name: holdArray
type: MFVec3f

field 2 2 2 1 3 2 4
type: NamedIndividual
type: field
has parent: SetFireLineEndpoints
access type: outputOnly
name: pointArray
type: MFVec3f

field 2 2 2 1 3 2 5
type: NamedIndividual
type: field
has parent: SetFireLineEndpoints
access type: initializeOnly
appinfo: Whether EspduTransformTrace debug scripting has verbose output
name: localTraceEnabled
type: SFBool

connect 2 2 2 1 3 2 6 1
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 3 2 6
node field: localTraceEnabled
proto field: localTraceEnabled

ROUTE 2 2 2 1 3 3
type: NamedIndividual
type: ROUTE
has parent: LineOfFireGroup
from field: pointArray
from node: SetFireLineEndpoints
to field: set_point
to node: LineOfFireCoordinateNode

FireSequenceScript
type: NamedIndividual
type: Script
has parent: LineOfFireGroup
has field: field 2 2 2 1 3 4 1
has field: field 2 2 2 1 3 4 2
has field: field 2 2 2 1 3 4 3
has field: field 2 2 2 1 3 4 4
has field: field 2 2 2 1 3 4 5
has field: field 2 2 2 1 3 4 6
has IS: IS 2 2 2 1 3 4 7
DEF: FireSequenceScript
must evaluate: true
source code: ecmascript: function initialize ( ) { tracePrint ('FireSequenceScript initialize() start...'); firstFired1 = false; firstFired2 = false; tracePrint ('FireSequenceScript initialize() finish.'); } function fireTime (value, timestamp) { // no action } function set_fired1 (value, timestamp) { if ((value == true) && (firstFired1 == false)) { firstFired1 = true; tracePrint ('EspduTransformPROTO.wrl: fired1 FIRE_SEQUENCE_SCRIPT timestamp ' + fireTime); } } function set_fired2 (value, timestamp) { if ((value == true) && (firstFired1 == false)) { firstFired2 = true; tracePrint ('EspduTransformPROTO.wrl: fired2 FIRE_SEQUENCE_SCRIPT timestamp ' + fireTime); } } function tracePrint(outputString) { if (localTraceEnabled) Browser.println ('[EspduTransformTrace FireSequenceScript] ' + outputString); } function alwaysPrint(outputString) { Browser.println ('[EspduTransformTrace FireSequenceScript] ' + outputString); }

field 2 2 2 1 3 4 1
type: NamedIndividual
type: field
has parent: FireSequenceScript
access type: inputOnly
name: set_fired1
type: SFBool

field 2 2 2 1 3 4 2
type: NamedIndividual
type: field
has parent: FireSequenceScript
access type: inputOnly
name: set_fired2
type: SFBool

field 2 2 2 1 3 4 3
type: NamedIndividual
type: field
has parent: FireSequenceScript
access type: inputOnly
name: fireTime
type: SFTime

field 2 2 2 1 3 4 4
type: NamedIndividual
type: field
has parent: FireSequenceScript
access type: outputOnly
name: firstFired1
type: SFBool

field 2 2 2 1 3 4 5
type: NamedIndividual
type: field
has parent: FireSequenceScript
access type: outputOnly
name: firstFired2
type: SFBool

field 2 2 2 1 3 4 6
type: NamedIndividual
type: field
has parent: FireSequenceScript
access type: initializeOnly
appinfo: Whether EspduTransformTrace debug scripting has verbose output
name: localTraceEnabled
type: SFBool

connect 2 2 2 1 3 4 7 1
type: NamedIndividual
type: connect
has parent: IS 2 2 2 1 3 4 7
node field: localTraceEnabled
proto field: localTraceEnabled

ROUTE 2 2 2 1 3 5
type: NamedIndividual
type: ROUTE
has parent: LineOfFireGroup
from field: fired1
from node: TraceScript
to field: set_fired1
to node: FireSequenceScript

ROUTE 2 2 2 1 3 6
type: NamedIndividual
type: ROUTE
has parent: LineOfFireGroup
from field: fired2
from node: TraceScript
to field: set_fired2
to node: FireSequenceScript

ROUTE 2 2 2 1 3 7
type: NamedIndividual
type: ROUTE
has parent: LineOfFireGroup
from field: fireTime
from node: TraceScript
to field: fireTime
to node: FireSequenceScript

EspduTrans
type: NamedIndividual
type: EspduTransform
has parent: Scene
has children: Viewpoint 2 3 1
has children: Shape 2 3 2
DEF: EspduTrans
address: 224.2.181.145
marking: Example PDU
network mode: networkReader
port: 62040
read interval: 10
write interval: 10

Viewpoint 2 3 1
type: NamedIndividual
type: Viewpoint
has parent: EspduTrans
description: moving viewpoint

Text 2 3 2 1
type: NamedIndividual
type: Text
has parent: Shape 2 3 2
has font style: FontJustifyMiddle
string: "EspduTransform body goes here"

FontJustifyMiddle
type: NamedIndividual
type: FontStyle
has parent: Text 2 3 2 1
DEF: FontJustifyMiddle
justify: "MIDDLE" "MIDDLE"

Material 2 3 2 2 1
type: NamedIndividual
type: Material
has parent: Appearance 2 3 2 2
diffuse color: 0
diffuse color: 0.6

TraceTransform
type: NamedIndividual
type: Transform
has parent: Scene
has children: ProtoInstance 2 4 1
has ROUTE: ROUTE 2 4 2
has ROUTE: ROUTE 2 4 3
DEF: TraceTransform

ProtoInstance 2 4 1
type: NamedIndividual
type: ProtoInstance
has parent: TraceTransform
has field value: fieldValue 2 4 1 1
has field value: fieldValue 2 4 1 2
has field value: fieldValue 2 4 1 3
has field value: fieldValue 2 4 1 4
has field value: fieldValue 2 4 1 5
name: EspduTransformTrace

fieldValue 2 4 1 1
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 4 1
has children: EspduTrans-USE-1
name: espduTransformNode

fieldValue 2 4 1 2
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 4 1
name: traceColor
value: 0.9
value: 0.4
value: 0.2

fieldValue 2 4 1 3
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 4 1
name: traceFontSize
value: 0.8

fieldValue 2 4 1 4
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 4 1
name: traceJava
value: true

fieldValue 2 4 1 5
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 4 1
name: localTraceEnabled
value: true

ROUTE 2 4 2
type: NamedIndividual
type: ROUTE
has parent: TraceTransform
from field: translation
from node: EspduTrans
to field: set_translation
to node: TraceTransform

ROUTE 2 4 3
type: NamedIndividual
type: ROUTE
has parent: TraceTransform
from field: rotation
from node: EspduTrans
to field: set_rotation
to node: TraceTransform