Interface NavigationInfo

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

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.

Warning: this is an abstract interface that cannot be instantiated as a concrete object. Java programmers typically only need to use concrete objects provided by the org.web3d.x3d.jsail classes. NavigationInfo 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. Avoid this authoring pattern.
  • 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 https://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:
  • Method Summary

    Modifier and Type
    Method
    Description
    float[]
    Provide array of float results within allowed range of [0,infinity) from inputOutput MFFloat field named avatarSize.
    double
    Provide double value in seconds from outputOnly SFTime field named bindTime.
    boolean
    Provide boolean value from inputOutput SFBool field named headlight.
    boolean
    Provide boolean value from outputOnly SFBool field named isBound.
    Provide org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.
    float
    Provide float value within allowed range of [0,infinity) from inputOutput SFFloat field named speed.
    boolean
    Provide boolean value from outputOnly SFBool field named transitionComplete.
    double
    Provide double value in seconds within allowed range of [0,infinity) from inputOutput SFTime field named transitionTime.
    Provide array of String enumeration results with quoted value(s) ["TELEPORT","LINEAR","ANIMATE",...] from inputOutput MFString field named transitionType.
    Provide array of String enumeration results with quoted value(s) ["ANY","WALK","EXAMINE","FLY","LOOKAT","NONE","EXPLORE",...] from inputOutput MFString field named type.
    float
    Provide float value within allowed range of [0,infinity) from inputOutput SFFloat field named visibilityLimit.
    setAvatarSize(float[] newValue)
    Accessor method to assign float array to inputOutput MFFloat field named avatarSize.
    setHeadlight(boolean newValue)
    Accessor method to assign boolean value to inputOutput SFBool field named headlight.
    Accessor method to assign org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.
    setSpeed(float newValue)
    Accessor method to assign float value to inputOutput SFFloat field named speed.
    setTransitionTime(double newValue)
    Accessor method to assign double value in seconds to inputOutput SFTime field named transitionTime.
    Accessor method to assign String enumeration array (""TELEPORT"" | ""LINEAR"" | ""ANIMATE"") to inputOutput MFString field named transitionType.
    setType(String[] newValue)
    Accessor method to assign String enumeration array (""ANY"" | ""WALK"" | ""EXAMINE"" | ""FLY"" | ""LOOKAT"" | ""NONE"" | ""EXPLORE"") to inputOutput MFString field named type.
    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.
      • Hint: content must be visible to be collidable and to be pickable.
      • Warning: data type is MFFloat rather than SFVec3f, be sure that three values are provided in the array since validation tools are typically unable to detect erroneous data prior to run time.
      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.
      • Hint: content must be visible to be collidable and to be pickable.
      • Warning: data type is MFFloat rather than SFVec3f, be sure that three values are provided in the array since validation tools are typically unable to detect erroneous data prior to run time.
      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 org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.

      Tooltip: [X3DMetadataObject] Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.
      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:
    • setMetadata

      NavigationInfo setMetadata(X3DMetadataObject newValue)
      Accessor method to assign org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.

      Tooltip: [X3DMetadataObject] Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.
      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:
    • 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

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

      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 "https://www.web3d.org" "https://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(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 "https://www.web3d.org" "https://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).