Table of Contents

Namespace easyar

Klassen

Accelerometer

Accelerometer ruft den vom System bereitgestellten Beschleunigungsmesser auf, gibt AccelerometerResult aus. Wenn das Gerät nicht mehr benötigt wird, kann close aufgerufen werden, um es zu schließen. Nach close sollte es nicht weiter verwendet werden. Es wird nicht empfohlen, es gleichzeitig mehrmals zu öffnen, da es möglicherweise nicht funktioniert oder die Genauigkeit abnimmt.

AccelerometerResult

Beschleunigungsmessung. Die positive Richtung der x-Achse zeigt vom Gerätezentrum zur rechten Seite des Bildschirms. Die positive Richtung der y-Achse zeigt vom Gerätezentrum zum oberen Teil des Bildschirms. Die positive Richtung der z-Achse zeigt senkrecht nach außen vom Gerätezentrum durch den Bildschirm. Einheiten für x, y, z sind m/s^2. Einheit für den Zeitstempel ist Sekunden.

AccelerometerResultSink

Beschleunigungsmesser-Ergebnis-Eingangsport. Dient zum Freilegen des Eingangsports einer Komponente. Alle Mitglieder dieser Klasse sind threadsicher.

AccelerometerResultSource

Ausgabeport für Accelerometer-Ergebnisse. Zum Freilegen des Ausgabeports einer Komponente. Alle Mitglieder dieser Klasse sind threadsicher.

ARCoreCameraDevice

ARCoreCameraDevice implementiert eine ARCore-basierte Kameraeinrichtung, die InputFrame ausgibt (enthält Bild, Kameraparameter, Zeitstempel, 6DOF-Positionsinformationen und Tracking-Status). Vor der Verwendung muss libarcore_sdk_c.so mit java.lang.System.loadLibrary geladen werden. Nach der Erstellung kann start/stop aufgerufen werden, um die Erfassung von Videodatenströmen zu beginnen bzw. zu stoppen. Wenn das Gerät nicht mehr benötigt wird, kann close zum Schließen aufgerufen werden. Nach close sollte es nicht weiter verwendet werden. ARCoreCameraDevice gibt InputFrame über inputFrameSource aus. inputFrameSource sollte zur Verwendung mit einem InputFrameSink verbunden werden. bufferCapacity gibt die Kapazität des InputFrame-Puffers an. Wenn mehr InputFrame von diesem Gerät ausgegeben werden als diese Kapazität und nicht freigegeben wurden, gibt das Gerät keine neuen InputFrame mehr aus, bis vorherige freigegeben wurden. Dies kann zu Problemen wie Einfrieren des Bildes führen. Hinweis: Die aktuelle ARCore-Implementierung (v1.13.0) hat Speicherlecks beim Erstellen und Zerstören von Sessions. Mehrfaches Erstellen und Zerstören führt zu kontinuierlich steigendem Speicherverbrauch ohne Freigabe nach der Zerstörung.

ARCoreDeviceListDownloader

ARCoreDeviceListDownloader dient zum Herunterladen und Aktualisieren der Gerätelisten-Kalibrierungsparameter, die in ARCoreCameraDevice verwendet werden.

ARKitCameraDevice

ARKitCameraDevice implementiert eine auf ARKit basierende Kamera-Einrichtung, die InputFrame ausgibt (enthält Bilder, Kameraparameter, Zeitstempel, 6DOF-Positionsinformationen und Tracking-Status). Nach der Erstellung kann start/stop aufgerufen werden, um das Sammeln von Videodaten zu starten und zu stoppen. Wenn das Gerät nicht mehr benötigt wird, kann close aufgerufen werden, um es zu schließen. Nach dem Schließen sollte es nicht weiter verwendet werden. ARKitCameraDevice gibt über inputFrameSource InputFrame aus, und inputFrameSource sollte mit InputFrameSink verbunden werden, um es zu verwenden. bufferCapacity stellt die Kapazität des InputFrame-Puffers dar. Wenn mehr als diese Anzahl von InputFrame aus dem Gerät ausgegeben und nicht freigegeben wird, wird das Gerät keine neuen InputFrame mehr ausgeben, bis die vorherigen InputFrame freigegeben werden. Dies kann zu Problemen wie Einfrieren des Bildes führen.

AttitudeSensor

AttitudeSensor nutzt den systemeigenen Lage-/Neigungssensor und gibt AttitudeSensorResult aus. Wenn das Gerät nicht mehr benötigt wird, kann close zur Deaktivierung aufgerufen werden. Nach close sollte es nicht weiter verwendet werden. Das gleichzeitige mehrfache Öffnen wird nicht empfohlen, da dies zu Funktionsunfähigkeit oder verringerter Genauigkeit führen kann.

AttitudeSensorResult

Messwerte des Lagesensors. Die positive Richtung der x-Achse zeigt vom Gerätezentrum zum rechten Bildschirmrand. Die positive Richtung der y-Achse zeigt vom Gerätezentrum zur oberen Bildschirmkante. Die positive Richtung der z-Achse zeigt senkrecht vom Gerätezentrum nach außen durch den Bildschirm. Das Gerät wurde um einen Winkel θ um die Achsen (x, y, z) gedreht. Der Einheitsquaternion für die Rotation lautet (cos(θ/2), x*sin(θ/2), y*sin(θ/2), z*sin(θ/2)). (v0, v1, v2, v3) = (cos(θ/2), x*sin(θ/2), y*sin(θ/2), z*sin(θ/2)). Das Referenzkoordinatensystem ist als ein Satz orientierter orthonormaler Basisvektoren definiert, wobei

