<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
<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'>
  <head>
    <meta content='AuvInBeachTanks.x3d' name='title'/>
    <meta content='Example showing DIS EspduTransform interface for physics-animated AUV entities. Example use: mil.navy.nps.auv.AuvPduGenerator.java generates ESPDUs for this scene.' name='description'/>
    <meta content='Don Brutzman and Duane Davis' name='creator'/>
    <meta content='Miguel Ayala' name='translator'/>
    <meta content='5 September 2000' name='created'/>
    <meta content='16 February 2002' name='translated'/>
    <meta content='20 October 2019' name='modified'/>
    <meta content='AUV in tank 2 is currently operational with AUV Workbench.' name='info'/>
    <meta content='http://faculty.nps.edu/brutzman/vrtp/demo/auv/AuvInBeachTanks.wrl' name='reference'/>
    <meta content='http://faculty.nps.edu/brutzman/vrtp/mil/navy/nps/dis/EspduTransformEXAMPLE.wrl' name='reference'/>
    <meta content='NPS Beach Tanks Autonomous Underwater Vehicle (AUV)' name='subject'/>
    <meta content='https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/AuvInBeachTanks.x3d' name='identifier'/>
    <meta content='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
    <meta content='../../license.html' name='license'/>
  </head>
  <Scene>
    <ExternProtoDeclare appinfo='Aries unmanned underwater vehicle with IEEE DIS EspduTransform wrapper bundled together in a single prototype' name='AriesEspdu' url='"AriesEspduPrototype.x3d#AriesEspdu" "../../Robots/UnmannedUnderwaterVehicles/AriesEspduPrototype.x3d#AriesEspdu" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/AriesEspduPrototype.x3d#AriesEspdu" "AriesEspduPrototype.wrl#AriesEspdu" "../../Robots/UnmannedUnderwaterVehicles/AriesEspduPrototype.wrl#AriesEspdu" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/AriesEspduPrototype.wrl#AriesEspdu"'>
      <field accessType='inputOutput' name='siteID' type='SFInt32'/>
      <field accessType='inputOutput' name='applicationID' type='SFInt32'/>
      <field accessType='inputOutput' name='entityID' type='SFInt32'/>
      <field accessType='inputOutput' appinfo='network read periodicity' name='readInterval' type='SFTime'/>
      <field accessType='inputOutput' appinfo='network write periodicity' name='writeInterval' type='SFTime'/>
      <field accessType='inputOutput' appinfo='Override default EspduTransform value so that listening occurs by default' name='networkMode' type='SFString'/>
      <field accessType='inputOutput' appinfo='multicast address' name='address' type='SFString'/>
      <field accessType='inputOutput' appinfo='multicast port' name='port' type='SFInt32'/>
      <field accessType='inputOutput' appinfo='initial position prior to first ESPDU receipt' name='translation' type='SFVec3f'/>
      <field accessType='inputOutput' appinfo='initial orientation prior to first ESPDU receipt' name='rotation' type='SFRotation'/>
      <field accessType='inputOutput' appinfo='Set to 0 to activate EspduTransformTrace' name='traceNodeEnabled' type='SFInt32'/>
      <field accessType='inputOutput' appinfo='color for this Aries instance' name='hullColor' type='SFColor'/>
      <field accessType='inputOutput' appinfo='up to 11 characters maps to EspduTransform marking' name='hullName' type='SFString'/>
    </ExternProtoDeclare>
    <!-- ==================== -->
    <ExternProtoDeclare 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 accessType='initializeOnly' appinfo='Purpose of this grid displayed for overall Viewpoint' name='description' type='SFString'/>
      <field accessType='inputOutput' appinfo='color for descriptive labels at grid edges and corners' name='labelColor' type='SFColor'/>
      <field accessType='inputOutput' appinfo='default unscaled size: 10m by 10m' name='scale' type='SFVec3f'/>
      <field accessType='inputOutput' name='originLabel' type='MFString'/>
      <field accessType='inputOutput' appinfo='-X axis' name='WestLabel' type='MFString'/>
      <field accessType='inputOutput' name='NorthWestLabel' type='MFString'/>
      <field accessType='inputOutput' appinfo='-Z axis' name='NorthLabel' type='MFString'/>
      <field accessType='inputOutput' name='NorthEastLabel' type='MFString'/>
      <field accessType='inputOutput' appinfo='+X axis' name='EastLabel' type='MFString'/>
      <field accessType='inputOutput' name='SouthEastLabel' type='MFString'/>
      <field accessType='inputOutput' appinfo='+Z axis' name='SouthLabel' type='MFString'/>
      <field accessType='inputOutput' name='SouthWestLabel' type='MFString'/>
      <field accessType='inputOutput' appinfo='label location offset (in meters) to improve readability' name='labelsOffset' type='SFVec3f'/>
    </ExternProtoDeclare>
    <!-- ==================== -->
    <ProtoInstance name='GridXZ'>
      <fieldValue name='description' value='GridXZ for AUV Beach Tanks'/>
      <fieldValue name='labelColor' value='1 1 1'/>
      <fieldValue name='scale' value='1 1 1'/>
      <fieldValue name='originLabel' value='"origin" "0 0 0"'/>
      <fieldValue name='WestLabel' value='"West" "-Z"'/>
      <fieldValue name='NorthWestLabel' value='"10 0 -10"'/>
      <fieldValue name='NorthLabel' value='"North" "+X"'/>
      <fieldValue name='NorthEastLabel' value='"10 0 10"'/>
      <fieldValue name='EastLabel' value='"East" "+Z"'/>
      <fieldValue name='SouthEastLabel' value='"-10 0 10"'/>
      <fieldValue name='SouthLabel' value='"South" "-X"'/>
      <fieldValue name='SouthWestLabel' value='"-10 0 -10"'/>
    </ProtoInstance>
    <!-- ==================== -->
    <!-- Example uses of EspduTransform node to view three remote DIS-capable entities -->
    <NavigationInfo speed='2' visibilityLimit='2000'/>
    <WorldInfo title='AUV examples of EspduTransform use'/>
    <Group>
      <!-- Inline file chiseled & gzipped due to extensive CosmoWorlds warnings -->
      <Inline url='"../../../Basic/DistributedInteractiveSimulation/BeachTanks.x3d" "https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/BeachTanks.x3d" "../../../Basic/DistributedInteractiveSimulation/BeachTanks.wrl" "https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/BeachTanks.wrl"'/>
      <!-- "local AUV" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
      <ProtoInstance DEF='NPSHeartBeatAUVEspduTransform' name='AriesEspdu'>
        <fieldValue name='hullName' value='NPS-run AUV'/>
        <fieldValue name='siteID' value='0'/>
        <fieldValue name='applicationID' value='1'/>
        <fieldValue name='entityID' value='1'/>
        <fieldValue name='readInterval' value='0.5'/>
        <fieldValue name='translation' value='5 -2 3'/>
        <fieldValue name='traceNodeEnabled' value='-1'/>
      </ProtoInstance>
      <!-- -->
      <ProtoInstance name='AriesEspdu'>
        <fieldValue name='translation' value='5 -1.5 17'/>
        <fieldValue name='networkMode' value='networkReader'/>
        <fieldValue name='traceNodeEnabled' value='0'/>
      </ProtoInstance>
      <ProtoInstance DEF='DynamicsAuvEspduTransform' name='AriesEspdu'>
        <fieldValue name='hullName' value='dynamicsAUV'/>
        <fieldValue name='siteID' value='36'/>
        <fieldValue name='applicationID' value='1'/>
        <fieldValue name='entityID' value='1'/>
        <fieldValue name='readInterval' value='0.05'/>
        <fieldValue name='translation' value='4 -1.5 28'/>
        <fieldValue name='traceNodeEnabled' value='-1'/>
      </ProtoInstance>
    </Group>
  </Scene>
</X3D>