X3D Model Documentation: DicassPrototype.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.2//EN" "https://www.web3d.org/specifications/x3d-3.2.dtd">
  3  <X3D profile='Immersive' version='3.2'  xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.2.xsd'>
  4       <head>
  5            <meta name='title' content='DicassPrototype.x3d'/>
  6            <meta name='description' content='AN/SSQ-62B/C/D/E Directional Command Activated Sonobuoy System (DICASS) Sonobuoy'/>
  7            <meta name='coordinateSystem' content='x=East, z=North, y=Up'/>
  8            <meta name='creator' content='Don Brutzman, Patrick Burton'/>
  9            <meta name='created' content='30 January 2003'/>
 10            <meta name='modified' content='20 October 2019'/>
 11            <meta name='reference' content='DICASS-an-ssq-62.pdf'/>
 12            <meta name='reference' content='https://www.fas.org/man/dod-101/sys/ship/weaps/an-ssq-62.htm'/>
 13            <meta name='reference' content='NAVY TRAINING SYSTEM PLAN FOR THE NAVY CONSOLIDATED SONOBUOYS N88-NTSP-A-50-8910B/A SEPTEMBER 1998'/>
 14            <meta name='reference' content='ntsp-Sonobuoy.pdf'/>
 15            <meta name='reference' content='https://www.fas.org/man/dod-101/sys/ship/weaps/docs/ntsp-Sonobuoy.pdf'/>
 16            <meta name='reference' content='http://www.avtechtra.navy.mil/pdf/Sonobuoys_a.PDF'/>
 17            <meta name='reference' content='http://www.ultra-scs.com/sonobuoys/dicass.htm'/>
 18            <meta name='reference' content='http://www.ultra-ussg.com/company/sonobuoy_history.cfm'/>
 19            <meta name='subject' content='DICASS sonobuoy'/>
 20            <meta name='identifier' content='https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/DicassPrototype.x3d'/>
 21            <meta name='generator' content='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
 22            <meta name='license' content='../../license.html'/>
 23       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: AnimationGroup, AquaTealBackground, BuoyBody, BuoyID, BuoyLabel, BuoyPosition, BuoyViewpoint, CloseUpView, DescriptionTextGroup, Invisible, LinkTextAnchor, LinkTextGroup, LinkTextNode, LocationScript, Maroon, PingAudioClip, PingClock, PingControl, PingSound, RangeInterpolator, SonarBeamHemisphere, TextLabelOffset, TextTouch, TransparencyInterpolator, ViewpointControl

Index for Viewpoint nodes: Viewpoint_1, BuoyViewpoint

Index for ExternProtoDeclare definition: BeamHemisphere

