From 65cc6eabd71b1bceccf6fd3d3d4970c2955f3784 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Thu, 10 Dec 2020 08:37:18 -0500 Subject: dump 2020-12-10 --- .../web/api/xrrigidtransform/position/index.html | 102 +++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 files/ja/web/api/xrrigidtransform/position/index.html (limited to 'files/ja/web/api/xrrigidtransform/position/index.html') diff --git a/files/ja/web/api/xrrigidtransform/position/index.html b/files/ja/web/api/xrrigidtransform/position/index.html new file mode 100644 index 0000000000..fa15870672 --- /dev/null +++ b/files/ja/web/api/xrrigidtransform/position/index.html @@ -0,0 +1,102 @@ +--- +title: XRRigidTransform.position +slug: Web/API/XRRigidTransform/position +tags: + - 3D + - API + - AR + - Coordinates + - Location + - Point + - Position + - Property + - Reference + - VR + - WebXR + - WebXR API + - XR + - XRRigidTransform + - transform +translation_of: Web/API/XRRigidTransform/position +--- +

{{APIRef("WebXR Device API")}}

+ +

{{domxref("XRRigidTransform")}} の position 読み取り専用プロパティは、変換の平行移動成分を記述する、メートルで指定された 3D 点を提供する {{domxref("DOMPointReadOnly")}} オブジェクトです。

+ +

構文

+ +
let pos = xrRigidTransform.position;
+ +

+ +

変換行列の 3D 位置成分を示す読み取り専用の {{domxref("DOMPointReadOnly")}}。 単位はメートルです。

+ +
+

: 点の w 成分は常に 1.0 です。

+
+ +

+ +

オブジェクトを目の高さに配置するために使用できる参照空間を作成するには、次のようにします(目の高さが 1.5 メートルであると想定)。

+ +
function onSessionStarted(xrSession) {
+  xrSession.addEventListener("end", onSessionEnded);
+
+  gl = initGraphics(xrSession);
+
+  let glLayer = new XRWebGLLayer(xrSession, gl);
+  xrSession.updateRenderState({ baseLayer: glLayer });
+
+  if (immersiveSession) {
+    xrSession.requestReferenceSpace("bounded-floor").then((refSpace) => {
+      refSpaceCreated(refSpace);
+    }).catch(() => {
+      session.requestReferenceSpace("local-floor").then(refSpaceCreated);
+    });
+  } else {
+    session.requestReferenceSpace("viewer").then(refSpaceCreated);
+  }
+}
+
+function refSpaceCreated(refSpace) {
+  if (immersiveSession) {
+    xrReferenceSpace = refSpace;
+  } else {
+    xrReferenceSpace = refSpace.getOffsetReferenceSpace(
+      new XRRigidTransform({y: -1.5});
+    );
+  }
+  xrSession.requestAnimationFrame(onFrame);
+}
+
+ +

WebXR で使用するグラフィックスコンテキストを設定した後、これは変数 immersiveSessiontrue であるかどうかを確認することから始まります。 その場合、最初に bounded-floor 参照空間を要求します。 それが失敗した場合(おそらく bounded-floor がサポートされていないため)、local-floor 参照空間を要求しようとします。

+ +

没入型セッションでない場合は、代わりに viewer 参照空間を要求します。

+ +

いずれの場合も、空間が取得されたら、refSpaceCreated() 関数に渡します。 没入型空間の場合、指定された空間は将来の使用のために単に保存します。 ただし、インラインセッションの場合、床レベルが自動的に調整されない空間にいることがわかっているので、オフセット参照空間を要求して、ビューアーの高さを推定床レベルの 0 メートルより 1.5 メートル上にシフトします。 その新しい参照空間は、最初に受け取ったものの代わりに使用します。

+ +

最後に、アニメーションフレームの要求が送信されます。

+ +

仕様

+ + + + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName("WebXR","#dom-xrrigidtransform-position","XRRigidTransform.position")}}{{Spec2("WebXR")}}初期定義
+ +

ブラウザーの互換性

+ +
{{Compat("api.XRRigidTransform.position")}}
-- cgit v1.2.3-54-g00ecf