Table of Contents

Class MotionTrackerCameraDevice

Espacio de nombres
easyar

MotionTrackerCameraDevice implementa un dispositivo de cámara con seguimiento de movimiento 6DOF a escala real, que produce InputFrame (contiene imagen, parámetros de cámara, marca de tiempo, información de posición 6DOF y estado de seguimiento). Tras la creación, se puede llamar a start/stop para iniciar y detener el flujo de datos. Cuando el dispositivo ya no sea necesario, se puede llamar a close para cerrarlo. Tras close, no debe seguir utilizándose. MotionTrackerCameraDevice genera InputFrame a través de inputFrameSource, que debe conectarse a InputFrameSink para su uso.

MotionTrackerCameraDevice

Constructores

MotionTrackerCameraDevice

Crea un objeto MotionTrackerCameraDevice.

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

Métodos

isAvailable

Verifica si el dispositivo admite Motion Tracking. Retorna True cuando el dispositivo soporta seguimiento de movimiento, de lo contrario 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()

Devuelve

Tipo Descripción
Boolean

getQualityLevel

Obtiene la calidad del Motion Tracking en el dispositivo. Combinado con el escenario de aplicación, este valor puede determinar si iniciar 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()

Devuelve

Tipo Descripción
MotionTrackerCameraDeviceQualityLevel

setFrameRateType

Establece la tasa de fotogramas actual del dispositivo. Se llama antes de start. Si no se llama, el valor predeterminado es 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)

Parámetros

Nombre Tipo Descripción
fps MotionTrackerCameraDeviceFPS

Devuelve

Tipo Descripción
Boolean

setFocusMode

Establece el modo de enfoque como focusMode. Se llama antes de start. Si no se llama, el valor predeterminado es enfoque automático continuo

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)

Parámetros

Nombre Tipo Descripción
focusMode MotionTrackerCameraDeviceFocusMode

Devuelve

Tipo Descripción
Boolean

setFrameResolutionType

Establece la resolución de fotogramas. Se llama antes de start. Si no se llama, el valor predeterminado es 1280x960 o 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)

Parámetros

Nombre Tipo Descripción
resolution MotionTrackerCameraDeviceResolution

Devuelve

Tipo Descripción
Boolean

setTrackingMode

Establece el modo de seguimiento. Se llama antes de start. Si no se llama, el valor predeterminado es modo de anclaje

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)

Parámetros

Nombre Tipo Descripción
trackingMode MotionTrackerCameraDeviceTrackingMode

Devuelve

Tipo Descripción
Boolean

setBufferCapacity

Establece la capacidad del búfer de InputFrame. bufferCapacity indica la capacidad del búfer de InputFrame. Si se producen más InputFrame de este dispositivo que no se liberan, el dispositivo dejará de producir nuevos InputFrame hasta que se liberen los anteriores. Esto puede causar congelamientos u otros problemas.

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)

Parámetros

Nombre Tipo Descripción
capacity Int32

Devuelve

Tipo Descripción
Void

bufferCapacity

Obtiene la capacidad del búfer de InputFrame. El valor predeterminado es 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()

Devuelve

Tipo Descripción
Int32

inputFrameSource

Puerto de salida de 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()

Devuelve

Tipo Descripción
InputFrameSource

start

Inicia el seguimiento de movimiento o activa la relocalización desde una pausa, continuando el seguimiento tras éxito. Nota: Si el dispositivo estaba en pausa por stop y luego se llama a start, se activará la relocalización. El seguimiento continuará solo después de una relocalización exitosa.

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()

Devuelve

Tipo Descripción
Boolean

stop

Pausa el seguimiento de movimiento. Llamar a start activa la relocalización; tras éxito, el seguimiento continúa.

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()

Devuelve

Tipo Descripción
Void

close

Cierra el proceso de seguimiento de movimiento. Tras close, no debe seguir utilizándose.

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()

Devuelve

Tipo Descripción
Void

type

Tipo de cámara. Se llama tras un start exitoso.

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()

Devuelve

Tipo Descripción
CameraDeviceType

cameraOrientation

Ángulo de rotación horaria necesario para mostrar la imagen de la cámara en la orientación natural del dispositivo. Se llama tras un start exitoso.

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()

Devuelve

Tipo Descripción
Int32

size

Obtiene el tamaño de imagen actual. Se llama tras un start exitoso.

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()

Devuelve

Tipo Descripción
Vec2I

frameRateRangeLower

Obtiene el límite inferior del rango de fps actual. Se llama tras un open exitoso.

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()

Devuelve

Tipo Descripción
Double

frameRateRangeUpper

Obtiene el límite superior del rango de fps actual. Se llama tras un open exitoso.

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()

Devuelve

Tipo Descripción
Double

hitTestAgainstPointCloud

Realiza una prueba de impacto (Hit Test) en la nube de puntos actual, obteniendo las coordenadas 3D del punto más cercano a lo largo de un rayo desde la cámara (de cerca a lejos). El punto se representa mediante tres valores consecutivos para las coordenadas X, Y, Z. El sistema de coordenadas de imagen de entrada ([0,1]^2) tiene x hacia la derecha, y hacia abajo, origen en la esquina superior izquierda. Se puede usar imageCoordinatesFromScreenCoordinates para convertir coordenadas de pantalla a imagen.

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)

Parámetros

Nombre Tipo Descripción
cameraImagePoint Vec2F

Devuelve

Tipo Descripción
List<Vec3F>

hitTestAgainstHorizontalPlane

Realiza una prueba de impacto (Hit Test) en planos horizontales detectados en tiempo real dentro del campo de visión actual. Al hacer clic en un plano, retorna las coordenadas 3D del punto más cercano al rayo de prueba en ese plano. El sistema de coordenadas de imagen de entrada ([0,1]^2) tiene x hacia la derecha, y hacia abajo, origen en la esquina superior izquierda. Se puede usar imageCoordinatesFromScreenCoordinates para convertir coordenadas de pantalla a imagen. La salida son las coordenadas del punto en la nube de puntos en el sistema de coordenadas mundial. Cada punto se representa mediante tres valores consecutivos para 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)

Parámetros

Nombre Tipo Descripción
cameraImagePoint Vec2F

Devuelve

Tipo Descripción
List<Vec3F>

getLocalPointsCloud

Obtiene la información de posición de la nube de puntos actual. Las posiciones de la nube de puntos están en el sistema de coordenadas mundial. Cada punto se representa mediante tres valores consecutivos para las coordenadas 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()

Devuelve

Tipo Descripción
List<Vec3F>