X3D Model Documentation: NavigationInfoExample.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
  3  <X3D profile='Immersive' version='3.3 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.3.xsd'>
  4       <head>
  5            <meta name='titlecontent=' NavigationInfoExample.x3d '/>
  6            <meta name='descriptioncontent='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.'/>
  7            <meta name='infocontent='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.'/>
  8            <meta name='creatorcontent='Don Brutzman'/>
  9            <meta name='creatorcontent='Leonard Daly'/>
 10            <meta name='createdcontent='14 November 2005'/>
 11            <meta name='modifiedcontent='12 August 2025'/>
 12            <meta name='Imagecontent='NavigationInfoExampleDashboard.png'/>
 13            <meta name='Imagecontent='NavigationInfoExampleIndexPage.png'/>
 14            <meta name='referencecontent='X3D Scene Authoring Hints: Viewing and Navigation https://web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Viewpoints'/>
 15            <meta name='referencecontent=' https://www.web3d.org/x3d/content/examples/X3dResources.html '/>
 16            <meta name='rightscontent='Copyright (c) 2005, Daly Realism and Don Brutzman'/>
 17            <meta name='subjectcontent='X3D book, X3D graphics, X3D-Edit, http://www.x3dGraphics.com'/>
 18            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter04ViewingNavigation/NavigationInfoExample.x3d '/>
 19            <meta name='generatorcontent='X3D-Edit 4.0, https://savage.nps.edu/X3D-Edit'/>
 20            <meta name='licensecontent='../license.html'/>
 21       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: DEFAULT_EXAMINE_FIRST, FLY_FIRST, SIT_TIGHT, view_navigation_EXAMINE, view_navigation_FLY, view_navigation_NONE

Index for Viewpoint nodes: view_navigation_EXAMINE, view_navigation_FLY, view_navigation_NONE
-->
 22       <Scene>
 23            <WorldInfo title='NavigationInfoExample.x3d'/>
 24            <!-- 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 -->
 25            <!-- 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 -->
 26            <!-- Author option: experiment by swapping order of these NavigationInfo nodes, first one is bound at load time. -->
 27            <!-- FLY_FIRST is initial choice so that it noticeably overrides EXAMINE ANY found in the Inline HelloWorld scene -->
 28 
          <!-- ROUTE information for FLY_FIRST node:  [from view_navigation_FLY.isBound to set_bind ] -->
          <NavigationInfo DEF='FLY_FIRSTtype='"FLY" "ANY"'/>
 29 
          <!-- ROUTE information for DEFAULT_EXAMINE_FIRST node:  [from view_navigation_EXAMINE.isBound to set_bind ] -->
          <NavigationInfo DEF='DEFAULT_EXAMINE_FIRST'/>
 30 
          <!-- ROUTE information for SIT_TIGHT node:  [from view_navigation_NONE.isBound to set_bind ] -->
          <NavigationInfo DEF='SIT_TIGHTtype='"NONE"'/>
 31            <!-- For this scene, first Viewpoint bound also binds corresponding NavigationInfo -->
 32 
          <!-- ROUTE information for view_navigation_FLY node:  [from isBound to FLY_FIRST.set_bind ] -->
          <Viewpoint DEF='view_navigation_FLYdescription='user navigation mode changed to FLY ANY'/>
 33 
          <!-- ROUTE information for view_navigation_EXAMINE node:  [from isBound to DEFAULT_EXAMINE_FIRST.set_bind ] -->
          <Viewpoint DEF='view_navigation_EXAMINEdescription='user navigation mode changed to EXAMINE ANYorientation='0 1 0 -0.380506position='-4 0 10'/>
 34 
          <!-- ROUTE information for view_navigation_NONE node:  [from isBound to SIT_TIGHT.set_bind ] -->
          <Viewpoint DEF='view_navigation_NONEdescription='disable user navigation mode to NONEorientation='0 1 0 0.380506position='4 0 10'/>
 35            < ROUTE  fromNode='view_navigation_FLY' fromField='isBound' toNode='FLY_FIRST' toField='set_bind'/>
 36            < ROUTE  fromNode='view_navigation_EXAMINE' fromField='isBound' toNode='DEFAULT_EXAMINE_FIRST' toField='set_bind'/>
 37            < ROUTE  fromNode='view_navigation_NONE' fromField='isBound' toNode='SIT_TIGHT' toField='set_bind'/>
 38            <!-- Finally here is original scene which also has a Viewpoint and a default EXAMINE ANY for NavigationInfo.type -->
 39            <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" '>
 40                 <MetadataString name='profilevalue='"Immersive"'/>
 41            </Inline>
 42       </Scene>
 43  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: DEFAULT_EXAMINE_FIRST, FLY_FIRST, SIT_TIGHT, view_navigation_EXAMINE, view_navigation_FLY, view_navigation_NONE

Index for Viewpoint nodes: view_navigation_EXAMINE, view_navigation_FLY, view_navigation_NONE
-->
X3D Tooltips element index: head, Inline, meta, MetadataString, NavigationInfo, ROUTE, Scene, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

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

view_navigation_EXAMINE
Viewpoint
isBound
SFBool

ROUTE
event to
(1)
DEFAULT_EXAMINE_FIRST
NavigationInfo
set_bind
SFBool

view_navigation_FLY
Viewpoint
isBound
SFBool

ROUTE
event to
(1)
FLY_FIRST
NavigationInfo
set_bind
SFBool

view_navigation_NONE
Viewpoint
isBound
SFBool

ROUTE
event to
(1)
SIT_TIGHT
NavigationInfo
set_bind
SFBool

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://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter04ViewingNavigation/NavigationInfoExampleIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter04ViewingNavigation/NavigationInfoExample.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode  DEF='idNamefield='value'/> matches XML terminology <XmlElement  DEF='idNameattribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
-->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->