Index for ProtoDeclare definition: DICASS
-->
 24       <Scene>
 25            <ExternProtoDeclare name='BeamHemisphere' appinfo='Produce wireframe or transparent beam hemisphere. Typical uses include sonar/radar/light beams. Negative range values invert base and apex at same relative location. Default: hemisphere with centroid at (0 0 0) and radius 1 atop x-z plane.'   url=' "../../CommunicationsAndSensors/Beam/BeamHemispherePrototype.x3d#BeamHemisphere" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Beam/BeamHemispherePrototype.x3d#BeamHemisphere" "../../CommunicationsAndSensors/Beam/BeamHemispherePrototype.wrl#BeamHemisphere" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Beam/BeamHemispherePrototype.wrl#BeamHemisphere" '>
 26                 <field name='contact' type='SFBool' accessType='inputOnly'
                appinfo='(communications) is transmitted signal in contact with receiver or (sensor) is a target return detected?'/>
 27                 <field name='range' type='SFFloat' accessType='inputOnly'
                appinfo='distance in meters along x axis'/>
 28                 <field name='defaultRange' type='SFFloat' accessType='initializeOnly'
                appinfo='distance in meters used until eventIn range sent'/>
 29                 <field name='wireframe' type='SFBool' accessType='initializeOnly'
                appinfo='whether wireframe beam is drawn'/>
 30                 <field name='solid' type='SFBool' accessType='initializeOnly'
                appinfo='whether solid beam is drawn'/>
 31                 <field name='contactColor' type='SFColor' accessType='initializeOnly'
                appinfo='rendering color when contact=true'/>
 32                 <field name='noContactColor' type='SFColor' accessType='initializeOnly'
                appinfo='rendering color when contact=false'/>
 33                 <field name='transparency' type='SFFloat' accessType='inputOutput'
                appinfo='1 = fully transparent wireframe only'/>
 34            </ExternProtoDeclare>
 35            <ProtoDeclare name='DICASS' appinfo='AN/SSQ-62B/C/D/E Directional Command Activated Sonobuoy System (DICASS) Sonobuoy'>
 36                 <ProtoInterface>
 37                      <field name='ID' type='MFString' value='"missingID"' accessType='inputOutput'
                     appinfo='identifier label for this buoy'/>
 38                      <field name='version' type='SFString' value='AN/SSQ-62B' accessType='initializeOnly'
                     appinfo='default value: AN/SSQ-62B'/>
 39                      <field name='initialPositionXZ' type='SFVec2f' value='0 0' accessType='initializeOnly'
                     appinfo='local surface coordinates X=North Z=East'/>
 40                      <field name='orderedPositionXZ' type='SFVec2f' accessType='inputOnly'
                     appinfo='local surface coordinates X=North Z=East'/>
 41                      <field name='initialDepth' type='SFFloat' value='-10' accessType='initializeOnly'
                     appinfo='meters depth use negative numbers for subsurface'/>
 42                      <field name='orderedDepth' type='SFFloat' accessType='inputOnly'
                     appinfo='meters depth use negative numbers for subsurface'/>
 43                      <field name='bindViewpoint' type='SFBool' accessType='inputOnly'
                     appinfo='trigger event to bind/unbind viewpoint'/>
 44                      <field name='location_changed' type='SFVec3f' accessType='outputOnly'
                     appinfo='local coordinates X=North Y=altitude Z=East'/>
 45                      <field name='maxRange' type='SFFloat' value='1000' accessType='initializeOnly'
                     appinfo='maximum audible sonar detection range meters'/>
 46                      <field name='pingDuration' type='SFTime' accessType='outputOnly'
                     appinfo='pingDuration corresponds to maxRange at 1500m/sec sound speed'/>
 47                      <field name='soundSpeed' type='SFFloat' value='1500' accessType='initializeOnly'
                     appinfo='in-water sound speed m/s, default value 1500'
                     documentation='https://en.wikipedia.org/wiki/Speed_of_sound#Seawater'/>
 48                      <field name='startPing' type='SFBool' accessType='inputOnly'
                     appinfo='trigger event to start single ping'/>
 49                      <field name='startContinuousPings' type='SFBool' accessType='inputOnly'
                     appinfo='trigger event to start continuous ping sequence'/>
 50                      <field name='linkText' type='MFString' accessType='inputOutput'
                     appinfo='Can add linkable text for further information'/>
 51                      <field name='linkUrl' type='MFString' accessType='inputOutput'
                     appinfo='url for linkable text'/>
 52                      <field name='linkTargetWindow' type='MFString' accessType='inputOutput'
                     appinfo='target window for linkable text'/>
 53                 </ProtoInterface>
 54                 <ProtoBody>
 55                      <Group>
 56 
                         <!-- ROUTE information for BuoyPosition node:  [from LocationScript.newLocation to set_translation ] -->
                         <Transform DEF='BuoyPosition'>
 57 
                              <!-- Viewpoint BuoyViewpoint is a DEF node that has 1 USE node: USE_1 -->
                              <Viewpoint DEF='BuoyViewpoint' description='DICASS buoy'>
 58                                     <!-- ViewpointControl initialize() updates description to include ID -->
 59                                </Viewpoint>
 60                                <LOD range='1000 5000'>
 61                                     <Group DEF='CloseUpView'>
 62                                          <Transform translation='0 0.25 0'>
 63                                               <Shape DEF='BuoyBody'>
 64                                                    <Cylinder radius='0.1'/>
 65                                                    <Appearance>
 66 
                                                       <!-- Material Maroon is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                                                       <Material DEF='Maroon' diffuseColor='0.5 0 0'/>
 67                                                         <ImageTexture   url=' "DICASSphoto.png " "https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/DICASSphoto.png " '/>
 68                                                    </Appearance>
 69                                               </Shape>
 70                                          </Transform>
 71                                          <Group DEF='LinkTextGroup'>
 72                                               <Transform translation='0 -1 0'>
 73                                                    <Billboard axisOfRotation='0 0 0'>
 74                                                         <Anchor DEF='LinkTextAnchor' description='click this text for link'>
 75                                                              <IS>
 76                                                                   <connect nodeField='url' protoField='linkUrl'/>
 77                                                                   <connect nodeField='parameter' protoField='linkTargetWindow'/>
 78                                                              </IS>
 79                                                              <Shape>
 80                                                                   <Appearance>
 81                                                                        <Material diffuseColor='0.6 0.6 0.1'/>
 82                                                                   </Appearance>
 83                                                                   <Text DEF='LinkTextNode'>
 84                                                                        <IS>
 85                                                                             <connect nodeField='string' protoField='linkText'/>
 86                                                                        </IS>
 87                                                                        <FontStyle justify='"MIDDLE" "BEGIN"' size='0.3'/>
 88                                                                   </Text>
 89                                                              </Shape>
 90                                                         </Anchor>
 91                                                    </Billboard>
 92                                               </Transform>
 93                                          </Group>
 94                                     </Group>
 95                                     <Group DEF='DescriptionTextGroup'>
 96                                          <Billboard axisOfRotation='0 0 0'>
 97 
                                             <!-- ROUTE information for TextTouch node:  [from isActive to ViewpointControl.bindViewpoint ] -->
                                             <TouchSensor DEF='TextTouch' description='click and hold to view sonobuoy data'/>
 98                                               <Shape>
 99                                                    <Appearance>
