Table of Contents

Class MegaGoTracker

Espaço de nomes
easyar

Fornece a função de localização no dispositivo. MegaGoTracker ocupa 2 buffers de câmera.

MegaGoTracker

Métodos

isAvailable

Verifique se o componente está disponível. No Android, é necessário o nível da API 24 ou superior; todos os plataformas devem atender às dependências de tempo de execução necessárias.

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

Retorna

Tipo Descrição
Boolean

inputFrameSink

Porta de entrada de quadro de entrada. O quadro de entrada deve conter imagens, parâmetros da câmera e carimbos de data/hora. As informações espaciais 6DoF devem conter cameraTransform e trackingStatus. Consulte 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()

Retorna

Tipo Descrição
InputFrameSink

accelerometerResultSink

Porta de entrada do resultado do acelerômetro. Consulte 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()

Retorna

Tipo Descrição
AccelerometerResultSink

bufferRequirement

Número de buffers da câmera ocupados pelo componente atual.

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

Retorna

Tipo Descrição
Int32

outputFrameSource

Porta de saída do frame de saída. Consulte 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()

Retorna

Tipo Descrição
OutputFrameSource

create

Criar uma instância.

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

Retorna

Tipo Descrição
MegaGoTracker

extractBlockInfoFromFile

Extrair informações de blocos do arquivo de mapa.

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)

Parâmetros

Nome Tipo Descrição
path String

Retorna

Tipo Descrição
Optional<MegaGoBlockInfo>

extractBlockInfoFromBuffer

Extrair informações de bloco dos dados de memória do mapa.

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)

Parâmetros

Nome Tipo Descrição
buffer Buffer

Retorna

Tipo Descrição
Optional<MegaGoBlockInfo>

setEnableStatelessLocalization

Defina se a localização sem estado está habilitada. Quando a localização sem estado estiver habilitada, o resultado da localização anterior não será usado durante a localização. O valor padrão é 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)

Parâmetros

Nome Tipo Descrição
enableStatelessLocalization Boolean

Retorna

Tipo Descrição
Void

setResultAsyncMode

Defina o modo assíncrono de resultados. Se os resultados forem fornecidos por outputFrameSource, defina como true; se os resultados forem obtidos por getSyncResult, defina como false. O valor padrão é true. O modo síncrono está disponível apenas quando a XR License é usada. Retorna true se o modo da solicitação for aplicado com sucesso; retorna false se o modo síncrono não for compatível e mantém o modo assíncrono.

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)

Parâmetros

Nome Tipo Descrição
enableAsync Boolean

Retorna

Tipo Descrição
Boolean

status

Retorna o estado atual de execução do 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()

Retorna

Tipo Descrição
MegaGoTrackerStatus

error

Retorna o erro atual do MegaGoTracker. Vazio quando não há erros.

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

Retorna

Tipo Descrição
Optional<MegaGoTrackerError>

setLocalizationCallback

Defina o retorno de chamada de localização. Quando o estado de execução for Detecting ou Tracking, cada resposta de localização válida e não cancelada relatará se atualizou a saída e o carimbo de data/hora do quadro de entrada correspondente.

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)

Parâmetros

Nome Tipo Descrição
callbackScheduler CallbackScheduler
callback Action<MegaGoTrackerLocalizationResponse>

Retorna

Tipo Descrição
Void

setCameraPositionOverride

Defina o valor de cobertura da posição da câmera em relação ao bloco do mapa. Após a configuração, o MegaGoTracker irá outputar o valor de cobertura em vez de usar as coordenadas correspondentes nos dados do frame de entrada. Isso pode ser usado para melhorar a precisão da pose de saída quando as informações do mapa são conhecidas e os sensores são limitados.

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)

Parâmetros

Nome Tipo Descrição
x Optional<Single>
y Optional<Single>
z Optional<Single>

Retorna

Tipo Descrição
Void

loadTargetFromFile

Carregue assincronamente um target de um arquivo. O target só pode ser usado para localização após ser carregado com sucesso. Apenas um target pode estar ativo ao mesmo tempo. Chamar este método limpará imediatamente a instância do bloco atualmente localizado pelo Tracker e o estado de rastreamento acumulado. Se a carga atual falhar ou for cancelada, o target e a instância de localização anteriores não serão restaurados. Chamar este método substituirá as solicitações de carregamento ainda não concluídas. O carregamento em andamento pode não parar imediatamente; o callback da solicitação substituída será chamado após o término da operação, com o estado de resultado sendo MegaGoTargetLoadStatus.Canceled. Quando o target não pode ser analisado ou o conteúdo estiver danificado, o estado de resultado é MegaGoTargetLoadStatus.InvalidTarget. Este método retornará imediatamente. Após a conclusão do carregamento, o callback será chamado na thread especificada em CallbackScheduler; em caso de sucesso, o resultado conterá as informações do bloco carregado. MegaGoTargetLoadStatus.Success apenas indica que os dados do target foram carregados com sucesso. As verificações subsequentes ainda podem ser feitas ou falhar. Você deve verificar o estado de processamento e erros atuais do MegaGoTracker por meio do status e do erro. Depois de fechar o MegaGoTracker, os callbacks ainda não executados não serão mais chamados.

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)

