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 は1つだけです。このメソッドを呼び出すと、Tracker が現在位置特定している block インスタンスと蓄積された追跡状態がすぐにクリアされます。今回の読み込みが失敗またはキャンセルされた場合、以前の target と位置特定インスタンスは復元されません。 このメソッドを呼び出すと、未完成の読み込み要求が置き換えられます。進行中の読み込みはすぐに停止しない場合があります。置き換えられた要求の callback は、操作が終了した後に呼び出され、その結果の状態は MegaGoTargetLoadStatus.Canceled となります。 target が解析できないまたは内容が損傷している場合、結果の状態は MegaGoTargetLoadStatus.InvalidTarget となります。 このメソッドはすぐに戻ります。読み込みが完了すると、callback は CallbackScheduler で指定されたスレッド上で呼び出されます。成功した場合、結果には読み込まれた block の情報が含まれます。MegaGoTargetLoadStatus.Success は、target データの読み込みが成功したことを示すだけです。後続の検証が行われるまたは失敗する可能性があります。status と error を通じて、MegaGoTracker の現在の処理状態とエラーを確認する必要があります。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 は1つだけです。このメソッドを呼び出すと、Tracker が現在位置特定している block インスタンスと累積的な追跡状態がすぐにクリアされます。今回の読み込みが失敗または取り消された場合、以前の target と位置特定インスタンスは復元されません。 このメソッドを呼び出すと、まだ完了していない読み込み要求が置き換えられます。進行中の読み込みは即座に停止できない可能性があります。置き換えられた要求の callback は、操作が終了した後に呼び出され、その結果の状態は MegaGoTargetLoadStatus.Canceled となります。 target が解析できないか、内容が破損している場合、結果の状態は MegaGoTargetLoadStatus.InvalidTarget となります。 このメソッドはすぐに戻ります。読み込みが完了すると、callback は CallbackScheduler で指定されたスレッドで呼び出されます。成功した場合、結果には読み込まれた block の情報が含まれます。MegaGoTargetLoadStatus.Success は、target データが正常に読み込まれたことを示すだけです。その後の検証が行われる場合もあれば、失敗する場合もあります。status と error を使って、MegaGoTracker の現在の処理状態とエラーを確認する必要があります。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

現在のターゲットをアンインストールし、現在の位置決めインスタンスと累積された追跡状態をクリアします。ターゲットの論理状態はすぐに未ロードになります。 このメソッドを呼び出すと、まだ完了していないすべてのロード要求が置き換えられます。進行中のロードはすぐに停止しない可能性があります。置き換えられた要求の callback は、操作が終了した後に呼び出され、その結果状態は MegaGoTargetLoadStatus.Canceled となります。 このメソッドには callback がなく、アンインストール操作が完了するのを待ちません。ロード済みまたはロード中のターゲットがない場合、このメソッドを呼び出しても追加の効果はありません。

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 を返します。MegaGoTracker が閉じている場合は false を返します。繰り返し呼び出しても追加の効果はありません。 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

入力フレームの処理を停止し、現在位置決めされている block インスタンスと累積されたトラッキング状態をクリアします。未完成の処理結果は破棄されます。 読み込まれた 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を永久に閉じ、入力フレームの処理を停止し、現在特定されたブロックインスタンスと蓄積された追跡状態をクリアし、ターゲットをアンロードし、関連するリソースを解放します。繰り返し呼び出しても追加の効果はありません。 すべての未完成の特定とターゲットのロード操作はキャンセルされ、未実行のコールバックはもう呼び出されません。このメソッドは、進行中の操作が終了するのを待ってから返される場合があります。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>