Zum Hauptinhalt springen

XR8.XrController.pipelineModule()

XR8.XrController.pipelineModule()

Beschreibung

Erstellt ein Kamera-Pipelinemodul, das nach der Installierung Rückrufe empfängt, wenn die Kamera gestartet wurde, Ereignisse der Kameraprozessierung und andere Statusänderungen. Diese werden verwendet, um die Position der Kamera zu berechnen.

Parameter

Keine

Returns

Return-Wert ist ein Objekt, das onUpdate als zur Verfügung gestellt wird:

processCpuResult.reality: { rotation, position, intrinsics, trackingStatus, trackingReason, worldPoints, realityTexture, lighting }

EigentumTypBeschreibung
rotation{w, x, y, z}Die Ausrichtung (Quaternion) der Kamera in der Szene.
position{x, y, z}Die Position der Kamera in der Szene.
intrinsisch[Nummer]Eine 16-dimensionale 4x4-Spalten-Projektionsmatrix, die der Szenekamera das gleiche Sichtfeld wie dem gerenderten Kamerabild gibt.
trackingStatusStringEine von 'LIMITED' oder 'NORMAL'.
trackingReasonStringEins von 'UNSPECIFIED' oder'INITIALIZING'.
worldPoints[{id, confidence, position: {x, y, z}}]Ein Array von erkannten Punkten in der Welt an ihrer Position in der Szene. Nur ausgefüllt, wenn XrController für die Rückgabe von Weltpunkten konfiguriert ist und trackingReason != 'INITIALIZING'.
realityTextureWebGLTexturDie Textur, die die Kamerafeed-Daten enthält.
lighting{exposure, temperature}Belichtung der Beleuchtung in Ihrer Umgebung. Hinweis: Temperatur wurde noch nicht implementiert.

Versendete Ereignisse

trackingStatus: Wird ausgelöst, wenn XrController startet und sich der Tracking-Status oder der Grund ändert.

reality.trackingstatus : { status, reason }

EigentumTypBeschreibung
statusStringEine von 'LIMITED' oder 'NORMAL'.
reasonStringEine von 'INITIALIZING' oder 'UNDEFINED'.

imageloading: Wird ausgelöst, wenn das Laden der Erkennungsbilder beginnt.

imageloading.detail : { imageTargets: {name, type, metadata} }

EigentumTypBeschreibung
nameStringDer Name des Bildes.
typStringEine von 'FLAT', 'CYLINDRICAL', 'CONICAL'.
metadatenObjektBenutzer-Metadaten.

imagescanning: Wird ausgelöst, wenn alle Erkennungsbilder geladen wurden und der Scanvorgang begonnen hat.

imagescanning.detail : { imageTargets: {name, type, metadata, geometry} }

EigentumTypBeschreibung
nameStringDer Name des Bildes.
typStringEine von 'FLAT', 'CYLINDRICAL', 'CONICAL'.
metadatenObjektBenutzer-Metadaten.
geometryObjektObjekt mit Geometriedaten. Wenn type=FLAT: {scaledWidth, scaledHeight}, sonst wenn type=CYLINDRICAL oder type=CONICAL: {height, radiusTop, radiusBottom, arcStartRadians, arcLengthRadians}

Wenn Typ = FLAT, Geometrie:

EigentumTypBeschreibung
scaledWidthNummerDie Breite des Bildes in der Szene, wenn sie mit dem Maßstab multipliziert wird.
scaledHeightNummerDie Höhe des Bildes in der Szene, wenn sie mit dem Maßstab multipliziert wird.

Wenn type= CYLINDRICAL oder CONICAL, Geometrie:

EigentumTypBeschreibung
heightNummerHöhe des gebogenen Ziels.
radiusTopNummerRadius des gebogenen Ziels oben.
radiusBottomNummerRadius des gekrümmten Ziels am unteren Rand.
arcStartRadiansNummerStartwinkel in Radiant.
arcLengthRadiansNummerZentraler Winkel in Radiant.

imagefound: Wird ausgelöst, wenn ein Bildziel zum ersten Mal gefunden wird.

imagefound.detail : { name, type, position, rotation, scale, scaledWidth, scaledHeight, height, radiusTop, radiusBottom, arcStartRadians, arcLengthRadians }

