<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
<X3D profile='Immersive' version='3.3' xmlns:xsd='https://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.3.xsd'>
  <head>
    <meta content='NavigationInfoExample.x3d' name='title'/>
    <meta content='This example provides three Viewpoint nodes bound to corresponding selectable NavigationInfo nodes that override navigation modes in the Hello World example, superseding default NavigationInfo type provided in that contained Inline model. To test this model, change viewpoints and then try to navigate each time, noting the new navigation mode.' name='description'/>
    <meta content='NavigationInfo nodes have their own binding stack, similar to Viewpoint nodes, meaning that they can be activated (bound) in any order, but only one can be active at a given time. Cross-connecting a custom NavigationInfo to some Viewpoints can improve user experience in larger scenes.' name='info'/>
    <meta content='Don Brutzman' name='creator'/>
    <meta content='Leonard Daly' name='creator'/>
    <meta content='14 November 2005' name='created'/>
    <meta content='12 August 2025' name='modified'/>
    <meta content='NavigationInfoExampleDashboard.png' name='Image'/>
    <meta content='NavigationInfoExampleIndexPage.png' name='Image'/>
    <meta content='X3D Scene Authoring Hints: Viewing and Navigation https://web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Viewpoints' name='reference'/>
    <meta content='https://www.web3d.org/x3d/content/examples/X3dResources.html' name='reference'/>
    <meta content='Copyright (c) 2005, Daly Realism and Don Brutzman' name='rights'/>
    <meta content='X3D book, X3D graphics, X3D-Edit, http://www.x3dGraphics.com' name='subject'/>
    <meta content='https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter04ViewingNavigation/NavigationInfoExample.x3d' name='identifier'/>
    <meta content='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
    <meta content='../license.html' name='license'/>
  </head>
  <Scene>
    <WorldInfo title='NavigationInfoExample.x3d'/>
    <!-- Because these NavigationInfo nodes are here in the parent scene, the first one is bound at load time, and thus governs the active navigation modes -->
    <!-- Note that an author can control what choices a user has available, and initial type selected, while the user can select among navigation choices from available options -->
    <!-- Author option: experiment by swapping order of these NavigationInfo nodes, first one is bound at load time. -->
    <!-- FLY_FIRST is initial choice so that it noticeably overrides EXAMINE ANY found in the Inline HelloWorld scene -->
    <NavigationInfo DEF='FLY_FIRST' type='"FLY" "ANY"'/>
    <NavigationInfo DEF='DEFAULT_EXAMINE_FIRST'/>
    <NavigationInfo DEF='SIT_TIGHT' type='"NONE"'/>
    <!-- For this scene, first Viewpoint bound also binds corresponding NavigationInfo -->
    <Viewpoint DEF='view_navigation_FLY' description='user navigation mode changed to FLY ANY'/>
    <Viewpoint DEF='view_navigation_EXAMINE' description='user navigation mode changed to EXAMINE ANY' orientation='0 1 0 -0.380506' position='-4 0 10'/>
    <Viewpoint DEF='view_navigation_NONE' description='disable user navigation mode to NONE' orientation='0 1 0 0.380506' position='4 0 10'/>
    <ROUTE fromField='isBound' fromNode='view_navigation_FLY' toField='set_bind' toNode='FLY_FIRST'/>
    <ROUTE fromField='isBound' fromNode='view_navigation_EXAMINE' toField='set_bind' toNode='DEFAULT_EXAMINE_FIRST'/>
    <ROUTE fromField='isBound' fromNode='view_navigation_NONE' toField='set_bind' toNode='SIT_TIGHT'/>
    <!-- Finally here is original scene which also has a Viewpoint and a default EXAMINE ANY for NavigationInfo.type -->
    <Inline url='"../HelloWorld.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/HelloWorld.x3d" "../HelloWorld.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/HelloWorld.wrl"'>
      <MetadataString containerField='metadata' name='profile' value='"Immersive"'/>
    </Inline>
  </Scene>
</X3D>