Interface NavigationInfo
- All Superinterfaces:
X3DBindableNode
,X3DChildNode
,X3DNode
- All Known Implementing Classes:
NavigationInfo
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
Package hint: This interface is defined by the X3D Java Language Binding Specification for the Scene Authoring Interface (SAI).
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 TypeMethodDescriptionfloat[]
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
getSpeed()
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.String[]
Provide array of String enumeration results with quoted value(s) ["TELEPORT","LINEAR","ANIMATE",...] from inputOutput MFString field named transitionType.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
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.setMetadata
(X3DMetadataObject newValue) 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.setTransitionType
(String[] newValue) Accessor method to assign String enumeration array (""TELEPORT"" | ""LINEAR"" | ""ANIMATE"") to inputOutput MFString field named transitionType.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
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 interfaceX3DBindableNode
- 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
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 interfaceX3DBindableNode
- 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.- Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#Metadata
- Specified by:
getMetadata
in interfaceX3DBindableNode
- Specified by:
getMetadata
in interfaceX3DChildNode
- Specified by:
getMetadata
in interfaceX3DNode
- Returns:
- value of metadata field
- See Also:
-
setMetadata
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.- Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#Metadata
- Specified by:
setMetadata
in interfaceX3DBindableNode
- Specified by:
setMetadata
in interfaceX3DChildNode
- Specified by:
setMetadata
in interfaceX3DNode
- 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
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
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
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
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
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).
-