XRPose: transform-Eigenschaft

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Das schreibgeschützte Attribut transform der XRPose-Schnittstelle ist ein XRRigidTransform-Objekt, das die Position und Orientierung der Pose relativ zum Basis-XRSpace bereitstellt, wie es beim Abrufen der Pose durch den Aufruf von XRFrame.getPose() angegeben wurde.

Wert

Ein XRRigidTransform, das die Position und Orientierung der XRPose relativ zu dem XRFrame bereitstellt, mit dem diese XRPose ausgerichtet ist. Dies ist die gleiche Pose, die von der getPose()-Methode des Frames zurückgegeben wird.

Beispiele

Dieser Handler für das XRSession-Ereignis select bearbeitet Ereignisse für verfolgte Zeiger. Er bestimmt das anvisierte Objekt, indem er die Pose des Ereignisframes in eine Funktion namens findTargetUsingRay() übergibt, und leitet das Ereignis dann unterschiedlich weiter, abhängig von der Händigkeit des Benutzers; dies geschieht durch Vergleich des Wertes der XRInputSource-Eigenschaft handedness mit einem Wert in der Variablen user.handedness. Wenn die Quelle ein Controller in der primären Hand des Benutzers ist, wird eine Funktion am anvisierten Objekt namens primaryAction() aufgerufen; andernfalls ruft sie die offHandAction()-Funktion des anvisierten Objekts auf.

js
xrSession.addEventListener("select", (event) => {
  let source = event.inputSource;
  let frame = event.frame;
  let targetRayPose = frame.getPose(source.targetRaySpace, myRefSpace);
  let targetObject = findTargetUsingRay(targetRay.transform.matrix);

  if (source.targetRayMode === "tracked-pointer") {
    if (source.handedness === user.handedness) {
      targetObject.primaryAction();
    } else {
      targetObject.offHandAction();
    }
  }
});

Spezifikationen

Specification
WebXR Device API
# dom-xrpose-transform

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
transform

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support