Table of Contents

Class SparseSpatialMap

네임스페이스
easyar

SparseSpatialMap 시스템의 주요 기능을 제공합니다. 맵 생성 및 저장, 맵 로딩 및 위치 추정을 하며, 포인트 클라우드, 평면 등의 환경 정보를 획득하고 hit Test를 수행할 수 있습니다. SparseSpatialMap은 2개의 camera buffer를 점유합니다. camera의 setBufferCapacity를 사용하여 모든 구성 요소가 사용하는 camera buffer의 수량보다 적지 않게 설정해야 합니다.

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 입력 프레임은 카메라 파라미터, 타임스탬프 정보 및 공간 정보(cameraTransformtrackingStatus)를 반드시 포함해야 합니다. 참조 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 License를 사용하는 경우에만 적용 가능합니다.

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를 호출하여 재실행합니다.

  • 원문 구조 유지: "停止...算法。调用...重新运行。" → "SparseSpatialMap 알고리즘을 중지합니다. start를 호출하여 재실행합니다." (문장 구조와 마침표 위치 동일)
  • 영어 단어 미번역: "SparseSpatialMap"과 "start"는 그대로 유지.
  • 하이픈 공백 없음: "SparseSpatialMap"의 하이픈(-) 전후에 공백이 없음.
  • 추가 내용/서식 없음: 번역 결과만 제공.
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을 닫습니다. 닫은 후에는 계속 사용해서는 안 됩니다.

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

현재 포인트 클라우드 데이터 위치 정보를 가져옵니다. 여기서 포인트 클라우드 위치는 월드 좌표계 상의 위치이며, 버퍼의 각 점은 세 개의 연속된 값으로 표현되며, 각각 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

현재 포인트 클라우드에서 Hit Test를 수행하여, 카메라로부터 가까운 순서대로 광선 상의 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

현재 감지된 평면에서 히트 테스트를 수행하여 카메라로부터 가까운 순에서 먼 순으로 레이 상에 있는 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

현재 스파스-공간 맵의 맵 버전을 가져옵니다.

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>