Z nach oben zum Himmel zeigt und parallel zum Boden verläuft.

(X, Y, Z) bilden ein Rechtssystem.

Die Einheit des Timestamps ist Sekunden.

AttitudeSensorResultSink

Eingangsport für die Ergebnisse des Lagesensors. Dient dazu, einen Eingangsport einer Komponente freizulegen. Alle Mitglieder dieser Klasse sind threadsicher.

AttitudeSensorResultSource

Ausgabeport für Attitudensensorergebnisse. Dient zum Bereitstellen eines Ausgabeports einer Komponente. Alle Mitglieder dieser Klasse sind threadsicher.

BlockInfo

Das durch dichte Rekonstruktion erhaltene Modell wird durch ein Dreiecksnetz dargestellt, genannt Mesh. Da das Mesh häufig aktualisiert wird, wird das gesamte Mesh des Rekonstruktionsmodells zur Effizienzsteigerung in viele Mesh-Blöcke unterteilt. Ein Mesh-Block besteht aus einem Würfel mit einer Kantenlänge von etwa 1 Meter und enthält Elemente wie Vertex und Index. BlockInfo beschreibt den Inhalt eines Mesh-Blocks. Dabei sind (x,y,z) die Indizes des Mesh-Blocks. Multipliziert man (x,y,z) mit der physischen Größe jedes Mesh-Blocks, erhält man die Koordinaten des Ursprungs dieses Mesh-Blocks im Weltkoordinatensystem. Durch die Position des Mesh-Blocks in der Welt kann der anzuzeigende Teil vorab gefiltert werden, um Renderzeit zu sparen.

BlockPriorResult

A-priori-Karteninformation. blockIds sind die Karten-IDs. mode ist der Modus, in dem die A-priori-Information vom System verwendet wird, und kann soft oder hard sein. Siehe BlockPriorMode.

Buffer

Buffer speichert ein Array von Rohbytes und kann verwendet werden, um auf Bilddaten zuzugreifen. In der Java API kann der Buffer von Image abgerufen und dann Daten in ein Java-Byte-Array kopiert werden. In allen Versionen von EasyAR Sense können Sie auf Bilddaten zugreifen. Siehe Image.

BufferDictionary

Eine Zuordnung von Dateipfaden zu Buffer. Stellt mehrere im Speicher abgelegte Dateien dar.

BufferPool

BufferPool implementiert einen Speicherpool, der für Funktionen wie benutzerdefinierte Kamerazugriffe verwendet werden kann, die wiederholt Speicher gleicher Größe zuweisen müssen, um die Zeit für die Speicherzuweisung zu reduzieren.

CalibrationDownloader

CalibrationDownloader dient zum Herunterladen von Aktualisierungen für die Kalibrierungsparameter, die im MotionTracker verwendet werden. Nach dem Herunterladen muss der MotionTracker neu erstellt werden, damit er funktioniert.

CallbackScheduler

Callback-Scheduler. Es gibt zwei Unterklassen: DelayedCallbackScheduler und ImmediateCallbackScheduler. DelayedCallbackScheduler wird verwendet, um Callbacks zu verzögern, bis sie manuell aufgerufen werden. Dies kann in Single-Thread-Umgebungen (wie verschiedenen UI-Umgebungen) verwendet werden. ImmediateCallbackScheduler wird verwendet, um Callbacks sofort auszuführen. Dies kann in Multithread-Umgebungen (wie Servern oder Hintergrunddiensten) verwendet werden.

CameraDevice

CameraDevice implementiert ein Kameragerät, das InputFrame ausgibt (enthält Bild, Kameraparameter und Zeitstempel). Verfügbar unter Windows, Mac, Android und iOS. Nach dem Öffnen können start/stop aufgerufen werden, um die Datenerfassung zu beginnen/beenden. start/stop beeinflussen nicht die zuvor gesetzten Kameraparameter. Wenn das Gerät nicht mehr benötigt wird, kann close zum Schließen aufgerufen werden. Nach close sollte es nicht weiter verwendet werden. CameraDevice gibt InputFrame über inputFrameSource aus. inputFrameSource sollte mit InputFrameSink verbunden werden. bufferCapacity gibt die Pufferkapazität für InputFrame an. Werden mehr InputFrame ausgegeben als diese Anzahl und nicht freigegeben, stoppt die Ausgabe neuer Frames bis zur Freigabe. Dies kann zu hängenden Bildern führen. Auf Android ist die Berechtigung android.permission.CAMERA in AndroidManifest.xml erforderlich. Auf iOS ist die NSCameraUsageDescription-Berechtigung in Info.plist erforderlich.

CameraDeviceSelector

Zur Auswahl der Camera API auf Android (camera1 oder camera2). camera1 hat bessere Kompatibilität, aber es fehlen einige notwendige Informationen, wie Zeitstempel. camera2 hat auf einigen Geräten Kompatibilitätsprobleme. Verschiedene Optionen wählen camera1 oder camera2 basierend auf dem Verwendungszweck.

CameraParameters

camera Parameter, einschließlich Bildgröße, Brennweite, Hauptpunkt, camera Typ und camera Rotationswinkel relativ zur natürlichen Ausrichtung des Geräts.

CloudLocalizer

CloudLocalizer implementiert die Cloud-Localization-Funktion.

CloudLocalizerBlockInstance

Eine Instanz des von CloudLocalizer lokalisierten Blocks.

