Passer au contenu principal

XR8.XrController.hitTest()

XrController.hitTest(X, Y, includedTypes = [])

Description

Estimez la position 3D d'un point sur l'image de la caméra. X et Y sont spécifiés sous forme de nombres compris entre 0 et 1, où (0, 0) est le coin supérieur gauche et (1, 1) est le coin inférieur droit du flux de la caméra tel qu'il a été rendu dans la caméra spécifiée par XR8.XrController.updateCameraProjectionMatrix(). Plusieurs estimations de la position 3D peuvent être renvoyées pour un seul test de collision, en fonction de la source de données utilisée pour estimer la position. La source de données utilisée pour estimer la position est indiquée par hitTest.type.

Paramètres

ParamètresTypeDescription
XNombreValeur comprise entre 0 et 1 qui représente la position horizontale sur le flux de la caméra, de gauche à droite.
YNombreValeur comprise entre 0 et 1 qui représente la position verticale sur le flux de la caméra, de haut en bas.
types inclus[String]Liste devant contenir 'FEATURE_POINT'.

Retours

Un tableau de positions 3D estimées à partir du test de collision :

[{ type, position, rotation, distance }]

ParamètresTypeDescription
typeChaîneUn des éléments suivants : "FEATURE_POINT", "ESTIMATED_SURFACE", "DETECTED_SURFACE", ou "UNSPECIFIED"
position{x, y, z}La position 3D estimée du point interrogé sur le flux de la caméra.
rotation{x, y, z, w}La rotation 3D estimée du point interrogé sur l'image de la caméra.
distanceNombreDistance estimée entre l'appareil et le point interrogé sur l'image de la caméra.

Exemple

const hitTestHandler = (e) => {
const x = e.touches[0].clientX / window.innerWidth
const y = e.touches[0].clientY / window.innerHeight
const hitTestResults = XR8.XrController.hitTest(x, y, ['FEATURE_POINT'])
}