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

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

meta 1 2
type: NamedIndividual
type: meta
has parent: head
content: Representative tactical visualization of a DICASS sonobuoy field with spatialized sound.
name: description

meta 1 3
type: NamedIndividual
type: meta
has parent: head
content: Don Brutzman
name: creator

meta 1 4
type: NamedIndividual
type: meta
has parent: head
content: 31 January 2003
name: created

meta 1 5
type: NamedIndividual
type: meta
has parent: head
content: 16 December 2025
name: modified

meta 1 6
type: NamedIndividual
type: meta
has parent: head
content: This comprehensive example requires proper prototype and JavaScript support by the X3D player
name: requires

meta 1 7
type: NamedIndividual
type: meta
has parent: head
content: https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/SonobuoyFieldScenarioIndex.html
name: reference

meta 1 8
type: NamedIndividual
type: meta
has parent: head
content: x=East, z=North, y=Up
name: coordinateSystem

meta 1 9
type: NamedIndividual
type: meta
has parent: head
content: sonobouy field
name: subject

meta 1 10
type: NamedIndividual
type: meta
has parent: head
content: GridView.jpg
name: Image

meta 1 11
type: NamedIndividual
type: meta
has parent: head
content: SeaHawkRadioCommand.jpg
name: Image

meta 1 12
type: NamedIndividual
type: meta
has parent: head
content: SeaHawkView.jpg
name: Image

meta 1 13
type: NamedIndividual
type: meta
has parent: head
content: SeaHawkViewPing.jpg
name: Image

meta 1 14
type: NamedIndividual
type: meta
has parent: head
content: SonobuoyFieldScenario-1.jpg
name: Image

meta 1 15
type: NamedIndividual
type: meta
has parent: head
content: SonobuoyFieldScenario-2.jpg
name: Image

meta 1 16
type: NamedIndividual
type: meta
has parent: head
content: SonobuoyFieldScenario-3.jpg
name: Image

meta 1 17
type: NamedIndividual
type: meta
has parent: head
content: SonobuoyView.jpg
name: Image

meta 1 18
type: NamedIndividual
type: meta
has parent: head
content: https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/Sonobuoys/SonobuoyFieldScenario.x3d
name: identifier

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

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

SonobuoyFieldScenario.x3d
description: Representative tactical visualization of a DICASS sonobuoy field with spatialized sound.
creator: Don Brutzman
created: 31 January 2003
modified: 16 December 2025
requires: This comprehensive example requires proper prototype and JavaScript support by the X3D player
reference: https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/SonobuoyFieldScenarioIndex.html
subject: sonobouy field
image: GridView.jpg
image: SeaHawkRadioCommand.jpg
image: SeaHawkView.jpg
image: SeaHawkViewPing.jpg
image: SonobuoyFieldScenario-1.jpg
image: SonobuoyFieldScenario-2.jpg
image: SonobuoyFieldScenario-3.jpg
image: SonobuoyView.jpg
generator: X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit
license: ../../license.html

WorldInfo 2 1
type: NamedIndividual
type: WorldInfo
has parent: Scene
title: SonobuoyFieldScenario.x3d

NavigationInfo 2 2
type: NamedIndividual
type: NavigationInfo
has parent: Scene
speed: 100
visibility limit: 40000

EntryView
type: NamedIndividual
type: Viewpoint
has parent: Scene
DEF: EntryView
description: Savage Sonobuoy Field Scenario, southeast corner
orientation: -0.34382
orientation: 0.92817
orientation: 0.14241
orientation: 0.839491
position: 18000
position: 8000

TopDown
type: NamedIndividual
type: Viewpoint
has parent: Scene
DEF: TopDown
description: Looking down from above
orientation: 1
orientation: 0
orientation: -1.550799
position: 3000
position: 10000

BackgroundEnvironment
type: NamedIndividual
type: Group
has parent: Scene
has children: OpenOcean
has children: SandyShallowBottom
has children: Background 2 5 3
DEF: BackgroundEnvironment

OpenOcean
type: NamedIndividual
type: Background
has parent: BackgroundEnvironment
DEF: OpenOcean
ground angle: 0.05
ground angle: 1.309
ground angle: 1.570796
ground color: 0
ground color: 0.2
ground color: 0.4
ground color: 0.05
ground color: 0.25
ground color: 0.6
ground color: 0.1
sky angle: 0.05
sky angle: 0.1
sky angle: 1.309
sky angle: 1.571
sky color: 0.8
sky color: 0.2
sky color: 0.1
sky color: 0.6
sky color: 0.25
sky color: 0.9

SandyShallowBottom
type: NamedIndividual
type: Background
has parent: BackgroundEnvironment
DEF: SandyShallowBottom
ground angle: 0.05
ground angle: 1.52
ground angle: 1.56
ground angle: 1.570796
ground color: 0.2
ground color: 0
ground color: 0.3
ground color: 0.5
ground color: 0.1
ground color: 0.4
sky angle: 0.05
sky angle: 0.1
sky angle: 1.309
sky angle: 1.571
sky color: 0.8
sky color: 0.2
sky color: 0.1
sky color: 0.6
sky color: 0.25
sky color: 0.9

Background 2 5 3
type: NamedIndividual
type: Background
has parent: BackgroundEnvironment
ground angle: 1.309
ground angle: 1.570796
ground color: 0.1
ground color: 0
ground color: 0.4
ground color: 0.25
ground color: 0.2
ground color: 0.6
sky angle: 1.309
sky angle: 1.571
sky color: 0
sky color: 0.2
sky color: 0.7
sky color: 0.5
sky color: 1

ExternProtoDeclareReferences
type: NamedIndividual
type: Group
has parent: Scene
has extern proto declare: ExternProtoDeclare 2 6 1
has extern proto declare: ExternProtoDeclare 2 6 2
has extern proto declare: ExternProtoDeclare 2 6 3
has extern proto declare: ExternProtoDeclare 2 6 4
has extern proto declare: ExternProtoDeclare 2 6 5
has extern proto declare: ExternProtoDeclare 2 6 6
DEF: ExternProtoDeclareReferences

ExternProtoDeclare 2 6 1
type: NamedIndividual
type: ExternProtoDeclare
has parent: ExternProtoDeclareReferences
has field: field 2 6 1 1
has field: field 2 6 1 2
has field: field 2 6 1 3
has field: field 2 6 1 4
has field: field 2 6 1 5
has field: field 2 6 1 6
has field: field 2 6 1 7
has field: field 2 6 1 8
has field: field 2 6 1 9
has field: field 2 6 1 10
has field: field 2 6 1 11
appinfo: Produce wireframe or transparent beam cylinders. Typical uses include propeller/thruster water flow or line-of-sight sonar/radar/light beams. Negative range values invert base and apex at same relative location. Default: beam with apex at (0 0 0) and base of radius 1 in x-z plane at (1 0 0).
name: BeamCylinder
url: "../../CommunicationsAndSensors/Beam/BeamCylinderPrototype.x3d#BeamCylinder" "https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/Beam/BeamCylinderPrototype.x3d#BeamCylinder" "../../CommunicationsAndSensors/Beam/BeamCylinderPrototype.wrl#BeamCylinder" "https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/Beam/BeamCylinderPrototype.wrl#BeamCylinder"

