Class MegaGoTracker
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
public static func isAvailable() -> Bool
public static bool isAvailable()
Valore restituito
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
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
bufferRequirement
Numero di buffer della fotocamera occupati dal componente corrente.
int easyar_MegaGoTracker_bufferRequirement(const easyar_MegaGoTracker * This)
public int bufferRequirement()
fun bufferRequirement(): Int
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()
Valore restituito
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
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()
Valore restituito
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
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
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
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
status
Restituisce lo stato di esecuzione corrente di MegaGoTracker.
easyar_MegaGoTrackerStatus easyar_MegaGoTracker_status(const easyar_MegaGoTracker * This)
MegaGoTrackerStatus status()
- (easyar_MegaGoTrackerStatus)status
public func status() -> MegaGoTrackerStatus
public virtual MegaGoTrackerStatus status()
Valore restituito
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()
public func error() -> MegaGoTrackerError?
public virtual Optional<MegaGoTrackerError> error()
Valore restituito
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
Valore restituito
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
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
Valore restituito
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
Valore restituito
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)
public void unloadTarget()
public func unloadTarget() -> Void
public virtual void unloadTarget()
Valore restituito
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)
public func start() -> Bool
public virtual bool start()
Valore restituito
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)
public func stop() -> Void
public virtual void stop()
Valore restituito
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)
public func close() -> Void
public virtual void close()
Valore restituito
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
Valore restituito