X3D Model Documentation: DicassExample.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2 
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
  3  <X3D profile='Immersive' version='3.0'  xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'>
  4       <head>
  5            <meta name='title' content='DicassExample.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'/>
  9            <meta name='created' content='30 January 2003'/>
 10            <meta name='modified' content='20 October 2019'/>
 11            <meta name=' warning ' content=' under development, updating script code to X3D '/>
 12            <meta name='reference' content='DICASS-an-ssq-62.pdf'/>
 13            <meta name='reference' content='https://www.fas.org/man/dod-101/sys/ship/weaps/an-ssq-62.htm'/>
 14            <meta name='reference' content='NAVY TRAINING SYSTEM PLAN FOR THE NAVY CONSOLIDATED SONOBUOYS N88-NTSP-A-50-8910B/A SEPTEMBER 1998'/>
 15            <meta name='reference' content='ntsp-Sonobuoy.pdf'/>
 16            <meta name='reference' content='https://www.fas.org/man/dod-101/sys/ship/weaps/docs/ntsp-Sonobuoy.pdf'/>
 17            <meta name='reference' content='http://www.avtechtra.navy.mil/pdf/Sonobuoys_a.PDF'/>
 18            <meta name='reference' content='http://www.ultra-scs.com/sonobuoys/dicass.htm'/>
 19            <meta name='reference' content='http://www.ultra-ussg.com/company/sonobuoy_history.cfm'/>
 20            <meta name='subject' content='DICASS sonobuoy'/>
 21            <meta name='identifier' content='https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/DicassExample.x3d'/>
 22            <meta name='generator' content='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
 23            <meta name='license' content='../../license.html'/>
 24       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: AquaTealBackground, ContinuousPingTouch, DicassExample, InterfaceMaterial, SinglePingTouch

Index for Viewpoint node: Viewpoint_1

