OSVR-Core
Typedefs | Functions
Eye tracker interface (base C API)

Sending eye tracker reports from a device in your plugin. More...

Typedefs

typedef struct OSVR_EyeTrackerDeviceInterfaceObjectOSVR_EyeTrackerDeviceInterface
 Opaque type used to send data on eye tracker interface (which internally is carried over several interfaces).
 

Functions

OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceEyeTrackerConfigure (OSVR_INOUT_PTR OSVR_DeviceInitOptions opts, OSVR_OUT_PTR OSVR_EyeTrackerDeviceInterface *iface, OSVR_IN OSVR_ChannelCount numSensors) OSVR_FUNC_NONNULL((1
 Specify that your device will implement the Eye Tracker interface. More...
 
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceEyeTrackerReport2DGaze (OSVR_IN_PTR OSVR_EyeTrackerDeviceInterface iface, OSVR_IN OSVR_EyeGazePosition2DState gazePosition, OSVR_IN OSVR_ChannelCount sensor, OSVR_IN_PTR OSVR_TimeValue const *timestamp) OSVR_FUNC_NONNULL((1
 Report gaze position 2D for a sensor (eye) - each component normalized from 0 to 1, lower-left corner of the screen is (0, 0) with the screen extending along the positive axes. More...
 
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceEyeTrackerReport3DGaze (OSVR_IN_PTR OSVR_EyeTrackerDeviceInterface iface, OSVR_IN OSVR_EyeGazeDirectionState gazeDirection, OSVR_IN OSVR_EyeGazeBasePoint3DState gazeBasePoint, OSVR_IN OSVR_ChannelCount sensor, OSVR_IN_PTR OSVR_TimeValue const *timestamp) OSVR_FUNC_NONNULL((1
 Report 3D gaze ray for an eye. More...
 
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceEyeTrackerReport3DGazeDirection (OSVR_IN_PTR OSVR_EyeTrackerDeviceInterface iface, OSVR_IN OSVR_EyeGazeDirectionState gazeDirection, OSVR_IN OSVR_ChannelCount sensor, OSVR_IN_PTR OSVR_TimeValue const *timestamp) OSVR_FUNC_NONNULL((1
 3D gaze direction for an eye More...
 
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceEyeTrackerReportGaze (OSVR_IN_PTR OSVR_EyeTrackerDeviceInterface iface, OSVR_IN OSVR_EyeGazePosition2DState gazePosition, OSVR_IN OSVR_EyeGazeDirectionState gazeDirection, OSVR_IN OSVR_EyeGazeBasePoint3DState gazeBasePoint, OSVR_IN OSVR_ChannelCount sensor, OSVR_IN_PTR OSVR_TimeValue const *timestamp) OSVR_FUNC_NONNULL((1
 Report both 2D and 3D gaze for an eye. More...
 
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceEyeTrackerReportBlink (OSVR_IN_PTR OSVR_EyeTrackerDeviceInterface iface, OSVR_IN OSVR_EyeTrackerBlinkState blink, OSVR_IN OSVR_ChannelCount sensor, OSVR_IN_PTR OSVR_TimeValue const *timestamp) OSVR_FUNC_NONNULL((1
 Report the blink state. More...
 

Detailed Description

Sending eye tracker reports from a device in your plugin.

Note: At this time, a single device exposing an eye tracker interface cannot also separately expose a tracker, direction, button, or 2D location interface, due to use of those interfaces internally to carry eye tracker data. This is an implementation limitation, not an inherent design limitation, but it has not yet been necessary to resolve it.

Todo:
Handle creating an EyeTracker on the same device as separate button, tracker, direction, and 2D location interfaces.

Function Documentation

§ osvrDeviceEyeTrackerConfigure()

OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceEyeTrackerConfigure ( OSVR_INOUT_PTR OSVR_DeviceInitOptions  opts,
OSVR_OUT_PTR OSVR_EyeTrackerDeviceInterface iface,
OSVR_IN OSVR_ChannelCount  numSensors 
)

Specify that your device will implement the Eye Tracker interface.

Parameters
optsThe device init options object.
[out]ifaceAn interface object you should retain with the same lifetime as the device token in order to send messages conforming to an imaging interface.
numSensorsThe number of eye tracker sensors you will be reporting: You can report 1 - 3 sensors.

§ osvrDeviceEyeTrackerReport2DGaze()

OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceEyeTrackerReport2DGaze ( OSVR_IN_PTR OSVR_EyeTrackerDeviceInterface  iface,
OSVR_IN OSVR_EyeGazePosition2DState  gazePosition,
OSVR_IN OSVR_ChannelCount  sensor,
OSVR_IN_PTR OSVR_TimeValue const *  timestamp 
)

Report gaze position 2D for a sensor (eye) - each component normalized from 0 to 1, lower-left corner of the screen is (0, 0) with the screen extending along the positive axes.

Parameters
ifaceEye Tracker interface
gazePositionThe 2D eye gaze position
sensorSensor number
timestampTimestamp correlating to eye data.

§ osvrDeviceEyeTrackerReport3DGaze()

OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceEyeTrackerReport3DGaze ( OSVR_IN_PTR OSVR_EyeTrackerDeviceInterface  iface,
OSVR_IN OSVR_EyeGazeDirectionState  gazeDirection,
OSVR_IN OSVR_EyeGazeBasePoint3DState  gazeBasePoint,
OSVR_IN OSVR_ChannelCount  sensor,
OSVR_IN_PTR OSVR_TimeValue const *  timestamp 
)

Report 3D gaze ray for an eye.

Parameters
ifaceEye Tracker interface
gazeDirectionThe 3D eye gaze direction - unit vector
gazeBasePointThe 3D eye gaze base - origin of the gaze ray
sensorSensor number
timestampTimestamp correlating to eye data.

§ osvrDeviceEyeTrackerReport3DGazeDirection()

OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceEyeTrackerReport3DGazeDirection ( OSVR_IN_PTR OSVR_EyeTrackerDeviceInterface  iface,
OSVR_IN OSVR_EyeGazeDirectionState  gazeDirection,
OSVR_IN OSVR_ChannelCount  sensor,
OSVR_IN_PTR OSVR_TimeValue const *  timestamp 
)

3D gaze direction for an eye

Parameters
ifaceEye Tracker interface
gazeDirectionThe 3D eye gaze direction - unit vector
sensorSensor number
timestampTimestamp correlating to eye data.

§ osvrDeviceEyeTrackerReportBlink()

OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceEyeTrackerReportBlink ( OSVR_IN_PTR OSVR_EyeTrackerDeviceInterface  iface,
OSVR_IN OSVR_EyeTrackerBlinkState  blink,
OSVR_IN OSVR_ChannelCount  sensor,
OSVR_IN_PTR OSVR_TimeValue const *  timestamp 
)

Report the blink state.

Parameters
ifaceEye Tracker interface
blinkWhether the eye is blinking ("pressed") or not.
sensorSensor number
timestampTimestamp correlating to eye data.

§ osvrDeviceEyeTrackerReportGaze()

OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceEyeTrackerReportGaze ( OSVR_IN_PTR OSVR_EyeTrackerDeviceInterface  iface,
OSVR_IN OSVR_EyeGazePosition2DState  gazePosition,
OSVR_IN OSVR_EyeGazeDirectionState  gazeDirection,
OSVR_IN OSVR_EyeGazeBasePoint3DState  gazeBasePoint,
OSVR_IN OSVR_ChannelCount  sensor,
OSVR_IN_PTR OSVR_TimeValue const *  timestamp 
)

Report both 2D and 3D gaze for an eye.

Parameters
ifaceEye Tracker interface
gazePositionThe 2D eye gaze position
gazeDirectionThe 3D eye gaze direction - unit vector
gazeBasePointThe 3D eye gaze base - origin of the gaze ray
sensorSensor number
timestampTimestamp correlating to eye data.