XRFrame: fillPoses() method
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The fillPoses()
method of the XRFrame
interface populates a Float32Array
with the matrices of the poses relative to a given base space and returns true
if successful for all spaces.
Syntax
fillPoses(spaces, baseSpace, transforms)
Parameters
spaces
-
An array of
XRSpace
objects for which to get the poses. baseSpace
-
An
XRSpace
object to use as the base or origin for the relative position and orientation. transforms
-
A
Float32Array
that is populated with the matrices of the poses relative to the givenbaseSpace
.
Return value
A boolean indicating if all of the spaces have a valid pose.
Exceptions
TypeError
-
Thrown if the length of
spaces
multiplied by 16 is larger than the number of elements intransforms
.
Examples
Obtaining poses for all joints of a hand
To efficiently get all poses for all 25 joints of each XRHand
, you can use the fillPoses()
method.
let poses1 = new Float32Array(16 * 25);
let poses2 = new Float32Array(16 * 25);
function onXRFrame(xrFrame, renderer) {
let hand1 = xrFrame.session.inputSources[0].hand;
xrFrame.fillPoses(hand1.values(), renderer.referenceSpace, poses1);
let hand2 = xrFrame.session.inputSources[1].hand;
xrFrame.fillPoses(hand2.values(), renderer.referenceSpace, poses2);
}
Specifications
Specification |
---|
WebXR Hand Input Module - Level 1 # dom-xrframe-fillposes |
Browser compatibility
BCD tables only load in the browser