100                                                         <Material USE='Maroon'/>
101                                                    </Appearance>
102                                                    <Text DEF='BuoyID'>
103                                                         <IS>
104                                                              <connect nodeField='string' protoField='ID'/>
105                                                         </IS>
106                                                         <FontStyle justify='"MIDDLE" "BEGIN"'/>
107                                                    </Text>
108                                               </Shape>
109                                          </Billboard>
110                                          <!-- make text touchable at a distance, allows closeup viewing of DICASS and label data -->
111                                          <Shape>
112                                               <Appearance>
113                                                    <Material DEF='Invisible' transparency='1'/>
114                                               </Appearance>
115                                               <Box size='.1 .1 .1'/>
116                                          </Shape>
117                                     </Group>
118                                     <WorldInfo info='"null node, no text at long range"'/>
119                                </LOD>
120                                <Transform DEF='TextLabelOffset' translation='0 2 0'>
121                                     <LOD range='50'>
122                                          <Billboard axisOfRotation='0 0 0'>
123                                               <Shape>
124                                                    <Appearance>
125                                                         <Material USE='Maroon'/>
126                                                    </Appearance>
127 
                                                  <!-- ROUTE information for BuoyLabel node:  [from LocationScript.newBuoyLabel to string ] -->
                                                  <Text DEF='BuoyLabel'>
128                                                         <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.3'/>
129                                                    </Text>
130                                               </Shape>
131                                          </Billboard>
132                                          <WorldInfo info='"null node, no text at long range"'/>
133                                     </LOD>
134                                </Transform>
135 
                              <!-- ROUTE information for SonarBeamHemisphere node:  [from RangeInterpolator.value_changed to range ] [from TransparencyInterpolator.value_changed to transparency ] [from PingControl.initializeHemisphereRange to range ] -->
                              <ProtoInstance name='BeamHemisphere' DEF='SonarBeamHemisphere'>
