Zum Hauptinhalt springen

xrhandfound

Beschreibung

Dieses Ereignis wird von xrhand ausgelöst, wenn eine Hand zum ersten Mal gefunden wird.

xrhandfound.detail : {id, transform, vertices, normals, handKind, attachmentPoints}`

EigentumBeschreibung
idEine numerische ID der gefundenen Hand.
transformieren: {position, rotation, scale}Transformieren Sie die Informationen der gefundenen Hand.
Scheitelpunkte: [{x, y, z}]Position der Handpunkte, relativ zur Transformation.
Normalen: [{x, y, z}]Normale Richtung der Scheitelpunkte, relativ zur Transformation.
handKindEine numerische Darstellung der Händigkeit der gefundenen Hand. Gültige Werte sind 0 (nicht spezifiziert), 1 (links) und 2 (rechts).
attachmentPoints: { name, position: {x,y,z} }Siehe XR8.HandController.AttachmentPoints für die Liste der verfügbaren Befestigungspunkte. Die "Position" ist relativ zur Transformation.

transform" ist ein Objekt mit den folgenden Eigenschaften:

EigentumBeschreibung
Position {x, y, z}Die 3d-Position der befindlichen Hand.
Drehung {w, x, y, z}Die lokale 3D-Orientierung der lokalisierten Hand.
SkalaEin Skalierungsfaktor, der auf Objekte angewendet werden soll, die an dieser Hand befestigt sind.

AttachmentPoints" ist ein Objekt mit den folgenden Eigenschaften:

EigentumBeschreibung
NameDer Name des Befestigungspunktes. Siehe XR8.HandController.AttachmentPoints für die Liste der verfügbaren Befestigungspunkte.
Position {x, y, z}Die 3d-Position des Befestigungspunktes an der befindlichen Hand.
Drehung {w, x, y, z}Die Rotationsquaternion, die den positiven Y-Vektor zum Bone-Vektor des Befestigungspunkts dreht.
innerPoint {x, y, z}Der innere Punkt eines Befestigungspunktes. (z.B. Handflächenseite)
outerPoint {x, y, z}Der äußere Punkt eines Befestigungspunktes. (z. B. Handrücken)
RadiusDer Radius der Fingerbefestigungspunkte.
minorRadiusDer kürzeste Radius von der Handoberfläche bis zum Befestigungspunkt am Handgelenk.
majorRadiusDer längste Radius von der Handoberfläche bis zum Befestigungspunkt am Handgelenk.

Beispiel

const handRigidComponent = {
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('xrhandfound', show)
this.el.sceneEl.addEventListener('xrhandupdated', show)
this.el.sceneEl.addEventListener('xrhandlost', hide)
}
}