Parâmetros

Nome Tipo Descrição
path String
callbackScheduler CallbackScheduler
callback Action<MegaGoTargetLoadResult>

Retorna

Tipo Descrição
Void

loadTargetFromBuffer

Carregue assincronamente um target da memória. O target só pode ser usado para localização após ser carregado com sucesso. Apenas um target pode estar ativo ao mesmo tempo. Chamar este método limpará imediatamente a instância do bloco atualmente localizado pelo Tracker e o estado de rastreamento acumulado. Se a carga atual falhar ou for cancelada, o target e a instância de localização anteriores não serão restaurados. Chamar este método substituirá as solicitações de carregamento ainda não concluídas. O carregamento em andamento pode não parar imediatamente; o callback da solicitação substituída será chamado após o término da operação, com o estado do resultado sendo MegaGoTargetLoadStatus.Canceled. Quando o target não pode ser analisado ou o conteúdo estiver danificado, o estado do resultado será MegaGoTargetLoadStatus.InvalidTarget. Este método retornará imediatamente. Após a conclusão do carregamento, o callback será chamado na thread especificada por CallbackScheduler; em caso de sucesso, o resultado conterá as informações do bloco carregado. MegaGoTargetLoadStatus.Success apenas indica que os dados do target foram carregados com sucesso. Verificações subsequentes ainda podem ser feitas ou falhar. O estado de processamento e os erros atuais do MegaGoTracker devem ser verificados por meio de status e error. Após fechar o MegaGoTracker, os callbacks ainda não executados não serão chamados.

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)

Parâmetros

Nome Tipo Descrição
buffer Buffer
callbackScheduler CallbackScheduler
callback Action<MegaGoTargetLoadResult>

Retorna

Tipo Descrição
Void

unloadTarget

Desinstale o target atual e limpe a instância de localização atual e o estado de rastreamento acumulado. O estado lógico do target passará imediatamente para não carregado. Chamar este método também substituirá todas as solicitações de carregamento não concluídas. O carregamento em andamento pode não parar imediatamente; o callback da solicitação substituída será chamado após o término da operação, com o estado de resultado MegaGoTargetLoadStatus.Canceled. Este método não possui callback e não aguardará a conclusão da operação de desinstalação. Se não houver nenhum target carregado ou em processo de carregamento, chamar este método não terá efeito adicional.

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

Retorna

Tipo Descrição
Void

start

Comece a processar os quadros de entrada e gere os resultados. Retorna true se a chamada for bem-sucedida; retorna false se o MegaGoTracker estiver fechado. Chamadas repetidas não terão efeito adicional. Chamar este método após stop continuará a usar o target já carregado, sem a necessidade de recarregá-lo.

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

Retorna

Tipo Descrição
Boolean

stop

Pare o processamento dos quadros de entrada e limpe a instância do bloco atualmente localizada e o estado de rastreamento acumulado. Os resultados de processamento não concluídos serão descartados. Os targets carregados não serão descarregados, nem o carregamento de targets não concluído será cancelado, e seus callbacks ainda serão chamados. Nesse momento, o estado de execução é Idle; chamar start permite continuar a usar os targets carregados.

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

Retorna

Tipo Descrição
Void

close

Fechar permanentemente o MegaGoTracker, parar o processamento de quadros de entrada, limpar as instâncias de bloco localizadas atualmente e o estado de rastreamento acumulado, desinstalar o target e liberar os recursos relacionados. Chamadas repetidas não terão efeitos adicionais. Todas as operações de localização e carregamento de target ainda não concluídas serão canceladas, e as callbacks ainda não executadas não serão mais chamadas. Este método pode aguardar o término das operações em andamento antes de retornar. Não deve-se continuar a usar o MegaGoTracker após o close, e chamar o start retornará 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()

Retorna

Tipo Descrição
Void

getSyncResult

Obtenha o resultado da saída síncrona. motionInputData deve não ser vazio e você precisa habilitar o modo síncrono por meio de setResultAsyncMode. Quando o MegaGoTracker estiver pausado, fechado, em estado de erro ou não puder gerar resultados síncronos no momento, o valor de retorno será vazio.

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)

Parâmetros

Nome Tipo Descrição
motionInputData MotionInputData

Retorna

Tipo Descrição
Optional<MegaGoTrackerResult>