xrfacefound
Descripción
Este evento es emitido por xrface cuando se encuentra una cara por primera vez.
`xrfacefound.detail : {id, transform, vertices, normales, attachmentPoints}``
| Propiedad | Descripción |
|---|---|
| id | Id numérico de la cara localizada. |
| transformar: `{position, rotation, scale, scaledWidth, scaledHeight, scaledDepth}`` | Información de transformación de la cara localizada. |
| vértices: [{x, y, z}] | Posición de los puntos de la cara, relativa a la transformación. |
| normales: [{x, y, z}] | Dirección normal de los vértices, relativa a la transformación. |
attachmentPoints: { nombre, posición: {x,y,z} } | Consulte XR8.FaceController.AttachmentPoints para ver la lista de puntos de fijación disponibles. La posición es relativa a la transformación. |
uvsInCameraFrame [{u, v}] | La lista de posiciones uv en el fotograma de la cámara correspondientes a los puntos de vértice devueltos. |
transform es un objeto con las siguientes propiedades:
| Propiedad | Descripción |
|---|---|
| posición {x, y, z} | La posición 3d de la cara localizada. |
| rotación {w, x, y, z} | La orientación local 3d de la cara localizada. |
| escala | Factor de escala que debe aplicarse a los objetos adjuntos a esta cara. |
| scaledWidth | Anchura aproximada de la cabeza en la escena cuando se multiplica por la escala. |
| scaledHeight | Altura aproximada de la cabeza en la escena multiplicada por la escala. |
| scaledDepth | Profundidad aproximada de la cabeza en la escena cuando se multiplica por la escala. |
Ejemplo
const faceRigidComponent = {
init: function () {
const object3D = this.el.object3D
object3D.visible = false
const show = ({detail}) => {
const {position, rotation, scale} = detail.transform
object3D.position.copy(position)
object3D.quaternion.copy(rotation)
object3D.scale.set(scale, scale, scale)
object3D.visible = true
}
const hide = ({detail}) => { object3D.visible = false }
this.el.sceneEl.addEventListener('xrfacefound', show)
this.el.sceneEl.addEventListener('xrfaceupdated', show)
this.el.sceneEl.addEventListener('xrfacelost', hide)
}
}