Index for ExternProtoDeclare definition: DICASS
-->
 25       <Scene>
 26            <WorldInfo title='DicassExample.x3d'/>
 27            <ExternProtoDeclare name='DICASS' appinfo='AN/SSQ-62B/C/D/E Directional Command Activated Sonobuoy System (DICASS) Sonobuoy'   url=' "DicassPrototype.x3d#DICASS" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/DicassPrototype.x3d#DICASS" "DicassPrototype.wrl#DICASS" "https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/DicassPrototype.wrl#DICASS" '>
 28                 <field name='ID' type='MFString' accessType='inputOutput'
                appinfo='identifier label for this buoy'/>
 29                 <field name='version' type='SFString' accessType='initializeOnly'
                appinfo='default value: AN/SSQ-62B'/>
 30                 <field name='initialPositionXZ' type='SFVec2f' accessType='initializeOnly'
                appinfo='local surface coordinates X=North Z=East'/>
 31                 <field name='orderedPositionXZ' type='SFVec2f' accessType='inputOnly'
                appinfo='local surface coordinates X=North Z=East'/>
 32                 <field name='initialDepth' type='SFFloat' accessType='initializeOnly'
                appinfo='meters depth use negative numbers for subsurface'/>
 33                 <field name='orderedDepth' type='SFFloat' accessType='inputOnly'
                appinfo='meters depth use negative numbers for subsurface'/>
 34                 <field name='bindViewpoint' type='SFBool' accessType='inputOnly'
                appinfo='trigger event to bind/unbind viewpoint'/>
 35                 <field name='location_changed' type='SFVec3f' accessType='outputOnly'
                appinfo='local coordinates X=North Y=altitude Z=East'/>
 36                 <field name='maxRange' type='SFFloat' accessType='initializeOnly'
                appinfo='maximum audible sonar detection range meters'/>
 37                 <field name='pingDuration' type='SFTime' accessType='outputOnly'
                appinfo='pingDuration corresponds to maxRange at 1500m/sec sound speed'/>
 38                 <field name='soundSpeed' type='SFFloat' accessType='initializeOnly'
                appinfo='in-water sound speed m/s, default value 1500'
                documentation='https://en.wikipedia.org/wiki/Speed_of_sound#Seawater'/>
 39                 <field name='startPing' type='SFBool' accessType='inputOnly'
                appinfo='trigger event to start single ping'/>
 40                 <field name='startContinuousPings' type='SFBool' accessType='inputOnly'
                appinfo='trigger event to start continuous ping sequence'/>
 41                 <field name='linkText' type='MFString' accessType='inputOutput'
                appinfo='Can add linkable text for further information'/>
 42                 <field name='linkUrl' type='MFString' accessType='inputOutput'
                appinfo='url for linkable text'/>
 43                 <field name='linkTargetWindow' type='MFString' accessType='inputOutput'
                appinfo='target window for linkable text'/>
 44            </ExternProtoDeclare>
 45            <!-- Rendered scene begins here -->
 46            <Background DEF='AquaTealBackground' groundColor='0.0 0.25 0.25' skyColor='0 1 1'/>
 47            <NavigationInfo speed='100' type='"EXAMINE" "FLY" "ANY"'/>
 48 
          <!-- ROUTE information for DicassExample node:  [from SinglePingTouch.isActive to startPing ] [from ContinuousPingTouch.isActive to startContinuousPings ] -->
          <ProtoInstance name='DICASS' DEF='DicassExample'>
 49                 <fieldValue name='ID' value='"DicassExample"'/>
 50                 <fieldValue name='initialPositionXZ' value='0 0'/>
 51                 <fieldValue name='initialDepth' value='-1'/>
 52                 <fieldValue name='linkText' value='"click for online SAVAGE Archive"'/>
 53                 <fieldValue name='linkUrl' value='"https://savage.nps.edu/Savage/CommunicationsAndSensors/Sonobuoys/index.html"'/>
 54                 <fieldValue name='linkTargetWindow' value='"target=_blank"'/>
 55            </ProtoInstance>
 56            <!-- Interface to test DICASS buoy -->
 57            <Transform translation='0 0 2000'>
 58                 <Viewpoint description='DICASS 2 km'/>
 59                 <Transform translation='-3.5 -3 0'>
 60                      <Shape>
 61                           <Text string='"single ping"'>
 62                                <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.9'/>
 63                           </Text>
 64                           <Appearance>
 65 
                              <!-- Material InterfaceMaterial is a DEF node that has 1 USE node: USE_1 -->
                              <Material DEF='InterfaceMaterial' diffuseColor='0.8 0.5 0.1'/>
 66                           </Appearance>
 67                      </Shape>
 68 
                    <!-- ROUTE information for SinglePingTouch node:  [from isActive to DicassExample.startPing ] -->
                    <TouchSensor DEF='SinglePingTouch' description='Single Ping TouchSensor'/>
 69                      < ROUTE  fromNode='SinglePingTouch' fromField='isActive' toNode='DicassExample' toField='startPing'/>
 70                 </Transform>
 71                 <Transform translation='2.5 -3 0'>
 72                      <Shape>
 73                           <Text string='"continuous pings"'>
 74                                <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.9'/>
 75                           </Text>
 76                           <Appearance>
 77                                <Material USE='InterfaceMaterial'/>
 78                           </Appearance>
 79                      </Shape>
 80 
                    <!-- ROUTE information for ContinuousPingTouch node:  [from isActive to DicassExample.startContinuousPings ] -->
                    <TouchSensor DEF='ContinuousPingTouch' description='Continuous Ping TouchSensor'/>
 81                      < ROUTE  fromNode='ContinuousPingTouch' fromField='isActive' toNode='DicassExample' toField='startContinuousPings'/>
 82                 </Transform>
 83            </Transform>
 84       </Scene>
 85  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: AquaTealBackground, ContinuousPingTouch, DicassExample, InterfaceMaterial, SinglePingTouch

Index for Viewpoint node: Viewpoint_1

Index for ExternProtoDeclare definition: DICASS
-->
X3D Tooltips element index: Appearance, Background, ExternProtoDeclare, field, fieldValue, FontStyle, head, Material, meta, NavigationInfo, ProtoInstance, ROUTE, Scene, Shape, Text, TouchSensor, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table entries with 2 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.

ContinuousPingTouch
TouchSensor
isActive
SFBool
→
ROUTE
event to
(1)
DicassExample
ProtoInstance
startContinuousPings
SFBool

SinglePingTouch
TouchSensor
isActive
SFBool
→
ROUTE
event to
(1)
DicassExample
ProtoInstance
startPing
SFBool

      DicassExample
ProtoInstance
DICASS
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. 

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/DicassExampleIndex.html -->
<!-- Version control at
https://gitlab.nps.edu/Savage/Savage/CommunicationsAndSensors/Sonobuoys/DicassExample.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. -->