Interface NavigationInfo

All Superinterfaces:
X3DBindableNode, X3DChildNode, X3DNode
All Known Implementing Classes:
NavigationInfoObject

public interface NavigationInfo
extends X3DBindableNode
NavigationInfo describes the user's viewing model, user navigation-interaction modalities, and also dimensional characteristics of the user's (typically invisible) avatar.

X3D node tooltip: [X3DBindableNode] NavigationInfo describes the user's viewing model, user navigation-interaction modalities, and also dimensional characteristics of the user's (typically invisible) avatar.
  • Hint: for inspection of simple objects, usability often improves with type="EXAMINE" "ANY"
  • Hint: Background, Fog, GeoViewpoint, NavigationInfo, OrthoViewpoint, TextureBackground and Viewpoint are bindable nodes, meaning that no more than one of each node type can be active at a given time.
  • Hint: NavigationInfo types '"WALK" "FLY"' support camera-to-object collision detection.
  • Warning: results are undefined if a bindable node (Background, Fog, NavigationInfo, OrthoViewpoint, TextureBackground, Viewpoint) is a contained descendant node of either LOD or Switch.
  • Hint: Regardless of viewpoint jump value at bind time, the relative viewing transformation between user's view and defined position/orientation is stored for later use when un-jumping (returning to the viewpoint when subsequent viewpoint is unbound).
  • Hint: customizable design pattern for dedicated Viewpoint/NavigationInfo pair: <Viewpoint DEF='SpecialView'/> <NavigationInfo DEF='SpecialNav'/> <ROUTE fromNode='SpecialView' fromField='isBound' toNode='SpecialNav' toField='set_bind'/>
  • Hint: X3D Scene Authoring Hints, Viewpoints http://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Viewpoints

