Interface Viewpoint

All Superinterfaces:
X3DBindableNode, X3DChildNode, X3DNode, X3DViewpointNode
All Known Implementing Classes:
Viewpoint

public interface Viewpoint extends X3DViewpointNode
Viewpoint provides a specific location and direction where the user may view the scene.

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. Viewpoint node tooltip: [X3DViewpointNode] Viewpoint provides a specific location and direction where the user may view the scene. Viewpoints are the primary way for a user to navigate within a scene, and for an author to show critical aspects of a model. Unless modified by the orientation field, the default direction for a Viewpoint to look is along the -Z axis.
  • Hint: a sequence of good Viewpoints with understandable descriptions can provide a guided tour of a model.
  • Hint: the currently bound NavigationInfo node has a major effect on how a user might change viewing position and orientation after reaching this Viewpoint.
  • Hint: consider paired Viewpoint/NavigationInfo node combinations by defining ROUTE connections between corresponding isBound/set_bind fields.
  • Hint: consider how users might interact with the current X3D model, either standalone or as an Inline within a larger parent scene.
  • 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: GeoViewpoint OrthoViewpoint and Viewpoint share the same binding stack, so no more than one of these nodes can be bound and active at a given time.
  • 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.
  • Warning: do not include GeoViewpoint OrthoViewpoint or Viewpoint as a child of LOD or Switch, instead use ViewpointGroup as parent to constrain location proximity where the viewpoint is available to user.
  • 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
    double
    Provide double value in seconds from outputOnly SFTime field named bindTime.
    float[]
    Provide array of 3-tuple float results unit axis, angle (in radians) from inputOutput SFVec3f field named centerOfRotation.
    Provide String value from inputOutput SFString field named description.
    float
    Provide float value from inputOutput SFFloat field named farDistance.
    float
    Provide float value within allowed range of (0,3.1416) from inputOutput SFFloat field named fieldOfView.
    boolean
    Provide boolean value from outputOnly SFBool field named isBound.
    boolean
    Provide boolean value from inputOutput SFBool field named jump.
    Provide org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) from inputOutput SFNode field metadata.
    Provide org.web3d.x3d.sai.Navigation.NavigationInfo instance (using a properly typed node) from inputOutput SFNode field navigationInfo.
    float
    Provide float value from inputOutput SFFloat field named nearDistance.
    float[]
    Provide array of 4-tuple float results unit axis, angle (in radians) from inputOutput SFRotation field named orientation.
    float[]
    Provide array of 3-tuple float results from inputOutput SFVec3f field named position.
    boolean
    Provide boolean value from inputOutput SFBool field named retainUserOffsets.
    boolean
    Provide boolean value from inputOutput SFBool field named viewAll.
    setCenterOfRotation(float[] newValue)
    Accessor method to assign 3-tuple float array unit axis, angle (in radians) to inputOutput SFVec3f field named centerOfRotation.
    Accessor method to assign String value to inputOutput SFString field named description.
    setFarDistance(float newValue)
    Accessor method to assign float value to inputOutput SFFloat field named farDistance.
    setFieldOfView(float newValue)
    Accessor method to assign float value to inputOutput SFFloat field named fieldOfView.
    setJump(boolean newValue)
    Accessor method to assign boolean value to inputOutput SFBool field named jump.
    Accessor method to assign org.web3d.x3d.sai.Core.X3DMetadataObject instance (using a properly typed node) to inputOutput SFNode field metadata.
    Accessor method to assign org.web3d.x3d.sai.Navigation.NavigationInfo instance (using a properly typed node) to inputOutput SFNode field navigationInfo.
    setNearDistance(float newValue)
    Accessor method to assign float value to inputOutput SFFloat field named nearDistance.
    setOrientation(float[] newValue)
    Accessor method to assign 4-tuple float array unit axis, angle (in radians) to inputOutput SFRotation field named orientation.
    setPosition(float[] newValue)
    Accessor method to assign 3-tuple float array to inputOutput SFVec3f field named position.
    setRetainUserOffsets(boolean newValue)
    Accessor method to assign boolean value to inputOutput SFBool field named retainUserOffsets.
    setViewAll(boolean newValue)
    Accessor method to assign boolean value to inputOutput SFBool field named viewAll.
  • Method Details

    • 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
      Specified by:
      getBindTime in interface X3DViewpointNode
      Returns:
      value of bindTime field
    • getCenterOfRotation

      float[] getCenterOfRotation()
      Provide array of 3-tuple float results unit axis, angle (in radians) from inputOutput SFVec3f field named centerOfRotation.

      Tooltip: centerOfRotation specifies center point about which to rotate user's eyepoint when in EXAMINE or LOOKAT mode. *
      Returns:
      value of centerOfRotation field
    • setCenterOfRotation

      Viewpoint setCenterOfRotation(float[] newValue)
      Accessor method to assign 3-tuple float array unit axis, angle (in radians) to inputOutput SFVec3f field named centerOfRotation.

      Tooltip: centerOfRotation specifies center point about which to rotate user's eyepoint when in EXAMINE or LOOKAT mode. *
      Parameters:
      newValue - is new value for the centerOfRotation field.
      Returns:
      Viewpoint - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getDescription

      String getDescription()
      Provide String value from inputOutput SFString field named description.

      Tooltip: Text description or navigation hint to describe the significance of this model Viewpoint.
      • Hint: a sequence of good Viewpoints with understandable descriptions can provide a guided tour of a model.
      • Hint: the currently bound NavigationInfo node has a major effect on how a user might change viewing position and orientation after reaching this Viewpoint.
      • Hint: consider paired Viewpoint/NavigationInfo node combinations by defining ROUTE connections between corresponding isBound/set_bind fields.
      • Hint: include space characters since a description is not a DEF identifier. Write short phrases that make descriptions clear and readable.
      • Warning: without description, this Viewpoint is unlikely to appear on browser Viewpoint menus.
      • Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as & for & ampersand character, or " for " quotation-mark character).
      Specified by:
      getDescription in interface X3DViewpointNode
      Returns:
      value of description field
    • setDescription

      Viewpoint setDescription(String newValue)
      Accessor method to assign String value to inputOutput SFString field named description.

      Tooltip: Text description or navigation hint to describe the significance of this model Viewpoint.
      • Hint: a sequence of good Viewpoints with understandable descriptions can provide a guided tour of a model.
      • Hint: the currently bound NavigationInfo node has a major effect on how a user might change viewing position and orientation after reaching this Viewpoint.
      • Hint: consider paired Viewpoint/NavigationInfo node combinations by defining ROUTE connections between corresponding isBound/set_bind fields.
      • Hint: include space characters since a description is not a DEF identifier. Write short phrases that make descriptions clear and readable.
      • Warning: without description, this Viewpoint is unlikely to appear on browser Viewpoint menus.
      • Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as & for & ampersand character, or " for " quotation-mark character).
      Specified by:
      setDescription in interface X3DViewpointNode
      Parameters:
      newValue - is new value for the description field.
      Returns:
      Viewpoint - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getFarDistance

      float getFarDistance()
      Provide float value from inputOutput SFFloat field named farDistance.

      Tooltip: or (0,+infinity) farDistance defines maximum clipping plane distance allowed for object display.
      Specified by:
      getFarDistance in interface X3DViewpointNode
      Returns:
      value of farDistance field
    • setFarDistance

      Viewpoint setFarDistance(float newValue)
      Accessor method to assign float value to inputOutput SFFloat field named farDistance.

      Tooltip: or (0,+infinity) farDistance defines maximum clipping plane distance allowed for object display.
      Specified by:
      setFarDistance in interface X3DViewpointNode
      Parameters:
      newValue - is new value for the farDistance field.
      Returns:
      Viewpoint - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getFieldOfView

      float getFieldOfView()
      Provide float value within allowed range of (0,3.1416) from inputOutput SFFloat field named fieldOfView.

      Tooltip: Preferred minimum viewing angle from this viewpoint in radians, providing minimum height or minimum width (whichever is smaller). Small field of view roughly corresponds to a telephoto lens, large field of view roughly corresponds to a wide-angle lens.
      • Hint: modifying Viewpoint distance to object may be better for zooming.
      • Warning: fieldOfView may not be correct for different window sizes and aspect ratios.
      • Warning: for VR/AR/MR/XR users wearing a head-mounted display (HMD), animating this field may induce motion sickness. Interchange profile
      • Hint: this field may be ignored, applying the default value regardless.
      Returns:
      value of fieldOfView field
    • setFieldOfView

      Viewpoint setFieldOfView(float newValue)
      Accessor method to assign float value to inputOutput SFFloat field named fieldOfView.

      Tooltip: Preferred minimum viewing angle from this viewpoint in radians, providing minimum height or minimum width (whichever is smaller). Small field of view roughly corresponds to a telephoto lens, large field of view roughly corresponds to a wide-angle lens.
      • Hint: modifying Viewpoint distance to object may be better for zooming.
      • Warning: fieldOfView may not be correct for different window sizes and aspect ratios.
      • Warning: for VR/AR/MR/XR users wearing a head-mounted display (HMD), animating this field may induce motion sickness. Interchange profile
      • Hint: this field may be ignored, applying the default value regardless.
      Parameters:
      newValue - is new value for the fieldOfView field.
      Returns:
      Viewpoint - 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
      Specified by:
      getIsBound in interface X3DViewpointNode
      Returns:
      value of isBound field
    • getJump

      boolean getJump()
      Provide boolean value from inputOutput SFBool field named jump.

      Tooltip: Transition instantly by jumping, otherwise smoothly adjust offsets in place when changing to this Viewpoint.
      • Hint: see NavigationInfo.transitionType for the manner in which animated Viewpoint transistions occur.
      • Hint: set jump=true for instantaneous camera motion when going to this viewpoint.
      • Warning: for VR/AR/MR/XR users wearing head-mounted displays, animating transitions between viewpoints may induce motion sickness.
      Specified by:
      getJump in interface X3DViewpointNode
      Returns:
      value of jump field
    • setJump

      Viewpoint setJump(boolean newValue)
      Accessor method to assign boolean value to inputOutput SFBool field named jump.

      Tooltip: Transition instantly by jumping, otherwise smoothly adjust offsets in place when changing to this Viewpoint.
      • Hint: see NavigationInfo.transitionType for the manner in which animated Viewpoint transistions occur.
      • Hint: set jump=true for instantaneous camera motion when going to this viewpoint.
      • Warning: for VR/AR/MR/XR users wearing head-mounted displays, animating transitions between viewpoints may induce motion sickness.
      Specified by:
      setJump in interface X3DViewpointNode
      Parameters:
      newValue - is new value for the jump field.
      Returns:
      Viewpoint - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • 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
      Specified by:
      getMetadata in interface X3DViewpointNode
      Returns:
      value of metadata field
      See Also:
    • setMetadata

      Viewpoint 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
      Specified by:
      setMetadata in interface X3DViewpointNode
      Parameters:
      newValue - is new value for the metadata field.
      Returns:
      Viewpoint - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
      See Also:
    • getNavigationInfo

      NavigationInfo getNavigationInfo()
      Provide org.web3d.x3d.sai.Navigation.NavigationInfo instance (using a properly typed node) from inputOutput SFNode field navigationInfo.

      Tooltip: [NavigationInfo] The navigationInfo field defines a dedicated NavigationInfo node for this X3DViewpointNode. The specified NavigationInfo node receives a set_bind TRUE event at the time when the parent node is bound and receives a set_bind FALSE at the time when the parent node is unbound.
      • Hint: allows simple integration of custom navigation associated with each Viewpoint according to user needs at that location.
      Specified by:
      getNavigationInfo in interface X3DViewpointNode
      Returns:
      value of navigationInfo field
    • setNavigationInfo

      Viewpoint setNavigationInfo(NavigationInfo newValue)
      Accessor method to assign org.web3d.x3d.sai.Navigation.NavigationInfo instance (using a properly typed node) to inputOutput SFNode field navigationInfo.

      Tooltip: [NavigationInfo] The navigationInfo field defines a dedicated NavigationInfo node for this X3DViewpointNode. The specified NavigationInfo node receives a set_bind TRUE event at the time when the parent node is bound and receives a set_bind FALSE at the time when the parent node is unbound.
      • Hint: allows simple integration of custom navigation associated with each Viewpoint according to user needs at that location.
      Specified by:
      setNavigationInfo in interface X3DViewpointNode
      Parameters:
      newValue - is new value for the navigationInfo field.
      Returns:
      Viewpoint - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getNearDistance

      float getNearDistance()
      Provide float value from inputOutput SFFloat field named nearDistance.

      Tooltip: or (0,+infinity) nearDistance defines minimum clipping plane distance necessary for object display.
      Specified by:
      getNearDistance in interface X3DViewpointNode
      Returns:
      value of nearDistance field
    • setNearDistance

      Viewpoint setNearDistance(float newValue)
      Accessor method to assign float value to inputOutput SFFloat field named nearDistance.

      Tooltip: or (0,+infinity) nearDistance defines minimum clipping plane distance necessary for object display.
      Specified by:
      setNearDistance in interface X3DViewpointNode
      Parameters:
      newValue - is new value for the nearDistance field.
      Returns:
      Viewpoint - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getOrientation

      float[] getOrientation()
      Provide array of 4-tuple float results unit axis, angle (in radians) from inputOutput SFRotation field named orientation.

      Tooltip: Rotation (axis, angle in radians) of Viewpoint, relative to default -Z axis direction in local coordinate system.
      • Hint: this is orientation _change_ from default direction (0 0 -1) along the -X axis.
      • Hint: complex rotations can be accomplished axis-by-axis using parent Transforms.
      • Warning: for VR/AR/MR/XR users wearing a head-mounted display (HMD), animating this field may induce motion sickness.
      Specified by:
      getOrientation in interface X3DViewpointNode
      Returns:
      value of orientation field
    • setOrientation

      Viewpoint setOrientation(float[] newValue)
      Accessor method to assign 4-tuple float array unit axis, angle (in radians) to inputOutput SFRotation field named orientation.

      Tooltip: Rotation (axis, angle in radians) of Viewpoint, relative to default -Z axis direction in local coordinate system.
      • Hint: this is orientation _change_ from default direction (0 0 -1) along the -X axis.
      • Hint: complex rotations can be accomplished axis-by-axis using parent Transforms.
      • Warning: for VR/AR/MR/XR users wearing a head-mounted display (HMD), animating this field may induce motion sickness.
      Specified by:
      setOrientation in interface X3DViewpointNode
      Parameters:
      newValue - is new value for the orientation field.
      Returns:
      Viewpoint - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getPosition

      float[] getPosition()
      Provide array of 3-tuple float results from inputOutput SFVec3f field named position.

      Tooltip: position (x, y, z in meters) relative to local coordinate system. *
      Returns:
      value of position field
    • setPosition

      Viewpoint setPosition(float[] newValue)
      Accessor method to assign 3-tuple float array to inputOutput SFVec3f field named position.

      Tooltip: position (x, y, z in meters) relative to local coordinate system. *
      Parameters:
      newValue - is new value for the position field.
      Returns:
      Viewpoint - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getRetainUserOffsets

      boolean getRetainUserOffsets()
      Provide boolean value from inputOutput SFBool field named retainUserOffsets.

      Tooltip: Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation. *
      Specified by:
      getRetainUserOffsets in interface X3DViewpointNode
      Returns:
      value of retainUserOffsets field
    • setRetainUserOffsets

      Viewpoint setRetainUserOffsets(boolean newValue)
      Accessor method to assign boolean value to inputOutput SFBool field named retainUserOffsets.

      Tooltip: Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation. *
      Specified by:
      setRetainUserOffsets in interface X3DViewpointNode
      Parameters:
      newValue - is new value for the retainUserOffsets field.
      Returns:
      Viewpoint - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • getViewAll

      boolean getViewAll()
      Provide boolean value from inputOutput SFBool field named viewAll.

      Tooltip: Viewpoint is automatically adjusted to view all visible geometry. Typically centerOfRotation is shifted to center of current bounding box and view is zoomed in or out until all visible objects are viewed.
      • Hint: no collision detection or proximity sensing occurs when zooming.
      • Warning: if needed, near and far clipping planes shall be adjusted to allow viewing the entire scene.
      • Hint: when the value of the viewAll field is changed from TRUE to FALSE, no change in the current view occurs.
      Specified by:
      getViewAll in interface X3DViewpointNode
      Returns:
      value of viewAll field
    • setViewAll

      Viewpoint setViewAll(boolean newValue)
      Accessor method to assign boolean value to inputOutput SFBool field named viewAll.

      Tooltip: Viewpoint is automatically adjusted to view all visible geometry. Typically centerOfRotation is shifted to center of current bounding box and view is zoomed in or out until all visible objects are viewed.
      • Hint: no collision detection or proximity sensing occurs when zooming.
      • Warning: if needed, near and far clipping planes shall be adjusted to allow viewing the entire scene.
      • Hint: when the value of the viewAll field is changed from TRUE to FALSE, no change in the current view occurs.
      Specified by:
      setViewAll in interface X3DViewpointNode
      Parameters:
      newValue - is new value for the viewAll field.
      Returns:
      Viewpoint - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).