MotionTrackerCameraDevice Class¶
Description¶
MotionTrackerCameraDevice implements a camera device with metric-scale six degree-of-freedom motion tracking, which outputs InputFrame (including image, camera parameters, timestamp, 6DOF pose and tracking status).
After creation, start/stop can be invoked to start or stop data flow.
When the component is not needed anymore, call close function to close it. It shall not be used after calling close.
MotionTrackerCameraDevice outputs InputFrame from inputFrameSource. inputFrameSource shall be connected to InputFrameSink for further use. Refer to Overview _ .
Constructor¶
Create MotionTrackerCameraDevice object.
- C
void easyar_MotionTrackerCameraDevice__ctor(easyar_MotionTrackerCameraDevice * * Return)
- C++17
MotionTrackerCameraDevice()
- C++03
MotionTrackerCameraDevice()
- Java
public MotionTrackerCameraDevice()
- Kotlin
constructor()
- Objective-C
+ (easyar_MotionTrackerCameraDevice *) create
- Swift
public convenience init()
- C#
public MotionTrackerCameraDevice()
isAvailable¶
Check if the devices supports motion tracking. Returns True if the device supports Motion Tracking, otherwise returns False.
- C
bool easyar_MotionTrackerCameraDevice_isAvailable(void)
- C++17
static bool isAvailable()
- C++03
static bool isAvailable()
- Java
public static boolean isAvailable()
- Kotlin
companion object fun isAvailable(): Boolean
- Objective-C
+ (bool)isAvailable
- Swift
public static func isAvailable() -> Bool
- C#
public static bool isAvailable()
setBufferCapacity¶
Set InputFrame buffer capacity.
bufferCapacity is the capacity of InputFrame buffer. If the count of InputFrame which has been output from the device and have not been released is higher than this number, the device will not output new InputFrame until previous InputFrame has been released. This may cause screen stuck. Refer to Overview _ .
- C
void easyar_MotionTrackerCameraDevice_setBufferCapacity(easyar_MotionTrackerCameraDevice * This, int capacity)
- C++17
void setBufferCapacity(int capacity)
- C++03
void setBufferCapacity(int capacity)
- Java
public void setBufferCapacity(int capacity)
- Kotlin
fun setBufferCapacity(capacity: Int): Unit
- Objective-C
- (void)setBufferCapacity:(int)capacity
- Swift
public func setBufferCapacity(_ capacity: Int32) -> Void
- C#
public virtual void setBufferCapacity(int capacity)
bufferCapacity¶
Get InputFrame buffer capacity. The default is 8.
- C
int easyar_MotionTrackerCameraDevice_bufferCapacity(const easyar_MotionTrackerCameraDevice * This)
- C++17
int bufferCapacity()
- C++03
int bufferCapacity()
- Java
public int bufferCapacity()
- Kotlin
fun bufferCapacity(): Int
- Objective-C
- (int)bufferCapacity
- Swift
public func bufferCapacity() -> Int32
- C#
public virtual int bufferCapacity()
inputFrameSource¶
InputFrame output port.
- C
void easyar_MotionTrackerCameraDevice_inputFrameSource(easyar_MotionTrackerCameraDevice * This, easyar_InputFrameSource * * Return)
- C++17
std::shared_ptr<InputFrameSource> inputFrameSource()
- C++03
void inputFrameSource(InputFrameSource * * Return)
- Java
public @Nonnull InputFrameSource inputFrameSource()
- Kotlin
fun inputFrameSource(): InputFrameSource
- Objective-C
- (easyar_InputFrameSource *)inputFrameSource
- Swift
public func inputFrameSource() -> InputFrameSource
- C#
public virtual InputFrameSource inputFrameSource()
start¶
Start motion tracking or resume motion tracking after pause.
Notice: Calling start after pausing will trigger device relocalization. Tracking will resume when the relocalization process succeeds.
- C
bool easyar_MotionTrackerCameraDevice_start(easyar_MotionTrackerCameraDevice * This)
- C++17
bool start()
- C++03
bool start()
- Java
public boolean start()
- Kotlin
fun start(): Boolean
- Objective-C
- (bool)start
- Swift
public func start() -> Bool
- C#
public virtual bool start()
stop¶
Pause motion tracking. Call start to trigger relocation, resume motion tracking if the relocation succeeds.
- C
void easyar_MotionTrackerCameraDevice_stop(easyar_MotionTrackerCameraDevice * This)
- C++17
void stop()
- C++03
void stop()
- Java
public void stop()
- Kotlin
fun stop(): Unit
- Objective-C
- (void)stop
- Swift
public func stop() -> Void
- C#
public virtual void stop()
close¶
Close motion tracking. The component shall not be used after calling close.
- C
void easyar_MotionTrackerCameraDevice_close(easyar_MotionTrackerCameraDevice * This)
- C++17
void close()
- C++03
void close()
- Java
public void close()
- Kotlin
fun close(): Unit
- Objective-C
- (void)close
- Swift
public func close() -> Void
- C#
public virtual void close()
hitTestAgainstPointCloud¶
Perform hit test against the point cloud and return the nearest 3D point. The 3D point is represented by three consecutive values, representing X, Y, Z position coordinates in the world coordinate space.
For the camera image coordinate system ([0, 1]^2), x-right, y-down, and origin is at left-top corner. CameraParameters.imageCoordinatesFromScreenCoordinates can be used to convert points from screen coordinate system to camera image coordinate system.
- C
void easyar_MotionTrackerCameraDevice_hitTestAgainstPointCloud(easyar_MotionTrackerCameraDevice * This, easyar_Vec2F cameraImagePoint, easyar_ListOfVec3F * * Return)
- C++17
std::vector<Vec3F> hitTestAgainstPointCloud(Vec2F cameraImagePoint)
- C++03
void hitTestAgainstPointCloud(Vec2F cameraImagePoint, ListOfVec3F * * Return)
- Java
public java.util.@Nonnull ArrayList<@Nonnull Vec3F> hitTestAgainstPointCloud(@Nonnull Vec2F cameraImagePoint)
- Kotlin
fun hitTestAgainstPointCloud(cameraImagePoint: Vec2F): ArrayList<Vec3F>
- Objective-C
- (NSArray<easyar_Vec3F *> *)hitTestAgainstPointCloud:(easyar_Vec2F *)cameraImagePoint
- Swift
public func hitTestAgainstPointCloud(_ cameraImagePoint: Vec2F) -> [Vec3F]
- C#
public virtual List<Vec3F> hitTestAgainstPointCloud(Vec2F cameraImagePoint)
hitTestAgainstHorizontalPlane¶
Performs ray cast from the user's device in the direction of given screen point.
Intersections with horizontal plane is detected in real time in the current field of view,and return the 3D point nearest to ray on horizontal plane.
For the camera image coordinate system ([0, 1]^2), x-right, y-down, and origin is at left-top corner. CameraParameters.imageCoordinatesFromScreenCoordinates can be used to convert points from screen coordinate system to camera image coordinate system.
The output point cloud coordinate on Horizontal plane is in the world coordinate system. The 3D point is represented by three consecutive values, representing X, Y, Z position coordinates in the world coordinate space.
- C
void easyar_MotionTrackerCameraDevice_hitTestAgainstHorizontalPlane(easyar_MotionTrackerCameraDevice * This, easyar_Vec2F cameraImagePoint, easyar_ListOfVec3F * * Return)
- C++17
std::vector<Vec3F> hitTestAgainstHorizontalPlane(Vec2F cameraImagePoint)
- C++03
void hitTestAgainstHorizontalPlane(Vec2F cameraImagePoint, ListOfVec3F * * Return)
- Java
public java.util.@Nonnull ArrayList<@Nonnull Vec3F> hitTestAgainstHorizontalPlane(@Nonnull Vec2F cameraImagePoint)
- Kotlin
fun hitTestAgainstHorizontalPlane(cameraImagePoint: Vec2F): ArrayList<Vec3F>
- Objective-C
- (NSArray<easyar_Vec3F *> *)hitTestAgainstHorizontalPlane:(easyar_Vec2F *)cameraImagePoint
- Swift
public func hitTestAgainstHorizontalPlane(_ cameraImagePoint: Vec2F) -> [Vec3F]
- C#
public virtual List<Vec3F> hitTestAgainstHorizontalPlane(Vec2F cameraImagePoint)
getLocalPointsCloud¶
Returns the vector of point cloud coordinate. Each 3D point is represented by three consecutive values, representing X, Y, Z position coordinates in the world coordinate space.
- C
void easyar_MotionTrackerCameraDevice_getLocalPointsCloud(easyar_MotionTrackerCameraDevice * This, easyar_ListOfVec3F * * Return)
- C++17
std::vector<Vec3F> getLocalPointsCloud()
- C++03
void getLocalPointsCloud(ListOfVec3F * * Return)
- Java
public java.util.@Nonnull ArrayList<@Nonnull Vec3F> getLocalPointsCloud()
- Kotlin
fun getLocalPointsCloud(): ArrayList<Vec3F>
- Objective-C
- (NSArray<easyar_Vec3F *> *)getLocalPointsCloud
- Swift
public func getLocalPointsCloud() -> [Vec3F]
- C#
public virtual List<Vec3F> getLocalPointsCloud()