<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://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 =' http://www.web3d.org/specifications/x3d-3.0.xsd '>
<head>
<meta name='titlecontent='FortLauderdaleDepthSelection.x3d'/>
<meta name='descriptioncontent='Switch between 80m 40m 20m 10m (no 05m) grid-spacing bathymetry for Fort Lauderdale - Hollywood Beach Florida.'/>
<meta name='creatorcontent='Don Brutzman'/>
<meta name='createdcontent='25 June 2000'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='Imagecontent='matlabPerspectivePlot.png'/>
<meta name='Imagecontent='FortLauderdaleBathymetryMontage.png'/>
<meta name='referencecontent='FortLauderdaleDepths80m.fig'/>
<meta name='referencecontent='metadata.txt'/>
<meta name='referencecontent='shallow.xyz.txt'/>
<meta name='referencecontent='convertBathymetryXyzFile.m'/>
<meta name='referencecontent='convertBathymetryXyzFile.out'/>
<meta name='referencecontent='colorValue.m'/>
<meta name='referencecontent='printX3dHeader.m'/>
<meta name='referencecontent='printX3dFooter.m'/>
<meta name='identifiercontent=' https://savage.nps.edu/Savage/Locations/FortLauderdaleFlorida/FortLauderdaleDepthSelection.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../../license.html'/>
</head>
<!-- -->
<Scene>
<WorldInfo title='FortLauderdaleDepthSelection.x3d'/>
<ProtoDeclare name='WhereAmI'>
<!-- Viewpoint discovery/debugging in VRML Console window by Leonard Daly http://www.realism.com/Web3D/Examples#Viewpoints http://www.realism.com/vrml/Example/WhereAmI/WhereAmI_Proto.wrl -->
<ProtoBody>
<!-- ROUTE information for Where node:  [from position_changed to WhereDump.position ] [from orientation_changed to WhereDump.orientation ] -->
<ProximitySensor DEF='Wheresize='1000000000 1000000000 1000000000'/>
<!-- hey it's a big old world out there! -->
<!-- ROUTE information for WhereDump node:  [from Where.position_changed to position ] [from Where.orientation_changed to orientation ] -->
<Script DEF='WhereDump'>
<field name='positiontype='SFVec3faccessType='inputOnly'/>
<field name='orientationtype='SFRotationaccessType='inputOnly'/>
<![CDATA[
          
ecmascript:

function position (value)
{
  Browser.print ('Position (X,Y,Z) = ' + value[0] +
	  ', ' + value[1] + ', ' + value[2]);
}
function orientation (value)
{
   Browser.print ('Orientation (X,Y,Z,R) = ' + value[0] +
	', ' + value[1] + ', ' + value[2] +
	', ' + value[3]);
}

        
]]>
</Script>
<ROUTE fromNode='WherefromField='position_changedtoNode='WhereDumptoField='position'/>
<ROUTE fromNode='WherefromField='orientation_changedtoNode='WhereDumptoField='orientation'/>
</ProtoBody>
</ProtoDeclare>
<!-- ### Comment/uncomment the following WhereAmI node to disable/enable this feature ### -->
<ProtoInstance name='WhereAmI'/>
<!-- NavigationInfo: increased speed for responsiveness, increased collision boundary to eliminate aliasing -->
<NavigationInfo avatarSize='4 1.6 0.75speed='100type='"EXAMINE" "WALK" "ANY"'/>
<Transform translation='8200 500 1600bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Viewpoint description='Select spacing bathymetry gridorientation='0 1 0 1.57079position='10 -2 0'/>
<Billboard axisOfRotation='0 1 0bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Shape bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Text string='"Select bathymetry grid spacing"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<Material diffuseColor='.8 .8 0'/>
</Appearance>
</Shape>
<Transform translation='0 -1.5 0bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Transform translation='-6 0 0bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<!-- ROUTE information for TOUCH_80m node:  [from isActive to BATHYMETRY_RESOLUTION.touched80m ] -->
<TouchSensor DEF='TOUCH_80mdescription='touch to activate'/>
<Shape bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Text string='"80m"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<!-- ROUTE information for MATERIAL_80m node:  [from BATHYMETRY_RESOLUTION.color80m to diffuseColor ] -->
<Material DEF='MATERIAL_80mdiffuseColor='0 .8 0'/>
</Appearance>
</Shape>
<Shape DEF='TransparentSelectionBoxbboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Box size='1.6 1 0.001solid='true'/>
<Appearance>
<Material transparency='1'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='-3.5 0 0bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<!-- ROUTE information for TOUCH_40m node:  [from isActive to BATHYMETRY_RESOLUTION.touched40m ] -->
<TouchSensor DEF='TOUCH_40mdescription='touch to activate'/>
<Shape bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Text string='"40m"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<!-- ROUTE information for MATERIAL_40m node:  [from BATHYMETRY_RESOLUTION.color40m to diffuseColor ] -->
<Material DEF='MATERIAL_40mdiffuseColor='.8 0 0'/>
</Appearance>
</Shape>
<Shape USE='TransparentSelectionBoxbboxCenter='0 0 0bboxSize='-1 -1 -1'/>
</Transform>
<Transform translation='-1 0 0bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<!-- ROUTE information for TOUCH_20m node:  [from isActive to BATHYMETRY_RESOLUTION.touched20m ] -->
<TouchSensor DEF='TOUCH_20mdescription='touch to activate'/>
<Shape bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Text string='"20m"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<!-- ROUTE information for MATERIAL_20m node:  [from BATHYMETRY_RESOLUTION.color20m to diffuseColor ] -->
<Material DEF='MATERIAL_20mdiffuseColor='.8 0 0'/>
</Appearance>
</Shape>
<Shape USE='TransparentSelectionBoxbboxCenter='0 0 0bboxSize='-1 -1 -1'/>
</Transform>
<Transform translation='1.5 0 0bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<!-- ROUTE information for TOUCH_10m node:  [from isActive to BATHYMETRY_RESOLUTION.touched10m ] -->
<TouchSensor DEF='TOUCH_10mdescription='touch to activate'/>
<Shape bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Text string='"10m"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<!-- ROUTE information for MATERIAL_10m node:  [from BATHYMETRY_RESOLUTION.color10m to diffuseColor ] -->
<Material DEF='MATERIAL_10mdiffuseColor='.8 0 0'/>
</Appearance>
</Shape>
<Shape USE='TransparentSelectionBoxbboxCenter='0 0 0bboxSize='-1 -1 -1'/>
</Transform>
<Transform translation='4 0 0bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<!-- ROUTE information for TOUCH_05m node:  [from isActive to BATHYMETRY_RESOLUTION.touched05m ] -->
<TouchSensor DEF='TOUCH_05mdescription='touch to activate'/>
<Shape bboxCenter='0 0 0bboxSize='-1 -1 -1'>
<Text string='"(no 5m)"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<!-- ROUTE information for MATERIAL_05m node:  [from BATHYMETRY_RESOLUTION.color05m to diffuseColor ] -->
<Material DEF='MATERIAL_05mdiffuseColor='.8 0 0'/>
</Appearance>
</Shape>
</Transform>
</Transform>
</Billboard>
</Transform>
<!-- ROUTE information for BATHYMETRY_SWITCH node:  [from BATHYMETRY_RESOLUTION.selection to whichChoice ] -->
<Switch DEF='BATHYMETRY_SWITCHwhichChoice='0bboxCenter='0 0 0bboxSize='-1 -1 -1'> </Switch>
<!-- ROUTE information for BATHYMETRY_RESOLUTION node:  [from TOUCH_80m.isActive to touched80m ] [from TOUCH_40m.isActive to touched40m ] [from TOUCH_20m.isActive to touched20m ] [from TOUCH_10m.isActive to touched10m ] [from TOUCH_05m.isActive to touched05m ] [from selection to BATHYMETRY_SWITCH.whichChoice ] [from color80m to MATERIAL_80m.diffuseColor ] [from color40m to MATERIAL_40m.diffuseColor ] [from color20m to MATERIAL_20m.diffuseColor ] [from color10m to MATERIAL_10m.diffuseColor ] [from color05m to MATERIAL_05m.diffuseColor ] -->
<Script DEF='BATHYMETRY_RESOLUTION'>
<field name='touched80mtype='SFBoolaccessType='inputOnly'/>
<field name='touched40mtype='SFBoolaccessType='inputOnly'/>
<field name='touched20mtype='SFBoolaccessType='inputOnly'/>
<field name='touched10mtype='SFBoolaccessType='inputOnly'/>
<field name='selectiontype='SFInt32accessType='outputOnly'/>
<field name='color80mtype='SFColoraccessType='outputOnly'/>
<field name='color40mtype='SFColoraccessType='outputOnly'/>
<field name='color20mtype='SFColoraccessType='outputOnly'/>
<field name='color10mtype='SFColoraccessType='outputOnly'/>
<field name='color05mtype='SFColoraccessType='outputOnly'/>
<field name='touched05mtype='SFBoolaccessType='inputOnly'/>
<![CDATA[
      
ecmascript:

// only react to 'true' TouchSensor events, cut computation of normals etc. in half

function touched80m (value, ts)
{
  if (value == true)
  {
	selection = 0;
	color80m  = new SFColor (0, .8, 0);
	color40m  = new SFColor (.8, 0, 0);
	color20m  = new SFColor (.8, 0, 0);
	color10m  = new SFColor (.8, 0, 0);
	color05m  = new SFColor (.8, 0, 0);
  }
}
function touched40m (value, ts)
{
  if (value == true)
  {
	selection = 1;
	color80m  = new SFColor (.8, 0, 0);
	color40m  = new SFColor (0, .8, 0);
	color20m  = new SFColor (.8, 0, 0);
	color10m  = new SFColor (.8, 0, 0);
	color05m  = new SFColor (.8, 0, 0);
  }
}
function touched20m (value, ts)
{
  if (value == true)
  {
	selection = 2;
	color80m  = new SFColor (.8, 0, 0);
	color40m  = new SFColor (.8, 0, 0);
	color20m  = new SFColor (0, .8, 0);
	color10m  = new SFColor (.8, 0, 0);
	color05m  = new SFColor (.8, 0, 0);
  }
}
function touched10m (value, ts)
{
  if (value == true)
  {
	selection = 3;
	color80m  = new SFColor (.8, 0, 0);
	color40m  = new SFColor (.8, 0, 0);
	color20m  = new SFColor (.8, 0, 0);
	color10m  = new SFColor (0, .8, 0);
	color05m  = new SFColor (.8, 0, 0);
  }
}
function touched05m (value, ts)
{
  Browser.print ('05m dataset not available...'); // goes to VRML console only, not scene
}

    
]]>
</Script>
<ROUTE fromNode='TOUCH_80mfromField='isActivetoNode='BATHYMETRY_RESOLUTIONtoField='touched80m'/>
<ROUTE fromNode='TOUCH_40mfromField='isActivetoNode='BATHYMETRY_RESOLUTIONtoField='touched40m'/>
<ROUTE fromNode='TOUCH_20mfromField='isActivetoNode='BATHYMETRY_RESOLUTIONtoField='touched20m'/>
<ROUTE fromNode='TOUCH_10mfromField='isActivetoNode='BATHYMETRY_RESOLUTIONtoField='touched10m'/>
<ROUTE fromNode='TOUCH_05mfromField='isActivetoNode='BATHYMETRY_RESOLUTIONtoField='touched05m'/>
<ROUTE fromNode='BATHYMETRY_RESOLUTIONfromField='selectiontoNode='BATHYMETRY_SWITCHtoField='whichChoice'/>
<ROUTE fromNode='BATHYMETRY_RESOLUTIONfromField='color80mtoNode='MATERIAL_80mtoField='diffuseColor'/>
<ROUTE fromNode='BATHYMETRY_RESOLUTIONfromField='color40mtoNode='MATERIAL_40mtoField='diffuseColor'/>
<ROUTE fromNode='BATHYMETRY_RESOLUTIONfromField='color20mtoNode='MATERIAL_20mtoField='diffuseColor'/>
<ROUTE fromNode='BATHYMETRY_RESOLUTIONfromField='color10mtoNode='MATERIAL_10mtoField='diffuseColor'/>
<ROUTE fromNode='BATHYMETRY_RESOLUTIONfromField='color05mtoNode='MATERIAL_05mtoField='diffuseColor'/>
</Scene>
</X3D>
<!--

Index for ProtoDeclare definition : WhereAmI

Index for DEF nodes : BATHYMETRY_RESOLUTION, BATHYMETRY_SWITCH, MATERIAL_05m, MATERIAL_10m, MATERIAL_20m, MATERIAL_40m, MATERIAL_80m, TOUCH_05m, TOUCH_10m, TOUCH_20m, TOUCH_40m, TOUCH_80m, TransparentSelectionBox, Where, WhereDump

Index for Viewpoint image : Viewpoint_1
-->

<!-- Color key: <X3dNode DEF='idName' field='value'/> matches <XmlElement DEF='idName' attribute='value'/>
(Light blue background: behavior node) (Grey background: inserted documentation) (Magenta background: X3D Extensibility)
    <Prototype name='ProtoName'> <field name='fieldName'/> </Prototype> -->

<!-- Additional help information about X3D scenes: X3D Resources, X3D Scene Authoring Hints and X3D Tooltips -->