Spec-Zone.ru › Web APIs

XRRigidTransform: свойство position

Ограниченная доступность

Это функция не относится к Baseline, поскольку она не работает в некоторых из наиболее широко используемых браузеров.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.

Только для чтения XRRigidTransform свойство position — это объект DOMPointReadOnly, который предоставляет 3D-точку, указанную в метрах, описывающую компонент перевода преобразования.

Значение

Только для чтения DOMPointReadOnly, указывающий 3D-компонент позиции матрицы преобразования. Единицы измерения — метры.

Примечание: Компонент w точки всегда равен 1,0.

Примеры

Для создания пространства отсчета, которое можно использовать для размещения объекта на уровне глаз (предполагая, что уровень глаз составляет 1,5 метра):

function onSessionStarted(xrSession) {
  xrSession.addEventListener("end", onSessionEnded);

  gl = initGraphics(xrSession);

  const 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) {
  xrReferenceSpace = immersiveSession
    ? refSpace
    : refSpace.getOffsetReferenceSpace(new XRRigidTransform({ y: -1.5 }));
  xrSession.requestAnimationFrame(onFrame);
}

После настройки графического контекста для использования WebXR, это начинается с проверки, существует ли переменная immersiveSession true; если да, то сначала запрашивается bounded-floor пространство отсчета. Если это не удается (вероятно, потому что bounded-floor не поддерживается), то запрашивается local-floor пространство отсчета.

Если мы не находимся в интерактивной сессии, то вместо этого запрашивается viewer пространство отсчета.

В любом случае, после получения пространства, оно передается в функцию refSpaceCreated(). Для интерактивных пространств указанное пространство сохраняется для дальнейшего использования. Однако для инлайновых сессий мы знаем, что мы находимся в пространстве, которое не автоматически настроено для уровня пола, поэтому мы запрашиваем пространство смещения отсчета, чтобы сместить высоту зрителя на 1,5 метра над предполагаемым уровнем пола в 0 метров. Это новое пространство отсчета используется вместо первоначально полученного.

Наконец, отправляется запрос на кадр анимации.

Спецификации

Спецификация
API устройства WebXR
# dom-xrrigidtransform-position

Совместимость браузеров

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на iOS Samsung Internet WebView Android
position 79 79 Нет 66 Нет 79 Нет 57 Нет 11.2 Нет

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XRRigidTransform/position

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API