136                                     <fieldValue name='defaultRange' value='10'/>
137                                     <fieldValue name='transparency' value='1'/>
138                                     <fieldValue name='wireframe' value='true'/>
139                                     <fieldValue name='solid' value='true'/>
140                                </ProtoInstance>
141                                <!-- Needed: time-delay prototype gated by distance and speed of sound through medium. -->
142                                <Sound DEF='PingSound' maxBack='10000' maxFront='10000'>
143 
                                   <!-- ROUTE information for PingAudioClip node:  [from PingControl.startTime to startTime ] [from PingClock.cycleTime to startTime ] -->
                                   <AudioClip DEF='PingAudioClip' description='representative sonar ping'   url=' "sonarPing.wav" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/sonarPing.wav" '/>
144                                </Sound>
145                           </Transform>
146                           <!-- nonrendering controllers -->
147 
                         <!-- ROUTE information for LocationScript node:  [from newLocation to BuoyPosition.set_translation ] [from newBuoyLabel to BuoyLabel.string ] -->
                         <Script DEF='LocationScript'   url=' "DicassPrototypeScriptLocation.js" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/DicassPrototypeScriptLocation.js" '>
148                                <field name='ID' type='MFString' accessType='inputOutput'/>
149                                <field name='version' type='SFString' accessType='initializeOnly'/>
150                                <field name='initialPositionXZ' type='SFVec2f' accessType='initializeOnly'/>
151                                <field name='orderedPositionXZ' type='SFVec2f' accessType='inputOnly'/>
152                                <field name='initialDepth' type='SFFloat' accessType='initializeOnly'/>
153                                <field name='orderedDepth' type='SFFloat' accessType='inputOnly'/>
154                                <field name='newLocation' type='SFVec3f' accessType='outputOnly'/>
155                                <field name='newBuoyLabel' type='MFString' accessType='outputOnly'/>
156                                <field name='traceEnabled' type='SFBool' value='true' accessType='initializeOnly'
                               appinfo='set Script to verbose mode by enabling console trace statements'/>
157                                <IS>
158                                     <connect nodeField='ID' protoField='ID'/>
159                                     <connect nodeField='version' protoField='version'/>
160                                     <connect nodeField='initialPositionXZ' protoField='initialPositionXZ'/>
161                                     <connect nodeField='orderedPositionXZ' protoField='orderedPositionXZ'/>
162                                     <connect nodeField='initialDepth' protoField='initialDepth'/>
163                                     <connect nodeField='orderedDepth' protoField='orderedDepth'/>
164                                     <connect nodeField='newLocation' protoField='location_changed'/>
165                                </IS>
166                           </Script>
167                           < ROUTE  fromNode='LocationScript' fromField='newLocation' toNode='BuoyPosition' toField='set_translation'/>
168                           < ROUTE  fromNode='LocationScript' fromField='newBuoyLabel' toNode='BuoyLabel' toField='string'/>
169 
                         <!-- ROUTE information for ViewpointControl node:  [from TextTouch.isActive to bindViewpoint ] -->
                         <Script DEF='ViewpointControl' directOutput='true'   url=' "DicassPrototypeScriptViewpointControl.js" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/DicassPrototypeScriptViewpointControl.js" '>
170                                <field name='ID' type='MFString' accessType='inputOutput'/>
171                                <field name='LocalViewpoint' type='SFNode' accessType='initializeOnly'>
172                                     <Viewpoint USE='BuoyViewpoint'/>
173                                </field>
174                                <field name='viewpointDescription' type='SFString' accessType='outputOnly'/>
175                                <field name='bindViewpoint' type='SFBool' accessType='inputOnly'/>
176                                <field name='traceEnabled' type='SFBool' value='true' accessType='initializeOnly'
                               appinfo='set Script to verbose mode by enabling console trace statements'/>
