Table of Contents

Class MotionTrackerCameraDevice

네임스페이스
easyar

MotionTrackerCameraDevice는 실제 크기 6DOF 모션 추적 카메라 장치를 구현하며, InputFrame (이미지, 카메라 파라미터, 타임스탬프, 6DOF 위치 정보 및 추적 상태 포함)을 출력합니다. 생성 후, start/stop을 호출하여 데이터 스트림을 시작하고 중지할 수 있습니다. 해당 장치가 더 이상 필요하지 않은 경우 close를 호출하여 닫을 수 있습니다. close 이후에는 계속 사용해서는 안 됩니다. MotionTrackerCameraDevice는 inputFrameSource를 통해 InputFrame을 출력하며, inputFrameSource를 InputFrameSink에 연결하여 사용해야 합니다.

MotionTrackerCameraDevice

생성자

MotionTrackerCameraDevice

MotionTrackerCameraDevice 객체 생성

void easyar_MotionTrackerCameraDevice__ctor(easyar_MotionTrackerCameraDevice * * Return)
MotionTrackerCameraDevice()
public MotionTrackerCameraDevice()
constructor()
+ (easyar_MotionTrackerCameraDevice *) create
public convenience init()
public MotionTrackerCameraDevice()

메서드

isAvailable

기기가 모션 추적을 지원하는지 확인합니다. 기기가 모션 추적 기능을 지원할 경우 True를 반환하고, 그렇지 않으면 False를 반환합니다.

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

getQualityLevel

기기에서 모션 추적의 품질을 가져오고, 애플리케이션 시나리오와 결합하여 모션 추적을 시작할지 여부를 이 값을 통해 확인할 수 있습니다.

easyar_MotionTrackerCameraDeviceQualityLevel easyar_MotionTrackerCameraDevice_getQualityLevel(void)
static MotionTrackerCameraDeviceQualityLevel getQualityLevel()
public static int getQualityLevel()
companion object fun getQualityLevel(): Int
+ (easyar_MotionTrackerCameraDeviceQualityLevel)getQualityLevel
public static func getQualityLevel() -> MotionTrackerCameraDeviceQualityLevel
public static MotionTrackerCameraDeviceQualityLevel getQualityLevel()

반환 값

형식 설명
MotionTrackerCameraDeviceQualityLevel

setFrameRateType

현재 장치의 현재 프레임 속도를 설정합니다. start 호출 전에 호출합니다. 이 기능이 호출되지 않으면 기본값은 30fps입니다.

bool easyar_MotionTrackerCameraDevice_setFrameRateType(easyar_MotionTrackerCameraDevice * This, easyar_MotionTrackerCameraDeviceFPS fps)
bool setFrameRateType(MotionTrackerCameraDeviceFPS fps)
public boolean setFrameRateType(int fps)
fun setFrameRateType(fps: Int): Boolean
- (bool)setFrameRateType:(easyar_MotionTrackerCameraDeviceFPS)fps
public func setFrameRateType(_ fps: MotionTrackerCameraDeviceFPS) -> Bool
public virtual bool setFrameRateType(MotionTrackerCameraDeviceFPS fps)

매개 변수

이름 형식 설명
fps MotionTrackerCameraDeviceFPS

반환 값

형식 설명
Boolean

setFocusMode

초점 모드를 focusMode로 설정합니다. start 전에 호출하세요. 이 기능이 호출되지 않을 경우 기본값은 연속 자동 초점입니다.

bool easyar_MotionTrackerCameraDevice_setFocusMode(easyar_MotionTrackerCameraDevice * This, easyar_MotionTrackerCameraDeviceFocusMode focusMode)
bool setFocusMode(MotionTrackerCameraDeviceFocusMode focusMode)
public boolean setFocusMode(int focusMode)
fun setFocusMode(focusMode: Int): Boolean
- (bool)setFocusMode:(easyar_MotionTrackerCameraDeviceFocusMode)focusMode
public func setFocusMode(_ focusMode: MotionTrackerCameraDeviceFocusMode) -> Bool
public virtual bool setFocusMode(MotionTrackerCameraDeviceFocusMode focusMode)

매개 변수

이름 형식 설명
focusMode MotionTrackerCameraDeviceFocusMode

반환 값

형식 설명
Boolean

setFrameResolutionType

프레임 해상도를 설정합니다. start 전에 호출하십시오. 이 기능이 호출되지 않을 경우 기본값은 1280x960 또는 1280x720입니다.

bool easyar_MotionTrackerCameraDevice_setFrameResolutionType(easyar_MotionTrackerCameraDevice * This, easyar_MotionTrackerCameraDeviceResolution resolution)
bool setFrameResolutionType(MotionTrackerCameraDeviceResolution resolution)
public boolean setFrameResolutionType(int resolution)
fun setFrameResolutionType(resolution: Int): Boolean
- (bool)setFrameResolutionType:(easyar_MotionTrackerCameraDeviceResolution)resolution
public func setFrameResolutionType(_ resolution: MotionTrackerCameraDeviceResolution) -> Bool
public virtual bool setFrameResolutionType(MotionTrackerCameraDeviceResolution resolution)