CloudLocalizerResult
CloudRecognizationResult
CloudRecognizer

CloudRecognizer implementiert die Cloud-Erkennungsfunktion. Die Cloud-Erkennungsfunktion erfordert die Erstellung einer Cloud-Erkennungsbibliothek in der Cloud, um verwendet werden zu können. Bitte lesen Sie die EasyAR CRS-Dokumentation. Wenn die Komponente nicht mehr benötigt wird, können Sie close aufrufen, um sie zu schließen. Nach close sollte sie nicht weiter verwendet werden. Bevor Sie CloudRecognizer verwenden, müssen Sie einen ImageTracker einrichten und vorbereiten. Jedes zurückgegebene target sollte vor dem track manuell mit loadTarget in den ImageTracker geladen werden. Nach dem Laden ist die Erkennung und Verfolgung des targets identisch mit der Verwendung eines lokalen targets. Nachdem ein target erkannt wurde, können Sie es aus dem Rückruf abrufen, dann sollten Sie die target uid verwenden, um verschiedene targets zu unterscheiden. Die target runtimeID wird dynamisch generiert und ist nicht als eindeutige Unterscheidung für targets in Cloud-Erkennungsszenarien geeignet.

DelayedCallbackScheduler

Deferreder Rückrufplaner. Dient dazu, Rückrufe zu verzögern, bis sie manuell aufgerufen werden. Kann in Singlethread-Umgebungen (wie verschiedenen UI-Umgebungen) verwendet werden. Alle Mitglieder dieser Klasse sind threadsicher.

DenseSpatialMap

DenseSpatialMap wird verwendet, um eine präzise dreidimensionale dichte Rekonstruktion der Umgebung durchzuführen. Das rekonstruierte Modell wird durch ein dreieckiges Netz dargestellt, das als Mesh bezeichnet wird. DenseSpatialMap belegt einen Camera-Buffer.

DeviceAuxiliaryInfo
Engine
EventDumpRecorder

Ereignis-Speicheraufzeichnungsgerät. Dient zum Speichern wichtiger Diagnoseinformationen in EED-Dateien. Alle Mitglieder dieser Klasse sind threadsicher.

FeedbackFrame

Feedback-Frame. Enthält einen Eingangs-Frame und einen historischen Ausgangs-Frame, verwendet für Feedback-artige synchrone Verarbeitungskomponenten wie ImageTracker.

FeedbackFrameFork

Feedback-Frame-Splitter. Wird verwendet, um einen Feedback-Frame parallel an mehrere Komponenten zu übertragen. Alle Mitglieder dieser Klasse sind threadsicher.

FeedbackFrameSink

Rückkopplungsrahmen-Eingangsport. Dient zur Bereitstellung eines Eingangsports für eine Komponente. Alle Mitglieder dieser Klasse sind threadsicher.

FeedbackFrameSource

Feedback-Frame-Ausgangsport. Dient zum Exponieren des Ausgangsports einer Komponente. Alle Mitglieder dieser Klasse sind threadsicher.

FrameFilterResult

FrameFilterResult ist die Basisklasse für alle Ergebnisse, die synchrone Algorithmuskomponenten verwenden.

Gyroscope

Gyroscope greift auf das vom System bereitgestellte Gyroskop zu und gibt GyroscopeResult aus. Wenn das Gerät nicht mehr benötigt wird, kann close aufgerufen werden, um es zu schließen. Nach dem Schließen sollte es nicht weiter verwendet werden. Es wird nicht empfohlen, es gleichzeitig mehrfach zu öffnen, da dies zu Funktionsunfähigkeit oder beeinträchtigter Genauigkeit führen kann.

GyroscopeResult

Gyroskop-Lesewert. x-Achse positive Richtung zeigt vom Gerätezentrum nach rechts auf dem Bildschirm. y-Achse positive Richtung zeigt vom Gerätezentrum nach oben auf dem Bildschirm. z-Achse positive Richtung zeigt senkrecht vom Gerätezentrum nach außen. x, y, z repräsentieren die Winkelgeschwindigkeit in Radiant pro Sekunde um die jeweilige Achse. Die positive Rotationsrichtung ist gegen den Uhrzeigersinn, betrachtet von einem Punkt auf der positiven Achse aus. Timestamp-Einheit ist Sekunden.

GyroscopeResultSink

Eingabeport für Gyroskop-Ergebnisse. Dient zum Exponieren eines Eingabeports einer Komponente. Alle Mitglieder dieser Klasse sind threadsicher.

GyroscopeResultSource

Gyroskop-Ausgabeergebnis-Port. Dient zum Bereitstellen eines Ausgabeports einer Komponente. Alle Mitglieder dieser Klasse sind threadsicher.

Image

Image speichert Bilddaten und stellt ein Bild im Arbeitsspeicher dar. Image bietet Zugriff auf Rohdaten als Byte-Array sowie Schnittstellen für Informationen wie Breite/Höhe. In allen EasyAR Sense-Versionen können Sie auf Bilddaten zugreifen. In iOS erfolgt der Zugriff so:

#import <easyar/buffer.oc.h>
#import <easyar/image.oc.h>

easyar_OutputFrame * outputFrame = [outputFrameBuffer peek];
if (outputFrame != nil) {
    easyar_Image * i = [[outputFrame inputFrame] image];
    easyar_Buffer * b = [i buffer];
    char * bytes = calloc([b size], 1);
    memcpy(bytes, [b data], [b size]);
    // bytes hier verwenden
    free(bytes);
}

In Android:

import cn.easyar.*;

OutputFrame outputFrame = outputFrameBuffer.peek();
if (outputFrame != null) {
    InputFrame inputFrame = outputFrame.inputFrame();
    Image i = inputFrame.image();
    Buffer b = i.buffer();
    byte[] bytes = new byte[b.size()];
    b.copyToByteArray(0, bytes, 0, bytes.length);
    // bytes hier verwenden
    b.dispose();
    i.dispose();
    inputFrame.dispose();
    outputFrame.dispose();
}
ImageHelper

Bildhilfsklasse.

ImageTarget

ImageTarget repräsentiert das Target eines ebenen Bildes, das von ImageTracker verfolgt werden kann. Die Werte in ImageTarget müssen zuerst durch Methoden wie create... ausgefüllt werden, bevor sie gelesen werden können. Danach kann es nach erfolgreichem Laden durch loadTarget von ImageTracker erkannt und verfolgt werden.

ImageTargetParameters

ImageTargetParameters repräsentiert die Parameter, die zum Erstellen von ImageTarget benötigt werden.

ImageTracker

ImageTracker implementiert die Erkennung und Verfolgung von ebenen Karten. ImageTracker belegt (1 + SimultaneousNum) Camera-Buffer. Die setBufferCapacity der Kamera sollte auf mindestens die Anzahl aller von Komponenten belegten Camera-Buffer eingestellt werden. Nach der Erstellung können start/stop aufgerufen werden, um den Betrieb zu starten/beenden. start/stop sind sehr ressourcenschonende Aufrufe. Wenn die Komponente nicht mehr benötigt wird, kann close aufgerufen werden. Nach close sollte sie nicht weiter verwendet werden. ImageTracker empfängt FeedbackFrame über feedbackFrameSink. FeedbackFrameSource sollte mit feedbackFrameSink verbunden werden. Bevor ein Target von ImageTracker verfolgt werden kann, muss es über loadTarget/unloadTarget geladen werden. Ergebnisse des Ladens/Entladens können über Callback-Schnittstellen abgerufen werden.

ImageTrackerConfig

ImageTracker Konfiguration erstellen.

ImageTrackerResult

ImageTrackerErgebnis von.

ImmediateCallbackScheduler

Sofortiger Callback-Scheduler. Dient dazu, Callbacks sofort auszuführen, kann in Multithreading-Umgebungen (wie Servern oder Hintergrunddiensten) verwendet werden. Alle Mitglieder dieser Klasse sind threadsicher.

InertialCameraDevice

InertialCameraDevice implementiert eine auf Trägheitsbewegung basierende Kameravorrichtung, die CameraTransformType als FiveDofRotXZ ausgibt InputFrame (enthält Bild, Kameraparameter, Zeitstempel, Pose-Transformationsmatrix und Tracking-Status). Nach der Erstellung können start/stop aufgerufen werden, um die Erfassung von Videodaten zu starten und zu stoppen. Wenn das Gerät nicht mehr benötigt wird, kann close aufgerufen werden, um es zu schließen. Nach dem Schließen sollte es nicht mehr verwendet werden. InertialCameraDevice gibt über inputFrameSource InputFrame aus, und inputFrameSource sollte mit InputFrameSink verbunden werden, um es zu verwenden. bufferCapacity gibt die Kapazität des InputFrame-Puffers an. Wenn mehr als diese Anzahl von InputFrame aus dem Gerät ausgegeben und nicht freigegeben wird, gibt das Gerät keine neuen InputFrame mehr aus, bis die vorherigen freigegeben werden. Dies kann zu Problemen wie Einfrieren des Bildes führen.

InputFrame

Eingaberahmen. Enthält Bild, camera Parameter, Zeitstempel, Transformation der Kamera relativ zum Weltkoordinatensystem und Tracking-Status. Dabei sind camera Parameter, Zeitstempel, Transformation und Tracking-Status optional, aber bestimmte Algorithmenkomponenten haben spezifische Anforderungen an die Eingabe.

InputFrameFork

Frame-Distributor für Eingaben. Überträgt einen Eingabeframe parallel an mehrere Komponenten. Alle Mitglieder dieser Klasse sind Thread-sicher.

InputFramePlayer

Eingabe-Frame-Player. Es gibt einen Eingabe-Frame-Ausgangsport, zum Entnehmen von Eingabe-Frames aus EIF-Dateien. Alle Mitglieder dieser Klasse sind threadsicher.

InputFrameRecorder

Eingangsbild-Recorder. Verfügt über einen Eingangsbild-Eingangsport und einen Eingangsbild-Ausgangsport zum Speichern durchlaufender Eingangsbilder in einer EIF-Datei. Alle Mitglieder dieser Klasse sind threadsicher.

InputFrameSink

Eingabe-Frame-Eingangsanschluss. Dient zur Bereitstellung eines Eingangsanschlusses für eine Komponente. Alle Mitglieder dieser Klasse sind threadsicher.

InputFrameSource

Eingangsrahmen-Ausgangsport. Wird verwendet, um den Ausgangsport einer Komponente freizulegen. Alle Mitglieder dieser Klasse sind threadsicher.

InputFrameThrottler