field 2 6 1 1
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 1
access type: initializeOnly
appinfo: Assigning a name to a BeamCylinder aids tracing
name: name
type: SFString

field 2 6 1 2
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 1
access type: inputOnly
appinfo: (communications) is transmitted signal in contact with receiver or (sensor) is a target return detected?
name: contact
type: SFBool

field 2 6 1 3
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 1
access type: inputOnly
appinfo: distance in meters along x axis
name: range
type: SFFloat

field 2 6 1 4
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 1
access type: initializeOnly
appinfo: distance in meters used until eventIn range sent
name: defaultRange
type: SFFloat

field 2 6 1 5
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 1
access type: initializeOnly
appinfo: whether wireframe beam is drawn
name: wireframe
type: SFBool

field 2 6 1 6
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 1
access type: initializeOnly
appinfo: whether solid beam is drawn
name: solid
type: SFBool

field 2 6 1 7
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 1
access type: initializeOnly
appinfo: meters across vertical y axis
name: beamHeight
type: SFFloat

field 2 6 1 8
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 1
access type: initializeOnly
appinfo: meters across horizontal z axis
name: beamWidth
type: SFFloat

field 2 6 1 9
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 1
access type: initializeOnly
appinfo: rendering color when contact=true
name: contactColor
type: SFColor

field 2 6 1 10
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 1
access type: initializeOnly
appinfo: rendering color when contact=false
name: noContactColor
type: SFColor

field 2 6 1 11
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 1
access type: inputOutput
appinfo: 1 = fully transparent wireframe only
name: transparency
type: SFFloat

ExternProtoDeclare 2 6 2
type: NamedIndividual
type: ExternProtoDeclare
has parent: ExternProtoDeclareReferences
has field: field 2 6 2 1
has field: field 2 6 2 2
has field: field 2 6 2 3
has field: field 2 6 2 4
has field: field 2 6 2 5
appinfo: CrossHair prototype provides a heads-up display (HUD) crosshair at the view center, which is useful for assessing NavigationInfo lookAt point
name: CrossHair
url: "../../../Savage/Tools/HeadsUpDisplays/CrossHairPrototype.x3d#CrossHair" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CrossHairPrototype.x3d#CrossHair" "../../../Savage/Tools/HeadsUpDisplays/CrossHairPrototype.wrl#CrossHair" "https://www.web3d.org/x3d/content/examples/Savage/Tools/HeadsUpDisplays/CrossHairPrototype.wrl#CrossHair"

field 2 6 2 1
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 2
access type: initializeOnly
appinfo: whether CrossHair prototype is enabled or not
name: enabled
type: SFBool

field 2 6 2 2
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 2
access type: inputOnly
appinfo: control whether enabled/disabled
name: set_enabled
type: SFBool

field 2 6 2 3
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 2
access type: inputOutput
appinfo: color of CrossHair marker
name: markerColor
type: SFColor

field 2 6 2 4
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 2
access type: inputOutput
appinfo: size of CrossHair in meters
name: scale
type: SFVec3f

field 2 6 2 5
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 2
access type: inputOutput
appinfo: distance in front of HUD viewpoint
name: positionOffsetFromCamera
type: SFVec3f

ExternProtoDeclare 2 6 3
type: NamedIndividual
type: ExternProtoDeclare
has parent: ExternProtoDeclareReferences
has field: field 2 6 3 1
has field: field 2 6 3 2
has field: field 2 6 3 3
has field: field 2 6 3 4
has field: field 2 6 3 5
has field: field 2 6 3 6
has field: field 2 6 3 7
has field: field 2 6 3 8
has field: field 2 6 3 9
has field: field 2 6 3 10
has field: field 2 6 3 11
has field: field 2 6 3 12
has field: field 2 6 3 13
has field: field 2 6 3 14
has field: field 2 6 3 15
has field: field 2 6 3 16
appinfo: AN/SSQ-62B/C/D/E Directional Command Activated Sonobuoy System (DICASS) Sonobuoy
name: DICASS
url: "DicassPrototype.x3d#DICASS" "https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/Sonobuoys/DicassPrototype.x3d#DICASS" "DicassPrototype.wrl#DICASS" "https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/Sonobuoys/DicassPrototype.wrl#DICASS"

field 2 6 3 1
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: inputOutput
appinfo: identifier label for this buoy
name: ID
type: MFString

field 2 6 3 2
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: initializeOnly
appinfo: default value: AN/SSQ-62B
name: version
type: SFString

field 2 6 3 3
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: initializeOnly
appinfo: local surface coordinates X=North Z=East
name: initialPositionXZ
type: SFVec2f

field 2 6 3 4
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: inputOnly
appinfo: local surface coordinates X=North Z=East
name: orderedPositionXZ
type: SFVec2f

field 2 6 3 5
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: initializeOnly
appinfo: meters depth use negative numbers for subsurface
name: initialDepth
type: SFFloat

field 2 6 3 6
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: inputOnly
appinfo: meters depth use negative numbers for subsurface
name: orderedDepth
type: SFFloat

field 2 6 3 7
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: inputOnly
appinfo: trigger event to bind/unbind viewpoint
name: bindViewpoint
type: SFBool

field 2 6 3 8
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: outputOnly
appinfo: local coordinates X=North Y=altitude Z=East
name: location_changed
type: SFVec3f

field 2 6 3 9
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: initializeOnly
appinfo: maximum audible sonar detection range meters
name: maxRange
type: SFFloat

field 2 6 3 10
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: outputOnly
appinfo: pingDuration corresponds to maxRange at 1500m/sec sound speed
name: pingDuration
type: SFTime

field 2 6 3 11
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: inputOnly
appinfo: trigger event to start single ping
name: startPing
type: SFBool

field 2 6 3 12
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: inputOnly
appinfo: trigger event to start continuous ping sequence
name: startContinuousPings
type: SFBool

field 2 6 3 13
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: inputOutput
appinfo: Can add linkable text for further information
name: linkText
type: MFString

field 2 6 3 14
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: inputOutput
appinfo: url for linkable text
name: linkUrl
type: MFString

field 2 6 3 15
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: inputOutput
appinfo: target window for linkable text
name: linkTargetWindow
type: MFString

field 2 6 3 16
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 3
access type: initializeOnly
appinfo: in-water sound speed m/s, default value 1500
documentation: https://en.wikipedia.org/wiki/Speed_of_sound#Seawater
name: soundSpeed
type: SFFloat

