Table of Contents

Class MegaGoTracker

Пространство имен
easyar

Предоставляет функцию позиционирования на стороне устройства. MegaGoTracker занимает 2 камерных буфера.

MegaGoTracker

Методы

isAvailable

Проверьте, доступен ли компонент. На Android требуется API Level 24 или выше; на всех платформах должны быть установлены необходимые рантайм-зависимости.

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

Возвращаемое значение

Тип Описание
Boolean

inputFrameSink

Порт ввода входного кадра. Входной кадр должен содержать изображение, параметры камеры и временную метку. Пространственная информация 6DoF должна содержать cameraTransform и trackingStatus. См. 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()

Возвращаемое значение

Тип Описание
InputFrameSink

accelerometerResultSink

Порт ввода результатов акселерометра. См. 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()

Возвращаемое значение

Тип Описание
AccelerometerResultSink

bufferRequirement

Текущее количество камерных буферов, занятых компонентом.

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

Возвращаемое значение

Тип Описание
Int32

outputFrameSource

Выходной кадр, выходной порт. Смотрите 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()

Возвращаемое значение

Тип Описание
OutputFrameSource

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

Возвращаемое значение

Тип Описание
MegaGoTracker

extractBlockInfoFromFile

Извлекать информацию о блоках (block) из файла карты.

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)

Параметры

Имя Тип Описание
path String

Возвращаемое значение

Тип Описание
Optional<MegaGoBlockInfo>

extractBlockInfoFromBuffer

Извлекать информацию о блоках (block) из данных памяти карты.

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)

Параметры

Имя Тип Описание
buffer Buffer

Возвращаемое значение

Тип Описание
Optional<MegaGoBlockInfo>

setEnableStatelessLocalization

Установите, следует ли включить бессостоянный геолокационный сервис. При включении бессостоянного геолокационного сервиса при определении местоположения не будет использоваться результат предыдущего определения местоположения. По умолчанию — 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)

Параметры

Имя Тип Описание
enableStatelessLocalization Boolean

Возвращаемое значение

Тип Описание
Void

setResultAsyncMode

Установите асинхронный режим результатов. Если результаты выводятся через outputFrameSource, это значение должно быть установлено в true; если результаты получаются с помощью getSyncResult, это значение должно быть установлено в false. Значение по умолчанию — true. Синхронный режим доступен только при использовании XR License. Возвращает true, если запрошенный режим успешно применен; возвращает false, если синхронный режим не поддерживается, и асинхронный режим сохраняется.

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)

Параметры

Имя Тип Описание
enableAsync Boolean

Возвращаемое значение

Тип Описание
Boolean

status

Возвращает текущее состояние работы 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()

Возвращаемое значение

Тип Описание
MegaGoTrackerStatus

error

Возвращает текущую ошибку MegaGoTracker. Пустая, если нет ошибок.

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

Возвращаемое значение

Тип Описание
Optional<MegaGoTrackerError>

setLocalizationCallback

Настройте обратный вызов для позиционирования. Когда состояние работы равно Detecting или Tracking, каждый действительный и не отмененный ответ на позиционирование сообщает, обновил ли он выходные данные, а также временную метку соответствующего входного кадра.

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)

Параметры

Имя Тип Описание
callbackScheduler CallbackScheduler
callback Action<MegaGoTrackerLocalizationResponse>

Возвращаемое значение

Тип Описание
Void

setCameraPositionOverride

Установите значение наложения положения камеры относительно блока карты. После установки MegaGoTracker будет выводить значение наложения, а не использовать соответствующие координаты из входных кадров данных. Это может быть использовано для повышения точности выходной позы при известной информации о карте и ограниченных сенсорах.

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)

Параметры

Имя Тип Описание
x Optional<Single>
y Optional<Single>
z Optional<Single>

Возвращаемое значение

Тип Описание
Void

loadTargetFromFile

Асинхронно загрузить target из файла. target можно использовать для позиционирования только после успешной загрузки. В одно и то же время может быть активен только один target. Вызов этого метода немедленно очищает экземпляр блока, найденный текущим Tracker, и накопленное состояние отслеживания. Если текущая загрузка завершилась неудачно или была отменена, предыдущие target и экземпляры позиционирования не будут восстановлены. Вызов этого метода заменяет незавершенные запросы на загрузку. Текущая загрузка может не остановиться сразу; callback отмененного запроса будет вызван после завершения операции со статусом результата MegaGoTargetLoadStatus.Canceled. Если target не может быть разобран или его содержимое повреждено, статус результата будет MegaGoTargetLoadStatus.InvalidTarget. Этот метод вернет результат немедленно. После завершения загрузки callback будет вызван в потоке, указанном в CallbackScheduler; в случае успеха результат будет содержать информацию о загруженном блоке. MegaGoTargetLoadStatus.Success означает только успешную загрузку данных target. Последующие проверки могут быть выполнены или завершены неудачно, поэтому текущее состояние обработки и ошибки MegaGoTracker должны быть проверены с помощью status и error. После закрытия MegaGoTracker невыполненные callback больше не будут вызываться.

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)

