• Public
  • Public/Protected
  • All

Interface IWebXRControllerPointerSelectionOptions

Options interface for the pointer selection module


  • IWebXRControllerPointerSelectionOptions



customUtilityLayerScene?: Scene

if provided, this scene will be used to render meshes.

disablePointerUpOnTouchOut: boolean

Disable the pointer up event when the xr controller in screen and gaze mode is disposed (meaning - when the user removed the finger from the screen) If not disabled, the last picked point will be used to execute a pointer up event If disabled, pointer up event will be triggered right after the pointer down event. Used in screen and gaze target ray mode only

disableScenePointerVectorUpdate: boolean

Should the scene pointerX and pointerY update be disabled This is required for fullscreen AR GUI, but might slow down other experiences. Disable in VR, if not needed. The first rig camera (left eye) will be used to calculate the projection

disableSwitchOnClick?: boolean

Disable switching the pointer selection from one controller to the other. If the preferred hand is set it will be fixed on this hand, and if not it will be fixed on the first controller added to the scene

enablePointerSelectionOnAllControllers?: boolean

Enable pointer selection on all controllers instead of switching between them

forceGazeMode: boolean

For gaze mode for tracked-pointer / controllers (time to select instead of button press)

gazeCamera?: WebXRCamera

Optional WebXR camera to be used for gaze selection

gazeModePointerMovedFactor?: number

Factor to be applied to the pointer-moved function in the gaze mode. How sensitive should the gaze mode be when checking if the pointer moved to start a new countdown to the pointer down event. Defaults to 1.

maxPointerDistance?: number

The maximum distance of the pointer selection feature. Defaults to 100.

overrideButtonId?: string

Different button type to use instead of the main component

preferredHandedness?: XRHandedness

The preferred hand to give the pointer selection to. This will be prioritized when the controller initialize. If switch is enabled, it will still allow the user to switch between the different controllers

renderingGroupId?: number

use this rendering group id for the meshes (optional)

timeToSelect?: number

The amount of time in milliseconds it takes between pick found something to a pointer down event. Used in gaze modes. Tracked pointer uses the trigger, screen uses touch events 3000 means 3 seconds between pointing at something and selecting it

useUtilityLayer?: boolean

Should meshes created here be added to a utility layer or the main scene

xrInput: WebXRInput

the xr input to use with this pointer selection


  • A function that will be called when a new laser pointer mesh is generated. This function should return a mesh that will be used as the laser pointer mesh. The height (y) of the mesh must be 1.

    Returns AbstractMesh

  • customSelectionMeshGenerator(): Mesh
  • A function that will be called when a new selection mesh is generated. This function should return a mesh that will be used as the selection mesh. The default is a torus with a 0.01 diameter and 0.0075 thickness .

    Returns Mesh


  • Constructor
  • Property
  • Method
  • Inherited constructor
  • Inherited property
  • Inherited method
  • Property
  • Method
  • Static method