ExternProtoDeclare 2 6 4
type: NamedIndividual
type: ExternProtoDeclare
has parent: ExternProtoDeclareReferences
has field: field 2 6 4 1
has field: field 2 6 4 2
has field: field 2 6 4 3
has field: field 2 6 4 4
has field: field 2 6 4 5
has field: field 2 6 4 6
has field: field 2 6 4 7
has field: field 2 6 4 8
has field: field 2 6 4 9
has field: field 2 6 4 10
has field: field 2 6 4 11
has field: field 2 6 4 12
has field: field 2 6 4 13
appinfo: Line grid authoring tool to enable precise measurement of objects in 3D space - fixed position. Oriented along XZ plane size 20m by 20m.
name: GridXZ
url: "../../../Savage/Tools/Authoring/GridXZPrototype.x3d#GridXZ" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/GridXZPrototype.x3d#GridXZ" "../../../Savage/Tools/Authoring/GridXZPrototype.wrl#GridXZ" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/GridXZPrototype.wrl#GridXZ"

field 2 6 4 1
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 4
access type: initializeOnly
appinfo: Purpose of this grid displayed for overall Viewpoint
name: description
type: SFString

field 2 6 4 2
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 4
access type: inputOutput
appinfo: color for descriptive labels at grid edges and corners
name: labelColor
type: SFColor

field 2 6 4 3
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 4
access type: inputOutput
appinfo: default unscaled size: 10m by 10m
name: scale
type: SFVec3f

field 2 6 4 4
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 4
access type: inputOutput
name: originLabel
type: MFString

field 2 6 4 5
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 4
access type: inputOutput
appinfo: -X axis
name: WestLabel
type: MFString

field 2 6 4 6
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 4
access type: inputOutput
name: NorthWestLabel
type: MFString

field 2 6 4 7
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 4
access type: inputOutput
appinfo: -Z axis
name: NorthLabel
type: MFString

field 2 6 4 8
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 4
access type: inputOutput
name: NorthEastLabel
type: MFString

field 2 6 4 9
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 4
access type: inputOutput
appinfo: +X axis
name: EastLabel
type: MFString

field 2 6 4 10
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 4
access type: inputOutput
name: SouthEastLabel
type: MFString

field 2 6 4 11
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 4
access type: inputOutput
appinfo: +Z axis
name: SouthLabel
type: MFString

field 2 6 4 12
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 4
access type: inputOutput
name: SouthWestLabel
type: MFString

field 2 6 4 13
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 4
access type: inputOutput
appinfo: label location offset (in meters) to improve readability
name: labelsOffset
type: SFVec3f

ExternProtoDeclare 2 6 5
type: NamedIndividual
type: ExternProtoDeclare
has parent: ExternProtoDeclareReferences
has field: field 2 6 5 1
has field: field 2 6 5 2
has field: field 2 6 5 3
has field: field 2 6 5 4
has field: field 2 6 5 5
has field: field 2 6 5 6
appinfo: ViewPositionOrientation provides provides console output of local position and orientation as user navigates
name: ViewPositionOrientation
url: "../../Tools/Authoring/ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "../../Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation"

field 2 6 5 1
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 5
access type: inputOutput
appinfo: Whether or not ViewPositionOrientation sends output to console
name: enabled
type: SFBool

field 2 6 5 2
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 5
access type: initializeOnly
appinfo: Output internal trace messages for debugging this node, intended for developer use only
name: traceEnabled
type: SFBool

field 2 6 5 3
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 5
access type: inputOnly
appinfo: Ability to turn output tracing on/off at runtime
name: set_traceEnabled
type: SFBool

field 2 6 5 4
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 5
access type: outputOnly
appinfo: Output local position
name: position_changed
type: SFVec3f

field 2 6 5 5
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 5
access type: outputOnly
appinfo: Output local orientation
name: orientation_changed
type: SFRotation

field 2 6 5 6
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 5
access type: outputOnly
appinfo: MFString value of new Viewpoint
name: outputViewpointString
type: MFString

ExternProtoDeclare 2 6 6
type: NamedIndividual
type: ExternProtoDeclare
has parent: ExternProtoDeclareReferences
has field: field 2 6 6 1
has field: field 2 6 6 2
has field: field 2 6 6 3
has field: field 2 6 6 4
has field: field 2 6 6 5
has field: field 2 6 6 6
has field: field 2 6 6 7
has field: field 2 6 6 8
has field: field 2 6 6 9
has field: field 2 6 6 10
has field: field 2 6 6 11
has field: field 2 6 6 12
has field: field 2 6 6 13
has field: field 2 6 6 14
has field: field 2 6 6 15
has field: field 2 6 6 16
has field: field 2 6 6 17
has field: field 2 6 6 18
has field: field 2 6 6 19
has field: field 2 6 6 20
has field: field 2 6 6 21
has field: field 2 6 6 22
has field: field 2 6 6 23
has field: field 2 6 6 24
has field: field 2 6 6 25
appinfo: Reads waypoints and legSpeeds/legDurations/defaultSpeed to provide a customizable position/orientation interpolator.
name: WaypointInterpolator
url: "../../../Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator" "../../../Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator"

field 2 6 6 1
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: initializeOnly
appinfo: Short description of what is animated by this WaypointInterpolator.
name: description
type: SFString

field 2 6 6 2
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: initializeOnly
appinfo: Waypoints being traversed with interpolation of intermediate positions and orientations.
name: waypoints
type: MFVec3f

field 2 6 6 3
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: inputOnly
appinfo: Add another single waypoint to array of waypoints recalculate interpolator values.
name: add_waypoint
type: SFVec3f

field 2 6 6 4
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: inputOnly
appinfo: Replace all waypoints recalculate interpolator values.
name: set_waypoints
type: MFVec3f

field 2 6 6 5
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: initializeOnly
appinfo: Whether to pitch child geometry (such as a vehicle) up or down to match vertical slope
name: pitchUpDownForVerticalWaypoints
type: SFBool

field 2 6 6 6
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: initializeOnly
appinfo: Units m/sec. If used, array lengths for legSpeeds and legDurations must be one less than number of waypoints.
name: legSpeeds
type: MFFloat

field 2 6 6 7
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: initializeOnly
appinfo: Units in seconds. If used, array lengths for legSpeeds and legDurations must be one less than number of waypoints.
name: legDurations
type: MFTime

field 2 6 6 8
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: initializeOnly
appinfo: Units m/sec.
name: defaultSpeed
type: SFFloat

field 2 6 6 9
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: initializeOnly
appinfo: turningRate (degrees/second) also determines standoff distance prior to waypoint where turn commences. If 0 turns are instantaneous.
name: turningRate
type: SFFloat

