Table of Contents

Class MegaGoTracker

Namespace
easyar

Bietet die Positionsbestimmung auf Geräteseite. MegaGoTracker belegt 2 Kamerapuffer.

MegaGoTracker

Methoden

isAvailable

Prüfen Sie, ob die Komponente verfügbar ist. Auf Android wird API Level 24 oder höher benötigt; auf allen Plattformen müssen die erforderlichen Laufzeitabhängigkeiten erfüllt sein.

bool easyar_MegaGoTracker_isAvailable(void)
static bool isAvailable()
public static boolean isAvailable()
companion object fun isAvailable(): Boolean
+ (bool)isAvailable
public static func isAvailable() -> Bool
public static bool isAvailable()

Rückgabewert

Typ Beschreibung
Boolean

inputFrameSink

Eingangsrahmen-Eingangsport. Der Eingangsrahmen muss ein Bild, Kameraparameter und einen Zeitstempel enthalten. Die 6DoF-Rauminformationen müssen cameraTransform und trackingStatus enthalten. Siehe InputFrameSink.

void easyar_MegaGoTracker_inputFrameSink(easyar_MegaGoTracker * This, easyar_InputFrameSink * * Return)
std::shared_ptr<InputFrameSink> inputFrameSink()
public @Nonnull InputFrameSink inputFrameSink()
fun inputFrameSink(): InputFrameSink
- (easyar_InputFrameSink *)inputFrameSink
public func inputFrameSink() -> InputFrameSink
public virtual InputFrameSink inputFrameSink()

Rückgabewert

Typ Beschreibung
InputFrameSink

accelerometerResultSink

Eingangsport für Beschleunigungsmesserergebnisse. Siehe AccelerometerResultSink.

void easyar_MegaGoTracker_accelerometerResultSink(easyar_MegaGoTracker * This, easyar_AccelerometerResultSink * * Return)
std::shared_ptr<AccelerometerResultSink> accelerometerResultSink()
public @Nonnull AccelerometerResultSink accelerometerResultSink()
fun accelerometerResultSink(): AccelerometerResultSink
- (easyar_AccelerometerResultSink *)accelerometerResultSink
public func accelerometerResultSink() -> AccelerometerResultSink
public virtual AccelerometerResultSink accelerometerResultSink()

Rückgabewert

Typ Beschreibung
AccelerometerResultSink

bufferRequirement

Die Anzahl der von der aktuellen Komponente belegten Kamerapuffer.

int easyar_MegaGoTracker_bufferRequirement(const easyar_MegaGoTracker * This)
int bufferRequirement()
public int bufferRequirement()
fun bufferRequirement(): Int
- (int)bufferRequirement
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()

Rückgabewert

Typ Beschreibung
Int32

outputFrameSource

Ausgabe-Frame-Ausgangsport. Siehe OutputFrameSource.

void easyar_MegaGoTracker_outputFrameSource(easyar_MegaGoTracker * This, easyar_OutputFrameSource * * Return)
std::shared_ptr<OutputFrameSource> outputFrameSource()
public @Nonnull OutputFrameSource outputFrameSource()
fun outputFrameSource(): OutputFrameSource
- (easyar_OutputFrameSource *)outputFrameSource
public func outputFrameSource() -> OutputFrameSource
public virtual OutputFrameSource outputFrameSource()

Rückgabewert

Typ Beschreibung
OutputFrameSource

create

Eine Instanz erstellen.

void easyar_MegaGoTracker_create(easyar_MegaGoTracker * * Return)
static std::shared_ptr<MegaGoTracker> create()
public static @Nonnull MegaGoTracker create()
companion object fun create(): MegaGoTracker
+ (easyar_MegaGoTracker *)create
public static func create() throws -> MegaGoTracker
public static MegaGoTracker create()

Rückgabewert

Typ Beschreibung
MegaGoTracker

extractBlockInfoFromFile

Extrahiere Block-Informationen aus der Karten-Datei.

