• Public
  • Public/Protected
  • All

Interface IWebXRControllerPointerSelectionOptions

Options interface for the pointer selection module


  • IWebXRControllerPointerSelectionOptions



Optional customLasterPointerMeshGeneratorSearch playground for customLasterPointerMeshGenerator

customLasterPointerMeshGenerator: () => AbstractMesh

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.

Type declaration

Optional customSelectionMeshGeneratorSearch playground for customSelectionMeshGenerator

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 .

Type declaration

Optional customUtilityLayerSceneSearch playground for customUtilityLayerScene

customUtilityLayerScene: Scene

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

disablePointerUpOnTouchOutSearch playground for disablePointerUpOnTouchOut

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

disableScenePointerVectorUpdateSearch playground for disableScenePointerVectorUpdate

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

Optional disableSwitchOnClickSearch playground for disableSwitchOnClick

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

Optional enablePointerSelectionOnAllControllersSearch playground for enablePointerSelectionOnAllControllers

enablePointerSelectionOnAllControllers: boolean

Enable pointer selection on all controllers instead of switching between them

forceGazeModeSearch playground for forceGazeMode

forceGazeMode: boolean

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

Optional gazeCameraSearch playground for gazeCamera

gazeCamera: WebXRCamera

Optional WebXR camera to be used for gaze selection

Optional gazeModePointerMovedFactorSearch playground for gazeModePointerMovedFactor

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.

Optional maxPointerDistanceSearch playground for maxPointerDistance

maxPointerDistance: number

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

Optional overrideButtonIdSearch playground for overrideButtonId

overrideButtonId: string

Different button type to use instead of the main component

Optional preferredHandednessSearch playground for preferredHandedness

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

Optional renderingGroupIdSearch playground for renderingGroupId

renderingGroupId: number

use this rendering group id for the meshes (optional)

Optional timeToSelectSearch playground for timeToSelect

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

Optional useUtilityLayerSearch playground for useUtilityLayer

useUtilityLayer: boolean

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

xrInputSearch playground for xrInput

xrInput: WebXRInput

the xr input to use with this pointer selection


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