field 2 6 6 10
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: outputOnly
appinfo: Output calculation summing all leg durations, useful for setting TimeSensor cycleInterval. Units in seconds.
name: totalDuration
type: SFTime

field 2 6 6 11
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: inputOnly
appinfo: exposed PositionInterpolator and OrientationInterpolator setting
name: set_fraction
type: SFFloat

field 2 6 6 12
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: outputOnly
appinfo: exposed PositionInterpolator setting
name: position_changed
type: SFVec3f

field 2 6 6 13
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: outputOnly
appinfo: exposed OrientationInterpolator setting
name: orientation_changed
type: SFRotation

field 2 6 6 14
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: inputOutput
appinfo: default color for non-active line segments
name: lineColor
type: SFColor

field 2 6 6 15
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: inputOutput
appinfo: active segment highlight color
name: highlightSegmentColor
type: SFColor

field 2 6 6 16
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: inputOutput
appinfo: 1.0 is completely transparent, 0.0 is completely opaque.
name: transparency
type: SFFloat

field 2 6 6 17
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: initializeOnly
appinfo: allowed values: none; waypoints (produce labels at each waypoint); or interpolation (produce single moving label at interpolator time course speed location)
name: labelDisplayMode
type: SFString

field 2 6 6 18
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: initializeOnly
appinfo: allowed values: altitude depth (negate Y value) none
name: heightLabel
type: SFString

field 2 6 6 19
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: initializeOnly
appinfo: heightLabel relative location
name: labelOffset
type: SFVec3f

field 2 6 6 20
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: initializeOnly
appinfo: heightLabel text size
name: labelFontSize
type: SFFloat

field 2 6 6 21
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: initializeOnly
appinfo: heightLabel text color
name: labelColor
type: SFColor

field 2 6 6 22
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: initializeOnly
appinfo: enable console output to trace script computations and prototype progress
name: traceEnabled
type: SFBool

field 2 6 6 23
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: initializeOnly
appinfo: Output the number of waypoints totalDistance and totalDuration to console upon initialization
name: outputInitializationComputations
type: SFBool

field 2 6 6 24
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: inputOutput
appinfo: default color for vertical drop-line segments
name: verticalDropLineColor
type: SFColor

field 2 6 6 25
type: NamedIndividual
type: field
has parent: ExternProtoDeclare 2 6 6
access type: inputOutput
appinfo: 1.0 is completely transparent, 0.0 is completely opaque.
name: verticalDropLineTransparency
type: SFFloat

ProtoInstance 2 7
type: NamedIndividual
type: ProtoInstance
has parent: Scene
has field value: fieldValue 2 7 1
has field value: fieldValue 2 7 2
has field value: fieldValue 2 7 3
has field value: fieldValue 2 7 4
has field value: fieldValue 2 7 5
has field value: fieldValue 2 7 6
has field value: fieldValue 2 7 7
has field value: fieldValue 2 7 8
has field value: fieldValue 2 7 9
has field value: fieldValue 2 7 10
has field value: fieldValue 2 7 11
has field value: fieldValue 2 7 12
name: GridXZ

fieldValue 2 7 1
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 7
name: description
value: Sonobuoy Field Scenario

fieldValue 2 7 2
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 7
name: labelColor
value: 0.8
value: 1

fieldValue 2 7 3
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 7
name: scale
value: 1000

fieldValue 2 7 4
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 7
name: originLabel
value: "origin"

fieldValue 2 7 5
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 7
name: WestLabel
value: "West" "-Z"

fieldValue 2 7 6
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 7
name: NorthWestLabel
value: "10000 0 -10000"

fieldValue 2 7 7
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 7
name: NorthLabel
value: "North" "+X"

fieldValue 2 7 8
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 7
name: NorthEastLabel
value: "10000 0 10000"

fieldValue 2 7 9
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 7
name: EastLabel
value: "East" "+Z"

fieldValue 2 7 10
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 7
name: SouthEastLabel
value: "-10000 0 10000"

fieldValue 2 7 11
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 7
name: SouthLabel
value: "South" "-X"

fieldValue 2 7 12
type: NamedIndividual
type: fieldValue
has parent: ProtoInstance 2 7
name: SouthWestLabel
value: "-10000 0 -10000"

AuthoringAssist
type: NamedIndividual
type: Switch
has parent: Scene
has children: Group 2 8 1
has children: Grid10kmBy10km
DEF: AuthoringAssist
which choice: 0

Transform 2 8 1 1
type: NamedIndividual
type: Transform
has parent: Group 2 8 1
has children: CoordinateAxes
scale: 10

CoordinateAxes
type: NamedIndividual
type: Inline
has parent: Transform 2 8 1 1
DEF: CoordinateAxes
url: "../../../Savage/Tools/Authoring/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/CoordinateAxes.x3d" "../../../Savage/Tools/Authoring/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/CoordinateAxes.wrl"

ConsoleOutputViewPositionOrientation
type: NamedIndividual
type: ProtoInstance
has parent: Group 2 8 1
has field value: fieldValue 2 8 1 2 1
DEF: ConsoleOutputViewPositionOrientation
name: ViewPositionOrientation

fieldValue 2 8 1 2 1
type: NamedIndividual
type: fieldValue
has parent: ConsoleOutputViewPositionOrientation
name: enabled
value: false

CrossHairInstance
type: NamedIndividual
type: ProtoInstance
has parent: Group 2 8 1
has field value: fieldValue 2 8 1 3 1
has field value: fieldValue 2 8 1 3 2
has field value: fieldValue 2 8 1 3 3
has field value: fieldValue 2 8 1 3 4
DEF: CrossHairInstance
name: CrossHair

fieldValue 2 8 1 3 1
type: NamedIndividual
type: fieldValue
has parent: CrossHairInstance
name: enabled
value: true

fieldValue 2 8 1 3 2
type: NamedIndividual
type: fieldValue
has parent: CrossHairInstance
name: markerColor
value: 1
value: 0.5
value: 0

fieldValue 2 8 1 3 3
type: NamedIndividual
type: fieldValue
has parent: CrossHairInstance
name: scale
value: 1

fieldValue 2 8 1 3 4
type: NamedIndividual
type: fieldValue
has parent: CrossHairInstance
name: positionOffsetFromCamera
value: 0
value: -6

Grid10kmBy10km
type: NamedIndividual
type: Transform
has parent: AuthoringAssist
has children: Inline 2 8 2 1
DEF: Grid10kmBy10km
scale: 1000

Inline 2 8 2 1
type: NamedIndividual
type: Inline
has parent: Grid10kmBy10km
url: "../../../Savage/Tools/Authoring/GridXZ_20x20Fixed.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/GridXZ_20x20Fixed.x3d" "../../../Savage/Tools/Authoring/GridXZ_20x20Fixed.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/GridXZ_20x20Fixed.wrl"

