XRRigidTransform()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
XRRigidTransform()
コンストラクターは、点またはオブジェクトの位置と向きを表す新しい XRRigidTransform
オブジェクトを作成して返します。 特に、XRRigidTransform
は、空間を横断する座標系間で平行移動するための変換を提供するときに使用されます。
構文
let xrRigidTransform = new XRRigidTransform(position, orientation);
パラメーター
position
省略可-
点またはオブジェクトが配置される座標を指定する
DOMPointInit
に準拠するオブジェクト。 これらの寸法はメートルで指定します。 このパラメーターが省略されているか、DOMPointInit
と互換性がない場合、使用される位置は{x: 0, y: 0, z: 0, w: 1}
であると見なされます。w
は常に 1 でなければなりません。 orientation
省略可-
オブジェクトが向いている方向を指定する
DOMPointInit
に準拠するオブジェクト。 向きのデフォルト値は{x: 0, y: 0, z: 0, w: 1}
です。 指定された向きは、まだ正規化されていない場合は正規化されます。
戻り値
オブジェクトの位置と向きを原点から指定された position
に調整し、orientation
によって示される方向を向く変換行列を表すように初期化された新しい XRRigidTransform
オブジェクト。
例外
TypeError
-
指定された
position
のw
座標の値が 1.0 ではありません。
例
この例では、シーンのアニメーションの開始が示されています。 特定のタイプの参照空間の要求から始まり、最初のアニメーションフレームを要求する前に、変換に基づいて座標系をシフトします。
let animationFrameRequestID = 0;
xrSession.requestReferenceSpace("local-floor").then((refSpace) => {
xrReferenceSpace = refSpace.getOffsetReferenceSpace(
new XRRigidTransform(viewerPosition, viewerOrientation),
);
animationFrameRequestID = xrSession.requestAnimationFrame(drawFrame);
});
local-floor
タイプの参照空間を要求した後、返された promise は最終的に解決され、その時点で新しい参照空間オブジェクト refSpace
を受け取ります。 ビューアーの初期位置と向きから XRRigidTransform
を作成した後、新しい変換を getOffsetReferenceSpace()
に渡して別の参照空間を作成します。 オフセットして、その原点が viewerPosition
によって指定された座標と同じ空間内の場所に配置されるようにします。 向きも同様に修正されます。
次に、requestAnimationFrame()
が呼び出され、描画する新しいアニメーションフレームを要求します。 drawFrame()
コールバックは、システムが次のフレームを描画する準備ができたときに実行されます。
移動、向き、モーションには、さらに多くの例があります。
仕様
Specification |
---|
WebXR Device API # dom-xrrigidtransform-xrrigidtransform |
ブラウザーの互換性
BCD tables only load in the browser