Class MegaGoTracker
Proporciona la función de localización en el dispositivo.
MegaGoTracker ocupa 2 búferes de cámara.
MegaGoTracker
Métodos
isAvailable
Verificar si el componente está disponible. En Android, se requiere API Level 24 o superior; en todas las plataformas se deben cumplir las dependencias de tiempo de ejecución necesarias.
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()
Devuelve
Puerto de entrada para los fotogramas de entrada. Los fotogramas de entrada deben contener imágenes, parámetros de la cámara y marcas de tiempo. La información espacial 6DoF debe contener cameraTransform y 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()
Devuelve
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()
Devuelve
bufferRequirement
El número de búferes de la cámara ocupados por el componente actual.
int easyar_MegaGoTracker_bufferRequirement(const easyar_MegaGoTracker * This)
public int bufferRequirement()
fun bufferRequirement(): Int
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()
Devuelve
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()
Devuelve
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()
Devuelve
Extraer información de bloques (block) del archivo 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
| Nombre |
Tipo |
Descripción |
| path |
String |
|
Devuelve
Extraer la información del bloque de los datos de memoria del 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
| Nombre |
Tipo |
Descripción |
| buffer |
Buffer |
|
Devuelve
setEnableStatelessLocalization
Configurar si se habilita la localización sin estado. Cuando se habilita la localización sin estado, no se utilizará el resultado de la última localización durante la localización. El valor predeterminado es 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
| Nombre |
Tipo |
Descripción |
| enableStatelessLocalization |
Boolean |
|
Devuelve
setResultAsyncMode
Configurar el modo asíncrono de resultados. Si los resultados se envían a través de outputFrameSource, debe establecerse en true; si los resultados se obtienen a través de getSyncResult, debe establecerse en false. El valor predeterminado es true. El modo síncrono solo está disponible cuando se utiliza una licencia XR. Devuelve true si el modo solicitado se aplica correctamente; devuelve false y mantiene el modo asíncrono si el modo síncrono no es compatible.
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
| Nombre |
Tipo |
Descripción |
| enableAsync |
Boolean |
|
Devuelve
status
Devuelve el estado actual de ejecución de MegaGoTracker.
easyar_MegaGoTrackerStatus easyar_MegaGoTracker_status(const easyar_MegaGoTracker * This)
MegaGoTrackerStatus status()
- (easyar_MegaGoTrackerStatus)status
public func status() -> MegaGoTrackerStatus
public virtual MegaGoTrackerStatus status()
Devuelve
error
Devuelve el error actual de MegaGoTracker. Vacío cuando no hay errores.
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()
Devuelve
setLocalizationCallback
Configurar la devolución de llamada de localización. Cuando el estado de ejecución es Detecting o Tracking, cada respuesta de localización válida y no cancelada informará si ha actualizado la salida y la marca de tiempo del fotograma de entrada correspondiente.
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
Devuelve
setCameraPositionOverride
Establece el valor de cobertura de la posición de la cámara en relación con el bloque del mapa. Después de la configuración, MegaGoTracker mostrará el valor de cobertura en lugar de utilizar las coordenadas correspondientes en los datos del fotograma de entrada. Esto se puede utilizar para mejorar la precisión de la postura de salida cuando se conoce la información del mapa y hay sensores 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
| Nombre |
Tipo |
Descripción |
| x |
Optional<Single> |
|
| y |
Optional<Single> |
|
| z |
Optional<Single> |
|
Devuelve
loadTargetFromFile
Cargar de forma asíncrona un target desde un archivo. El target solo se puede utilizar para la localización después de una carga exitosa.
Solo puede haber un target activo al mismo tiempo. Llamar a este método eliminará inmediatamente la instancia de bloque localizada actualmente por el Tracker y el estado de seguimiento acumulado. Si esta carga falla o se cancela, el target y la instancia de localización anteriores no se restaurarán.
Llamar a este método reemplazará las solicitudes de carga no completadas. Es posible que la carga en curso no se detenga inmediatamente; la callback de la solicitud reemplazada se llamará después de que finalice la operación, y su estado de resultado será MegaGoTargetLoadStatus.Canceled.
Cuando el target no se pueda analizar o su contenido esté dañado, el estado de resultado será MegaGoTargetLoadStatus.InvalidTarget.
Este método devolverá inmediatamente. Después de que se complete la carga, la callback se llamará en el hilo especificado por CallbackScheduler; en caso de éxito, el resultado contendrá la información del bloque cargado. MegaGoTargetLoadStatus.Success solo indica que la carga de los datos del target se ha realizado con éxito. Es posible que se realicen verificaciones posteriores o que fallen; se debe comprobar el estado de procesamiento y los errores actuales de MegaGoTracker a través de status y error. Después de cerrar MegaGoTracker, no se llamará a las callback pendientes de ejecución.
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
Devuelve
loadTargetFromBuffer
Carga de forma asíncrona un target desde la memoria. El target solo se puede utilizar para la localización después de una carga exitosa.
Solo puede haber un target activo al mismo tiempo. Llamar a este método borrará inmediatamente la instancia de bloque localizada actualmente por el Tracker y el estado de seguimiento acumulado. Si esta carga falla o se cancela, el target y la instancia de localización anteriores no se restaurarán.
Llamar a este método reemplazará las solicitudes de carga no completadas. La carga en curso puede que no se detenga inmediatamente; la callback de la solicitud reemplazada se llamará después de que finalice la operación, y su estado de resultado será MegaGoTargetLoadStatus.Canceled.
Cuando el target no se puede analizar o su contenido está dañado, el estado de resultado será MegaGoTargetLoadStatus.InvalidTarget.
Este método devolverá inmediatamente. Después de que se complete la carga, la callback se llamará en el hilo especificado por CallbackScheduler; en caso de éxito, el resultado contendrá la información del bloque cargado. MegaGoTargetLoadStatus.Success solo indica que la carga de los datos del target se realizó con éxito. Las verificaciones posteriores aún pueden realizarse o fallar. Debe verificar el estado de procesamiento y los errores actuales de MegaGoTracker a través de status y error. Después de cerrar MegaGoTracker, no se llamará a las callbacks pendientes de ejecución.
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
Devuelve
unloadTarget
Desinstale el target actual y borre la instancia de localización actual y el estado de seguimiento acumulado. El estado lógico del target pasará inmediatamente a no cargado.
Llamar a este método también reemplazará todas las solicitudes de carga pendientes. La carga en curso puede no detenerse inmediatamente; la callback de la solicitud reemplazada se llamará después de que finalice la operación, y su estado resultante será MegaGoTargetLoadStatus.Canceled.
Este método no tiene callback y no esperará a que se complete la operación de desinstalación. Si no hay ningún target cargado o en proceso de carga, llamar a este método no tendrá efectos adicionales.
void easyar_MegaGoTracker_unloadTarget(easyar_MegaGoTracker * This)
public void unloadTarget()
public func unloadTarget() -> Void
public virtual void unloadTarget()
Devuelve
start
Comienza a procesar los fotogramas de entrada y a mostrar los resultados. Devuelve true cuando la llamada es exitosa; devuelve false cuando MegaGoTracker está cerrado. Llamar repetidamente a este método no tiene efectos adicionales.
Llamar a este método después de stop continuará utilizando el target ya cargado, sin necesidad de volver a cargarlo.
bool easyar_MegaGoTracker_start(easyar_MegaGoTracker * This)
public func start() -> Bool
public virtual bool start()
Devuelve
stop
Detener el procesamiento de los fotogramas de entrada y borrar la instancia de bloque actual localizada y el estado de seguimiento acumulado. Los resultados de procesamiento no finalizados se descartarán.
Los objetivos (target) cargados no se descargarán, y la carga de objetivos no finalizada tampoco se cancelará; su función de devolución de llamada (callback) seguirá siendo llamada. En este momento, el estado de funcionamiento es Idle; se puede llamar a start para continuar utilizando los objetivos cargados.
void easyar_MegaGoTracker_stop(easyar_MegaGoTracker * This)
public func stop() -> Void
public virtual void stop()
Devuelve
close
Cerrar permanentemente MegaGoTracker, detener el procesamiento de los fotogramas de entrada, borrar las instancias de bloque localizadas actualmente y el estado de seguimiento acumulado, desinstalar el objetivo (target) y liberar los recursos relacionados. Llamar repetidamente a esta función no tendrá efectos adicionales.
Todas las operaciones de localización no completadas y de carga del objetivo (target) se cancelarán, y las devoluciones de llamada (callbacks) no ejecutadas ya no se invocarán. Este método puede esperar a que finalice la operación en curso antes de devolver el control. No se debe seguir utilizando MegaGoTracker después de llamar a close, y llamar a start devolverá false.
void easyar_MegaGoTracker_close(easyar_MegaGoTracker * This)
public func close() -> Void
public virtual void close()
Devuelve
getSyncResult
Obtener los resultados de salida sincronizados. motionInputData no debe estar vacío y se debe habilitar el modo de sincronización a través de setResultAsyncMode. Cuando MegaGoTracker está en pausa, cerrado, en estado de error o no puede generar resultados sincronizados en el momento, el valor de retorno está vacío.
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
Devuelve