Table of Contents

Class SparseSpatialMap

名前空間
easyar

SparseSpatialMapシステムの主要な機能を提供する:マップ生成と保存、マップロードと位置特定、同時に点雲、平面などの環境情報を取得しhitTestを実行できる。 SparseSpatialMapはカメラのバッファを2つ占有する。cameraのsetBufferCapacityを使用して、すべてのコンポーネントが占有するカメラバッファの数以上を設定する必要がある。

SparseSpatialMap

メソッド

isAvailable

SparseSpatialMapが利用可能かどうかをチェックする。常にtrueを返す。

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

入力フレーム入力ポート。SparseSpatialMap入力フレームはカメラパラメータ、タイムスタンプ情報、空間情報(cameraTransformとtrackingStatus)を含む必要がある。参照 InputFrameSink。 注意:カメラはピンホールと魚眼カメラモデルをサポートするが、魚眼カメラを使用するとパフォーマンスが影響を受ける。

void easyar_SparseSpatialMap_inputFrameSink(easyar_SparseSpatialMap * 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

bufferRequirement

現在のコンポーネントが占有するカメラバッファの数。

int easyar_SparseSpatialMap_bufferRequirement(easyar_SparseSpatialMap * This)
int bufferRequirement()
public int bufferRequirement()
fun bufferRequirement(): Int
- (int)bufferRequirement
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()

戻り値

説明
Int32

outputFrameSource

出力フレーム出力ポート。参照 OutputFrameSource

void easyar_SparseSpatialMap_outputFrameSource(easyar_SparseSpatialMap * 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

SparseSpatialMapを構築する。

void easyar_SparseSpatialMap_create(easyar_SparseSpatialMap * * Return)
static std::shared_ptr<SparseSpatialMap> create()
public static @Nonnull SparseSpatialMap create()
companion object fun create(): SparseSpatialMap
+ (easyar_SparseSpatialMap *)create
public static func create() -> SparseSpatialMap
public static SparseSpatialMap create()

戻り値

説明
SparseSpatialMap

setResultPoseType

結果の姿勢タイプを設定する。デフォルトでenableStabilizationはfalse。InputFrameに空間情報が含まれている場合のみ有効。

void easyar_SparseSpatialMap_setResultPoseType(easyar_SparseSpatialMap * This, bool enableStabilization)
void setResultPoseType(bool enableStabilization)
public void setResultPoseType(boolean enableStabilization)
fun setResultPoseType(enableStabilization: Boolean): Unit
- (void)setResultPoseType:(bool)enableStabilization
public func setResultPoseType(_ enableStabilization: Bool) -> Void
public virtual void setResultPoseType(bool enableStabilization)

パラメーター

名前 説明
enableStabilization Boolean

戻り値

説明
Void

setResultAsyncMode

結果の非同期モードを設定する。結果がoutputFrameSourceを通じて出力される場合はtrueに設定し、結果がgetSyncResultで取得される場合はfalseに設定する。デフォルトでenableAsyncはtrue。同期モードは入力フレームに空間情報が含まれ、XRライセンスを使用している場合にのみ有効。

bool easyar_SparseSpatialMap_setResultAsyncMode(easyar_SparseSpatialMap * 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

start

SparseSpatialMapアルゴリズムを開始する。

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

戻り値

説明
Boolean

stop

SparseSpatialMapアルゴリズムを停止する。startを呼び出して再実行。

void easyar_SparseSpatialMap_stop(easyar_SparseSpatialMap * This)
void stop()
public void stop()
fun stop(): Unit
- (void)stop
public func stop() -> Void
public virtual void stop()

戻り値

説明
Void

close

SparseSpatialMapを閉じる。close後は使用を続けてはならない。

void easyar_SparseSpatialMap_close(easyar_SparseSpatialMap * This)
void close()
public void close()
fun close(): Unit
- (void)close
public func close() -> Void
public virtual void close()

戻り値

説明
Void

getPointCloudBuffer

現在の点雲データ位置情報を取得する。点雲位置は世界座標系での位置であり、バッファの各点は3つの連続した値で表され、それぞれがX、Y、Z軸の座標値を示し、各値は4バイトを占める。

void easyar_SparseSpatialMap_getPointCloudBuffer(easyar_SparseSpatialMap * This, easyar_Buffer * * Return)
std::shared_ptr<Buffer> getPointCloudBuffer()
public @Nonnull Buffer getPointCloudBuffer()
fun getPointCloudBuffer(): Buffer
- (easyar_Buffer *)getPointCloudBuffer
public func getPointCloudBuffer() -> Buffer
public virtual Buffer getPointCloudBuffer()

戻り値

説明
Buffer

getMapPlanes

検出された平面を取得する。タイプはPlaneType

void easyar_SparseSpatialMap_getMapPlanes(easyar_SparseSpatialMap * This, easyar_ListOfPlaneData * * Return)
std::vector<std::shared_ptr<PlaneData>> getMapPlanes()
public java.util.@Nonnull ArrayList<@Nonnull PlaneData> getMapPlanes()
fun getMapPlanes(): ArrayList<PlaneData>
- (NSArray<easyar_PlaneData *> *)getMapPlanes
public func getMapPlanes() -> [PlaneData]
public virtual List<PlaneData> getMapPlanes()

戻り値

説明
List<PlaneData>

hitTestAgainstPointCloud

現在の点雲でhitTestを実行し、カメラからの距離が近い順に1本の光線上のn(n>=0)個の位置座標を取得する。

void easyar_SparseSpatialMap_hitTestAgainstPointCloud(easyar_SparseSpatialMap * This, easyar_Vec2F cameraImagePoint, easyar_ListOfVec3F * * Return)
std::vector<Vec3F> hitTestAgainstPointCloud(Vec2F cameraImagePoint)
public java.util.@Nonnull ArrayList<@Nonnull Vec3F> hitTestAgainstPointCloud(@Nonnull Vec2F cameraImagePoint)
fun hitTestAgainstPointCloud(cameraImagePoint: Vec2F): ArrayList<Vec3F>
- (NSArray<easyar_Vec3F *> *)hitTestAgainstPointCloud:(easyar_Vec2F *)cameraImagePoint
public func hitTestAgainstPointCloud(_ cameraImagePoint: Vec2F) -> [Vec3F]
public virtual List<Vec3F> hitTestAgainstPointCloud(Vec2F cameraImagePoint)

パラメーター

名前 説明
cameraImagePoint Vec2F

戻り値

説明
List<Vec3F>

hitTestAgainstPlanes

現在検出された平面でhitTestを実行し、カメラからの距離が近い順に1本の光線上のn(n>=0)個の位置座標を取得する。 入力画像座標系([0,1]^2)のxは右向き、yは下向き、原点は左上隅。imageCoordinatesFromScreenCoordinatesを使用して画面座標から画像座標に変換できる。 出力は世界座標系での点雲の座標。

void easyar_SparseSpatialMap_hitTestAgainstPlanes(easyar_SparseSpatialMap * This, easyar_Vec2F cameraImagePoint, easyar_ListOfVec3F * * Return)
std::vector<Vec3F> hitTestAgainstPlanes(Vec2F cameraImagePoint)
public java.util.@Nonnull ArrayList<@Nonnull Vec3F> hitTestAgainstPlanes(@Nonnull Vec2F cameraImagePoint)
fun hitTestAgainstPlanes(cameraImagePoint: Vec2F): ArrayList<Vec3F>
- (NSArray<easyar_Vec3F *> *)hitTestAgainstPlanes:(easyar_Vec2F *)cameraImagePoint
public func hitTestAgainstPlanes(_ cameraImagePoint: Vec2F) -> [Vec3F]
public virtual List<Vec3F> hitTestAgainstPlanes(Vec2F cameraImagePoint)

パラメーター

名前 説明
cameraImagePoint Vec2F

戻り値

説明
List<Vec3F>

getMapVersion

現在のSparseSpatialMapのマップバージョンを取得する。

void easyar_SparseSpatialMap_getMapVersion(easyar_String * * Return)
static std::string getMapVersion()
public static java.lang.@Nonnull String getMapVersion()
companion object fun getMapVersion(): String
+ (NSString *)getMapVersion
public static func getMapVersion() -> String
public static string getMapVersion()

戻り値

説明
String

unloadMap

コールバックを通じて指定されたSparseSpatialMapマップデータをアンロードする。コールバックの戻り値でアンロードが成功したか判断でき、成功はtrue、それ以外はfalseを返す。

void easyar_SparseSpatialMap_unloadMap(easyar_SparseSpatialMap * This, easyar_String * mapID, easyar_CallbackScheduler * callbackScheduler, easyar_OptionalOfFunctorOfVoidFromBool resultCallBack)
void unloadMap(std::string mapID, std::shared_ptr<CallbackScheduler> callbackScheduler, std::optional<std::function<void(bool)>> resultCallBack)
public void unloadMap(java.lang.@Nonnull String mapID, @Nonnull CallbackScheduler callbackScheduler, @Nullable FunctorOfVoidFromBool resultCallBack)
fun unloadMap(mapID: String, callbackScheduler: CallbackScheduler, resultCallBack: FunctorOfVoidFromBool?): Unit
- (void)unloadMap:(NSString *)mapID callbackScheduler:(easyar_CallbackScheduler *)callbackScheduler resultCallBack:(void (^)(bool))resultCallBack
public func unloadMap(_ mapID: String, _ callbackScheduler: CallbackScheduler, _ resultCallBack: ((Bool) -> Void)?) -> Void
public virtual void unloadMap(string mapID, CallbackScheduler callbackScheduler, Optional<Action<bool>> resultCallBack)

パラメーター

名前 説明
mapID String
callbackScheduler CallbackScheduler
resultCallBack Optional<Action<>>

戻り値

説明
Void

setConfig

SparseSpatialMap関連の設定を行う。参照SparseSpatialMapConfig

void easyar_SparseSpatialMap_setConfig(easyar_SparseSpatialMap * This, easyar_SparseSpatialMapConfig * config)
void setConfig(std::shared_ptr<SparseSpatialMapConfig> config)
public void setConfig(@Nonnull SparseSpatialMapConfig config)
fun setConfig(config: SparseSpatialMapConfig): Unit
- (void)setConfig:(easyar_SparseSpatialMapConfig *)config
public func setConfig(_ config: SparseSpatialMapConfig) -> Void
public virtual void setConfig(SparseSpatialMapConfig config)

パラメーター

名前 説明
config SparseSpatialMapConfig

戻り値

説明
Void

getConfig

SparseSpatialMap関連の設定を取得する。参照SparseSpatialMapConfig

void easyar_SparseSpatialMap_getConfig(easyar_SparseSpatialMap * This, easyar_SparseSpatialMapConfig * * Return)
std::shared_ptr<SparseSpatialMapConfig> getConfig()
public @Nonnull SparseSpatialMapConfig getConfig()
fun getConfig(): SparseSpatialMapConfig
- (easyar_SparseSpatialMapConfig *)getConfig
public func getConfig() -> SparseSpatialMapConfig
public virtual SparseSpatialMapConfig getConfig()

戻り値

説明
SparseSpatialMapConfig

startLocalization

ロードされたマップで位置特定を試行する。それ以前に必要な設定パラメータを設定する必要がある。参照LocalizationMode

bool easyar_SparseSpatialMap_startLocalization(easyar_SparseSpatialMap * This)
bool startLocalization()
public boolean startLocalization()
fun startLocalization(): Boolean
- (bool)startLocalization
public func startLocalization() -> Bool
public virtual bool startLocalization()

戻り値

説明
Boolean

stopLocalization

現在の位置特定プロセスを停止する。

void easyar_SparseSpatialMap_stopLocalization(easyar_SparseSpatialMap * This)
void stopLocalization()
public void stopLocalization()
fun stopLocalization(): Unit
- (void)stopLocalization
public func stopLocalization() -> Void
public virtual void stopLocalization()

戻り値

説明
Void

getSyncResult

同期出力結果を取得する。SparseSpatialMapが一時停止されているか、setResultAsyncModeで結果非同期モードがfalseに設定されていない場合、戻り値は空である。

void easyar_SparseSpatialMap_getSyncResult(easyar_SparseSpatialMap * This, easyar_MotionInputData * motionInputData, easyar_OptionalOfSparseSpatialMapResult * Return)
std::optional<std::shared_ptr<SparseSpatialMapResult>> getSyncResult(std::shared_ptr<MotionInputData> motionInputData)
public @Nullable SparseSpatialMapResult getSyncResult(@Nonnull MotionInputData motionInputData)
fun getSyncResult(motionInputData: MotionInputData): SparseSpatialMapResult?
- (easyar_SparseSpatialMapResult *)getSyncResult:(easyar_MotionInputData *)motionInputData
public func getSyncResult(_ motionInputData: MotionInputData) -> SparseSpatialMapResult?
public virtual Optional<SparseSpatialMapResult> getSyncResult(MotionInputData motionInputData)

パラメーター

名前 説明
motionInputData MotionInputData

戻り値

説明
Optional<SparseSpatialMapResult>