The XRRigidTransform()
constructor creates a new XRRigidTransform
object, representing the position and orientation of a point or object. Among other things, XRRigidTransform
is used when providing a transform to translate between coordinate systems across spaces.
new XRRigidTransform()
new XRRigidTransform(position)
new XRRigidTransform(position, orientation)
A new XRRigidTransform
object which has been initialized to represent a transform matrix that would adjust the position and orientation of an object from the origin to the specified position
and facing in the direction indicated by orientation
.
In this example, the beginning of the animation of a scene is shown, starting with a request for a reference space of a given type, then shifting the coordinate system based on a transform before requesting the first animation frame.
let animationFrameRequestID = 0;
xrSession.requestReferenceSpace("local-floor")
.then((refSpace) => {
xrReferenceSpace = refSpace.getOffsetReferenceSpace(
new XRRigidTransform(viewerPosition, viewerOrientation));
animationFrameRequestID = xrSession.requestAnimationFrame(drawFrame);
});
After requesting a reference space of type local-floor
, the returned promise is eventually resolved, at which time we receive a new reference space object, refSpace
. After creating an XRRigidTransform
from the viewer's initial position and orientation, we pass the new transform into getOffsetReferenceSpace()
to create another reference space, now offset so that its origin is located at the same place in space as the coordinates given by viewerPosition
, with the orientation also revised in the same fashion.
Then requestAnimationFrame()
is called to ask for a new animation frame to draw into. The drawFrame()
callback will be executed when the system is ready to draw the next frame.
You can find more examples in Movement, orientation, and motion.