<?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='CameraCompass12Example.x3d'/>
<meta name='descriptioncontent='A circular set of 12 compass bearings that follows the active viewpoint. Coordinate axis viewpoint shows that North = +X axis, East = +Z axis, up = +Y axis.'/>
<meta name='creatorcontent='Don Brutzman'/>
<meta name='createdcontent='17 June 2001'/>
<meta name='modifiedcontent='14 January 2014'/>
<meta name='identifiercontent=' https://savage.nps.edu/Savage/Tools/HeadsUpDisplays/CameraCompass12Example.x3d '/>
<meta name='inspirationcontent='David Colleen'/>
<meta name='referencecontent=' http://www.planet9.com/earth/pearlharbor/vrml/tour.wrl '/>
<meta name='referencecontent=' http://www.planet9.com/earth/pearlharbor/vrml/compass.wrl '/>
<meta name='subjectcontent='compass display'/>
<meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../../license.html'/>
</head>
<!--

Index for ExternProtoDeclare definitions : CameraCompass12, ViewPositionOrientation

Index for DEF nodes : AxisNavigation, AxisProximity, CenterInstructions, CoordinateAxes, Floor

Index for Viewpoint images : Viewpoint_1, Viewpoint_2, Viewpoint_3
-->
<Scene>
<ExternProtoDeclare name='CameraCompass12'
  url=' "CameraCompassPrototypes.x3d#CameraCompass12" "../../../Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.x3d#CameraCompass12" "https://savage.nps.edu/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.x3d#CameraCompass12" "CameraCompassPrototypes.wrl#CameraCompass12" "../../../Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.wrl#CameraCompass12" "https://savage.nps.edu/Savage/Tools/HeadsUpDisplays/CameraCompassPrototypes.wrl#CameraCompass12" '>
<field name='enabledtype='SFBoolaccessType='inputOutput'/>
<field name='positionOffsetFromCameratype='SFVec3faccessType='inputOutput'/>
<field name='markerColortype='SFColoraccessType='inputOutput'/>
<field name='labelColortype='SFColoraccessType='inputOutput'/>
</ExternProtoDeclare>
<ExternProtoDeclare name='ViewPositionOrientationappinfo='ViewPositionOrientation prototype provides local position and orientation as user navigates with optional console output'
  url=' "../../../Savage/Tools/Authoring/ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "https://savage.nps.edu/Savage/Tools/Authoring/ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "../../../Savage/Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation" "https://savage.nps.edu/Savage/Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation" '>
<field name='enabledtype='SFBoolaccessType='inputOutput'
 appinfo='Whether or not ViewPositionOrientation sends output to console.'/>

<field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
 appinfo='Output internal trace messages for debugging this node - developer use only can be ignored.'/>

<field name='set_traceEnabledtype='SFBoolaccessType='inputOnly'
 appinfo='Ability to turn output tracing on/off at runtime.'/>

<field name='position_changedtype='SFVec3faccessType='outputOnly'
 appinfo='Output local position.'/>

<field name='orientation_changedtype='SFRotationaccessType='outputOnly'
 appinfo='Output local orientation.'/>

<field name='outputViewpointStringtype='MFStringaccessType='outputOnly'
 appinfo='MFString value of new Viewpoint for example: <Viewpoint position="20 15 20" orientation="-0.516 0.83 0.212 0.9195"/>'/>
</ExternProtoDeclare>
<!-- ======================== -->
<Viewpoint description='walk and rotate to test heads-up display (HUD)position='0 0 25'/>
<Viewpoint description='walk and rotate to test heads-up display (HUD)orientation='0 1 0 -1.57position='-14 0 0'/>
<NavigationInfo speed='10type='"FLY" "ANY"'/>
<Background skyColor='0.7 0.7 0.9'/>
<PointLight location='0 20 0'/>
<!-- Put a coordinate axis in to display orientation -->
<Transform translation='0 -2.5 0'>
<Inline DEF='CoordinateAxes'
  url=' "../../../Savage/Tools/Authoring/CoordinateAxes.x3d" "https://savage.nps.edu/Savage/Tools/Authoring/CoordinateAxes.x3d" "../../../Savage/Tools/Authoring/CoordinateAxes.wrl" "https://savage.nps.edu/Savage/Tools/Authoring/CoordinateAxes.wrl" '/>

<Viewpoint description='Coordinate axes: x=North, y=Up, z=Eastorientation='0 1 0 -1.4position='-3.6 0.2 0.6'/>
<!-- ROUTE information for AxisProximity node:  [from isActive to AxisNavigation.set_bind ] -->
<ProximitySensor DEF='AxisProximitysize='10 10 10'/>
<!-- ROUTE information for AxisNavigation node:  [from AxisProximity.isActive to set_bind ] -->
<NavigationInfo DEF='AxisNavigation'/>
</Transform>
<!-- Test the compass prototype of interest. -->
<ProtoInstance name='CameraCompass12'>
<fieldValue name='enabledvalue='true'/>
<fieldValue name='positionOffsetFromCameravalue='0 5 0'/>
<fieldValue name='markerColorvalue='0.3 0.3 0.8'/>
<fieldValue name='labelColorvalue='1 1 1'/>
</ProtoInstance>
<!-- Put a coordinate axis in to display orientation -->
<!-- Open the VRML console to see ViewPositionOrientation output. This demonstrates that more than one ProximitySensor can be active in the scene at a single time. -->
<ProtoInstance name='ViewPositionOrientation'>
<fieldValue name='enabledvalue='true'/>
</ProtoInstance>
<Transform DEF='Floortranslation='0 -5 0'>
<Shape>
<Box size='5 0.4 5'/>
<Appearance>
<Material diffuseColor='0.3 0.7 0.3'/>
</Appearance>
</Shape>
<Shape>
<Box size='20 0.3 20'/>
<Appearance>
<Material diffuseColor='0.7 0.7 0.3'/>
</Appearance>
</Shape>
<Shape>
<Box size='50 0.2 50'/>
<Appearance>
<Material diffuseColor='0.8 0.8 1'/>
</Appearance>
</Shape>
<Shape>
<Box size='100 0.1 100'/>
<Appearance>
<Material diffuseColor='0.3 1 0.3'/>
</Appearance>
</Shape>
</Transform>
<Transform DEF='CenterInstructionstranslation='0 0.75 0'>
<Billboard>
<Shape>
<Text string='"Walk and rotate to move scene while" "compass heads-up display (HUD)" "CameraCompass12 stays overhead"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<Material diffuseColor='0 0 0emissiveColor='0.2 0.7 0.2'/>
</Appearance>
</Shape>
</Billboard>
</Transform>
<ROUTE fromNode='AxisProximityfromField='isActivetoNode='AxisNavigationtoField='set_bind'/>
</Scene>
</X3D>
<!--

Index for ExternProtoDeclare definitions : CameraCompass12, ViewPositionOrientation

Index for DEF nodes : AxisNavigation, AxisProximity, CenterInstructions, CoordinateAxes, Floor

Index for Viewpoint images : Viewpoint_1, Viewpoint_2, Viewpoint_3
-->

<!-- 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 -->