Параметры

Имя Тип Описание
path String
callbackScheduler CallbackScheduler
callback Action<MegaGoTargetLoadResult>

Возвращаемое значение

Тип Описание
Void

loadTargetFromBuffer

Асинхронно загрузить target из памяти. target можно использовать для позиционирования только после успешной загрузки. Одновременно может быть активен только один target. Вызов данного метода немедленно очистит экземпляр блока, найденный в данный момент Tracker, и накопленное состояние отслеживания. Если текущая загрузка завершилась неудачно или была отменена, предыдущие target и экземпляр позиционирования не будут восстановлены. Вызов данного метода заменяет невыполненный запрос на загрузку. Текущая загрузка может не остановиться сразу; callback отмененного запроса будет вызван после завершения операции с состоянием результата MegaGoTargetLoadStatus.Canceled. Если target не может быть разобран или его содержимое повреждено, состояние результата будет MegaGoTargetLoadStatus.InvalidTarget. Данный метод вернет результат немедленно. После завершения загрузки callback будет вызван в потоке, указанном в CallbackScheduler; в случае успеха результат будет содержать информацию о загруженном блоке. MegaGoTargetLoadStatus.Success означает только успешную загрузку данных target. Последующие проверки могут быть выполнены или завершиться неудачно, поэтому текущее состояние обработки и ошибки MegaGoTracker следует проверять по status и error. После закрытия MegaGoTracker невыполненные callback больше не будут вызываться.

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)

Параметры

Имя Тип Описание
buffer Buffer
callbackScheduler CallbackScheduler
callback Action<MegaGoTargetLoadResult>

Возвращаемое значение

Тип Описание
Void

unloadTarget

Отключите текущий target и очистите текущий экземпляр позиционирования и накопленное состояние отслеживания. Логическое состояние target немедленно изменится на не загруженное. Вызов этого метода также заменит все незавершенные запросы на загрузку. Текущая загрузка может не остановиться сразу; обратный вызов (callback) отмененного запроса будет вызван после завершения операции с состоянием результата MegaGoTargetLoadStatus.Canceled. В этом методе нет обратного вызова (callback) и он не будет ждать завершения операции отключения. Если нет загруженных или загружаемых target, вызов этого метода не приведет к дополнительным эффектам.

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

Возвращаемое значение

Тип Описание
Void

start

Начать обработку входных кадров и выводить результаты. Возвращает true при успешном вызове; возвращает false, когда MegaGoTracker закрыт. Повторный вызов не даст дополнительного эффекта. После вызова метода stop вызов этого метода продолжит использование загруженного target, не требуя повторной загрузки.

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

Возвращаемое значение

Тип Описание
Boolean

stop

Прекратить обработку входных кадров и очистить текущий экземпляр блока и накопленное состояние отслеживания. Результаты обработки, которые еще не завершены, будут отброшены. Загруженные target не будут выгружены, загрузка target, которая еще не завершена, не будет отменена, и их callback все равно будут вызваны. В этот момент состояние работы — Idle; вызов start позволит продолжить использование загруженных target.

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

Возвращаемое значение

Тип Описание
Void

close

Полностью закрыть MegaGoTracker, прекратить обработку входных кадров, очистить текущие обнаруженные экземпляры блоков и накопленное состояние отслеживания, удалить цель (target) и освободить связанные ресурсы. Повторный вызов этого метода не приведет к дополнительным эффектам. Все незавершенные операции локализации и загрузки целей (target) будут отменены, невыполненные обратные вызовы (callback) больше не будут вызываться. Этот метод может дождаться завершения выполняемых операций перед возвратом. После вызова метода close не следует продолжать использовать MegaGoTracker, вызов метода start вернет 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()

Возвращаемое значение

Тип Описание
Void

getSyncResult

Получить результаты синхронного вывода. motionInputData должен быть непустым, и необходимо включить синхронный режим с помощью setResultAsyncMode. Если MegaGoTracker приостановлен, закрыт, находится в ошибочном состоянии или в данный момент не может сгенерировать синхронные результаты, возвращаемое значение будет пустым.

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)

Параметры

Имя Тип Описание
motionInputData MotionInputData

Возвращаемое значение

Тип Описание
Optional<MegaGoTrackerResult>