void easyar_MegaGoTracker_extractBlockInfoFromFile(easyar_String * path, easyar_OptionalOfMegaGoBlockInfo * Return)
static std::optional<std::shared_ptr<MegaGoBlockInfo>> extractBlockInfoFromFile(std::string path)
public static @Nullable MegaGoBlockInfo extractBlockInfoFromFile(java.lang.@Nonnull String path)
companion object fun extractBlockInfoFromFile(path: String): MegaGoBlockInfo?
+ (easyar_MegaGoBlockInfo *)extractBlockInfoFromFile:(NSString *)path
public static func extractBlockInfoFromFile(_ path: String) -> MegaGoBlockInfo?
public static Optional<MegaGoBlockInfo> extractBlockInfoFromFile(string path)

Parameter

Name Typ Beschreibung
path String

Rückgabewert

Typ Beschreibung
Optional<MegaGoBlockInfo>

extractBlockInfoFromBuffer

Extrahiere Block-Informationen aus den Karten-Speicherdaten.

void easyar_MegaGoTracker_extractBlockInfoFromBuffer(easyar_Buffer * buffer, easyar_OptionalOfMegaGoBlockInfo * Return)
static std::optional<std::shared_ptr<MegaGoBlockInfo>> extractBlockInfoFromBuffer(std::shared_ptr<Buffer> buffer)
public static @Nullable MegaGoBlockInfo extractBlockInfoFromBuffer(@Nonnull Buffer buffer)
companion object fun extractBlockInfoFromBuffer(buffer: Buffer): MegaGoBlockInfo?
+ (easyar_MegaGoBlockInfo *)extractBlockInfoFromBuffer:(easyar_Buffer *)buffer
public static func extractBlockInfoFromBuffer(_ buffer: Buffer) -> MegaGoBlockInfo?
public static Optional<MegaGoBlockInfo> extractBlockInfoFromBuffer(Buffer buffer)

Parameter

Name Typ Beschreibung
buffer Buffer

Rückgabewert

Typ Beschreibung
Optional<MegaGoBlockInfo>

setEnableStatelessLocalization

Einstellung, ob die zustandslose Positionsbestimmung aktiviert werden soll. Wenn die zustandslose Positionsbestimmung aktiviert ist, wird das Ergebnis der letzten Positionsbestimmung nicht bei der Positionsbestimmung verwendet. Der Standardwert ist false.

void easyar_MegaGoTracker_setEnableStatelessLocalization(easyar_MegaGoTracker * This, bool enableStatelessLocalization)
void setEnableStatelessLocalization(bool enableStatelessLocalization)
public void setEnableStatelessLocalization(boolean enableStatelessLocalization)
fun setEnableStatelessLocalization(enableStatelessLocalization: Boolean): Unit
- (void)setEnableStatelessLocalization:(bool)enableStatelessLocalization
public func setEnableStatelessLocalization(_ enableStatelessLocalization: Bool) -> Void
public virtual void setEnableStatelessLocalization(bool enableStatelessLocalization)

Parameter

Name Typ Beschreibung
enableStatelessLocalization Boolean

Rückgabewert

Typ Beschreibung
Void

setResultAsyncMode

Stellen Sie den asynchronen Modus für die Ergebnisse ein. Wenn die Ergebnisse über outputFrameSource ausgegeben werden, sollte dieser Wert auf true gesetzt werden; wenn die Ergebnisse über getSyncResult abgerufen werden, sollte dieser Wert auf false gesetzt werden. Der Standardwert ist true. Der synchrone Modus ist nur verfügbar, wenn eine XR-Lizenz verwendet wird. Gibt true zurück, wenn der angeforderte Modus erfolgreich angewendet wurde; gibt false zurück und behält den asynchronen Modus bei, wenn der synchrone Modus nicht unterstützt wird.

bool easyar_MegaGoTracker_setResultAsyncMode(easyar_MegaGoTracker * This, bool enableAsync)
bool setResultAsyncMode(bool enableAsync)
public boolean setResultAsyncMode(boolean enableAsync)
fun setResultAsyncMode(enableAsync: Boolean): Boolean
- (bool)setResultAsyncMode:(bool)enableAsync
public func setResultAsyncMode(_ enableAsync: Bool) -> Bool
public virtual bool setResultAsyncMode(bool enableAsync)

Parameter