Eingangsbilddrossel. Verfügt über einen Eingangsbild-Eingangsport und einen Eingangsbild-Ausgangsport, um zu verhindern, dass neue Eingangsbilder in die Algorithmuskomponente gelangen, während diese noch mit der Verarbeitung des vorherigen Bilddatensatzes beschäftigt ist. Die InputFrameThrottler belegt 1 camera-Puffer. Verwenden Sie camera.setBufferCapacity, um mindestens die Anzahl aller von Komponenten belegten camera-Puffer festzulegen. Alle Mitglieder dieser Klasse sind threadsicher. Beachten Sie, dass das Verbinden und Trennen von signalInput nicht gleichzeitig mit dem Datendurchfluss erfolgen sollte, da dies zu einem Zustand ohne Ausgabe führen kann. (Empfohlen: Abschließen der Datenflussverbindungen vor dem Start der Camera.)

InputFrameToFeedbackFrameAdapter

Eingangsframe-zu-Feedback-Frame-Adapter. Verfügt über einen Eingangsframe-Eingangsport, einen historischen Ausgangsframe-Eingangsport und einen Feedback-Frame-Ausgangsport. Kombiniert Eingangsframe und historischen Ausgangsframe zu einem Feedback-Frame, der an Algorithmuskomponenten wie ImageTracker weitergegeben wird. Bei jedem Eingangsframe wird dieser mit dem letzten historischen Ausgangsframe zu einem Feedback-Frame kombiniert. Falls kein historischer Ausgangsframe vorhanden ist, bleibt dieser im Feedback-Frame leer. InputFrameToFeedbackFrameAdapter belegt 1 Kamera-Puffer. camera.setBufferCapacity muss mindestens der Summe aller von Komponenten belegten Kamera-Puffer entsprechen. Alle Mitglieder dieser Klasse sind threadsicher.

InputFrameToOutputFrameAdapter

Eingabe-zu-Ausgabe-Frame-Adapter. Verfügt über einen Eingabe-Frame-Eingabeport und einen Ausgabe-Frame-Ausgabeport. Dient dazu, Eingabe-Frames in Ausgabe-Frames zu verpacken, um die direkte Wiedergabe ohne Anbindung an eine Algorithmus-Komponente zu ermöglichen. Alle Mitglieder dieser Klasse sind thread-sicher.

JniUtility

JNI Utility-Klasse. Verwendet, um Java-Arrays und ByteBuffer in Unity zu wrappen. Nicht unterstützt auf iOS-Plattform.

LocationResult

Positionsdaten. latitude, longitude in Grad. altitude in Metern. horizontalAccuracy ist die horizontale Genauigkeit in Metern. verticalAccuracy ist die vertikale Genauigkeit in Metern.

LocationResultSink

Position Ergebnis Eingangsport. Dient dazu, einen Eingangsport einer Komponente freizulegen. Alle Mitglieder dieser Klasse sind threadsicher.

LocationResultSource

Position Ergebnis Ausgangsport. Wird verwendet, um einen Ausgangsport einer Komponente freizulegen. Alle Mitglieder dieser Klasse sind threadsicher.

Log

Protokollklasse. Verwendet zur Protokollausgabe oder zum Festlegen einer benutzerdefinierten Protokollausgabefunktion.

Magnetometer

Magnetometer greift auf das vom System bereitgestellte Magnetometer zurück und gibt MagnetometerResult aus. Wenn das Gerät nicht mehr benötigt wird, kann close zum Schließen aufgerufen werden. Nach dem close sollte es nicht weiter verwendet werden. Es wird nicht empfohlen, es gleichzeitig mehrfach zu öffnen, da dies zu Funktionsunfähigkeit oder Genauigkeitsverlust führen kann.

MagnetometerResult

Magnetometer-Lesewerte. x-Achse positiv von der Gerätemitte zur rechten Bildschirmseite. y-Achse positiv von der Gerätemitte zur oberen Bildschirmseite. z-Achse positiv senkrecht vom Gerätemittelpunkt nach außen. x, y, z in uT (Mikrotesla). Zeitstempel in Sekunden.

MagnetometerResultSink

Magnetometer-Eingangsport für Ergebnisse. Wird verwendet, um den Eingangsport einer Komponente verfügbar zu machen. Alle Mitglieder dieser Klasse sind threadsicher.

MagnetometerResultSource

Magnetometer-Ergebnisausgangsport. Dient zum Verfügbarmachen eines Ausgangsports einer Komponente. Alle Mitglieder dieser Klasse sind Thread-sicher.

Matrix33F

Quadratische Matrix dritter Ordnung. Die Daten sind im Row-major-Format angeordnet.

Matrix44F

Vierdimensionale quadratische Matrix. Daten sind in row-major angeordnet.

MegaLandmarkFilter

MegaLandmarkFilter implementiert die VPS Cloud-Positionierungsfilterfunktion.

MegaLandmarkFilterResult
MegaTracker

Bietet Cloud-Lokalisierungsfunktionalität. MegaTracker belegt einen Camera-Buffer.

MegaTrackerBlockInstance

Instanz des von MegaTracker georteten Blocks.

MegaTrackerLocalizationResponse

Antwort auf die MegaTracker-Positionsanfrage.

MegaTrackerResult

Die Ausgabe von MegaTracker wird mit der Frequenz von OutputFrame aktualisiert.

MotionInputData

Bewegungseingabedaten. Enthält Zeitstempel, Transformation relativ zum Weltkoordinatensystem und Tracking-Status.

MotionTrackerCameraDevice