HelicopterGroup
type: NamedIndividual
type: Group
has parent: Scene
has children: SeahawkHelicopterTransform
has children: HelicopterOrbitClock
has children: HelicopterOrbitTrack
has ROUTE: ROUTE 2 9 4
has ROUTE: ROUTE 2 9 5
has ROUTE: ROUTE 2 9 6
has ROUTE: ROUTE 2 9 7
DEF: HelicopterGroup

SeahawkHelicopterTransform
type: NamedIndividual
type: Transform
has parent: HelicopterGroup
has children: Inline 2 9 1 1
DEF: SeahawkHelicopterTransform

Inline 2 9 1 1
type: NamedIndividual
type: Inline
has parent: SeahawkHelicopterTransform
url: "../../AircraftHelicopters/SH60SeahawkUnitedStates/SH60Seahawk.x3d" "https://www.web3d.org/x3d/content/examples/Savage/AircraftHelicopters/SH60SeahawkUnitedStates/SH60Seahawk.x3d" "../../AircraftHelicopters/SH60SeahawkUnitedStates/SH60Seahawk.wrl" "https://www.web3d.org/x3d/content/examples/Savage/AircraftHelicopters/SH60SeahawkUnitedStates/SH60Seahawk.wrl"

HelicopterOrbitClock
type: NamedIndividual
type: TimeSensor
has parent: HelicopterGroup
DEF: HelicopterOrbitClock
cycle interval: 211.7
loop: true

HelicopterOrbitTrack
type: NamedIndividual
type: ProtoInstance
has parent: HelicopterGroup
has field value: fieldValue 2 9 3 1
has field value: fieldValue 2 9 3 2
has field value: fieldValue 2 9 3 3
has field value: fieldValue 2 9 3 4
has field value: fieldValue 2 9 3 5
has field value: fieldValue 2 9 3 6
has field value: fieldValue 2 9 3 7
has field value: fieldValue 2 9 3 8
has field value: fieldValue 2 9 3 9
has field value: fieldValue 2 9 3 10
has field value: fieldValue 2 9 3 11
has field value: fieldValue 2 9 3 12
has field value: fieldValue 2 9 3 13
has field value: fieldValue 2 9 3 14
DEF: HelicopterOrbitTrack
name: WaypointInterpolator

fieldValue 2 9 3 1
type: NamedIndividual
type: fieldValue
has parent: HelicopterOrbitTrack
name: description
value: SH-60B Seahawk orbit

fieldValue 2 9 3 2
type: NamedIndividual
type: fieldValue
has parent: HelicopterOrbitTrack
name: waypoints
value: 0
value: 100
value: -1000
value: 1000
value: 500
value: 5000
value: 6000

fieldValue 2 9 3 3
type: NamedIndividual
type: fieldValue
has parent: HelicopterOrbitTrack
name: pitchUpDownForVerticalWaypoints
value: false

fieldValue 2 9 3 4
type: NamedIndividual
type: fieldValue
has parent: HelicopterOrbitTrack
name: defaultSpeed
value: 50

fieldValue 2 9 3 5
type: NamedIndividual
type: fieldValue
has parent: HelicopterOrbitTrack
name: turningRate
value: 5

fieldValue 2 9 3 6
type: NamedIndividual
type: fieldValue
has parent: HelicopterOrbitTrack
name: lineColor
value: 0.5
value: 0

fieldValue 2 9 3 7
type: NamedIndividual
type: fieldValue
has parent: HelicopterOrbitTrack
name: highlightSegmentColor
value: 1
value: 0

fieldValue 2 9 3 8
type: NamedIndividual
type: fieldValue
has parent: HelicopterOrbitTrack
name: transparency
value: 0

fieldValue 2 9 3 9
type: NamedIndividual
type: fieldValue
has parent: HelicopterOrbitTrack
name: labelDisplayMode
value: interpolation

fieldValue 2 9 3 10
type: NamedIndividual
type: fieldValue
has parent: HelicopterOrbitTrack
name: heightLabel
value: altitude

fieldValue 2 9 3 11
type: NamedIndividual
type: fieldValue
has parent: HelicopterOrbitTrack
name: labelOffset
value: 0
value: 3

fieldValue 2 9 3 12
type: NamedIndividual
type: fieldValue
has parent: HelicopterOrbitTrack
name: labelFontSize
value: 0.8

fieldValue 2 9 3 13
type: NamedIndividual
type: fieldValue
has parent: HelicopterOrbitTrack
name: labelColor
value: 1
value: 0

fieldValue 2 9 3 14
type: NamedIndividual
type: fieldValue
has parent: HelicopterOrbitTrack
name: traceEnabled
value: false

ROUTE 2 9 4
type: NamedIndividual
type: ROUTE
has parent: HelicopterGroup
from field: totalDuration
from node: HelicopterOrbitTrack
to field: set_cycleInterval
to node: HelicopterOrbitClock

ROUTE 2 9 5
type: NamedIndividual
type: ROUTE
has parent: HelicopterGroup
from field: fraction_changed
from node: HelicopterOrbitClock
to field: set_fraction
to node: HelicopterOrbitTrack

ROUTE 2 9 6
type: NamedIndividual
type: ROUTE
has parent: HelicopterGroup
from field: position_changed
from node: HelicopterOrbitTrack
to field: set_translation
to node: SeahawkHelicopterTransform

ROUTE 2 9 7
type: NamedIndividual
type: ROUTE
has parent: HelicopterGroup
from field: orientation_changed
from node: HelicopterOrbitTrack
to field: set_rotation
to node: SeahawkHelicopterTransform

SonobuoyFieldLayout
type: NamedIndividual
type: Group
has parent: Scene
has children: LocationBuoy1-1
has children: LocationBuoy1-2
has children: LocationBuoy1-3
has children: LocationBuoy1-4
has children: LocationBuoy2-1
has children: LocationBuoy2-2
has children: LocationBuoy2-3
has children: LocationBuoy2-4
has children: LocationBuoy3-1
has children: LocationBuoy3-2
has children: LocationBuoy3-3
has children: LocationBuoy3-4
has children: LocationBuoy4-1
has children: LocationBuoy4-2
has children: LocationBuoy4-3
has children: LocationBuoy4-4
DEF: SonobuoyFieldLayout

LocationBuoy1-1
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-1-1
DEF: LocationBuoy1-1

DICASS-1-1
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy1-1
has field value: fieldValue 2 10 1 1 1
has field value: fieldValue 2 10 1 1 2
has field value: fieldValue 2 10 1 1 3
has field value: fieldValue 2 10 1 1 4
DEF: DICASS-1-1
name: DICASS

fieldValue 2 10 1 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-1
name: ID
value: "DICASS 1.1"

fieldValue 2 10 1 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-1
name: initialPositionXZ
value: 1000