Name Typ Beschreibung
enableAsync Boolean

Rückgabewert

Typ Beschreibung
Boolean

status

Gibt den aktuellen Laufzustand von MegaGoTracker zurück.

easyar_MegaGoTrackerStatus easyar_MegaGoTracker_status(const easyar_MegaGoTracker * This)
MegaGoTrackerStatus status()
public int status()
fun status(): Int
- (easyar_MegaGoTrackerStatus)status
public func status() -> MegaGoTrackerStatus
public virtual MegaGoTrackerStatus status()

Rückgabewert

Typ Beschreibung
MegaGoTrackerStatus

error

Gibt den aktuellen Fehler von MegaGoTracker zurück. Leer, wenn es keinen Fehler gibt.

easyar_OptionalOfMegaGoTrackerError easyar_MegaGoTracker_error(const easyar_MegaGoTracker * This)
std::optional<MegaGoTrackerError> error()
public @Nullable Integer error()
fun error(): Int?
- (NSNumber *)error
public func error() -> MegaGoTrackerError?
public virtual Optional<MegaGoTrackerError> error()

Rückgabewert

Typ Beschreibung
Optional<MegaGoTrackerError>

setLocalizationCallback

Richten Sie den Positionsrückruf ein. Wenn der Betriebszustand "Detecting" oder "Tracking" ist, wird bei jeder gültigen und nicht abgebrochenen Positionsantwort gemeldet, ob die Ausgabe aktualisiert wurde, sowie der Zeitstempel des entsprechenden Eingangsbildes.

void easyar_MegaGoTracker_setLocalizationCallback(easyar_MegaGoTracker * This, easyar_CallbackScheduler * callbackScheduler, easyar_FunctorOfVoidFromMegaGoTrackerLocalizationResponse callback)
void setLocalizationCallback(std::shared_ptr<CallbackScheduler> callbackScheduler, std::function<void(std::shared_ptr<MegaGoTrackerLocalizationResponse>)> callback)
public void setLocalizationCallback(@Nonnull CallbackScheduler callbackScheduler, @Nonnull FunctorOfVoidFromMegaGoTrackerLocalizationResponse callback)
fun setLocalizationCallback(callbackScheduler: CallbackScheduler, callback: FunctorOfVoidFromMegaGoTrackerLocalizationResponse): Unit
- (void)setLocalizationCallback:(easyar_CallbackScheduler *)callbackScheduler callback:(void (^)(easyar_MegaGoTrackerLocalizationResponse * response))callback
public func setLocalizationCallback(_ callbackScheduler: CallbackScheduler, _ callback: @escaping (MegaGoTrackerLocalizationResponse) -> Void) -> Void
public virtual void setLocalizationCallback(CallbackScheduler callbackScheduler, Action<MegaGoTrackerLocalizationResponse> callback)

Parameter

Name Typ Beschreibung
callbackScheduler CallbackScheduler
callback Action<MegaGoTrackerLocalizationResponse>

Rückgabewert

Typ Beschreibung
Void

setCameraPositionOverride

Setzen Sie den Überdeckungswert der Kameraposition relativ zum Kartenblock. Nach der Einstellung gibt MegaGoTracker den Überdeckungswert aus und verwendet nicht die entsprechenden Koordinaten in den Eingangsbilddaten. Dies kann verwendet werden, um die Genauigkeit der ausgegebenen Pose zu verbessern, wenn die Karteninformationen bekannt sind und die Sensoren begrenzt sind.

void easyar_MegaGoTracker_setCameraPositionOverride(easyar_MegaGoTracker * This, easyar_OptionalOfFloat x, easyar_OptionalOfFloat y, easyar_OptionalOfFloat z)
void setCameraPositionOverride(std::optional<float> x, std::optional<float> y, std::optional<float> z)
public void setCameraPositionOverride(java.lang.@Nullable Float x, java.lang.@Nullable Float y, java.lang.@Nullable Float z)
fun setCameraPositionOverride(x: Float?, y: Float?, z: Float?): Unit
- (void)setCameraPositionOverride:(NSNumber *)x y:(NSNumber *)y z:(NSNumber *)z
public func setCameraPositionOverride(_ x: Float?, _ y: Float?, _ z: Float?) -> Void
public virtual void setCameraPositionOverride(Optional<float> x, Optional<float> y, Optional<float> z)