MotionTrackerCameraDevice implementiert eine Kamera-Einrichtung mit 6DOF-Bewegungsverfolgung in echter Skala und gibt InputFrame aus (enthält Bild, Kameraparameter, Zeitstempel, 6DOF-Positionsinformationen und Tracking-Status). Nach der Erstellung können start/stop aufgerufen werden, um den Datenstrom zu starten und zu stoppen. Wenn die Einrichtung nicht mehr benötigt wird, kann close zum Schließen aufgerufen werden. Nach close sollte sie nicht weiter verwendet werden. MotionTrackerCameraDevice gibt InputFrame über inputFrameSource aus. inputFrameSource sollte zur Verwendung mit InputFrameSink verbunden werden.

ObjectTarget

ObjectTarget repräsentiert ein 3D-Objektziel, das von ObjectTracker verfolgt werden kann. Die Größe von ObjectTarget wird durch die obj-Datei bestimmt. Durch Ändern von scale kann die Größe angepasst werden. scale ist standardmäßig 1. Nachdem ObjectTarget erfolgreich über loadTarget in ObjectTracker geladen wurde, kann es von ObjectTracker erkannt und verfolgt werden.

ObjectTargetParameters

ObjectTargetParameters repräsentiert die Parameter, die zur Erstellung von ObjectTarget benötigt werden.

ObjectTracker

ObjectTracker implementiert die Erkennung und Verfolgung von 3D-Object-Targets. ObjectTracker belegt (1 + SimultaneousNum) Camera-Buffer. Verwenden Sie setBufferCapacity der Kamera, um mindestens die Anzahl aller von Komponenten belegten Camera-Buffer festzulegen. Nach der Erstellung können Sie start/stop aufrufen, um den Betrieb zu starten und zu stoppen. start/stop sind sehr leichtgewichtige Aufrufe. Wenn die Komponente nicht mehr benötigt wird, können Sie close zum Schließen aufrufen. Nach close sollte sie nicht weiter verwendet werden. ObjectTracker empfängt FeedbackFrame über feedbackFrameSink. Verbinden Sie FeedbackFrameSource mit feedbackFrameSink zur Nutzung. Bevor ein Target von ObjectTracker verfolgt werden kann, müssen Sie es via loadTarget/unloadTarget laden. Ergebnisse des Ladens/Entladens können über Callback-Schnittstellen abgerufen werden.

ObjectTrackerResult

das Ergebnis von ObjectTracker

OutputFrame

Ausgabe-Frame. Enthält den Eingabe-Frame und die Ausgabe der Synchronverarbeitungskomponente.

OutputFrameBuffer

Ausgaberahmenpuffer. Es gibt einen Ausgaberahmen-Eingangsport und eine Ausgaberahmen-Abruffunktion, die dazu dienen, die Abrufmethode für Ausgaberahmen von asynchron auf synchrones Polling umzustellen, geeignet für Frame-für-Frame-Rendering. OutputFrameBuffer belegt 1 Buffer der Kamera. Die Methode setBufferCapacity der Kamera sollte verwendet werden, um eine Kapazität einzustellen, die nicht weniger als die Anzahl der von allen Komponenten belegten Kamera-Buffer beträgt. Alle Mitglieder dieser Klasse sind threadsicher.

OutputFrameFork

Ausgaberahmenverteiler. Verteilt einen Ausgaberahmen parallel an mehrere Komponenten. Alle Mitglieder dieser Klasse sind Thread-sicher.

OutputFrameJoin

Ausgabe-Frame-Combiner. Dient zum Zusammenführen der Ausgabe-Frames mehrerer Komponenten zu einem einzigen Ausgabe-Frame. Alle Mitglieder dieser Klasse sind threadsicher. Es ist zu beachten, dass das Verbinden und Trennen mehrerer Eingänge nicht gleichzeitig mit dem Datenfluss erfolgen sollte, da sonst der Ausgangszustand blockiert werden könnte.(Empfohlen wird, die Datenflussverbindungen vor dem Start der Kamera abzuschließen.)

OutputFrameSink

Ausgaberahmen-Eingangsport. Dient zum Exponieren des Eingangsports einer Komponente. Alle Mitglieder dieser Klasse sind threadsicher.

OutputFrameSource

Ausgabe-Frame-Ausgabeport. Dient zum Verfügbarmachen der Ausgabeports einer Komponente. Alle Mitglieder dieser Klasse sind threadsicher.

PlaneData
PoseUtility
ProximityLocationResult

Nahbereichspositionsmessungen. x, y, z Einheiten in Metern. Ursprung ist der Kachelursprung. y nach oben. Genauigkeitseinheit in Metern. Zeitstempel, gültige Zeit Einheiten in Sekunden. is2d gibt an, ob y nicht verwendet wird.

ProximityLocationResultSink

Nahegelegene Position Ergebnis Eingabeport. Wird verwendet, um einen Eingabeport einer Komponente auszusetzen. Alle Mitglieder dieser Klasse sind Thread-Sicher.

ProximityLocationResultSource

Ausgabeanschluss für nahegelegene Positionen. Dient zum Bereitstellen eines Ausgabeanschlusses einer Komponente. Alle Mitglieder dieser Klasse sind threadsicher.

Recorder

Recorder implementiert die Bildschirmaufnahmefunktion für die aktuelle Rendering-Umgebung. Derzeit funktioniert Recorder nur unter Android (4.3 oder neuer) und iOS mit OpenGL ES 3.0-Umgebung. Aufgrund der Abhängigkeit von OpenGLES müssen alle Funktionen dieser Klasse (außer requestPermissions, einschließlich Destruktoren) in einem einzigen Thread mit OpenGLES-Kontext aufgerufen werden. Nur für Unity Wenn in Unity die Multi-threaded Rendering-Funktion verwendet wird, wird der Skript-Thread vom Rendering-Thread getrennt, und updateFrame kann nicht auf dem Rendering-Thread aufgerufen werden. Daher sollte Multi-threaded Rendering deaktiviert werden, wenn die Bildschirmaufnahmefunktion benötigt wird. Bei Verwendung unter Android muss in der AndroidManifest.xml die Berechtigungserklärung android.permission.RECORD_AUDIO hinzugefügt werden. Bei Verwendung unter iOS muss in der Info.plist die Berechtigungserklärung NSMicrophoneUsageDescription hinzugefügt werden.

