Table of Contents

Class MegaGoTracker

Spazio dei nomi
easyar

Fornisce la funzione di localizzazione sul dispositivo. MegaGoTracker occupa 2 buffer della fotocamera.

MegaGoTracker

Metodi

isAvailable

Controlla se il componente è disponibile. Su Android è richiesta API Level 24 o superiore; su tutte le piattaforme sono necessarie le dipendenze di runtime.

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()

Valore restituito

Tipo Descrizione
Boolean

inputFrameSink

Porta di ingresso per i frame di input. I frame di input devono contenere immagini, parametri della telecamera e timestamps. Le informazioni spaziali 6DoF devono contenere cameraTransform e trackingStatus. Consulta 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()

Valore restituito

Tipo Descrizione
InputFrameSink

accelerometerResultSink

Porta di ingresso per i risultati dell'accelerometro. Riferimento 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()

Valore restituito

Tipo Descrizione
AccelerometerResultSink

bufferRequirement

Numero di buffer della fotocamera occupati dal componente corrente.

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()

Valore restituito

Tipo Descrizione
Int32

outputFrameSource

Porta di output per i frame di output. Consulta 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()

Valore restituito

Tipo Descrizione
OutputFrameSource

create

Creare un'istanza.

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()

Valore restituito

Tipo Descrizione
MegaGoTracker

extractBlockInfoFromFile

Estrai le informazioni sui block dai file di mappa.

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)

Parametri

Nome Tipo Descrizione
path String

Valore restituito

Tipo Descrizione
Optional<MegaGoBlockInfo>

extractBlockInfoFromBuffer

Estrai le informazioni sui block dai dati di memoria della mappa.

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)

Parametri

Nome Tipo Descrizione
buffer Buffer

Valore restituito

Tipo Descrizione
Optional<MegaGoBlockInfo>

setEnableStatelessLocalization

Imposta se abilitare la localizzazione stateless. Quando la localizzazione stateless è abilitata, il risultato della localizzazione precedente non verrà utilizzato durante la localizzazione. Il valore predefinito è 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)

Parametri

Nome Tipo Descrizione
enableStatelessLocalization Boolean

Valore restituito

Tipo Descrizione
Void

setResultAsyncMode

Imposta la modalità asincrona dei risultati. Se i risultati vengono restituiti tramite outputFrameSource, dovrebbe essere impostato su true; se i risultati vengono ottenuti tramite getSyncResult, dovrebbe essere impostato su false. Il valore predefinito è true. La modalità sincrona è disponibile solo quando si utilizza la XR License. Restituisce true se la modalità richiesta viene applicata con successo; restituisce false se la modalità sincrona non è supportata e mantiene la modalità asincrona.

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)

Parametri

Nome Tipo Descrizione
enableAsync Boolean

Valore restituito

Tipo Descrizione
Boolean

status

Restituisce lo stato di esecuzione corrente di MegaGoTracker.

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()

Valore restituito

Tipo Descrizione
MegaGoTrackerStatus

error

Restituisce l'errore corrente di MegaGoTracker. È vuoto quando non ci sono errori.

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()

Valore restituito

Tipo Descrizione
Optional<MegaGoTrackerError>

setLocalizationCallback

Imposta il callback di localizzazione. Quando lo stato di esecuzione è Detecting o Tracking, ogni risposta di localizzazione valida e non annullata segnalerà se ha aggiornato l'output e il timestamp del frame di input corrispondente.

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)

Parametri

Nome Tipo Descrizione
callbackScheduler CallbackScheduler
callback Action<MegaGoTrackerLocalizationResponse>

Valore restituito

Tipo Descrizione
Void

setCameraPositionOverride

Imposta il valore di sovrapposizione della posizione della telecamera rispetto al blocco della mappa. Dopo averlo impostato, MegaGoTracker restituirà il valore di sovrapposizione anziché utilizzare le coordinate corrispondenti nei dati del frame di input. Può essere utilizzato per migliorare la precisione della posizione e dell'orientazione in output quando le informazioni sulla mappa sono note e i sensori sono limitati.

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)

Parametri

Nome Tipo Descrizione
x Optional<Single>
y Optional<Single>
z Optional<Single>

Valore restituito

Tipo Descrizione
Void

loadTargetFromFile

Carica in modo asincrono un target da un file. Il target può essere utilizzato per la localizzazione solo dopo il caricamento riuscito. Solo un target può essere attivo contemporaneamente. La chiamata a questo metodo cancella immediatamente l'istanza del blocco attualmente localizzato dal Tracker e lo stato di tracciamento accumulato. Se il caricamento corrente fallisce o viene annullato, il target e l'istanza di localizzazione precedenti non verranno ripristinati. La chiamata a questo metodo sostituisce le richieste di caricamento non ancora completate. Il caricamento in corso potrebbe non essere interrotto immediatamente; il callback della richiesta sostituita verrà chiamato alla fine dell'operazione, con lo stato risultante MegaGoTargetLoadStatus.Canceled. Quando il target non può essere analizzato o il contenuto è danneggiato, lo stato risultante è MegaGoTargetLoadStatus.InvalidTarget. Questo metodo restituisce immediatamente. Dopo il completamento del caricamento, il callback verrà chiamato sul thread specificato da CallbackScheduler; in caso di successo, il risultato contiene le informazioni sul blocco caricato. MegaGoTargetLoadStatus.Success indica solo il caricamento riuscito dei dati del target. I controlli successivi potrebbero ancora essere eseguiti o fallire. È necessario controllare lo stato di elaborazione e l'errore attuali di MegaGoTracker tramite lo stato e l'errore. Dopo la chiusura di MegaGoTracker, i callback non ancora eseguiti non verranno più chiamati.

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)