Parameter

Name Typ Beschreibung
x Optional<Single>
y Optional<Single>
z Optional<Single>

Rückgabewert

Typ Beschreibung
Void

loadTargetFromFile

Laden Sie ein target asynchron aus einer Datei. Das target kann erst für die Positionsbestimmung verwendet werden, nachdem es erfolgreich geladen wurde. Nur ein target kann gleichzeitig aktiv sein. Beim Aufruf dieser Methode werden sofort die aktuell von Tracker lokalisierten block - Instanzen und der akkumulierte Verfolgungsstatus gelöscht. Wenn das aktuelle Laden fehlschlägt oder abgebrochen wird, werden die vorherigen target und Positions - Instanzen nicht wiederhergestellt. Beim Aufruf dieser Methode wird die noch nicht abgeschlossene Ladeanforderung ersetzt. Der laufende Ladevorgang kann möglicherweise nicht sofort gestoppt werden; der callback der ersetzten Anforderung wird nach Abschluss der Operation aufgerufen, und sein Ergebnisstatus ist MegaGoTargetLoadStatus.Canceled. Wenn das target nicht analysiert werden kann oder die Inhalte beschädigt sind, ist der Ergebnisstatus MegaGoTargetLoadStatus.InvalidTarget. Diese Methode gibt sofort zurück. Nach Abschluss des Ladens wird der callback im von CallbackScheduler angegebenen Thread aufgerufen; bei Erfolg enthält das Ergebnis Informationen über den geladenen block. MegaGoTargetLoadStatus.Success bedeutet nur, dass die target - Daten erfolgreich geladen wurden. Weitere Prüfungen können noch durchgeführt werden oder fehlschlagen. Der aktuelle Verarbeitungsstatus und die Fehler von MegaGoTracker sollten über status und error überprüft werden. Nachdem MegaGoTracker geschlossen wurde, werden die noch nicht ausgeführten callbacks nicht mehr aufgerufen.

void easyar_MegaGoTracker_loadTargetFromFile(easyar_MegaGoTracker * This, easyar_String * path, easyar_CallbackScheduler * callbackScheduler, easyar_FunctorOfVoidFromMegaGoTargetLoadResult callback)
void loadTargetFromFile(std::string path, std::shared_ptr<CallbackScheduler> callbackScheduler, std::function<void(std::shared_ptr<MegaGoTargetLoadResult>)> callback)
public void loadTargetFromFile(java.lang.@Nonnull String path, @Nonnull CallbackScheduler callbackScheduler, @Nonnull FunctorOfVoidFromMegaGoTargetLoadResult callback)
fun loadTargetFromFile(path: String, callbackScheduler: CallbackScheduler, callback: FunctorOfVoidFromMegaGoTargetLoadResult): Unit
- (void)loadTargetFromFile:(NSString *)path callbackScheduler:(easyar_CallbackScheduler *)callbackScheduler callback:(void (^)(easyar_MegaGoTargetLoadResult * result))callback
public func loadTargetFromFile(_ path: String, _ callbackScheduler: CallbackScheduler, _ callback: @escaping (MegaGoTargetLoadResult) -> Void) -> Void
public virtual void loadTargetFromFile(string path, CallbackScheduler callbackScheduler, Action<MegaGoTargetLoadResult> callback)

Parameter

Name Typ Beschreibung
path String
callbackScheduler CallbackScheduler
callback Action<MegaGoTargetLoadResult>

Rückgabewert

Typ Beschreibung
Void

loadTargetFromBuffer

