Class MegaGoTracker
장치 측 위치 추적 기능을 제공합니다.
MegaGoTracker는 2개의 카메라 버퍼를 사용합니다.
MegaGoTracker
메서드
isAvailable
컴포넌트가 사용 가능한지 확인합니다. 안드로이드에서는 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()
반환 값
지도 파일에서 블록(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)
매개 변수
반환 값
지도 메모리 데이터에서 블록(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만 유효합니다. 이 메서드를 호출하면 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만 유효합니다. 이 메서드를 호출하면 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
현재 target을卸载하고 현재 위치 인스턴스와 누적된 추적 상태를清除합니다. target의 논리 상태는 즉시 로드되지 않은 상태로 변경됩니다.
이 메서드를 호출하면 아직 완료되지 않은 모든 로드 요청이 대체됩니다. 진행 중인 로드는 즉시 중지되지 않을 수 있습니다. 대체된 요청의 callback은 작업이 끝난 후 호출되며, 결과 상태는 MegaGoTargetLoadStatus.Canceled입니다.
이 메서드는 callback이 없으며卸载 작업이 완료될 때까지 기다리지 않습니다. 로드된 또는 로드 중인 target이 없으면 이 메서드를 호출해도 추가 효과가 없습니다.
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를 영구적으로 닫고, 입력 프레임 처리 작업을 중지하며, 현재 찾은 block 인스턴스와 누적된 추적 상태를 초기화합니다. target을 언로드하고 관련 자원을 해제합니다. 반복 호출해도 추가적인 효과는 없습니다.
모든 미완료된 위치 찾기 및 target 로드 작업은 취소되며, 아직 실행되지 않은 callback은 더 이상 호출되지 않습니다. 이 메서드는 진행 중인 작업이 끝날 때까지 기다렸다가 반환될 수도 있습니다. 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)
매개 변수
반환 값