매개 변수

이름 형식 설명
resolution MotionTrackerCameraDeviceResolution

반환 값

형식 설명
Boolean

setTrackingMode

추적 모드 설정. 시작하기 전에 호출하세요. 이 기능을 호출하지 않으면 기본적으로 앵커 모드가 적용됩니다.

bool easyar_MotionTrackerCameraDevice_setTrackingMode(easyar_MotionTrackerCameraDevice * This, easyar_MotionTrackerCameraDeviceTrackingMode trackingMode)
bool setTrackingMode(MotionTrackerCameraDeviceTrackingMode trackingMode)
public boolean setTrackingMode(int trackingMode)
fun setTrackingMode(trackingMode: Int): Boolean
- (bool)setTrackingMode:(easyar_MotionTrackerCameraDeviceTrackingMode)trackingMode
public func setTrackingMode(_ trackingMode: MotionTrackerCameraDeviceTrackingMode) -> Bool
public virtual bool setTrackingMode(MotionTrackerCameraDeviceTrackingMode trackingMode)

매개 변수

이름 형식 설명
trackingMode MotionTrackerCameraDeviceTrackingMode

반환 값

형식 설명
Boolean

setBufferCapacity

<xref:n:easyar.InputFrame> 버퍼의 용량을 설정합니다. bufferCapacity는 <xref:n:easyar.InputFrame> 버퍼의 용량을 나타냅니다. 이 장치에서 출력된 <xref:n:easyar.InputFrame> 중 해제되지 않은 것이 이 수량을 초과하면, 이전 <xref:n:easyar.InputFrame>이 해제될 때까지 이 장치는 새로운 <xref:n:easyar.InputFrame> 출력을 중지합니다. 이로 인해 화면이 멈추는 등의 문제가 발생할 수 있습니다.

void easyar_MotionTrackerCameraDevice_setBufferCapacity(easyar_MotionTrackerCameraDevice * This, int capacity)
void setBufferCapacity(int capacity)
public void setBufferCapacity(int capacity)
fun setBufferCapacity(capacity: Int): Unit
- (void)setBufferCapacity:(int)capacity
public func setBufferCapacity(_ capacity: Int32) -> Void
public virtual void setBufferCapacity(int capacity)

매개 변수

이름 형식 설명
capacity Int32

반환 값

형식 설명
Void

bufferCapacity

InputFrame 버퍼의 용량을 가져옵니다. 기본값은 8입니다.

int easyar_MotionTrackerCameraDevice_bufferCapacity(const easyar_MotionTrackerCameraDevice * This)
int bufferCapacity()
public int bufferCapacity()
fun bufferCapacity(): Int
- (int)bufferCapacity
public func bufferCapacity() -> Int32
public virtual int bufferCapacity()

반환 값

형식 설명
Int32

inputFrameSource

InputFrame 출력 포트.

void easyar_MotionTrackerCameraDevice_inputFrameSource(easyar_MotionTrackerCameraDevice * This, easyar_InputFrameSource * * Return)
std::shared_ptr<InputFrameSource> inputFrameSource()
public @Nonnull InputFrameSource inputFrameSource()
fun inputFrameSource(): InputFrameSource
- (easyar_InputFrameSource *)inputFrameSource
public func inputFrameSource() -> InputFrameSource
public virtual InputFrameSource inputFrameSource()

반환 값

형식 설명
InputFrameSource

start

운동 추적을 시작하거나 일시 중지 상태에서 재위치 설정을 트리거하고 성공 후 추적을 계속합니다.
참고: 기기가 stop을 호출하여 일시 중지한 후 start를 호출하여 추적하는 경우 재위치 설정이 트리거되며, 재위치 설정이 성공한 후에야 추적이 계속됩니다.

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

반환 값

형식 설명
Boolean

stop

운동 추적을 일시 중지합니다. start를 호출하여 재배치를 트리거하고, 재배치가 성공하면 운동 추적을 계속합니다.

void easyar_MotionTrackerCameraDevice_stop(easyar_MotionTrackerCameraDevice * This)
void stop()
public void stop()
fun stop(): Unit
- (void)stop
public func stop() -> Void
public virtual void stop()

반환 값

형식 설명
Void

close

모션 추적 과정을 종료합니다. close 이후에는 사용해서는 안 됩니다.

void easyar_MotionTrackerCameraDevice_close(easyar_MotionTrackerCameraDevice * This)
void close()
public void close()
fun close(): Unit
- (void)close
public func close() -> Void
public virtual void close()

반환 값

형식 설명
Void

type

카메라 유형. 성공적으로 start한 후에 호출하십시오.

easyar_CameraDeviceType easyar_MotionTrackerCameraDevice_type(const easyar_MotionTrackerCameraDevice * This)
CameraDeviceType type()
public int type()
fun type(): Int
- (easyar_CameraDeviceType)type
public func type() -> CameraDeviceType
public virtual CameraDeviceType type()