RecorderConfiguration

RecorderConfiguration ist die Startkonfiguration für Recorder.

SceneMesh
SignalSink

Signal-Eingangsanschluss. Wird verwendet, um einen Eingangsanschluss einer Komponente freizulegen. Alle Mitglieder dieser Klasse sind threadsicher.

SignalSource

Signalausgangsport. Dient dazu, den Ausgangsport einer Komponente freizulegen. Alle Mitglieder dieser Klasse sind threadsicher.

SparseSpatialMap

Bietet die Hauptfunktionen des SparseSpatialMap-Systems: Kartengenerierung und -speicherung, Kartenladen und Lokalisierung. Ermöglicht außerdem das Abrufen von Umgebungsinformationen wie Punktwolken und Ebenen sowie Hit-Tests. SparseSpatialMap belegt 2 camera-Buffer. Verwenden Sie camera.setBufferCapacity, um eine Kapazität einzustellen, die nicht geringer ist als die von allen Komponenten insgesamt belegte Anzahl an camera-Buffern.

SparseSpatialMapConfig

Zur Konfiguration der Lokalisierungsstrategie in der spärlichen Kartierung.

SparseSpatialMapManager

SparseSpatialMap-Manager-Klasse zur Verwaltung der Freigabefunktionen von SparseSpatialMap.

SparseSpatialMapResult

Ruft die Ausgabe des Sparse-Mapping-und-Lokalisierungssystems ab, die mit der OutputFrame-Frequenz aktualisiert wird.

Storage
SurfaceTracker

SurfaceTracker implementiert die Verfolgung von Umgebungsoberflächen. SurfaceTracker belegt einen Kamera-Buffer. Die setBufferCapacity-Methode der Kamera sollte auf mindestens die Anzahl der von allen Komponenten belegten Kamera-Buffer eingestellt werden. Nach der Erstellung kann start/stop aufgerufen werden, um den Betrieb zu beginnen und zu stoppen; start/stop sind sehr leichte Aufrufe. Wenn die Komponente nicht mehr benötigt wird, kann close aufgerufen werden, um sie zu schließen. Nach close sollte sie nicht mehr verwendet werden. SurfaceTracker empfängt InputFrame über inputFrameSink; InputFrameSource sollte an inputFrameSink angeschlossen werden, um verwendet zu werden.

SurfaceTrackerResult

SurfaceTracker-Ergebnis.

Target

Target ist die Basisklasse für alle Ziele in EasyAR, die von ImageTracker oder anderen Algorithmen verfolgt werden können.

TargetInstance

TargetInstance ist das Ziel, das vom Tracker verfolgt wird. TargetInstance umfasst das ursprüngliche Target, das verfolgt wird, sowie den aktuellen Zustand und die Haltung dieses Target.

TargetTrackerResult

TargetTrackerResult ist die Basisklasse von ImageTrackerResult und ObjectTrackerResult.

TextureId

TextureId kapselt das Texturobjekt in der Grafik-API. Für OpenGL/OpenGLES sollten getInt und fromInt verwendet werden, für Direct3D getPointer und fromPointer.

ThreeDofCameraDevice

ThreeDofCameraDevice implementiert eine Three-Dof-Kamera. Es gibt InputFrame mit CameraTransformType als ThreeDofRotOnly aus (enthält Bild, Kameraparameter, Zeitstempel, Pose-Transformationsmatrix und Tracking-Status). Nach der Erstellung können start/stop aufgerufen werden, um die Videodatenerfassung zu starten bzw. zu stoppen. Wenn das Gerät nicht mehr benötigt wird, kann close aufgerufen werden. Nach close sollte es nicht weiter verwendet werden. ThreeDofCameraDevice gibt InputFrame über inputFrameSource aus. inputFrameSource sollte zur Verwendung mit einem InputFrameSink verbunden werden. bufferCapacity gibt die Kapazität des InputFrame-Puffers an. Werden mehr InputFrame ausgegeben als diese Anzahl und nicht freigegeben, stoppt die Ausgabe neuer Frames bis zur Freigabe. Dies kann zu Einfrieren führen.

Vec2F

2D-Float-Vektor.

Vec2I

zweidimensionaler int-Vektor.

Vec3D

Dreidimensionaler Double-Vektor.

Vec3F

3D-Float-Vektor.

Vec4F

vierdimensionaler Float-Vektor.

Vec4I

vierdimensionaler int-Vektor.

VideoInputFramePlayer

Eingabeframespieler. Es gibt einen Eingabeframe-Ausgangsport, der dazu dient, Eingabeframes aus EIF-MKV-Dateien zu extrahieren. Alle Mitglieder dieser Klasse sind threadsicher.

VideoInputFrameRecorder

Eingabe-Frame-Recorder. Verfügt über einen Eingabe-Frame-Eingangsport und einen Eingabe-Frame-Ausgangsport zum Speichern durchlaufender Eingabeframes in einer EIF-MKV-Datei. Alle Mitglieder dieser Klasse sind thread-sicher.

