Table of Contents

Class MotionTrackerCameraDevice

Пространство имен
easyar

MotionTrackerCameraDevice реализует камеру с 6DOF-отслеживанием движения в реальном масштабе, которая выводит InputFrame (содержит изображение, параметры камеры, временную метку, 6DOF-позицию и статус отслеживания). После создания можно вызвать start/stop для запуска и остановки потока данных. Когда устройство больше не нужно, вызовите close для его закрытия. После close использовать его не следует. MotionTrackerCameraDevice выводит InputFrame через inputFrameSource; 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

Проверяет, поддерживает ли устройство Motion Tracking. Возвращает 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

Получает качество Motion Tracking на устройстве. В сочетании с сценарием приложения это значение помогает решить, запускать ли Motion Tracking.

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. Если не вызывать, по умолчанию используется 30 кадров/с.

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

Устанавливает режим отслеживания. Вызывайте до start. Если не вызывать, по умолчанию используется режим якоря.

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

Устанавливает емкость буфера для InputFrame. bufferCapacity указывает емкость буфера InputFrame. Если устройство выводит больше кадров, чем это значение, и они не освобождены, устройство перестанет выводить новые 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

Выполняет Hit Test в текущем облаке точек, получая координаты самой ближней 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

Выполняет Hit Test на горизонтальных плоскостях, обнаруженных в реальном времени в текущем поле зрения. При нажатии на плоскость возвращает координаты ближайшей к лучу Hit Test 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>