fieldValue 2 10 1 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-1
name: initialDepth
value: -100

fieldValue 2 10 1 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-1
name: maxRange
value: 1000

LocationBuoy1-2
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-1-2
DEF: LocationBuoy1-2

DICASS-1-2
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy1-2
has field value: fieldValue 2 10 2 1 1
has field value: fieldValue 2 10 2 1 2
has field value: fieldValue 2 10 2 1 3
has field value: fieldValue 2 10 2 1 4
DEF: DICASS-1-2
name: DICASS

fieldValue 2 10 2 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-2
name: ID
value: "DICASS 1.2"

fieldValue 2 10 2 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-2
name: initialPositionXZ
value: 1000
value: 2000

fieldValue 2 10 2 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-2
name: initialDepth
value: -100

fieldValue 2 10 2 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-2
name: maxRange
value: 1000

LocationBuoy1-3
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-1-3
DEF: LocationBuoy1-3

DICASS-1-3
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy1-3
has field value: fieldValue 2 10 3 1 1
has field value: fieldValue 2 10 3 1 2
has field value: fieldValue 2 10 3 1 3
has field value: fieldValue 2 10 3 1 4
DEF: DICASS-1-3
name: DICASS

fieldValue 2 10 3 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-3
name: ID
value: "DICASS 1.3"

fieldValue 2 10 3 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-3
name: initialPositionXZ
value: 1000
value: 3000

fieldValue 2 10 3 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-3
name: initialDepth
value: -100

fieldValue 2 10 3 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-3
name: maxRange
value: 1000

LocationBuoy1-4
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-1-4
DEF: LocationBuoy1-4

DICASS-1-4
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy1-4
has field value: fieldValue 2 10 4 1 1
has field value: fieldValue 2 10 4 1 2
has field value: fieldValue 2 10 4 1 3
has field value: fieldValue 2 10 4 1 4
DEF: DICASS-1-4
name: DICASS

fieldValue 2 10 4 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-4
name: ID
value: "DICASS 1.4"

fieldValue 2 10 4 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-4
name: initialPositionXZ
value: 1000
value: 4000

fieldValue 2 10 4 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-4
name: initialDepth
value: -100

fieldValue 2 10 4 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-1-4
name: maxRange
value: 1000

LocationBuoy2-1
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-2-1
DEF: LocationBuoy2-1

DICASS-2-1
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy2-1
has field value: fieldValue 2 10 5 1 1
has field value: fieldValue 2 10 5 1 2
has field value: fieldValue 2 10 5 1 3
has field value: fieldValue 2 10 5 1 4
DEF: DICASS-2-1
name: DICASS

fieldValue 2 10 5 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-1
name: ID
value: "DICASS 2.1"

fieldValue 2 10 5 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-1
name: initialPositionXZ
value: 2000
value: 1000

fieldValue 2 10 5 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-1
name: initialDepth
value: -100

fieldValue 2 10 5 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-1
name: maxRange
value: 1000

LocationBuoy2-2
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-2-2
DEF: LocationBuoy2-2

DICASS-2-2
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy2-2
has field value: fieldValue 2 10 6 1 1
has field value: fieldValue 2 10 6 1 2
has field value: fieldValue 2 10 6 1 3
has field value: fieldValue 2 10 6 1 4
DEF: DICASS-2-2
name: DICASS

fieldValue 2 10 6 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-2
name: ID
value: "DICASS 2.2"

fieldValue 2 10 6 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-2
name: initialPositionXZ
value: 2000

fieldValue 2 10 6 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-2
name: initialDepth
value: -100

fieldValue 2 10 6 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-2
name: maxRange
value: 1000

LocationBuoy2-3
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-2-3
DEF: LocationBuoy2-3

DICASS-2-3
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy2-3
has field value: fieldValue 2 10 7 1 1
has field value: fieldValue 2 10 7 1 2
has field value: fieldValue 2 10 7 1 3
has field value: fieldValue 2 10 7 1 4
DEF: DICASS-2-3
name: DICASS

fieldValue 2 10 7 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-3
name: ID
value: "DICASS 2.3"

fieldValue 2 10 7 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-3
name: initialPositionXZ
value: 2000
value: 3000

fieldValue 2 10 7 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-3
name: initialDepth
value: -100

fieldValue 2 10 7 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-3
name: maxRange
value: 1000

LocationBuoy2-4
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-2-4
DEF: LocationBuoy2-4

DICASS-2-4
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy2-4
has field value: fieldValue 2 10 8 1 1
has field value: fieldValue 2 10 8 1 2
has field value: fieldValue 2 10 8 1 3
has field value: fieldValue 2 10 8 1 4
DEF: DICASS-2-4
name: DICASS

fieldValue 2 10 8 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-4
name: ID
value: "DICASS 2.4"

fieldValue 2 10 8 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-4
name: initialPositionXZ
value: 2000
value: 4000

fieldValue 2 10 8 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-4
name: initialDepth
value: -100

fieldValue 2 10 8 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-2-4
name: maxRange
value: 1000

LocationBuoy3-1
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-3-1
DEF: LocationBuoy3-1

DICASS-3-1
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy3-1
has field value: fieldValue 2 10 9 1 1
has field value: fieldValue 2 10 9 1 2
has field value: fieldValue 2 10 9 1 3
has field value: fieldValue 2 10 9 1 4
DEF: DICASS-3-1
name: DICASS

fieldValue 2 10 9 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-1
name: ID
value: "DICASS 3.1"

fieldValue 2 10 9 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-1
name: initialPositionXZ
value: 3000
value: 1000

fieldValue 2 10 9 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-1
name: initialDepth
value: -100

fieldValue 2 10 9 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-1
name: maxRange
value: 1000

LocationBuoy3-2
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-3-2
DEF: LocationBuoy3-2

DICASS-3-2
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy3-2
has field value: fieldValue 2 10 10 1 1
has field value: fieldValue 2 10 10 1 2
has field value: fieldValue 2 10 10 1 3
has field value: fieldValue 2 10 10 1 4
DEF: DICASS-3-2
name: DICASS

fieldValue 2 10 10 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-2
name: ID
value: "DICASS 3.2"

fieldValue 2 10 10 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-2
name: initialPositionXZ
value: 3000
value: 2000

fieldValue 2 10 10 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-2
name: initialDepth
value: -100

fieldValue 2 10 10 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-2
name: maxRange
value: 1000

LocationBuoy3-3
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-3-3
DEF: LocationBuoy3-3

DICASS-3-3
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy3-3
has field value: fieldValue 2 10 11 1 1
has field value: fieldValue 2 10 11 1 2
has field value: fieldValue 2 10 11 1 3
has field value: fieldValue 2 10 11 1 4
DEF: DICASS-3-3
name: DICASS

