Table of Contents

Class ExternalDeviceFrameSource

Namespace
easyar
Assembly
EasyAR.Sense.dll

Represents the frame source of an external device. Typically refers to a head-mounted device, where both camera rendering and device tracking are handled by the device SDK.

You can implement custom cameras by inheriting subtypes of ExternalDeviceFrameSource, but you cannot directly inherit from ExternalDeviceFrameSource. Custom cameras usually represent a new device or a new data input method.

When using trial products (Personal License, Trial XR License, or Trial Mega Service, etc.) with a custom camera or headset, EasyAR Sense will stop responding after a fixed limited time upon each startup.

public abstract class ExternalDeviceFrameSource : ExternalFrameSource
Inheritance
ExternalDeviceFrameSource
Derived
Inherited Members

Properties

AvailableCenterMode

Provided only when creating a new frame source. It is accessed exclusively during the Assemble() process.

All available center modes.

protected override IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }

Property Value

Camera

Provided only when creating a new frame source. It is accessed exclusively during the Assemble() process.

On desktop devices or mobile phones, this camera represents the virtual Camera corresponding to the real-world camera device. Its projection matrix and position will correspond to the real camera and are controlled by EasyAR. On headsets, this camera is only used to display diagnostic text in front of the eyes, not for image rendering, and the camera is not controlled by EasyAR.

protected override Camera Camera { get; }

Property Value

IsCameraUnderControl

Provided only when creating a new frame source. It is accessed exclusively during the Assemble() process.

When the value is true, the session will update the camera's transform and render the camera image.

When creating a headset extension, this should be false. You should have full control over the 3D camera in the scene. You should handle camera rendering, especially in VST mode.

protected override bool IsCameraUnderControl { get; }

Property Value

Origin

Device origin. You need to define your own origin only when the OriginType is Custom; it is not necessary to redefine it otherwise.

protected virtual GameObject Origin { get; }

Property Value

OriginType

Device origin type.

protected abstract ExternalDeviceFrameSource.DeviceOriginType OriginType { get; }

Property Value