Package hint: This interface is defined by the X3D Java Language Binding Specification for the Scene Authoring Interface (SAI).
See Also:
SAI Java Specification: TODO, X3D Abstract Specification: NavigationInfo, X3D Tooltips: NavigationInfo, X3D Scene Authoring Hints: Viewpoints
  • Method Summary

    Modifier and Type Method Description
    float[] getAvatarSize()
    Provide array of float results within allowed range of [0,infinity) from inputOutput MFFloat field named avatarSize.
    double getBindTime()
    Provide double value in seconds from outputOnly SFTime field named bindTime.
    boolean getHeadlight()
    Provide boolean value from inputOutput SFBool field named headlight.
    boolean getIsBound()
    Provide boolean value from outputOnly SFBool field named isBound.
    X3DMetadataObject getMetadata()
    Provide X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.
    float getSpeed()
    Provide float value within allowed range of [0,infinity) from inputOutput SFFloat field named speed.
    boolean getTransitionComplete()
    Provide boolean value from outputOnly SFBool field named transitionComplete.
    double getTransitionTime()
    Provide double value in seconds within allowed range of [0,infinity) from inputOutput SFTime field named transitionTime.
    java.lang.String[] getTransitionType()
    Provide array of String enumeration results with quoted value(s) ["TELEPORT","LINEAR","ANIMATE",...] from inputOutput MFString field named transitionType.
    java.lang.String[] getType()
    Provide array of String enumeration results with quoted value(s) ["ANY","WALK","EXAMINE","FLY","LOOKAT","NONE","EXPLORE",...] from inputOutput MFString field named type.
    float getVisibilityLimit()
    Provide float value within allowed range of [0,infinity) from inputOutput SFFloat field named visibilityLimit.
    NavigationInfo setAvatarSize​(float[] newValue)
    Accessor method to assign float array to inputOutput MFFloat field named avatarSize.
    NavigationInfo setHeadlight​(boolean newValue)
    Accessor method to assign boolean value to inputOutput SFBool field named headlight.
    NavigationInfo setMetadata​(X3DMetadataObject newValue)
    Accessor method to assign X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.
    NavigationInfo setSpeed​(float newValue)
    Accessor method to assign float value to inputOutput SFFloat field named speed.
    NavigationInfo setTransitionTime​(double newValue)
    Accessor method to assign double value in seconds to inputOutput SFTime field named transitionTime.
    NavigationInfo setTransitionType​(java.lang.String[] newValue)
    Accessor method to assign String enumeration array (""TELEPORT"" | ""LINEAR"" | ""ANIMATE"") to inputOutput MFString field named transitionType.
    NavigationInfo setType​(java.lang.String[] newValue)
    Accessor method to assign String enumeration array (""ANY"" | ""WALK"" | ""EXAMINE"" | ""FLY"" | ""LOOKAT"" | ""NONE"" | ""EXPLORE"") to inputOutput MFString field named type.
    NavigationInfo setVisibilityLimit​(float newValue)
    Accessor method to assign float value to inputOutput SFFloat field named visibilityLimit.
  • Method Details

    • getAvatarSize

      float[] getAvatarSize()
      Provide array of float results within allowed range of [0,infinity) from inputOutput MFFloat field named avatarSize.

      Tooltip: avatarSize triplet values define three separate parameters: (a) collisionDistance between user and geometry, i.e. near clipping plane of view frustrum, default 0.25m, (b) viewer height above terrain, default 1.6m, and (c) tallest height viewer can WALK over, default 0.75m.
      • Hint: X3D specification recommends that browsers set near clipping plane to one-half of avatarSize.CollisionDistance value.
      • Warning: important design thumbrule is to keep (visibilityLimit / avatarSize.CollisionDistance) < 10,000 to avoid aliasing artifacts (i.e. polygon "tearing").
      • Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping https://en.wikipedia.org/wiki/Clipping_(computer_graphics) Interchange profile hint: this field may be ignored, applying the default value regardless.
      • Hint: transformation hierarchy of currently bound Viewpoint node scales avatarSize, but translations and rotations have no effect.
      Returns:
      value of avatarSize field
    • setAvatarSize

      NavigationInfo setAvatarSize​(float[] newValue)
      Accessor method to assign float array to inputOutput MFFloat field named avatarSize.

      Tooltip: avatarSize triplet values define three separate parameters: (a) collisionDistance between user and geometry, i.e. near clipping plane of view frustrum, default 0.25m, (b) viewer height above terrain, default 1.6m, and (c) tallest height viewer can WALK over, default 0.75m.
      • Hint: X3D specification recommends that browsers set near clipping plane to one-half of avatarSize.CollisionDistance value.
      • Warning: important design thumbrule is to keep (visibilityLimit / avatarSize.CollisionDistance) < 10,000 to avoid aliasing artifacts (i.e. polygon "tearing").
      • Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping https://en.wikipedia.org/wiki/Clipping_(computer_graphics) Interchange profile hint: this field may be ignored, applying the default value regardless.
      • Hint: transformation hierarchy of currently bound Viewpoint node scales avatarSize, but translations and rotations have no effect.
      Parameters:
      newValue - is new value for the avatarSize field.
      Returns:
      NavigationInfo - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getBindTime

      double getBindTime()
      Provide double value in seconds from outputOnly SFTime field named bindTime.

      Tooltip: Event sent reporting timestamp when node becomes active/inactive.
      • Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.
      Specified by:
      getBindTime in interface X3DBindableNode
      Returns:
      value of bindTime field
    • getHeadlight

      boolean getHeadlight()
      Provide boolean value from inputOutput SFBool field named headlight.

      Tooltip: Enable/disable directional light that always points in the direction the user is looking. *
      Returns:
      value of headlight field
    • setHeadlight

      NavigationInfo setHeadlight​(boolean newValue)
      Accessor method to assign boolean value to inputOutput SFBool field named headlight.

      Tooltip: Enable/disable directional light that always points in the direction the user is looking. *
      Parameters:
      newValue - is new value for the headlight field.
      Returns:
      NavigationInfo - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getIsBound

      boolean getIsBound()
      Provide boolean value from outputOnly SFBool field named isBound.

      Tooltip: Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated.
      • Hint: paired node operations can be established by connecting set_bind and isBound fields of corresponding bindable nodes.
      • Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.
      Specified by:
      getIsBound in interface X3DBindableNode
      Returns:
      value of isBound field
    • getMetadata

      X3DMetadataObject getMetadata()
      Provide X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.
      Specified by:
      getMetadata in interface X3DBindableNode
      Specified by:
      getMetadata in interface X3DChildNode
      Specified by:
      getMetadata in interface X3DNode
      Returns:
      value of metadata field
      See Also:
      X3D Scene Authoring Hints: Metadata Nodes
    • setMetadata

      NavigationInfo setMetadata​(X3DMetadataObject newValue)
      Accessor method to assign X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.
      Specified by:
      setMetadata in interface X3DBindableNode
      Specified by:
      setMetadata in interface X3DChildNode
      Specified by:
      setMetadata in interface X3DNode
      Parameters:
      newValue - is new value for the metadata field.
      Returns:
      NavigationInfo - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
      See Also:
      X3D Scene Authoring Hints: Metadata Nodes
    • getSpeed

      float getSpeed()
      Provide float value within allowed range of [0,infinity) from inputOutput SFFloat field named speed.

      Tooltip: [0,+infinity) Default rate at which viewer travels through scene, meters/second.
      • Warning: default 1 m/s usually seems slow for ordinary navigation. Interchange profile hint: this field may be ignored, applying the default value regardless.
      Returns:
      value of speed field
    • setSpeed

      NavigationInfo setSpeed​(float newValue)
      Accessor method to assign float value to inputOutput SFFloat field named speed.

      Tooltip: [0,+infinity) Default rate at which viewer travels through scene, meters/second.
      • Warning: default 1 m/s usually seems slow for ordinary navigation. Interchange profile hint: this field may be ignored, applying the default value regardless.
      Parameters:
      newValue - is new value for the speed field.
      Returns:
      NavigationInfo - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getTransitionComplete

      boolean getTransitionComplete()
      Provide boolean value from outputOnly SFBool field named transitionComplete.

      Tooltip: Event signaling viewpoint transition complete. Interchange profile hint: this field may be ignored.
      • Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.
      Returns:
      value of transitionComplete field
    • getTransitionTime

      double getTransitionTime()
      Provide double value in seconds within allowed range of [0,infinity) from inputOutput SFTime field named transitionTime.

      Tooltip: transitionTime defines the expected duration of viewpoint transition in seconds.
      • Hint: If transitionType is "ANIMATE", transitionTime provides browser-dependent animation parameters. Interchange profile hint: this field may be ignored, applying the default value regardless.
      Returns:
      value of transitionTime field
    • setTransitionTime

      NavigationInfo setTransitionTime​(double newValue)
      Accessor method to assign double value in seconds to inputOutput SFTime field named transitionTime.

      Tooltip: transitionTime defines the expected duration of viewpoint transition in seconds.
      • Hint: If transitionType is "ANIMATE", transitionTime provides browser-dependent animation parameters. Interchange profile hint: this field may be ignored, applying the default value regardless.
      Parameters:
      newValue - is new value for the transitionTime field.
      Returns:
      NavigationInfo - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getTransitionType

      java.lang.String[] getTransitionType()
      Provide array of String enumeration results with quoted value(s) ["TELEPORT","LINEAR","ANIMATE",...] from inputOutput MFString field named transitionType.

      Tooltip: Camera transition between viewpoints. Enter one or more quoted SFString values: "ANIMATE" "TELEPORT" "LINEAR".
      • Hint: "ANIMATE" behavior is browser-specific, "TELEPORT" is immediate, and "LINEAR" may proceed directly through intervening objects.
      Returns:
      value of transitionType field
    • setTransitionType

      NavigationInfo setTransitionType​(java.lang.String[] newValue)
      Accessor method to assign String enumeration array (""TELEPORT"" | ""LINEAR"" | ""ANIMATE"") to inputOutput MFString field named transitionType.

      Tooltip: Camera transition between viewpoints. Enter one or more quoted SFString values: "ANIMATE" "TELEPORT" "LINEAR".
      • Hint: "ANIMATE" behavior is browser-specific, "TELEPORT" is immediate, and "LINEAR" may proceed directly through intervening objects.
      Parameters:
      newValue - is new value for the transitionType field.
      Returns:
      NavigationInfo - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getType

      java.lang.String[] getType()
      Provide array of String enumeration results with quoted value(s) ["ANY","WALK","EXAMINE","FLY","LOOKAT","NONE","EXPLORE",...] from inputOutput MFString field named type.

      Tooltip: Enter one or more quoted SFString values: "EXAMINE" "WALK" "FLY" "LOOKAT" "EXPLORE" "ANY" "NONE".
      • Hint: for inspection of simple objects, usability often improves with type="EXAMINE" "ANY".
      • Hint: types WALK and FLY force strict camera-to-object collision detection.
      • Hint: see Collision node for further details on camera-to-object collision detection.
      • Hint: MFString arrays can have multiple values, so separate each individual string by quote marks "http://www.web3d.org" "http://www.web3d.org/about" "etc." ] Interchange profile hint: this field may be ignored, applying the default value regardless.
      Returns:
      value of type field
    • setType

      NavigationInfo setType​(java.lang.String[] newValue)
      Accessor method to assign String enumeration array (""ANY"" | ""WALK"" | ""EXAMINE"" | ""FLY"" | ""LOOKAT"" | ""NONE"" | ""EXPLORE"") to inputOutput MFString field named type.

      Tooltip: Enter one or more quoted SFString values: "EXAMINE" "WALK" "FLY" "LOOKAT" "EXPLORE" "ANY" "NONE".
      • Hint: for inspection of simple objects, usability often improves with type="EXAMINE" "ANY".
      • Hint: types WALK and FLY force strict camera-to-object collision detection.
      • Hint: see Collision node for further details on camera-to-object collision detection.
      • Hint: MFString arrays can have multiple values, so separate each individual string by quote marks "http://www.web3d.org" "http://www.web3d.org/about" "etc." ] Interchange profile hint: this field may be ignored, applying the default value regardless.
      Parameters:
      newValue - is new value for the type field.
      Returns:
      NavigationInfo - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getVisibilityLimit

      float getVisibilityLimit()
      Provide float value within allowed range of [0,infinity) from inputOutput SFFloat field named visibilityLimit.

      Tooltip: Geometry beyond the visibilityLimit may not be rendered (far clipping plane of the view frustrum).
      • Hint: visibilityLimit=0.0 indicates an infinite visibility limit (no far clipping plane).
      • Hint: set visibilityLimit to appropriate positive value in meters to define far culling plane of view frustum.
      • Hint: X3D specification recommends that browsers set near clipping plane to one-half of avatarSize.CollisionDistance value.
      • Warning: important design thumbrule is to keep (visibilityLimit / avatarSize.CollisionDistance) < 10,000 to avoid aliasing artifacts (i.e. polygon "tearing").
      • Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping https://en.wikipedia.org/wiki/Clipping_(computer_graphics) Interchange profile hint: this field may be ignored, applying the default value regardless.
      Returns:
      value of visibilityLimit field
    • setVisibilityLimit

      NavigationInfo setVisibilityLimit​(float newValue)
      Accessor method to assign float value to inputOutput SFFloat field named visibilityLimit.

      Tooltip: Geometry beyond the visibilityLimit may not be rendered (far clipping plane of the view frustrum).
      • Hint: visibilityLimit=0.0 indicates an infinite visibility limit (no far clipping plane).
      • Hint: set visibilityLimit to appropriate positive value in meters to define far culling plane of view frustum.
      • Hint: X3D specification recommends that browsers set near clipping plane to one-half of avatarSize.CollisionDistance value.
      • Warning: important design thumbrule is to keep (visibilityLimit / avatarSize.CollisionDistance) < 10,000 to avoid aliasing artifacts (i.e. polygon "tearing").
      • Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping https://en.wikipedia.org/wiki/Clipping_(computer_graphics) Interchange profile hint: this field may be ignored, applying the default value regardless.
      Parameters:
      newValue - is new value for the visibilityLimit field.
      Returns:
      NavigationInfo - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).