fieldValue 2 10 11 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-3
name: ID
value: "DICASS 3.3"

fieldValue 2 10 11 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-3
name: initialPositionXZ
value: 3000

fieldValue 2 10 11 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-3
name: initialDepth
value: -100

fieldValue 2 10 11 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-3
name: maxRange
value: 1000

LocationBuoy3-4
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-3-4
DEF: LocationBuoy3-4

DICASS-3-4
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy3-4
has field value: fieldValue 2 10 12 1 1
has field value: fieldValue 2 10 12 1 2
has field value: fieldValue 2 10 12 1 3
has field value: fieldValue 2 10 12 1 4
DEF: DICASS-3-4
name: DICASS

fieldValue 2 10 12 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-4
name: ID
value: "DICASS 3.4"

fieldValue 2 10 12 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-4
name: initialPositionXZ
value: 3000
value: 4000

fieldValue 2 10 12 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-4
name: initialDepth
value: -100

fieldValue 2 10 12 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-3-4
name: maxRange
value: 1000

LocationBuoy4-1
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-4-1
DEF: LocationBuoy4-1

DICASS-4-1
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy4-1
has field value: fieldValue 2 10 13 1 1
has field value: fieldValue 2 10 13 1 2
has field value: fieldValue 2 10 13 1 3
has field value: fieldValue 2 10 13 1 4
DEF: DICASS-4-1
name: DICASS

fieldValue 2 10 13 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-1
name: ID
value: "DICASS 4.1"

fieldValue 2 10 13 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-1
name: initialPositionXZ
value: 4000
value: 1000

fieldValue 2 10 13 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-1
name: initialDepth
value: -100

fieldValue 2 10 13 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-1
name: maxRange
value: 1000

LocationBuoy4-2
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-4-2
DEF: LocationBuoy4-2

DICASS-4-2
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy4-2
has field value: fieldValue 2 10 14 1 1
has field value: fieldValue 2 10 14 1 2
has field value: fieldValue 2 10 14 1 3
has field value: fieldValue 2 10 14 1 4
DEF: DICASS-4-2
name: DICASS

fieldValue 2 10 14 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-2
name: ID
value: "DICASS 4.2"

fieldValue 2 10 14 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-2
name: initialPositionXZ
value: 4000
value: 2000

fieldValue 2 10 14 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-2
name: initialDepth
value: -100

fieldValue 2 10 14 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-2
name: maxRange
value: 1000

LocationBuoy4-3
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-4-3
DEF: LocationBuoy4-3

DICASS-4-3
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy4-3
has field value: fieldValue 2 10 15 1 1
has field value: fieldValue 2 10 15 1 2
has field value: fieldValue 2 10 15 1 3
has field value: fieldValue 2 10 15 1 4
DEF: DICASS-4-3
name: DICASS

fieldValue 2 10 15 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-3
name: ID
value: "DICASS 4.3"

fieldValue 2 10 15 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-3
name: initialPositionXZ
value: 4000
value: 3000

fieldValue 2 10 15 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-3
name: initialDepth
value: -100

fieldValue 2 10 15 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-3
name: maxRange
value: 1000

LocationBuoy4-4
type: NamedIndividual
type: Transform
has parent: SonobuoyFieldLayout
has children: DICASS-4-4
DEF: LocationBuoy4-4

DICASS-4-4
type: NamedIndividual
type: ProtoInstance
has parent: LocationBuoy4-4
has field value: fieldValue 2 10 16 1 1
has field value: fieldValue 2 10 16 1 2
has field value: fieldValue 2 10 16 1 3
has field value: fieldValue 2 10 16 1 4
DEF: DICASS-4-4
name: DICASS

fieldValue 2 10 16 1 1
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-4
name: ID
value: "DICASS 4.4"

fieldValue 2 10 16 1 2
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-4
name: initialPositionXZ
value: 4000

fieldValue 2 10 16 1 3
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-4
name: initialDepth
value: -100

fieldValue 2 10 16 1 4
type: NamedIndividual
type: fieldValue
has parent: DICASS-4-4
name: maxRange
value: 1000

SonobuoyCommunications
type: NamedIndividual
type: Group
has parent: Scene
has children: SonobuoyFieldScenarioScript
has children: PingBuoySequenceClock
has children: RadioBeamOrientation
has ROUTE: ROUTE 2 11 3
DEF: SonobuoyCommunications

SonobuoyFieldScenarioScript
type: NamedIndividual
type: Script
has parent: SonobuoyCommunications
has field: field 2 11 1 1
has field: field 2 11 1 2
has field: field 2 11 1 3
has field: field 2 11 1 4
has field: field 2 11 1 5
has field: field 2 11 1 6
has field: field 2 11 1 7
has field: field 2 11 1 8
has field: field 2 11 1 9
has field: field 2 11 1 10
has field: field 2 11 1 11
DEF: SonobuoyFieldScenarioScript
direct output: true
url: "SonobuoyFieldScenarioScript.js" "https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/Sonobuoys/SonobuoyFieldScenarioScript.js"

field 2 11 1 1
type: NamedIndividual
type: field
has parent: SonobuoyFieldScenarioScript
has children: HelicopterOrbitTrack-USE-1
access type: initializeOnly
name: HelicopterWaypointInterpolator
type: SFNode

field 2 11 1 2
type: NamedIndividual
type: field
has parent: SonobuoyFieldScenarioScript
has children: DICASS-1-1-USE-1
has children: DICASS-1-2-USE-1
has children: DICASS-1-3-USE-1
has children: DICASS-1-4-USE-1
has children: DICASS-2-1-USE-1
has children: DICASS-2-2-USE-1
has children: DICASS-2-3-USE-1
has children: DICASS-2-4-USE-1
has children: DICASS-3-1-USE-1
has children: DICASS-3-2-USE-1
has children: DICASS-3-3-USE-1
has children: DICASS-3-4-USE-1
has children: DICASS-4-1-USE-1
has children: DICASS-4-2-USE-1
has children: DICASS-4-3-USE-1
has children: DICASS-4-4-USE-1
access type: initializeOnly
name: BuoyArray
type: MFNode

field 2 11 1 3
type: NamedIndividual
type: field
has parent: SonobuoyFieldScenarioScript
access type: inputOnly
name: timeNextBouyPing
type: SFTime

field 2 11 1 4
type: NamedIndividual
type: field
has parent: SonobuoyFieldScenarioScript
access type: outputOnly
name: activeBuoyLocation
type: SFVec3f

field 2 11 1 5
type: NamedIndividual
type: field
has parent: SonobuoyFieldScenarioScript
access type: outputOnly
name: buoyRange
type: SFFloat

field 2 11 1 6
type: NamedIndividual
type: field
has parent: SonobuoyFieldScenarioScript
access type: outputOnly
name: keyValueRadioCommandInterpolator
type: MFFloat