177                                <IS>
178                                     <connect nodeField='ID' protoField='ID'/>
179                                     <connect nodeField='bindViewpoint' protoField='bindViewpoint'/>
180                                </IS>
181                           </Script>
182                           <!-- <ROUTE fromField='viewpointDescription' fromNode='ViewpointControl' toField='description' toNode='BuoyViewpoint'/> -->
183                           < ROUTE  fromNode='TextTouch' fromField='isActive' toNode='ViewpointControl' toField='bindViewpoint'/>
184                           <Group DEF='AnimationGroup'>
185 
186 
                              <!-- ROUTE information for RangeInterpolator node:  [from PingClock.fraction_changed to set_fraction ] [from PingControl.keyValueRangeInterpolator to keyValue ] [from value_changed to SonarBeamHemisphere.range ] -->
                              <ScalarInterpolator DEF='RangeInterpolator' key='0 0.1 0.6 0.6 1' keyValue='0.01 0.01 1000 0 0'/>
187                                < ROUTE  fromNode='PingClock' fromField='fraction_changed' toNode='RangeInterpolator' toField='set_fraction'/>
188                                < ROUTE  fromNode='RangeInterpolator' fromField='value_changed' toNode='SonarBeamHemisphere' toField='range'/>
189                                <!-- maintain opaque until mid range, then go transparent to indicate active detection not feasible -->
190 
                              <!-- ROUTE information for TransparencyInterpolator node:  [from PingClock.fraction_changed to set_fraction ] [from value_changed to SonarBeamHemisphere.transparency ] -->
                              <ScalarInterpolator DEF='TransparencyInterpolator' key='0 0.35 0.5 1' keyValue='0.2 0.2 1 0'/>
191                                < ROUTE  fromNode='PingClock' fromField='fraction_changed' toNode='TransparencyInterpolator' toField='set_fraction'/>
192                                < ROUTE  fromNode='TransparencyInterpolator' fromField='value_changed' toNode='SonarBeamHemisphere' toField='transparency'/>
193                           </Group>
194 
195                                <field name='ID' type='MFString' accessType='inputOutput'/>
196                                <field name='maxRange' type='SFFloat' accessType='initializeOnly'/>
197                                <field name='soundSpeed' type='SFFloat' accessType='initializeOnly'/>
198                                <field name='pingDuration' type='SFTime' accessType='outputOnly'
                               appinfo='pingDuration corresponds to maxRange at 1500m/sec sound speed'/>
199                                <field name='cycleInterval' type='SFTime' accessType='outputOnly'
                               appinfo='duration between successive pings is twice pingInterval'/>
200                                <field name='keyValueRangeInterpolator' type='MFFloat' accessType='outputOnly'/>
201                                <field name='initializeHemisphereRange' type='SFFloat' accessType='outputOnly'/>
202                                <field name='startPing' type='SFBool' accessType='inputOnly'/>
203                                <field name='startContinuousPings' type='SFBool' accessType='inputOnly'/>
204                                <field name='startTime' type='SFTime' accessType='outputOnly'/>
205                                <field name='loop' type='SFBool' accessType='outputOnly'/>
206                                <field name='traceEnabled' type='SFBool' value='true' accessType='initializeOnly'
                               appinfo='set Script to verbose mode by enabling console trace statements'/>
