Secure contextThis feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Draft This page is not complete.
XRPose
is a WebXR API interface representing a position and orientation in the 3D space, relative to the XRSpace
within which it resides. The XRSpace
—which is either an XRReferenceSpace
or an XRBoundedReferenceSpace
—defines the coordinate system used for the pose and, in the case of an XRViewerPose
, its underlying views.
To obtain the XRPose
for the XRSpace
used as the local coordinate system of an object, call XRFrame.getPose()
, specifying that local XRSpace
and the space to which you wish to convert:
thePose = xrFrame.getPose(localSpace, baseSpace);
The pose for a viewer (or camera) is represented by the XRViewerPose
subclass of XRPose
. This is obtained using XRFrame.getViewerPose()
instead of getPose()
, specifying a reference space which has been adjusted to position and orient the node to provide the desired viewing position and angle:
viewerPose = xrFrame.getViewerPose(adjReferenceSpace);
Here, adjReferenceSpace
is a reference space which has been updated using the base frame of reference for the frame and any adjustments needed to position the viewer based on movement or rotation which is being supplied from a source other than the XR device, such as keyboard or mouse inputs.
See the article Movement, orientation, and motion for further details and an example with thorough explanations of what's going on.
Properties
XRPose.transform
Read only- A
XRRigidTransform
which provides the position and orientation of the pose relative to the baseXRSpace
. XRPose.emulatedPosition
Read only- A Boolean value which is
false
if the position and orientation given bytransform
is obtained directly from a full six degree of freedom (6DoF) XR device (that is, a device which tracks not only the pitch, yaw, and roll of the head but also the forward, backward, and side-to-side motion of the viewer). If any component of thetransform
is computed or created artificially (such as by using mouse or keyboard controls to move through space), this value is insteadtrue
, indicating that thetransform
is in part emulated in software.
Example
<<<--- TODO: Needs example --->>>
Specifications
Specification | Status | Comment |
---|---|---|
WebXR Device APIThe definition of 'XRPose' in that specification. | Working Draft | Initial definition. |
Browser compatibility
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
XRPose
|
Chrome
Full support 79 |
Edge
Full support 79 |
Firefox
No support No |
IE
No support No |
Opera
No support No |
Safari
No support No |
WebView Android
No support No |
Chrome Android
Full support 79 |
Firefox Android
No support No |
Opera Android
No support No |
Safari iOS
No support No |
Samsung Internet Android
Full support 11.2 |
emulatedPosition
|
Chrome
Full support 79 |
Edge
Full support 79 |
Firefox
No support No |
IE
No support No |
Opera
No support No |
Safari
No support No |
WebView Android
No support No |
Chrome Android
Full support 79 |
Firefox Android
No support No |
Opera Android
No support No |
Safari iOS
No support No |
Samsung Internet Android
Full support 11.2 |
transform
|
Chrome
Full support 79 |
Edge
Full support 79 |
Firefox
No support No |
IE
No support No |
Opera
No support No |
Safari
No support No |
WebView Android
No support No |
Chrome Android
Full support 79 |
Firefox Android
No support No |
Opera Android
No support No |
Safari iOS
No support No |
Samsung Internet Android
Full support 11.2 |
Legend
- Full support
- Full support
- No support
- No support
See also
XRPose by Mozilla Contributors is licensed under CC-BY-SA 2.5.