EigentumTypBeschreibung
nameStringDer Name des Bildes.
typNummerEine von 'FLAT', 'CYLINDRICAL', 'CONICAL'.`
position{x, y, z}Die 3d-Position des georteten Bildes.
rotation{w, x, y, z}Die lokale 3d-Ausrichtung des georteten Bildes.
scaleNummerEin Skalierungsfaktor, der auf das an dieses Bild angehängte Objekt angewendet werden soll.

Wenn Typ = FLAT:

EigentumTypBeschreibung
scaledWidthNummerDie Breite des Bildes in der Szene, wenn sie mit dem Maßstab multipliziert wird.
scaledHeightNummerDie Höhe des Bildes in der Szene, wenn sie mit dem Maßstab multipliziert wird.

Wenn type= CYLINDRICAL oder CONICAL:

EigentumTypBeschreibung
heightNummerHöhe des gebogenen Ziels.
radiusTopNummerRadius des gebogenen Ziels oben.
radiusBottomNummerRadius des gekrümmten Ziels am unteren Rand.
arcStartRadiansNummerStartwinkel in Radiant.
arcLengthRadiansNummerZentraler Winkel in Radiant.

imageupdated: Wird ausgelöst, wenn ein Bildziel seine Position, Drehung oder Skalierung ändert.

imageupdated.detail : { name, type, position, rotation, scale, scaledWidth, scaledHeight, height, radiusTop, radiusBottom, arcStartRadians, arcLengthRadians }

EigentumTypBeschreibung
nameStringDer Name des Bildes.
typNummerEine von 'FLAT', 'CYLINDRICAL', 'CONICAL'.`
position{x, y, z}Die 3d-Position des georteten Bildes.
rotation{w, x, y, z}Die lokale 3d-Ausrichtung des georteten Bildes.
scaleNummerEin Skalierungsfaktor, der auf das an dieses Bild angehängte Objekt angewendet werden soll.

Wenn Typ = FLAT:

EigentumTypBeschreibung
scaledWidthNummerDie Breite des Bildes in der Szene, wenn sie mit dem Maßstab multipliziert wird.
scaledHeightNummerDie Höhe des Bildes in der Szene, wenn sie mit dem Maßstab multipliziert wird.

Wenn type= CYLINDRICAL oder CONICAL:

EigentumTypBeschreibung
heightNummerHöhe des gebogenen Ziels.
radiusTopNummerRadius des gebogenen Ziels oben.
radiusBottomNummerRadius des gekrümmten Ziels am unteren Rand.
arcStartRadiansNummerStartwinkel in Radiant.
arcLengthRadiansNummerZentraler Winkel in Radiant.

imagelost: Wird ausgelöst, wenn ein Bildziel nicht mehr verfolgt wird.

imagelost.detail : { name, type, position, rotation, scale, scaledWidth, scaledHeight, height, radiusTop, radiusBottom, arcStartRadians, arcLengthRadians }