207                                <IS>
208                                     <connect nodeField='ID' protoField='ID'/>
209                                     <connect nodeField='maxRange' protoField='maxRange'/>
210                                     <connect nodeField='soundSpeed' protoField='soundSpeed'/>
211                                     <connect nodeField='pingDuration' protoField='pingDuration'/>
212                                     <connect nodeField='startPing' protoField='startPing'/>
213                                     <connect nodeField='startContinuousPings' protoField='startContinuousPings'/>
214                                </IS>
215                           </Script>
216                           < ROUTE  fromNode='PingControl' fromField='cycleInterval' toNode='PingClock' toField='cycleInterval'/>
217                           < ROUTE  fromNode='PingControl' fromField='keyValueRangeInterpolator' toNode='RangeInterpolator' toField='keyValue'/>
218                           < ROUTE  fromNode='PingControl' fromField='initializeHemisphereRange' toNode='SonarBeamHemisphere' toField='range'/>
219                           < ROUTE  fromNode='PingControl' fromField='loop' toNode='PingClock' toField='loop'/>
220                           < ROUTE  fromNode='PingControl' fromField='startTime' toNode='PingClock' toField='startTime'/>
221                           < ROUTE  fromNode='PingControl' fromField='startTime' toNode='PingAudioClip' toField='startTime'/>
222                           < ROUTE  fromNode='PingClock' fromField='cycleTime' toNode='PingAudioClip' toField='startTime'/>
223                      </Group>
224                 </ProtoBody>
225            </ProtoDeclare>
226            <!-- Rendered scene begins here -->
227            <Background DEF='AquaTealBackground' groundColor='0.0 0.25 0.25' skyColor='0 1 1'/>
228            <NavigationInfo speed='10'/>
229            <Anchor description='Dicass Example'   url=' "DicassExample.x3d" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/DicassExample.x3d" "DicassExample.wrl" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/DicassExample.wrl" '>
230                 <Shape>
231                      <Text string='"DicassPrototype is a" "sonobuoy prototype" "" "Click text to see" "DicassExample"'>
232                           <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.9'/>
233                      </Text>
234                      <Appearance>
235                           <Material diffuseColor='0.5 0.5 0.1'/>
236                      </Appearance>
237                 </Shape>
238            </Anchor>
239       </Scene>
240  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: AnimationGroup, AquaTealBackground, BuoyBody, BuoyID, BuoyLabel, BuoyPosition, BuoyViewpoint, CloseUpView, DescriptionTextGroup, Invisible, LinkTextAnchor, LinkTextGroup, LinkTextNode, LocationScript, Maroon, PingAudioClip, PingClock, PingControl, PingSound, RangeInterpolator, SonarBeamHemisphere, TextLabelOffset, TextTouch, TransparencyInterpolator, ViewpointControl

Index for Viewpoint nodes: Viewpoint_1, BuoyViewpoint

Index for ExternProtoDeclare definition: BeamHemisphere

Index for ProtoDeclare definition: DICASS
-->
X3D Tooltips element index: Anchor, Appearance, AudioClip, Background, Billboard, Box, connect, Cylinder, ExternProtoDeclare, field, fieldValue, FontStyle, Group, head, ImageTexture, IS, LOD, Material, meta, NavigationInfo, ProtoBody, ProtoDeclare, ProtoInstance, ProtoInterface, ROUTE, ScalarInterpolator, Scene, Script, Shape, Sound, Text, TimeSensor, TouchSensor, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table entries with 14 ROUTE connections total, showing X3D event-model relationships for this scene.

Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

TextTouch
TouchSensor
isActive
SFBool
→
ROUTE
event to
(1)
ViewpointControl
Script
bindViewpoint
SFBool

LocationScript
Script
newLocation
SFVec3f
→
ROUTE
event to
(1)
BuoyPosition
Transform
set_translation
SFVec3f
LocationScript
Script
newBuoyLabel
MFString
→
ROUTE
event to
(1)
BuoyLabel
Text
string
MFString

PingControl
Script
cycleInterval
SFTime
→
ROUTE
event to
(1)
PingClock
TimeSensor
cycleInterval
SFTime
then
 
 
 
PingClock
TimeSensor
cycleTime
SFTime
→
ROUTE
event to
(2)
PingAudioClip
AudioClip
startTime
SFTime
  then
 
 
 
PingClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(2)
RangeInterpolator
ScalarInterpolator
set_fraction
SFFloat
then
 
 
 
RangeInterpolator
ScalarInterpolator
value_changed
SFFloat
→
ROUTE
event to
(3)
SonarBeamHemisphere
ProtoInstance
range
SFFloat
  then
 
 
 
PingClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(2)
TransparencyInterpolator
ScalarInterpolator
set_fraction
SFFloat
then
 
 
 
TransparencyInterpolator
ScalarInterpolator
value_changed
SFFloat
→
ROUTE
event to
(3)
SonarBeamHemisphere
ProtoInstance
transparency
SFFloat
PingControl
Script
keyValueRangeInterpolator
MFFloat
→
ROUTE
event to
(1)
RangeInterpolator
ScalarInterpolator
keyValue
MFFloat
then
 
 
 
RangeInterpolator
ScalarInterpolator
value_changed
SFFloat
→
ROUTE
event to
(2)
SonarBeamHemisphere
ProtoInstance
range
SFFloat
PingControl
Script
initializeHemisphereRange
SFFloat
→
ROUTE
event to
(1)
SonarBeamHemisphere
ProtoInstance
range
SFFloat
PingControl
Script
loop
SFBool
→
ROUTE
event to
(1)
PingClock
TimeSensor
loop
SFBool
then
 
 
 
PingClock
TimeSensor
cycleTime
SFTime
→
ROUTE
event to
(2)
PingAudioClip
AudioClip
startTime
SFTime
  then
 
 
 
PingClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(2)
RangeInterpolator
ScalarInterpolator
set_fraction
SFFloat
then
 
 
 
RangeInterpolator
ScalarInterpolator
value_changed
SFFloat
→
ROUTE
event to
(3)
SonarBeamHemisphere
ProtoInstance
range
SFFloat
  then
 
 
 
PingClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(2)
TransparencyInterpolator
ScalarInterpolator
set_fraction
SFFloat
then
 
 
 
TransparencyInterpolator
ScalarInterpolator
value_changed
SFFloat
→
ROUTE
event to
(3)
SonarBeamHemisphere
ProtoInstance
transparency
SFFloat
PingControl
Script
startTime
SFTime
→
ROUTE
event to
(1)
PingClock
TimeSensor
startTime
SFTime
then
 
 
 
PingClock
TimeSensor
cycleTime
SFTime
→
ROUTE
event to
(2)
PingAudioClip
AudioClip
startTime
SFTime
  then
 
 
 
PingClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(2)
RangeInterpolator
ScalarInterpolator
set_fraction
SFFloat
then
 
 
 
RangeInterpolator
ScalarInterpolator
value_changed
SFFloat
→
ROUTE
event to
(3)
SonarBeamHemisphere
ProtoInstance
range
SFFloat
  then
 
 
 
PingClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(2)
TransparencyInterpolator
ScalarInterpolator
set_fraction
SFFloat
then
 
 
 
TransparencyInterpolator
ScalarInterpolator
value_changed
SFFloat
→
ROUTE
event to
(3)
SonarBeamHemisphere
ProtoInstance
transparency
SFFloat
PingControl
Script
startTime
SFTime
→
ROUTE
event to
(1)
PingAudioClip
AudioClip
startTime
SFTime

      SonarBeamHemisphere
ProtoInstance
BeamHemisphere
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

line 229
Anchor
description='Dicass Example' 
User-interaction hint for this node. 

LinkTextAnchor
Anchor
description='click this text for link' 
User-interaction hint for this node. 

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

-->
<!-- Online at
https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/DicassPrototypeIndex.html -->
<!-- Version control at
https://gitlab.nps.edu/Savage/Savage/CommunicationsAndSensors/Sonobuoys/DicassPrototype.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode  DEF='idName' field='value'/> matches XML terminology <XmlElement  DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
    <ProtoInstance name='ProtoName'> <field name='fieldName'/> </ProtoInstance> -->

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