Parametri

Nome Tipo Descrizione
path String
callbackScheduler CallbackScheduler
callback Action<MegaGoTargetLoadResult>

Valore restituito

Tipo Descrizione
Void

loadTargetFromBuffer

Carica in modo asincrono un target dalla memoria. Il target può essere utilizzato per la localizzazione solo dopo aver been caricato con successo. Solo un target può essere attivo contemporaneamente. La chiamata a questo metodo cancella immediatamente l'istanza del blocco attualmente localizzato dal Tracker e lo stato di tracciamento accumulato. Se il caricamento corrente fallisce o viene annullato, il target e l'istanza di localizzazione precedenti non verranno ripristinati. La chiamata a questo metodo sovrascrive le richieste di caricamento non ancora complete. Il caricamento in corso potrebbe non essere interrotto immediatamente; la callback della richiesta sostituita verrà chiamata dopo la fine dell'operazione, con lo stato risultante di MegaGoTargetLoadStatus.Canceled. Quando il target non può essere analizzato o il contenuto è danneggiato, lo stato risultante è MegaGoTargetLoadStatus.InvalidTarget. Questo metodo restituisce immediatamente. Dopo il completamento del caricamento, la callback verrà chiamata sul thread specificato da CallbackScheduler; in caso di successo, il risultato contiene le informazioni del blocco caricato. MegaGoTargetLoadStatus.Success indica solo che il caricamento dei dati del target è avvenuto con successo. I controlli successivi potrebbero ancora essere eseguiti o fallire; è necessario controllare lo stato di elaborazione e l'errore correnti di MegaGoTracker tramite lo stato e l'errore. Dopo la chiusura di MegaGoTracker, le callback non ancora eseguite non verranno più chiamate.

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)

Parametri

Nome Tipo Descrizione
buffer Buffer
callbackScheduler CallbackScheduler
callback Action<MegaGoTargetLoadResult>

Valore restituito

Tipo Descrizione
Void

unloadTarget

Disinstalla il target corrente e cancella l'istanza di localizzazione corrente e lo stato di tracciamento accumulato. Lo stato logico del target diventerà immediatamente non caricato. La chiamata a questo metodo sostituirà anche tutte le richieste di caricamento non ancora completate. Il caricamento in corso potrebbe non essere arrestato immediatamente; la callback della richiesta sostituita verrà chiamata dopo la fine dell'operazione, con il suo stato risultante pari a MegaGoTargetLoadStatus.Canceled. Questo metodo non ha una callback e non attende il completamento dell'operazione di disinstallazione. Se non ci sono target caricati o in fase di caricamento, la chiamata a questo metodo non avrà effetti aggiuntivi.

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()

Valore restituito

Tipo Descrizione
Void

start

Inizia a elaborare i frame di input e a fornire i risultati. Restituisce true se la chiamata ha successo; restituisce false se MegaGoTracker è chiuso. Le chiamate ripetute non hanno effetti aggiuntivi. Chiamando questo metodo dopo stop, verrà continuato a utilizzare il target già caricato, senza doverlo ricaricare.

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()

Valore restituito

Tipo Descrizione
Boolean

stop

Interrompi il trattamento dei frame di input e cancella l'istanza del blocco attualmente individuato e lo stato di tracciamento accumulato. I risultati di elaborazione non ancora completati verranno scartati. I target caricati non verranno scaricati, e il caricamento dei target non ancora completato non verrà annullato. Le relative callback verranno comunque invocate. In questo momento, lo stato di esecuzione è Idle; è possibile chiamare start per continuare a utilizzare i target caricati.

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()

Valore restituito

Tipo Descrizione
Void

close

Chiudere definitivamente MegaGoTracker, interrompere l'elaborazione dei frame di input, cancellare le istanze di blocco attualmente localizzate e lo stato di tracciamento accumulato, scaricare il target e liberare le risorse correlate. La chiamata ripetuta non avrà effetti aggiuntivi. Tutte le operazioni di localizzazione non ancora completate e di caricamento del target verranno annullate, le callback non ancora eseguite non verranno più chiamate. Questo metodo potrebbe attendere la fine delle operazioni in corso prima di restituire. Dopo la chiamata a close, non dovresti continuare a utilizzare MegaGoTracker, la chiamata a start restituirà false.

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()

Valore restituito

Tipo Descrizione
Void

getSyncResult

Ottieni il risultato dell'output sincronizzato. motionInputData deve essere non vuoto e è necessario abilitare la modalità sincrona tramite setResultAsyncMode. Quando MegaGoTracker è in pausa, è stato chiuso, si trova in uno stato di errore o attualmente non può generare un risultato sincronizzato, il valore restituito è vuoto.

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)

Parametri

Nome Tipo Descrizione
motionInputData MotionInputData

Valore restituito

Tipo Descrizione
Optional<MegaGoTrackerResult>