Laden Sie ein target asynchron aus dem Speicher. Das target kann erst für die Positionsbestimmung verwendet werden, nachdem es erfolgreich geladen wurde. Nur ein target kann gleichzeitig aktiv sein. Beim Aufruf dieser Methode werden sofort die aktuell von Tracker lokalisierten block - Instanzen und der akkumulierte Verfolgungsstatus gelöscht. Wenn der aktuelle Ladevorgang fehlschlägt oder abgebrochen wird, werden das vorherige target und die Positions - Instanz nicht wiederhergestellt. Beim Aufruf dieser Methode wird die noch nicht abgeschlossene Ladeanfrage ersetzt. Der laufende Ladevorgang kann möglicherweise nicht sofort gestoppt werden; der callback der ersetzten Anfrage wird nach Abschluss der Operation aufgerufen, und sein Ergebnisstatus ist MegaGoTargetLoadStatus.Canceled. Wenn das target nicht analysiert werden kann oder die Inhalte beschädigt sind, ist der Ergebnisstatus MegaGoTargetLoadStatus.InvalidTarget. Diese Methode gibt sofort zurück. Nach Abschluss des Ladevorgangs wird der callback im von CallbackScheduler angegebenen Thread aufgerufen; bei Erfolg enthält das Ergebnis die Informationen über den geladenen block. MegaGoTargetLoadStatus.Success bedeutet nur, dass die target - Daten erfolgreich geladen wurden. Weitere Prüfungen können noch erfolgen oder fehlschlagen. Der aktuelle Verarbeitungsstatus und die Fehler von MegaGoTracker sollten über status und error überprüft werden. Nachdem MegaGoTracker geschlossen wurde, werden nicht ausgeführte callbacks nicht mehr aufgerufen.

void easyar_MegaGoTracker_loadTargetFromBuffer(easyar_MegaGoTracker * This, easyar_Buffer * buffer, easyar_CallbackScheduler * callbackScheduler, easyar_FunctorOfVoidFromMegaGoTargetLoadResult callback)
void loadTargetFromBuffer(std::shared_ptr<Buffer> buffer, std::shared_ptr<CallbackScheduler> callbackScheduler, std::function<void(std::shared_ptr<MegaGoTargetLoadResult>)> callback)
public void loadTargetFromBuffer(@Nonnull Buffer buffer, @Nonnull CallbackScheduler callbackScheduler, @Nonnull FunctorOfVoidFromMegaGoTargetLoadResult callback)
fun loadTargetFromBuffer(buffer: Buffer, callbackScheduler: CallbackScheduler, callback: FunctorOfVoidFromMegaGoTargetLoadResult): Unit
- (void)loadTargetFromBuffer:(easyar_Buffer *)buffer callbackScheduler:(easyar_CallbackScheduler *)callbackScheduler callback:(void (^)(easyar_MegaGoTargetLoadResult * result))callback
public func loadTargetFromBuffer(_ buffer: Buffer, _ callbackScheduler: CallbackScheduler, _ callback: @escaping (MegaGoTargetLoadResult) -> Void) -> Void
public virtual void loadTargetFromBuffer(Buffer buffer, CallbackScheduler callbackScheduler, Action<MegaGoTargetLoadResult> callback)

Parameter

Name Typ Beschreibung
buffer Buffer
callbackScheduler CallbackScheduler
callback Action<MegaGoTargetLoadResult>

Rückgabewert

Typ Beschreibung
Void

unloadTarget

Deinstallieren Sie das aktuelle target und löschen Sie die aktuelle Positionsinstanz und den akkumulierten Tracking-Status. Der logische Status des targets wird sofort auf "nicht geladen" gesetzt. Das Aufrufen dieser Methode ersetzt auch alle noch nicht abgeschlossenen Ladeanforderungen. Der laufende Ladevorgang kann möglicherweise nicht sofort gestoppt werden; der callback der ersetzten Anforderung wird nach Abschluss der Operation aufgerufen, und sein Ergebnisstatus ist MegaGoTargetLoadStatus.Canceled. Diese Methode hat keinen callback und wartet nicht auf den Abschluss des Deinstallationsvorgangs. Wenn kein target geladen oder im Ladevorgang ist, hat das Aufrufen dieser Methode keine zusätzlichen Auswirkungen.

void easyar_MegaGoTracker_unloadTarget(easyar_MegaGoTracker * This)
void unloadTarget()
public void unloadTarget()
fun unloadTarget(): Unit
- (void)unloadTarget
public func unloadTarget() -> Void
public virtual void unloadTarget()

