Class MegaGoTracker
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
public static func isAvailable() -> Bool
public static bool isAvailable()
Rückgabewert
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
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
bufferRequirement
Die Anzahl der von der aktuellen Komponente belegten Kamerapuffer.
int easyar_MegaGoTracker_bufferRequirement(const easyar_MegaGoTracker * This)
public int bufferRequirement()
fun bufferRequirement(): Int
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()
Rückgabewert
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
create
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
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
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
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
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
status
Gibt den aktuellen Laufzustand von MegaGoTracker zurück.
easyar_MegaGoTrackerStatus easyar_MegaGoTracker_status(const easyar_MegaGoTracker * This)
MegaGoTrackerStatus status()
- (easyar_MegaGoTrackerStatus)status
public func status() -> MegaGoTrackerStatus
public virtual MegaGoTrackerStatus status()
Rückgabewert
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()
public func error() -> MegaGoTrackerError?
public virtual Optional<MegaGoTrackerError> error()
Rückgabewert
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
Rückgabewert
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
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
Rückgabewert
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
Rückgabewert
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)
public void unloadTarget()
public func unloadTarget() -> Void
public virtual void unloadTarget()
Rückgabewert
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)
public func start() -> Bool
public virtual bool start()
Rückgabewert
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)
public func stop() -> Void
public virtual void stop()
Rückgabewert
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)
public func close() -> Void
public virtual void close()
Rückgabewert
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
Rückgabewert