XRRigidTransform
XRRigidTransform 是一个 WebXR API 接口,它表示由位置和方向定义的 3D 几何变换。
XRRigidTransform 用于在 WebXR API 中指定变换,包括:
- 使用
getOffsetReferenceSpace()创建新的引用空间时,相对于父级引用空间的偏移量和方向。 XRView的transform。XRPose的transform。XRReferenceSpaceEvent事件的transform属性,该属性在XRReferenceSpace接收到的reset事件中找到。
在这些地方使用 XRRigidTransform 而非提供矩阵数据的裸数组有一个优点。它会自动计算变换的逆矩阵,甚至进行缓存,从而使后续的请求速度显著提高。
构造函数
XRRigidTransform()-
创建一个新的
XRRigidTransform对象,该对象表示一个应用指定位置和/或方向的变换。
实例属性
XRRigidTransform.position只读-
一个
DOMPointReadOnly,指定一个以米为单位的 3D 点,描述变换的平移分量。w属性始终为1.0。 XRRigidTransform.orientation只读-
一个
DOMPointReadOnly,其中包含一个单位四元数,描述变换的旋转分量。作为单位四元数,其长度始终归一化为1.0。 XRRigidTransform.matrix只读-
以 16 元素
Float32Array的形式返回变换矩阵。有关如何使用数组表示矩阵,请参阅 Matrix format 部分。 XRRigidTransform.inverse只读-
返回一个
XRRigidTransform,它是此变换的逆变换。也就是说,如果将其应用于先前已被原始变换变换过的对象,它将撤销变换并将对象恢复到原始状态。
用法说明
当解释 XRRigidTransform 时,始终先应用方向,然后再应用位置。
示例
此代码片段创建一个 XRRigidTransform,用于指定在创建新引用空间时相对于当前引用空间使用的偏移量和方向。然后,它通过调用会话的 requestAnimationFrame() 方法来请求第一个动画帧回调。
js
xrSession.requestReferenceSpace(refSpaceType).then((refSpace) => {
xrReferenceSpace = refSpace;
xrReferenceSpace = xrReferenceSpace.getOffsetReferenceSpace(
new XRRigidTransform(viewerStartPosition, cubeOrientation),
);
animationFrameRequestID = xrSession.requestAnimationFrame(drawFrame);
});
规范
| 规范 |
|---|
| WebXR Device API # xrrigidtransform-interface |
浏览器兼容性
加载中…