Rückgabewert

Typ Beschreibung
Void

start

Beginnt mit der Verarbeitung der Eingangsbilder und gibt das Ergebnis aus. Gibt true zurück, wenn der Aufruf erfolgreich war; gibt false zurück, wenn der MegaGoTracker geschlossen ist. Mehrfache Aufrufe haben keine zusätzlichen Auswirkungen. Wenn diese Methode nach einem stop - Aufruf aufgerufen wird, wird das bereits geladene target weiterhin verwendet, ohne dass es neu geladen werden muss.

bool easyar_MegaGoTracker_start(easyar_MegaGoTracker * This)
bool start()
public boolean start()
fun start(): Boolean
- (bool)start
public func start() -> Bool
public virtual bool start()

Rückgabewert

Typ Beschreibung
Boolean

stop

Stoppen Sie die Verarbeitung der Eingabeframes und löschen Sie die aktuell gefundenen Block-Instanzen sowie den akkumulierten Verfolgungsstatus. Die noch nicht abgeschlossenen Verarbeitungsergebnisse werden verworfen. Die geladenen Ziele (targets) werden nicht entladen, und die noch nicht abgeschlossenen Ladevorgänge der Ziele werden nicht abgebrochen. Ihre Callback-Funktionen werden dennoch aufgerufen. Der aktuelle Betriebszustand ist dann "Idle". Sie können die geladenen Ziele wieder verwenden, indem Sie die Funktion "start" aufrufen.

void easyar_MegaGoTracker_stop(easyar_MegaGoTracker * This)
void stop()
public void stop()
fun stop(): Unit
- (void)stop
public func stop() -> Void
public virtual void stop()

Rückgabewert

Typ Beschreibung
Void

close

MegaGoTracker dauerhaft schließen, die Verarbeitung der Eingangsbilder beenden, die aktuell lokalisierten Block-Instanzen und den akkumulierten Tracking-Zustand löschen, das Target entladen und die zugehörigen Ressourcen freigeben. Mehrfache Aufrufe haben keine zusätzlichen Auswirkungen. Alle noch nicht abgeschlossenen Lokalisierungs- und Target-Ladevorgänge werden abgebrochen, und noch nicht ausgeführte Callbacks werden nicht mehr aufgerufen. Diese Methode kann warten, bis laufende Vorgänge abgeschlossen sind, bevor sie zurückkehrt. Nach dem Aufruf von close sollte MegaGoTracker nicht mehr verwendet werden. Ein Aufruf von start gibt false zurück.

void easyar_MegaGoTracker_close(easyar_MegaGoTracker * This)
void close()
public void close()
fun close(): Unit
- (void)close
public func close() -> Void
public virtual void close()

Rückgabewert

Typ Beschreibung
Void

getSyncResult

Synchronisierte Ausgabenergebnisse erhalten. motionInputData darf nicht leer sein, und der Synchronisationsmodus muss über setResultAsyncMode aktiviert werden. Wenn MegaGoTracker pausiert, geschlossen, im Fehlerzustand ist oder derzeit keine synchronisierten Ergebnisse generieren kann, ist der Rückgabewert leer.

void easyar_MegaGoTracker_getSyncResult(easyar_MegaGoTracker * This, easyar_MotionInputData * motionInputData, easyar_OptionalOfMegaGoTrackerResult * Return)
std::optional<std::shared_ptr<MegaGoTrackerResult>> getSyncResult(std::shared_ptr<MotionInputData> motionInputData)
public @Nullable MegaGoTrackerResult getSyncResult(@Nonnull MotionInputData motionInputData)
fun getSyncResult(motionInputData: MotionInputData): MegaGoTrackerResult?
- (easyar_MegaGoTrackerResult *)getSyncResult:(easyar_MotionInputData *)motionInputData
public func getSyncResult(_ motionInputData: MotionInputData) -> MegaGoTrackerResult?
public virtual Optional<MegaGoTrackerResult> getSyncResult(MotionInputData motionInputData)

Parameter

Name Typ Beschreibung
motionInputData MotionInputData

Rückgabewert

Typ Beschreibung
Optional<MegaGoTrackerResult>