field 2 11 1 7
type: NamedIndividual
type: field
has parent: SonobuoyFieldScenarioScript
access type: outputOnly
name: beamRotation
type: SFRotation

field 2 11 1 8
type: NamedIndividual
type: field
has parent: SonobuoyFieldScenarioScript
access type: outputOnly
name: sendCommand
type: SFTime

field 2 11 1 9
type: NamedIndividual
type: field
has parent: SonobuoyFieldScenarioScript
access type: initializeOnly
name: currentBuoyNumber
type: SFInt32
value: -1

field 2 11 1 10
type: NamedIndividual
type: field
has parent: SonobuoyFieldScenarioScript
access type: initializeOnly
name: ID
type: MFString

field 2 11 1 11
type: NamedIndividual
type: field
has parent: SonobuoyFieldScenarioScript
access type: initializeOnly
name: TRACE
type: SFBool
value: true

PingBuoySequenceClock
type: NamedIndividual
type: TimeSensor
has parent: SonobuoyCommunications
DEF: PingBuoySequenceClock
cycle interval: 5
loop: true

ROUTE 2 11 3
type: NamedIndividual
type: ROUTE
has parent: SonobuoyCommunications
from field: cycleTime
from node: PingBuoySequenceClock
to field: timeNextBouyPing
to node: SonobuoyFieldScenarioScript

RadioBeamOrientation
type: NamedIndividual
type: Transform
has parent: SonobuoyCommunications
has ROUTE: ROUTE 2 11 4 1
has ROUTE: ROUTE 2 11 4 2
has ROUTE: ROUTE 2 11 4 5
has ROUTE: ROUTE 2 11 4 7
has ROUTE: ROUTE 2 11 4 8
has ROUTE: ROUTE 2 11 4 9
has ROUTE: ROUTE 2 11 4 11
has ROUTE: ROUTE 2 11 4 12
has children: HeloToSonobuoyCommunication
has children: RadioCommandTimer
has children: RadioBeamInterpolator
has children: RadioContactSequencer
DEF: RadioBeamOrientation

ROUTE 2 11 4 1
type: NamedIndividual
type: ROUTE
has parent: RadioBeamOrientation
from field: position_changed
from node: HelicopterOrbitTrack
to field: set_translation
to node: RadioBeamOrientation

ROUTE 2 11 4 2
type: NamedIndividual
type: ROUTE
has parent: RadioBeamOrientation
from field: beamRotation
from node: SonobuoyFieldScenarioScript
to field: set_rotation
to node: RadioBeamOrientation

HeloToSonobuoyCommunication
type: NamedIndividual
type: ProtoInstance
has parent: RadioBeamOrientation
has field value: fieldValue 2 11 4 3 1
has field value: fieldValue 2 11 4 3 2
has field value: fieldValue 2 11 4 3 3
has field value: fieldValue 2 11 4 3 4
has field value: fieldValue 2 11 4 3 5
has field value: fieldValue 2 11 4 3 6
has field value: fieldValue 2 11 4 3 7
has field value: fieldValue 2 11 4 3 8
has field value: fieldValue 2 11 4 3 9
DEF: HeloToSonobuoyCommunication
name: BeamCylinder

fieldValue 2 11 4 3 1
type: NamedIndividual
type: fieldValue
has parent: HeloToSonobuoyCommunication
name: name
value: HeloToBuoyComms

fieldValue 2 11 4 3 2
type: NamedIndividual
type: fieldValue
has parent: HeloToSonobuoyCommunication
name: defaultRange
value: 0.001

fieldValue 2 11 4 3 3
type: NamedIndividual
type: fieldValue
has parent: HeloToSonobuoyCommunication
name: beamHeight
value: 0.25

fieldValue 2 11 4 3 4
type: NamedIndividual
type: fieldValue
has parent: HeloToSonobuoyCommunication
name: beamWidth
value: 0.25

fieldValue 2 11 4 3 5
type: NamedIndividual
type: fieldValue
has parent: HeloToSonobuoyCommunication
name: transparency
value: 0.5

fieldValue 2 11 4 3 6
type: NamedIndividual
type: fieldValue
has parent: HeloToSonobuoyCommunication
name: wireframe
value: true

fieldValue 2 11 4 3 7
type: NamedIndividual
type: fieldValue
has parent: HeloToSonobuoyCommunication
name: solid
value: true

fieldValue 2 11 4 3 8
type: NamedIndividual
type: fieldValue
has parent: HeloToSonobuoyCommunication
name: contactColor
value: 0.4
value: 0

fieldValue 2 11 4 3 9
type: NamedIndividual
type: fieldValue
has parent: HeloToSonobuoyCommunication
name: noContactColor
value: 1.0
value: 0.6
value: 0.1

RadioCommandTimer
type: NamedIndividual
type: TimeSensor
has parent: RadioBeamOrientation
DEF: RadioCommandTimer
cycle interval: 0.5

ROUTE 2 11 4 5
type: NamedIndividual
type: ROUTE
has parent: RadioBeamOrientation
from field: sendCommand
from node: SonobuoyFieldScenarioScript
to field: startTime
to node: RadioCommandTimer

RadioBeamInterpolator
type: NamedIndividual
type: ScalarInterpolator
has parent: RadioBeamOrientation
DEF: RadioBeamInterpolator
key: 0
key: 0.5
key: 0.75
key: 1
key value: 0
key value: -1000

ROUTE 2 11 4 7
type: NamedIndividual
type: ROUTE
has parent: RadioBeamOrientation
from field: keyValueRadioCommandInterpolator
from node: SonobuoyFieldScenarioScript
to field: keyValue
to node: RadioBeamInterpolator

ROUTE 2 11 4 8
type: NamedIndividual
type: ROUTE
has parent: RadioBeamOrientation
from field: fraction_changed
from node: RadioCommandTimer
to field: set_fraction
to node: RadioBeamInterpolator

ROUTE 2 11 4 9
type: NamedIndividual
type: ROUTE
has parent: RadioBeamOrientation
from field: value_changed
from node: RadioBeamInterpolator
to field: range
to node: HeloToSonobuoyCommunication

RadioContactSequencer
type: NamedIndividual
type: BooleanSequencer
has parent: RadioBeamOrientation
DEF: RadioContactSequencer
key: 0
key: 0.5
key: 1
key value: false
key value: true

ROUTE 2 11 4 11
type: NamedIndividual
type: ROUTE
has parent: RadioBeamOrientation
from field: fraction_changed
from node: RadioCommandTimer
to field: set_fraction
to node: RadioContactSequencer

ROUTE 2 11 4 12
type: NamedIndividual
type: ROUTE
has parent: RadioBeamOrientation
from field: value_changed
from node: RadioContactSequencer
to field: contact
to node: HeloToSonobuoyCommunication