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()
戻り値
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)
パラメーター
戻り値
地図のメモリデータから 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)
パラメーター
戻り値
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 は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)
パラメーター
戻り値
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)
パラメーター
戻り値
unloadTarget
現在のターゲットをアンインストールし、現在の位置決めインスタンスと累積された追跡状態をクリアします。ターゲットの論理状態はすぐに未ロードになります。
このメソッドを呼び出すと、まだ完了していないすべてのロード要求が置き換えられます。進行中のロードはすぐに停止しない可能性があります。置き換えられた要求の callback は、操作が終了した後に呼び出され、その結果状態は MegaGoTargetLoadStatus.Canceled となります。
このメソッドには callback がなく、アンインストール操作が完了するのを待ちません。ロード済みまたはロード中のターゲットがない場合、このメソッドを呼び出しても追加の効果はありません。
void easyar_MegaGoTracker_unloadTarget(easyar_MegaGoTracker * This)
public void unloadTarget()
public func unloadTarget() -> Void
public virtual void unloadTarget()
戻り値
start
入力フレームの処理を開始し、結果を出力します。呼び出しが成功した場合は true を返します。MegaGoTracker が閉じている場合は false を返します。繰り返し呼び出しても追加の効果はありません。
stop の後にこのメソッドを呼び出すと、読み込まれた target を引き続き使用し、再読み込みする必要はありません。
bool easyar_MegaGoTracker_start(easyar_MegaGoTracker * This)
public func start() -> Bool
public virtual bool start()
戻り値
stop
入力フレームの処理を停止し、現在位置決めされている block インスタンスと累積されたトラッキング状態をクリアします。未完成の処理結果は破棄されます。
読み込まれた target はアンロードされず、未完成の target の読み込みもキャンセルされず、その callback は依然として呼び出されます。このときの実行状態は Idle です。start を呼び出すことで、読み込まれた target を引き続き使用できます。
void easyar_MegaGoTracker_stop(easyar_MegaGoTracker * This)
public func stop() -> Void
public virtual void stop()
戻り値
close
MegaGoTrackerを永久に閉じ、入力フレームの処理を停止し、現在特定されたブロックインスタンスと蓄積された追跡状態をクリアし、ターゲットをアンロードし、関連するリソースを解放します。繰り返し呼び出しても追加の効果はありません。
すべての未完成の特定とターゲットのロード操作はキャンセルされ、未実行のコールバックはもう呼び出されません。このメソッドは、進行中の操作が終了するのを待ってから返される場合があります。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)
パラメーター
戻り値