EigentumTypBeschreibung
nameStringDer Name des Bildes.
typNummerEine von 'FLAT', 'CYLINDRICAL', 'CONICAL'.`
position{x, y, z}Die 3d-Position des georteten Bildes.
rotation{w, x, y, z}Die lokale 3d-Ausrichtung des georteten Bildes.
scaleNummerEin Skalierungsfaktor, der auf das an dieses Bild angehängte Objekt angewendet werden soll.

Wenn Typ = FLAT:

EigentumTypBeschreibung
scaledWidthNummerDie Breite des Bildes in der Szene, wenn sie mit dem Maßstab multipliziert wird.
scaledHeightNummerDie Höhe des Bildes in der Szene, wenn sie mit dem Maßstab multipliziert wird.

Wenn type= CYLINDRICAL oder CONICAL:

EigentumTypBeschreibung
heightNummerHöhe des gebogenen Ziels.
radiusTopNummerRadius des gebogenen Ziels oben.
radiusBottomNummerRadius des gekrümmten Ziels am unteren Rand.
arcStartRadiansNummerStartwinkel in Radiant.
arcLengthRadiansNummerZentraler Winkel in Radiant.

meshfound: Wird ausgelöst, wenn ein Mesh zum ersten Mal gefunden wird, entweder nach dem Start oder nach einem recenter().

xrmeshfound.detail : { id, position, rotation, geometry }

EigentumTypBeschreibung
idStringEine ID für dieses Mesh, die innerhalb einer Sitzung stabil ist
position{x, y, z}Die 3d-Position des georteten Meshes.
rotation{w, x, y, z}Die lokale 3D-Ausrichtung (Quaternion) des lokalisierten Meshes.
geometry{index, attributes}Ein Objekt, das Rohdaten zur Meshgeometrie enthält. Attribute enthalten Positions- und Farbattribute.

geometry ist ein Objekt mit den folgenden Eigenschaften:

EigentumTypBeschreibung
indexUint32ArrayDie Scheitelpunkte des Mesh, bei denen 3 zusammenhängende Scheitelpunkte ein Dreieck bilden.
attribute[{name: 'position', array: Float32Array(), itemSize: 3}, {name: 'color', array: Float32Array(), itemSize: 3}]Die Rohdaten der Meshgeometrie.

meshupdated: Wird ausgelöst, wenn ein erstes Mesh, das wir gefunden haben, seine Position oder Rotation ändert.

meshupdated.detail : { id, position, rotation }

EigentumTypBeschreibung
idStringEine ID für dieses Mesh, die innerhalb einer Sitzung stabil ist
position{x, y, z}Die 3d-Position des georteten Meshes.
rotation{w, x, y, z}Die lokale 3D-Ausrichtung (Quaternion) des lokalisierten Mesh.

meshlost: Wird ausgelöst, wenn recenter aufgerufen wird.

xrmeshlost.detail : { id }

EigentumTypBeschreibung
idStringEine ID für dieses Mesh, die innerhalb einer Sitzung stabil ist

projectwayspotscanning: Wird ausgelöst, wenn alle Projektstandorte zum Scannen geladen wurden.

projectwayspotscanning.detail : { wayspots: [] }

EigentumTypBeschreibung
wayspots[Objekt]Ein Array von Objekten mit Standortinformationen.

wayspots ist ein Array von Objekten mit den folgenden Eigenschaften:

EigentumTypBeschreibung
idStringEine ID für diesen Projektstandort, die innerhalb einer Sitzung stabil ist
nameStringName des Projektstandorts.
imageUrlStringURL zu einem repräsentativen Bild für diesen Projektstandort.
titelStringTitel des Projektstandorts.
latNummerBreitengrad dieses Projektstandorts.
lngNummerLängengrad dieses Projektstandorts.

projectwayspotfound: Wird ausgelöst, wenn ein Projektstandort zum ersten Mal gefunden wird.

projectwayspotfound.detail : { name, position, rotation }

EigentumTypBeschreibung
nameStringDer Name des Projektstandorts.
position{x, y, z}Die 3d-Position des Projektstandorts.
rotation{w, x, y, z}Die lokale 3D-Orientierung (Quaternion) des Projektstandorts.

projectwayspotupdated: Wird ausgelöst, wenn ein Projektstandort seine Position oder Drehung ändert.

projectwayspotupdated.detail : { name, position, rotation }

EigentumTypBeschreibung
nameStringDer Name des Projektstandorts.
position{x, y, z}Die 3d-Position des Projektstandorts.
rotation{w, x, y, z}Die lokale 3D-Orientierung (Quaternion) des Projektstandorts.

projectwayspotlost: Wird ausgelöst, wenn ein Projektstandort nicht mehr verfolgt wird.

projectwayspotlost.detail : { name, position, rotation }

EigentumTypBeschreibung
nameStringDer Name des Projektstandorts.
position{x, y, z}Die 3d-Position des Projektstandorts.
rotation{w, x, y, z}Die lokale 3D-Orientierung (Quaternion) des Projektstandorts.

Beispiel - Hinzufügen eines Pipeline-Moduls

XR8.addCameraPipelineModule(XR8.XrController.pipelineModule())

Beispiel - versendete Ereignisse

const logEvent = ({name, detail}) => {
console.log(`Handling event ${name}, got detail, ${JSON.stringify(detail)}`)
}

XR8.addCameraPipelineModule({
name: 'eventlogger',
listeners: [
{event: 'reality.imageloading', process: logEvent},
{event: 'reality.imagescanning', process: logEvent},
{event: 'reality.imagefound', process: logEvent},
{event: 'reality.imageupdated', process: logEvent},
{event: 'reality.imagelost', process: logEvent},
],
})