Zum Hauptinhalt springen

xrfacefound

Beschreibung​

Dieses Ereignis wird von xrface ausgelöst, wenn ein Gesicht zum ersten Mal gefunden wird.

xrfacefound.detail : {id, transform, vertices, normals, attachmentPoints}

EigentumBeschreibung
idEine numerische ID der gefundenen FlÀche.
transform: {position, rotation, scale, scaledWidth, scaledHeight, scaledDepth}Transformieren Sie die Informationen der gefundenen FlÀche.
vertices: [{x, y, z}]Position der Gesichtspunkte, relativ zur Transformation.
normals: [{x, y, z}]Normale Richtung der Scheitelpunkte, relativ zur Transformation.
attachmentPoints: { name, position: {x,y,z} }Siehe XR8.FaceController.AttachmentPoints fĂŒr eine Liste der verfĂŒgbaren Befestigungspunkte. die Position ist relativ zur Transformation.
uvsInCameraFrame [{u, v}]Die Liste der uv-Positionen im Kamerabild, die den zurĂŒckgegebenen Scheitelpunkten entsprechen.

transform ist ein Objekt mit den folgenden Eigenschaften:

EigentumBeschreibung
position {x, y, z}Die 3d-Position der gefundenen FlÀche.
rotation {w, x, y, z}Die lokale 3d-Ausrichtung der georteten FlÀche.
scaleEin Skalierungsfaktor, der auf Objekte angewendet werden soll, die mit dieser FlÀche verbunden sind.
scaledWidthUngefĂ€hre Breite des Kopfes in der Szene, multipliziert mit dem Maßstab.
scaledHeightUngefĂ€hre Höhe des Kopfes in der Szene, multipliziert mit dem Maßstab.
scaledDepthUngefĂ€hre Tiefe des Kopfes in der Szene, multipliziert mit dem Maßstab.

Beispiel​

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)
}
}