Table of Contents

Class MegaTracker

命名空間
easyar

提供雲定位功能。 MegaTracker佔用1個camera的buffer。

MegaTracker

方法

isAvailable

檢查MegaTracker是否可用。總是返回true。

bool easyar_MegaTracker_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

輸入幀輸入端口。MegaTracker輸入幀必須包含camera參數、時間戳信息和空間信息(cameraTransform和trackingStatus)。參考 InputFrameSink

void easyar_MegaTracker_inputFrameSink(easyar_MegaTracker * 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_MegaTracker_accelerometerResultSink(easyar_MegaTracker * 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

locationResultSink

可選。位置結果輸入端口。參考 LocationResultSink

void easyar_MegaTracker_locationResultSink(easyar_MegaTracker * This, easyar_LocationResultSink * * Return)
std::shared_ptr<LocationResultSink> locationResultSink()
public @Nonnull LocationResultSink locationResultSink()
fun locationResultSink(): LocationResultSink
- (easyar_LocationResultSink *)locationResultSink
public func locationResultSink() -> LocationResultSink
public virtual LocationResultSink locationResultSink()

傳回值

類型 描述
LocationResultSink

proximityLocationResultSink

可選。鄰近位置結果輸入端口。參考 ProximityLocationResultSink

void easyar_MegaTracker_proximityLocationResultSink(easyar_MegaTracker * This, easyar_ProximityLocationResultSink * * Return)
std::shared_ptr<ProximityLocationResultSink> proximityLocationResultSink()
public @Nonnull ProximityLocationResultSink proximityLocationResultSink()
fun proximityLocationResultSink(): ProximityLocationResultSink
- (easyar_ProximityLocationResultSink *)proximityLocationResultSink
public func proximityLocationResultSink() -> ProximityLocationResultSink
public virtual ProximityLocationResultSink proximityLocationResultSink()

傳回值

類型 描述
ProximityLocationResultSink

bufferRequirement

當前組件佔用camera buffer的數量。

int easyar_MegaTracker_bufferRequirement(easyar_MegaTracker * This)
int bufferRequirement()
public int bufferRequirement()
fun bufferRequirement(): Int
- (int)bufferRequirement
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()

傳回值

類型 描述
Int32

outputFrameSource

輸出幀輸出端口。參考 OutputFrameSource

void easyar_MegaTracker_outputFrameSource(easyar_MegaTracker * 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_MegaTracker_create(easyar_String * server, easyar_String * apiKey, easyar_String * apiSecret, easyar_String * appId, easyar_MegaTracker * * Return)
static std::shared_ptr<MegaTracker> create(std::string server, std::string apiKey, std::string apiSecret, std::string appId)
public static @Nonnull MegaTracker create(java.lang.@Nonnull String server, java.lang.@Nonnull String apiKey, java.lang.@Nonnull String apiSecret, java.lang.@Nonnull String appId)
companion object fun create(server: String, apiKey: String, apiSecret: String, appId: String): MegaTracker
+ (easyar_MegaTracker *)create:(NSString *)server apiKey:(NSString *)apiKey apiSecret:(NSString *)apiSecret appId:(NSString *)appId
public static func create(_ server: String, _ apiKey: String, _ apiSecret: String, _ appId: String) throws -> MegaTracker
public static MegaTracker create(string server, string apiKey, string apiSecret, string appId)

參數

名稱 類型 描述
server String
apiKey String
apiSecret String
appId String

傳回值

類型 描述
MegaTracker

createWithToken

使用API Token創建。

void easyar_MegaTracker_createWithToken(easyar_String * server, easyar_String * apiToken, easyar_String * appId, easyar_MegaTracker * * Return)
static std::shared_ptr<MegaTracker> createWithToken(std::string server, std::string apiToken, std::string appId)
public static @Nonnull MegaTracker createWithToken(java.lang.@Nonnull String server, java.lang.@Nonnull String apiToken, java.lang.@Nonnull String appId)
companion object fun createWithToken(server: String, apiToken: String, appId: String): MegaTracker
+ (easyar_MegaTracker *)createWithToken:(NSString *)server apiToken:(NSString *)apiToken appId:(NSString *)appId
public static func createWithToken(_ server: String, _ apiToken: String, _ appId: String) throws -> MegaTracker
public static MegaTracker createWithToken(string server, string apiToken, string appId)

參數

名稱 類型 描述
server String
apiToken String
appId String

傳回值

類型 描述
MegaTracker

updateToken

更新API Token。

void easyar_MegaTracker_updateToken(easyar_MegaTracker * This, easyar_String * apiToken)
void updateToken(std::string apiToken)
public void updateToken(java.lang.@Nonnull String apiToken)
fun updateToken(apiToken: String): Unit
- (void)updateToken:(NSString *)apiToken
public func updateToken(_ apiToken: String) -> Void
public virtual void updateToken(string apiToken)

參數

名稱 類型 描述
apiToken String

傳回值

類型 描述
Void

setMegaApiType

設置MEGA API類型。默認為Block

void easyar_MegaTracker_setMegaApiType(easyar_MegaTracker * This, easyar_MegaApiType type)
void setMegaApiType(MegaApiType type)
public void setMegaApiType(int type)
fun setMegaApiType(type: Int): Unit
- (void)setMegaApiType:(easyar_MegaApiType)type
public func setMegaApiType(_ type: MegaApiType) -> Void
public virtual void setMegaApiType(MegaApiType type)

參數

名稱 類型 描述
type MegaApiType

傳回值

類型 描述
Void

setSpotVersionId

設置地點版本ID。僅當開啟 MegaApiType.Landmark 時可用。

void easyar_MegaTracker_setSpotVersionId(easyar_MegaTracker * This, easyar_OptionalOfString spotVersionId)
void setSpotVersionId(std::optional<std::string> spotVersionId)
public void setSpotVersionId(java.lang.@Nullable String spotVersionId)
fun setSpotVersionId(spotVersionId: String?): Unit
- (void)setSpotVersionId:(NSString *)spotVersionId
public func setSpotVersionId(_ spotVersionId: String?) -> Void
public virtual void setSpotVersionId(Optional<string> spotVersionId)

參數

名稱 類型 描述
spotVersionId Optional<>

傳回值

類型 描述
Void

switchEndPoint

切換遠端端點。

void easyar_MegaTracker_switchEndPoint(easyar_MegaTracker * This, easyar_String * server, easyar_String * apiKey, easyar_String * apiSecret, easyar_String * appId)
void switchEndPoint(std::string server, std::string apiKey, std::string apiSecret, std::string appId)
public void switchEndPoint(java.lang.@Nonnull String server, java.lang.@Nonnull String apiKey, java.lang.@Nonnull String apiSecret, java.lang.@Nonnull String appId)
fun switchEndPoint(server: String, apiKey: String, apiSecret: String, appId: String): Unit
- (void)switchEndPoint:(NSString *)server apiKey:(NSString *)apiKey apiSecret:(NSString *)apiSecret appId:(NSString *)appId
public func switchEndPoint(_ server: String, _ apiKey: String, _ apiSecret: String, _ appId: String) -> Void
public virtual void switchEndPoint(string server, string apiKey, string apiSecret, string appId)

參數

名稱 類型 描述
server String
apiKey String
apiSecret String
appId String

傳回值

類型 描述
Void

switchEndPointWithToken

使用API Token切換遠端端點。

void easyar_MegaTracker_switchEndPointWithToken(easyar_MegaTracker * This, easyar_String * server, easyar_String * apiToken, easyar_String * appId)
void switchEndPointWithToken(std::string server, std::string apiToken, std::string appId)
public void switchEndPointWithToken(java.lang.@Nonnull String server, java.lang.@Nonnull String apiToken, java.lang.@Nonnull String appId)
fun switchEndPointWithToken(server: String, apiToken: String, appId: String): Unit
- (void)switchEndPointWithToken:(NSString *)server apiToken:(NSString *)apiToken appId:(NSString *)appId
public func switchEndPointWithToken(_ server: String, _ apiToken: String, _ appId: String) -> Void
public virtual void switchEndPointWithToken(string server, string apiToken, string appId)

參數

名稱 類型 描述
server String
apiToken String
appId String

傳回值

類型 描述
Void

bindBlockPrior

綁定到特定的地圖block。重置或切換遠端端點時會自動解綁。

void easyar_MegaTracker_bindBlockPrior(easyar_MegaTracker * This, easyar_BlockPriorResult * blockPrior)
void bindBlockPrior(std::shared_ptr<BlockPriorResult> blockPrior)
public void bindBlockPrior(@Nonnull BlockPriorResult blockPrior)
fun bindBlockPrior(blockPrior: BlockPriorResult): Unit
- (void)bindBlockPrior:(easyar_BlockPriorResult *)blockPrior
public func bindBlockPrior(_ blockPrior: BlockPriorResult) -> Void
public virtual void bindBlockPrior(BlockPriorResult blockPrior)

參數

名稱 類型 描述
blockPrior BlockPriorResult

傳回值

類型 描述
Void

unbindBlockPrior

解除地圖block綁定。

void easyar_MegaTracker_unbindBlockPrior(easyar_MegaTracker * This)
void unbindBlockPrior()
public void unbindBlockPrior()
fun unbindBlockPrior(): Unit
- (void)unbindBlockPrior
public func unbindBlockPrior() -> Void
public virtual void unbindBlockPrior()

傳回值

類型 描述
Void

setRequestTimeParameters

設置請求時間參數。timeoutMilliseconds為連接超時時間。requestIntervalMilliseconds為期望的請求間隔時間,默認為1000,最小為300,值越大整體誤差越大。

void easyar_MegaTracker_setRequestTimeParameters(easyar_MegaTracker * This, easyar_OptionalOfInt timeoutMilliseconds, int requestIntervalMilliseconds)
void setRequestTimeParameters(std::optional<int> timeoutMilliseconds, int requestIntervalMilliseconds)
public void setRequestTimeParameters(java.lang.@Nullable Integer timeoutMilliseconds, int requestIntervalMilliseconds)
fun setRequestTimeParameters(timeoutMilliseconds: Int?, requestIntervalMilliseconds: Int): Unit
- (void)setRequestTimeParameters:(NSNumber *)timeoutMilliseconds requestIntervalMilliseconds:(int)requestIntervalMilliseconds
public func setRequestTimeParameters(_ timeoutMilliseconds: Int32?, _ requestIntervalMilliseconds: Int32) -> Void
public virtual void setRequestTimeParameters(Optional<int> timeoutMilliseconds, int requestIntervalMilliseconds)

參數

名稱 類型 描述
timeoutMilliseconds Optional<>
requestIntervalMilliseconds Int32

傳回值

類型 描述
Void

setEnableLocalization

設置是否啟用定位。不啟用定位時,伺服器返回的定位結果不會輸出。默認為true。

void easyar_MegaTracker_setEnableLocalization(easyar_MegaTracker * This, bool enableLocalization)
void setEnableLocalization(bool enableLocalization)
public void setEnableLocalization(boolean enableLocalization)
fun setEnableLocalization(enableLocalization: Boolean): Unit
- (void)setEnableLocalization:(bool)enableLocalization
public func setEnableLocalization(_ enableLocalization: Bool) -> Void
public virtual void setEnableLocalization(bool enableLocalization)

參數

名稱 類型 描述
enableLocalization Boolean

傳回值

類型 描述
Void

setEnableStatelessLocalization

設置是否啟用無狀態定位。啟用無狀態定位時,定位時不會使用上一次定位結果。默認為false。

void easyar_MegaTracker_setEnableStatelessLocalization(easyar_MegaTracker * 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。默認enableAsync為true。同步模式僅使用XR License時可生效。

bool easyar_MegaTracker_setResultAsyncMode(easyar_MegaTracker * 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

setRequestMessage

void easyar_MegaTracker_setRequestMessage(easyar_MegaTracker * This, easyar_String * message)
void setRequestMessage(std::string message)
public void setRequestMessage(java.lang.@Nonnull String message)
fun setRequestMessage(message: String): Unit
- (void)setRequestMessage:(NSString *)message
public func setRequestMessage(_ message: String) -> Void
public virtual void setRequestMessage(string message)

參數

名稱 類型 描述
message String

傳回值

類型 描述
Void

setLocalizationCallback

設置定位回調。每次定位時,會觸發此回調。

void easyar_MegaTracker_setLocalizationCallback(easyar_MegaTracker * This, easyar_CallbackScheduler * callbackScheduler, easyar_OptionalOfFunctorOfVoidFromMegaTrackerLocalizationResponse callback)
void setLocalizationCallback(std::shared_ptr<CallbackScheduler> callbackScheduler, std::optional<std::function<void(std::shared_ptr<MegaTrackerLocalizationResponse>)>> callback)
public void setLocalizationCallback(@Nonnull CallbackScheduler callbackScheduler, @Nullable FunctorOfVoidFromMegaTrackerLocalizationResponse callback)
fun setLocalizationCallback(callbackScheduler: CallbackScheduler, callback: FunctorOfVoidFromMegaTrackerLocalizationResponse?): Unit
- (void)setLocalizationCallback:(easyar_CallbackScheduler *)callbackScheduler callback:(void (^)(easyar_MegaTrackerLocalizationResponse * response))callback
public func setLocalizationCallback(_ callbackScheduler: CallbackScheduler, _ callback: ((MegaTrackerLocalizationResponse) -> Void)?) -> Void
public virtual void setLocalizationCallback(CallbackScheduler callbackScheduler, Optional<Action<MegaTrackerLocalizationResponse>> callback)

參數

名稱 類型 描述
callbackScheduler CallbackScheduler
callback Optional<Action<MegaTrackerLocalizationResponse>>

傳回值

類型 描述
Void

setCameraPositionOverride

設置相機位置相對於地圖block的覆蓋值。設置之後,MegaTracker會輸出覆蓋值,而不使用輸入幀數據中的對應坐標。可用於在已知地圖信息且感測器有限的情況下提高輸出位姿的精度。

void easyar_MegaTracker_setCameraPositionOverride(easyar_MegaTracker * 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

start

開始MegaTracker。

bool easyar_MegaTracker_start(easyar_MegaTracker * This)
bool start()
public boolean start()
fun start(): Boolean
- (bool)start
public func start() -> Bool
public virtual bool start()

傳回值

類型 描述
Boolean

stop

停止MegaTracker。調用start重新運行。

void easyar_MegaTracker_stop(easyar_MegaTracker * This)
void stop()
public void stop()
fun stop(): Unit
- (void)stop
public func stop() -> Void
public virtual void stop()

傳回值

類型 描述
Void

reset

重置MegaTracker,清除所有狀態。

void easyar_MegaTracker_reset(easyar_MegaTracker * This)
void reset()
public void reset()
fun reset(): Unit
- (void)reset
public func reset() -> Void
public virtual void reset()

傳回值

類型 描述
Void

close

關閉MegaTracker。close之後不應繼續使用。

void easyar_MegaTracker_close(easyar_MegaTracker * This)
void close()
public void close()
fun close(): Unit
- (void)close
public func close() -> Void
public virtual void close()

傳回值

類型 描述
Void

getSyncResult

獲得同步輸出結果。如果MegaTracker已暫停,或者未通過setResultAsyncMode將結果非同步模式設為false,則返回值為空。

void easyar_MegaTracker_getSyncResult(easyar_MegaTracker * This, easyar_MotionInputData * motionInputData, easyar_OptionalOfMegaTrackerResult * Return)
std::optional<std::shared_ptr<MegaTrackerResult>> getSyncResult(std::shared_ptr<MotionInputData> motionInputData)
public @Nullable MegaTrackerResult getSyncResult(@Nonnull MotionInputData motionInputData)
fun getSyncResult(motionInputData: MotionInputData): MegaTrackerResult?
- (easyar_MegaTrackerResult *)getSyncResult:(easyar_MotionInputData *)motionInputData
public func getSyncResult(_ motionInputData: MotionInputData) -> MegaTrackerResult?
public virtual Optional<MegaTrackerResult> getSyncResult(MotionInputData motionInputData)

參數

名稱 類型 描述
motionInputData MotionInputData

傳回值

類型 描述
Optional<MegaTrackerResult>