VideoPlayer

VideoPlayer ist die Videowiedergabeklasse. EasyAR unterstützt normale Videos, transparente Videos und Streaming-Wiedergabe. Der Videoinhalt wird auf die Textur gerendert, die an setRenderTexture übergeben wurde. Diese Klasse unterstützt nur OpenGLES 3.0-Texturen. Aufgrund der Abhängigkeit von OpenGLES müssen alle Funktionen dieser Klasse (inklusive Destruktor) in einem einzigen Thread mit OpenGLES-Kontext aufgerufen werden. Aktuelle Version erfordert Breite und Höhe als Vielfache von 16. Unterstützte Videoformate: Windows: Media Foundation-kompatible Formate. Zusätzliche Decoder ermöglichen mehr Formate. Siehe Supported Media Formats in Media Foundation. DirectShow nicht unterstützt. Mac: Nicht unterstützt Android: Systemunterstützte Formate. Siehe Supported media formats. iOS: Systemunterstützte Formate. Derzeit keine effektive Referenzdokumentation.

VisionOSARKitCameraDevice

VisionOSARKitCameraDevice implementiert ein auf VisionOS ARKit basierendes Kamera-Gerät, das InputFrame ausgibt (enthält Bilder, Kameraparameter, Zeitstempel, 6DOF-Positionsinformationen und Tracking-Status). Nach der Erstellung kann man start/stop aufrufen, um die Erfassung von Videodaten zu starten und zu stoppen. Wenn das Gerät nicht mehr benötigt wird, kann man close aufrufen, um es zu schließen. Nach dem Schließen sollte es nicht weiter verwendet werden. VisionOSARKitCameraDevice gibt InputFrame über inputFrameSource aus, und inputFrameSource sollte mit InputFrameSink verbunden werden, um es zu verwenden. bufferCapacity gibt die Kapazität des InputFrame-Puffers an. Wenn mehr als diese Anzahl von InputFrame ausgegeben und nicht freigegeben wird, gibt das Gerät keine neuen InputFrame mehr aus, bis die vorherigen InputFrame freigegeben werden. Dies kann zu Problemen wie Bildstillstand führen.

XREALCameraDevice

XREALCameraDevice implementiert eine Kameraeinrichtung basierend auf dem XREAL Enterprise Native SDK Plugin und gibt InputFrame aus (kein Zugriff auf Bilder, Kameraparameter, Zeitstempel, 6DOF-Positionsinformationen und Tracking-Status). Nach der Erstellung kann start/stop aufgerufen werden, um die Erfassung von Videodatenströmen zu beginnen bzw. zu beenden. Es muss sichergestellt werden, dass start erst aufgerufen wird, nachdem isDeviceSupported true zurückgegeben hat. Wenn das Gerät nicht mehr benötigt wird, kann close aufgerufen werden, um es zu schließen. Nach close sollte es nicht weiter verwendet werden. XREALCameraDevice gibt InputFrame über inputFrameSource aus. inputFrameSource sollte mit einem InputFrameSink verbunden werden, um verwendet werden zu können. bufferCapacity gibt die Kapazität des InputFrame-Puffers an. Wenn mehr InputFrame aus diesem Gerät ausgegeben werden als diese Anzahl und diese nicht freigegeben wurden, gibt das Gerät keine neuen InputFrame mehr aus, bis vorherige InputFrame freigegeben wurden. Dies kann zu Problemen wie eingefrorenen Bildern führen.

Enumerationen

AndroidCameraApiType
ARCoreCameraDeviceFocusMode
ARCoreDeviceListDownloadStatus
ARKitCameraDeviceFocusMode
BlockPriorMode

A-priori-Karteninformationsmodus

CalibrationDownloadStatus
CameraDeviceFocusMode
CameraDevicePreference
CameraDevicePresetProfile
CameraDeviceType

Kameragerätetyp.

CameraModelType

Kameramodelltyp.

CameraState
CameraTransformType

Kameratransformationstyp.

CloudLocalizerStatus

Cloud-Positionierungsstatus.

CloudRecognizationStatus
EngineOperatingSystem
ImageTrackerMode
InertialCameraDeviceFocusMode
LocalizationMode
LogLevel
MegaApiType

MEGA API-Typ.

MegaLandmarkFilterStatus
MegaTrackerLocalizationStatus
MotionTrackerCameraDeviceFocusMode
MotionTrackerCameraDeviceFPS
MotionTrackerCameraDeviceQualityLevel
MotionTrackerCameraDeviceResolution
MotionTrackerCameraDeviceTrackingMode
MotionTrackingStatus

Beschreibt die Qualität der Bewegungsverfolgung des Geräts.

PermissionStatus
PixelFormat

PixelFormat bezeichnet das Bildpixelformat. Bei allen Formaten verlaufen die Pixel von links nach rechts und von oben nach unten.

PlaneType
RecordProfile
RecordStatus
RecordVideoOrientation
RecordVideoSize
RecordZoomMode
StorageType

StorageType gibt den Speicherort für Bilder, JSON-Dateien, Videos oder andere Dateien an. StorageType legt das Stammverzeichnis für die Dateispeicherung fest. Sie können in allen relevanten Schnittstellen relative Pfade relativ zu diesem Stammverzeichnis verwenden.

TargetStatus
ThreeDofCameraDeviceFocusMode
ValidationState
VideoInputFrameRecorderCompletionReason
VideoInputFrameRecorderVideoCodec
VideoStatus
VideoType