반환 값

형식 설명
CameraDeviceType

cameraOrientation

카메라 이미지가 기기의 자연 방향으로 표시될 때 시계 방향으로 회전해야 하는 각도입니다. 성공적인 start 이후에 호출됩니다.

int easyar_MotionTrackerCameraDevice_cameraOrientation(const easyar_MotionTrackerCameraDevice * This)
int cameraOrientation()
public int cameraOrientation()
fun cameraOrientation(): Int
- (int)cameraOrientation
public func cameraOrientation() -> Int32
public virtual int cameraOrientation()

반환 값

형식 설명
Int32

size

현재 이미지 크기 가져오기. 성공적인 start 이후에 호출하세요.

easyar_Vec2I easyar_MotionTrackerCameraDevice_size(const easyar_MotionTrackerCameraDevice * This)
Vec2I size()
public @Nonnull Vec2I size()
fun size(): Vec2I
- (easyar_Vec2I *)size
public func size() -> Vec2I
public virtual Vec2I size()

반환 값

형식 설명
Vec2I

frameRateRangeLower

현재 프레임 속도 범위 하한값 가져오기. open이 성공한 후 호출.

double easyar_MotionTrackerCameraDevice_frameRateRangeLower(const easyar_MotionTrackerCameraDevice * This)
double frameRateRangeLower()
public double frameRateRangeLower()
fun frameRateRangeLower(): Double
- (double)frameRateRangeLower
public func frameRateRangeLower() -> Double
public virtual double frameRateRangeLower()

반환 값

형식 설명
Double

frameRateRangeUpper

현재 프레임 속도 범위 상한을 가져옵니다. 성공적인 open 이후에 호출합니다.

double easyar_MotionTrackerCameraDevice_frameRateRangeUpper(const easyar_MotionTrackerCameraDevice * This)
double frameRateRangeUpper()
public double frameRateRangeUpper()
fun frameRateRangeUpper(): Double
- (double)frameRateRangeUpper
public func frameRateRangeUpper() -> Double
public virtual double frameRateRangeUpper()

반환 값

형식 설명
Double

hitTestAgainstPointCloud

현재 포인트 클라우드에서 히트 테스트를 수행하여 카메라로부터 가까운 곳에서 먼 곳으로 뻗는 광선 상의 가장 가까운 3D 점의 위치 좌표를 얻습니다. 이 점은 X, Y, Z축 좌표값을 각각 나타내는 세 개의 연속된 값으로 표시됩니다.

입력 이미지 좌표계 ([0, 1]^2)는 x축이 오른쪽, y축이 아래를 향하며 원점은 좌상단에 위치합니다. 화면 좌표를 이미지 좌표로 변환하기 위해 imageCoordinatesFromScreenCoordinates를 사용할 수 있습니다.

void easyar_MotionTrackerCameraDevice_hitTestAgainstPointCloud(easyar_MotionTrackerCameraDevice * 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>

hitTestAgainstHorizontalPlane

현재 시야 내에서 실시간으로 감지된 수평면에 대해 히트 테스트를 수행하며, 특정 평면을 클릭하면 해당 평면 위에서 히트 테스트 레이에 가장 가까운 3D 포인트의 위치 좌표를 반환합니다.
입력 이미지 좌표계([0, 1]^2)에서 x는 오른쪽, y는 아래쪽을 향하며 원점은 좌측 상단에 있습니다. 화면 좌표를 이미지 좌표로 변환할 때는 imageCoordinatesFromScreenCoordinates를 사용할 수 있습니다.
출력은 월드 좌표계에서 평면 위의 포인트 클라우드 좌표입니다. 각 포인트는 X, Y, Z 축 좌표값을 나타내는 연속된 세 개의 값으로 표현됩니다.

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

매개 변수

이름 형식 설명
cameraImagePoint Vec2F

반환 값

형식 설명
List<Vec3F>

getLocalPointsCloud

현재 포인트 클라우드 데이터의 위치 정보를 가져옵니다. 여기서 포인트 클라우드 위치는 월드 좌표계 상의 위치를 의미하며, 각 포인트는 세 개의 연속된 값으로 표현됩니다. 이 값들은 각각 X, Y, Z축 상의 좌표값을 나타냅니다.

void easyar_MotionTrackerCameraDevice_getLocalPointsCloud(easyar_MotionTrackerCameraDevice * This, easyar_ListOfVec3F * * Return)
std::vector<Vec3F> getLocalPointsCloud()
public java.util.@Nonnull ArrayList<@Nonnull Vec3F> getLocalPointsCloud()
fun getLocalPointsCloud(): ArrayList<Vec3F>
- (NSArray<easyar_Vec3F *> *)getLocalPointsCloud
public func getLocalPointsCloud() -> [Vec3F]
public virtual List<Vec3F> getLocalPointsCloud()

반환 값

형식 설명
List<Vec3F>