Class MegaGoTracker
Предоставляет функцию позиционирования на стороне устройства.
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
public static func isAvailable() -> Bool
public static bool isAvailable()
Возвращаемое значение
Порт ввода входного кадра. Входной кадр должен содержать изображение, параметры камеры и временную метку. Пространственная информация 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()
Возвращаемое значение
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()
Возвращаемое значение
bufferRequirement
Текущее количество камерных буферов, занятых компонентом.
int easyar_MegaGoTracker_bufferRequirement(const easyar_MegaGoTracker * This)
public int bufferRequirement()
fun bufferRequirement(): Int
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()
Возвращаемое значение
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()
Возвращаемое значение
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()
Возвращаемое значение
Извлекать информацию о блоках (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 |
|
Возвращаемое значение
Извлекать информацию о блоках (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 |
|
Возвращаемое значение
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 |
|
Возвращаемое значение
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 |
|
Возвращаемое значение
status
Возвращает текущее состояние работы MegaGoTracker.
easyar_MegaGoTrackerStatus easyar_MegaGoTracker_status(const easyar_MegaGoTracker * This)
MegaGoTrackerStatus status()
- (easyar_MegaGoTrackerStatus)status
public func status() -> MegaGoTrackerStatus
public virtual MegaGoTrackerStatus status()
Возвращаемое значение
error
Возвращает текущую ошибку MegaGoTracker. Пустая, если нет ошибок.
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()
Возвращаемое значение
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)
Параметры
Возвращаемое значение
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> |
|
Возвращаемое значение
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)
Параметры
Возвращаемое значение
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)
Параметры
Возвращаемое значение
unloadTarget
Отключите текущий target и очистите текущий экземпляр позиционирования и накопленное состояние отслеживания. Логическое состояние target немедленно изменится на не загруженное.
Вызов этого метода также заменит все незавершенные запросы на загрузку. Текущая загрузка может не остановиться сразу; обратный вызов (callback) отмененного запроса будет вызван после завершения операции с состоянием результата MegaGoTargetLoadStatus.Canceled.
В этом методе нет обратного вызова (callback) и он не будет ждать завершения операции отключения. Если нет загруженных или загружаемых target, вызов этого метода не приведет к дополнительным эффектам.
void easyar_MegaGoTracker_unloadTarget(easyar_MegaGoTracker * This)
public void unloadTarget()
public func unloadTarget() -> Void
public virtual void unloadTarget()
Возвращаемое значение
start
Начать обработку входных кадров и выводить результаты. Возвращает true при успешном вызове; возвращает false, когда MegaGoTracker закрыт. Повторный вызов не даст дополнительного эффекта.
После вызова метода stop вызов этого метода продолжит использование загруженного target, не требуя повторной загрузки.
bool easyar_MegaGoTracker_start(easyar_MegaGoTracker * This)
public func start() -> Bool
public virtual bool start()
Возвращаемое значение
stop
Прекратить обработку входных кадров и очистить текущий экземпляр блока и накопленное состояние отслеживания. Результаты обработки, которые еще не завершены, будут отброшены.
Загруженные target не будут выгружены, загрузка target, которая еще не завершена, не будет отменена, и их callback все равно будут вызваны. В этот момент состояние работы — Idle; вызов start позволит продолжить использование загруженных target.
void easyar_MegaGoTracker_stop(easyar_MegaGoTracker * This)
public func stop() -> Void
public virtual void stop()
Возвращаемое значение
close
Полностью закрыть MegaGoTracker, прекратить обработку входных кадров, очистить текущие обнаруженные экземпляры блоков и накопленное состояние отслеживания, удалить цель (target) и освободить связанные ресурсы. Повторный вызов этого метода не приведет к дополнительным эффектам.
Все незавершенные операции локализации и загрузки целей (target) будут отменены, невыполненные обратные вызовы (callback) больше не будут вызываться. Этот метод может дождаться завершения выполняемых операций перед возвратом. После вызова метода close не следует продолжать использовать MegaGoTracker, вызов метода start вернет false.
void easyar_MegaGoTracker_close(easyar_MegaGoTracker * This)
public func close() -> Void
public virtual void close()
Возвращаемое значение
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)
Параметры
Возвращаемое значение