Re-exports

pub use self::_eLeapRS as eLeapRS;
pub use self::_eLeapTrackingMode as eLeapTrackingMode;
pub use self::_eLeapConnectionConfig as eLeapConnectionConfig;
pub use self::_eLeapAllocatorType as eLeapAllocatorType;
pub use self::_eLeapServiceDisposition as eLeapServiceDisposition;
pub use self::_eLeapConnectionStatus as eLeapConnectionStatus;
pub use self::_eLeapPolicyFlag as eLeapPolicyFlag;
pub use self::_eLeapValueType as eLeapValueType;
pub use self::_eLeapDevicePID as eLeapDevicePID;
pub use self::_eLeapDeviceStatus as eLeapDeviceStatus;
pub use self::_eLeapImageType as eLeapImageType;
pub use self::_eLeapImageFormat as eLeapImageFormat;
pub use self::_eLeapPerspectiveType as eLeapPerspectiveType;
pub use self::_eLeapCameraCalibrationType as eLeapCameraCalibrationType;
pub use self::_eLeapHandType as eLeapHandType;
pub use self::_eLeapLogSeverity as eLeapLogSeverity;
pub use self::_eLeapDroppedFrameType as eLeapDroppedFrameType;
pub use self::_eLeapIMUFlag as eLeapIMUFlag;
pub use self::_eLeapEventType as eLeapEventType;
pub use self::_eLeapRecordingFlags as eLeapRecordingFlags;
pub use self::_eLeapVersionPart as eLeapVersionPart;

Structs

\ingroup Structs Specifies the allocator/deallocator functions to be used when the library needs to dynamically manage memory. @since 4.0.0

\ingroup Structs Describes a bone’s position and orientation.

\ingroup Structs The result of a configuration change request. Contains a status of true for a successful change. Call LeapSaveConfigValue() to request a service config change. The change is performed asynchronously – and may fail. LeapPollConnection() returns this event structure when the request has been processed. Use the requestID value to correlate the response to the originating request. @returns The operation result code, a member of the eLeapRS enumeration. @since 3.0.0

\ingroup Structs Contains the response to a configuration value request. Call LeapRequestConfigValue() to request a service config value. The value is fetched asynchronously since it requires a service transaction. LeapPollConnection() returns this event structure when the request has been processed. Use the requestID value to correlate the response to the originating request. @since 3.0.0

\ingroup Structs Specifies the configuration for a connection. @since 3.0.0

\ingroup Structs Received from LeapPollConnection() when a connection to the Ultraleap Tracking Service is established. @since 3.0.0

\ingroup Structs Information about a connection.

\ingroup Structs Received from LeapPollConnection() when a connection to the Ultraleap Tracking Service is lost.

\ingroup Structs Defines a basic message from the LeapC message queue. Set by calling LeapPollConnection(). @since 3.0.0

\ingroup Structs Device event information.

\ingroup Structs Device failure information. LeapPollConnection() produces a message containing this event when a device fails. Only partial information may be available. If hDevice is non-null, then you can use it to identify the failed device with a known, open device. @since 3.0.0

\ingroup Structs Properties of a Leap device. Get a LEAP_DEVICE_INFO by calling LeapGetDeviceInfo() with the handle for device. The device must be open. @since 3.0.0

\ingroup Structs A reference to a Leap device.

\ingroup Structs A notification that a device’s status has changed. One of these messages is received by the client as soon as the service is connected, or when a new device is attached. @since 3.1.3

\ingroup Structs Describes the digit of a hand. Digits are members of the LEAP_HAND struct. @since 3.0.0

\ingroup Structs A matrix containing lens distortion correction coordinates.

A point in the distortion grid. @since 3.0.0

\ingroup Structs Identifying information for a frame of tracking data. @since 3.0.0

\ingroup Structs Describes a tracked hand. @since 3.0.0

\ingroup Structs An image associated with a frame of data. @since 4.0.0

\ingroup Structs Streaming stereo image pairs from the device.

\ingroup Structs Describes the image to request. Pass this struct to the LeapImageRequest() function. @since 3.0.0

\ingroup Structs Properties of a sensor image. @since 3.0.0

\ingroup Structs A system log message. @since 3.0.0

\ingroup Structs Properties associated with the palm of the hand. The Palm is a member of the LEAP_HAND struct. @since 3.0.0

\ingroup Structs The response from a request to get or set a policy. LeapPollConnection() creates this struct when the response becomes available. @since 3.0.0

\ingroup Structs A four element, floating point quaternion. @since 3.1.2

\ingroup Structs Read/Write mode for opening a LEAP_RECORDING. since 3.2.0

\ingroup Structs Information about a current LEAP_RECORDING. Filled in by a call to LeapRecordingGetStatus(). @since 3.2.0

\ingroup Structs A snapshot, or frame of data, containing the tracking data for a single moment in time. The LEAP_FRAME struct is the container for all the tracking data. @since 3.0.0

\ingroup Structs The response from a request to get or set a policy. LeapPollConnection() creates this struct when the response becomes available. @since 3.0.0

\ingroup Structs A variant data type used to get and set service configuration values. @since 3.0.0

\ingroup Structs A three element, floating-point vector. @since 3.0.0

\ingroup Structs Version information.

Constants

Double-precision 64-bit floating-point @since 4.0.0

Single-precision 32-bit floating-point @since 4.0.0

Signed 8-bit integer (char) @since 4.0.0

Signed 16-bit integer @since 4.0.0

Signed 32-bit integer @since 4.0.0

Signed 64-bit integer @since 4.0.0

Unsigned 16-bit integer @since 4.0.0

Unsigned 32-bit integer @since 4.0.0

Unsigned 64-bit integer @since 4.0.0

Unsigned 8-bit integer (byte) @since 4.0.0

Infrared calibration (default). @since 4.1.0

The client is aware of how to handle multiple devices through the API. @since 4.1.0

The connection is open. @since 3.0.0

Opening the connection is underway, but not complete. @since 3.0.0

The connection is not open. Call LeapOpenConnection() to open a connection to the Ultraleap Tracking Service. @since 3.0.0

The connection could not be opened because the Ultraleap Tracking Service does not appear to be running. @since 3.0.0

The Ultraleap 3Di hand tracking camera. @since 5.3.0

Internal research product codename “Dragonfly”. @since 3.0.0

An invalid device type. Not currently in use. @since 3.1.3

Internal research product codename “Nightcrawler”. @since 3.0.0

The Leap Motion Controller (the first consumer peripheral). @since 3.0.0

Research product codename “Rigel”. @since 4.0.0

The Ultraleap Stereo IR 170 (SIR170) hand tracking module. @since 5.3.0

An unknown device that is compatible with the tracking software. @since 3.1.3

The device has a bad calibration record and cannot send frames. @since 3.0.0

The device USB control interfaces failed to initialize. @since 3.0.0

The device reports corrupt firmware or cannot install a required firmware update. @since 3.0.0

The device USB connection is faulty. @since 3.0.0

The device has entered low-resource mode. @since 4.0.0

Device streaming has been paused. @since 3.0.0

There are known sources of infrared interference. Device has transitioned to robust mode in order to compensate. @since 3.1.3

The device’s window is smudged, tracking may be degraded. @since 3.1.3

The device is sending out frames. @since 3.0.0

The device has failed, but the failure reason is not known. @since 3.0.0

The asynchronous response to a call to LeapSaveConfigValue(). Reports whether the change succeeded or failed. @since 3.0.0

The asynchronous response to a call to LeapRequestConfigValue(). Contains the value of requested configuration item. @since 3.0.0

A connection to the Ultraleap Tracking Service has been established. @since 3.0.0

The connection to the Ultraleap Tracking Service has been lost. @since 3.0.0

A device has been detected or plugged-in. A device event is dispatched after a connection is established for any devices already plugged in. (The system currently only supports one streaming device at a time.) @since 3.0.0

A device has failed. Device failure could be caused by hardware failure, USB controller issues, or other system instability. Note that unplugging a device generates an eLeapEventType_DeviceLost event message, not a failure message. @since 3.0.0

The device connection has been lost.

Notification that a status change has been detected on an attached device

Notification that a status change has been detected on an attached device

Tracked eye positions. @since 4.1.0

A head pose. The message contains the timestamped head position and orientation. @since 4.1.0

An IMU reading. @since 4.1.0

Notification that an unrequested stereo image pair is available

The request for an image is complete. The image data has been completely written to the application-provided buffer. @since 3.0.0

The request for an image has failed. The message contains information about the failure. The client application will not receive the requested image set. @since 3.0.0

A system message. @since 3.0.0

An array of system messages. @since 4.0.0

No event has occurred within the timeout period specified when calling LeapPollConnection(). @since 3.0.0

Notification that point mapping has changed

A policy change has occurred. This can be due to setting a policy with LeapSetPolicyFlags() or due to changing or policy-related config settings, including images_mode. (A user can also change these policies using the Ultraleap Tracking Control Panel.) @since 3.0.0

A tracking frame. The message contains the tracking data for the frame. @since 3.0.0

A tracking mode change has occurred. This can be due to changing the hmd or screentop policy with LeapSetPolicyFlags(). or setting the tracking mode using LeapSetTrackingMode(). @since 5.0.0

A left hand. @since 3.0.0

A right hand. @since 3.0.0

Has accelerometer measurements. @since 4.1.0

Has gyroscope measurements. @since 4.1.0

Has a temperature measurement. @since 4.1.0

An infrared image. @since 3.0.0

A Bayer RGBIr image with uncorrected RGB channels. @since 3.0.0

An invalid or unknown format. @since 3.0.0

Default, processed IR images. @since 3.0.0

Raw images from the device. @since 3.0.0

An invalid or unknown type. @since 3.0.0

A message about a fault that could render the software or device non-functional. @since 3.0.0

A system status message. @since 3.0.0

The message severity is not known or was not specified. @since 3.0.0

A message warning about a condition that could degrade device capabilities. @since 3.0.0

An unknown or invalid type. @since 3.0.0

Reserved for future use. @since 3.0.0

A canonically left image. @since 3.0.0

A canonically right image. @since 3.0.0

The policy allowing an application to pause or resume service tracking. @since 3.0.0

The policy allowing an application to receive frames in the background. @since 3.0.0

The policy specifying whether to automatically stream images from the device. @since 4.0.0

The policy allowing an application to receive per-frame map points. @since 4.0.0

The policy specifying whether to optimize tracking for head-mounted device. @since 3.0.0

The policy specifying whether to optimize tracking for screen-top device. @since 5.0.0

The specified buffer size is too large. @since 3.0.0

The specified device could not be opened. It is possible that the device identifier is invalid, or that the device has been disconnected since being enumerated. @since 3.0.0

LeapPollConnection is called concurrently. @since 3.1.2

The operation is invalid because the connection is not complete. @since 3.0.0

The specified buffer was not large enough to complete the request. @since 3.0.0

Insufficient resources existed to complete the request. @since 3.0.0

An invalid argument was specified. @since 3.0.0

The server incorrectly specified zero as a client ID. @since 3.0.0

A connection to the Ultraleap Tracking Service could not be established. @since 3.0.0

The operation is invalid because there is no current connection. @since 3.0.0

The requested operation can only be performed while the device is sending data. @since 3.0.0

A communications protocol error occurred. @since 3.0.0

The specified timestamp references a future point in time

The operation completed successfully.

The requested operation has timed out. @since 3.0.0

The specified timestamp references a point too far in the past

The connection to the service was unexpectedly closed while reading or writing a message. The server may have terminated. @since 3.0.0

An undetermined error has occurred. This is usually the result of an abnormal operating condition in LeapC, the Ultraleap Tracking Service, or the host computer itself. @since 3.0.0

The specified request token does not appear to be valid

The specified frame ID is not valid or is no longer valid

The request is not supported by this version of the service. @since 5.4.0

The combination of all valid flags in this enumeration

The service cannot receive frames fast enough from the underlying hardware. @since 3.1.3

The service has paused itself due to an insufficient frame rate from the hardware. @since 3.1.3

The service has failed to start tracking due to unknown reasons. @since 5.1.16

The tracking mode optimised for desktop devices @since 5.0.0

The tracking mode optimised for head-mounted devices @since 5.0.0

The tracking mode optimised for screen top-mounted devices @since 5.0.0

Tracking mode is not known (allows triggering of a new LEAP_TRACKING_MODE_EVENT) @since 5.0.0

A string value. @since 3.0.0

A boolean value. @since 3.0.0

A floating point value. @since 3.0.0

An integer value. @since 3.0.0

A string value. @since 3.0.0

The type is unknown (which is an abnormal condition). @since 3.0.0

The parameter for requesting the version of the client. @since 5.2.x

The parameter for requesting the protocol version of the client. @since 5.2.x

The parameter for requesting the version of the server. @since 5.2.x

The parameter for requesting the protocol version of the server. @since 5.2.x

The device can send color images. @since 3.0.0

Functions

\ingroup Functions Returns an OpenCV-compatible camera matrix. @param hConnection The connection handle created by LeapCreateConnection(). @param camera The camera to use, a member of the eLeapPerspectiveType enumeration @param[out] dest A pointer to a single-precision float array of size 9 @since 3.2.1

\ingroup Functions Returns an OpenCV-compatible camera matrix for a particular device. @param hConnection The connection handle created by LeapCreateConnection(). @param hDevice A device handle returned by LeapOpenDevice(). @param camera The camera to use, a member of the eLeapPerspectiveType enumeration @param[out] dest A pointer to a single-precision float array of size 9 @since 5.4.0

\ingroup Functions Closes a previously opened connection.

\ingroup Functions Closes a device handle previously opened with LeapOpenDevice.

\ingroup Functions Initializes a new Leap clock-rebaser handle object.

\ingroup Functions Creates a new LEAP_CONNECTION object.

\ingroup Functions Destroys a previously created clock-rebaser object.

\ingroup Functions Destroys a previously opened connection.

\ingroup Functions Provides the human-readable canonical name of the specified device model.

\ingroup Functions Returns an OpenCV-compatible lens distortion using the 8-parameter rational model.

\ingroup Functions Returns an OpenCV-compatible lens distortion for a particular device, using the 8-parameter rational model.

\ingroup Functions This finds the default device and returns the result LeapExtrinsicCameraMatrixEx()

\ingroup Functions Retrieves status information about the specified connection.

\ingroup Functions Gets device properties.

\ingroup Functions Retrieves a list of Ultraleap Tracking camera devices currently attached to the system.

\ingroup Functions Get the transform to world coordinates from 3D Leap coordinates.

\ingroup Functions Retrieves the number of bytes required to allocate an interpolated frame at the specified time.

\ingroup Functions Retrieves the number of bytes required to allocate an interpolated frame at the specified time for a particular device.

\ingroup Functions Samples the universal clock used by the system to timestamp image and tracking frames.

\ingroup Functions Requests the currently set tracking mode.

\ingroup Functions Requests the currently set tracking mode for a particular device.

\ingroup Functions

\ingroup Functions Constructs a frame at the specified timestamp by interpolating between measured frames.

\ingroup Functions Constructs a frame at the specified timestamp for a particular device by interpolating between measured frames.

\ingroup Functions Constructs a frame at the specified timestamp by interpolating between a frame near the timestamp and a frame near the sourceTimestamp.

\ingroup Functions Constructs a frame at the specified timestamp for a particular device by interpolating between a frame near the timestamp and a frame near the sourceTimestamp.

\ingroup Functions Opens a connection to the service.

\ingroup Functions Opens a device reference and retrieves a handle to the device.

\ingroup Functions Provides the corrected camera ray intercepting the specified point on the image.

\ingroup Functions Provides the corrected camera ray intercepting the specified point on the image for a particular device.

\ingroup Functions Polls the connection for a new event.

\ingroup Functions Computes the Ultraleap Tracking Service clock corresponding to a specified application clock value.

\ingroup Functions Closes a LEAP_RECORDING.

\ingroup Functions Fills in a LEAP_RECORDING_STATUS struct for an open recording. This struct provides the applicable eLeapRecordingFlags.

\ingroup Functions Opens or creates a LEAP_RECORDING.

\ingroup Functions Reads a tracking frame from a LEAP_RECORDING file.

\ingroup Functions Retrieves the number of bytes required to allocate the next frame in a recording.

\ingroup Functions Writes a tracking frame to a LEAP_RECORDING file.

\ingroup Functions Provides the point in the image corresponding to a ray projecting from the camera.

\ingroup Functions Provides the point in the image corresponding to a ray projecting from the camera for a particular device.

\ingroup Functions Requests the current value of a service configuration setting. The value is fetched asynchronously since it requires a service transaction. LeapPollConnection() returns this event structure when the request has been processed. Use the pRequestID value to correlate the response to the originating request.

\ingroup Functions Causes the client to commit a configuration change to the Ultraleap Tracking Service.

\ingroup Functions This finds the default device and returns the result of LeapScaleOffsetMatrixEx() @sa LeapScaleOffsetMatrixEx for additional information

\ingroup Functions

\ingroup Functions Sets the allocator functions to use for a particular connection.

\ingroup Functions Pauses the service

\ingroup Functions Sets or clears one or more policy flags.

\ingroup Functions Sets or clears one or more policy flags for a particular device.

\ingroup Functions For a multi-device aware client, sets the device to use in the context of non-“Ex” API functions which are logically device-specific but don’t provide a device parameter.

\ingroup Functions Requests a tracking mode.

\ingroup Functions Requests a tracking mode for a particular device.

\ingroup Functions Subscribe to event messages based on device.

\ingroup Functions Unsubscribe from event messages based on device.

\ingroup Functions Updates the relationship between the Ultraleap Tracking Service clock and the user clock.

Type Definitions

\ingroup Structs Describes a bone’s position and orientation.

\ingroup Structs Represents a calibration object. Not currently of any particular use. @since 3.0.0

\ingroup Structs \struct LEAP_CLOCK_REBASER An opaque clock rebase state structure. @since 3.1.2

\ingroup Structs The result of a configuration change request. Contains a status of true for a successful change. Call LeapSaveConfigValue() to request a service config change. The change is performed asynchronously – and may fail. LeapPollConnection() returns this event structure when the request has been processed. Use the requestID value to correlate the response to the originating request. @returns The operation result code, a member of the eLeapRS enumeration. @since 3.0.0

\ingroup Structs Contains the response to a configuration value request. Call LeapRequestConfigValue() to request a service config value. The value is fetched asynchronously since it requires a service transaction. LeapPollConnection() returns this event structure when the request has been processed. Use the requestID value to correlate the response to the originating request. @since 3.0.0

\ingroup Structs \struct LEAP_CONNECTION A handle to the Leap connection object. Use this handle to specify the connection for an operation. @since 3.0.0

\ingroup Structs Specifies the configuration for a connection. @since 3.0.0

\ingroup Structs Received from LeapPollConnection() when a connection to the Ultraleap Tracking Service is established. @since 3.0.0

\ingroup Structs Information about a connection.

\ingroup Structs Received from LeapPollConnection() when a connection to the Ultraleap Tracking Service is lost.

\ingroup Structs Defines a basic message from the LeapC message queue. Set by calling LeapPollConnection(). @since 3.0.0

\ingroup Structs \struct LEAP_DEVICE A handle to a Leap device object. Use this handle to specify the device for an operation. @since 3.0.0

\ingroup Structs Device event information.

\ingroup Structs Device failure information. LeapPollConnection() produces a message containing this event when a device fails. Only partial information may be available. If hDevice is non-null, then you can use it to identify the failed device with a known, open device. @since 3.0.0

\ingroup Structs Properties of a Leap device. Get a LEAP_DEVICE_INFO by calling LeapGetDeviceInfo() with the handle for device. The device must be open. @since 3.0.0

\ingroup Structs A reference to a Leap device.

\ingroup Structs A notification that a device’s status has changed. One of these messages is received by the client as soon as the service is connected, or when a new device is attached. @since 3.1.3

\ingroup Structs Describes the digit of a hand. Digits are members of the LEAP_HAND struct. @since 3.0.0

\ingroup Structs A matrix containing lens distortion correction coordinates.

\ingroup Structs Identifying information for a frame of tracking data. @since 3.0.0

\ingroup Structs Describes a tracked hand. @since 3.0.0

\ingroup Structs An image associated with a frame of data. @since 4.0.0

\ingroup Structs Streaming stereo image pairs from the device.

\ingroup Structs Describes the image to request. Pass this struct to the LeapImageRequest() function. @since 3.0.0

\ingroup Structs Properties of a sensor image. @since 3.0.0

\ingroup Structs A system log message. @since 3.0.0

\ingroup Structs Properties associated with the palm of the hand. The Palm is a member of the LEAP_HAND struct. @since 3.0.0

\ingroup Structs The response from a request to get or set a policy. LeapPollConnection() creates this struct when the response becomes available. @since 3.0.0

\ingroup Structs A four element, floating point quaternion. @since 3.1.2

\ingroup Structs A Leap recording. @since 3.2.0

\ingroup Structs Read/Write mode for opening a LEAP_RECORDING. since 3.2.0

\ingroup Structs Information about a current LEAP_RECORDING. Filled in by a call to LeapRecordingGetStatus(). @since 3.2.0

\ingroup Structs A snapshot, or frame of data, containing the tracking data for a single moment in time. The LEAP_FRAME struct is the container for all the tracking data. @since 3.0.0

\ingroup Structs The response from a request to get or set a policy. LeapPollConnection() creates this struct when the response becomes available. @since 3.0.0

\ingroup Structs A variant data type used to get and set service configuration values. @since 3.0.0

\ingroup Structs A three element, floating-point vector. @since 3.0.0

\ingroup Structs Version information.

\ingroup Enum Defines the various types of data that may be allocated using the allocator. @since 4.0.0

\ingroup Enum Camera calibration types. @since 3.0.0

\ingroup Enums The connection status codes. These codes can be read from the LEAP_CONNECTION_INFO struct created by a call to LeapGetConnectionInfo(). @since 3.0.0

\ingroup Enum Device hardware types. @since 3.0.0

\ingroup Enum Enumerates the device status codes. @since 3.0.0

\ingroup Enum The types of event messages resulting from calling LeapPollConnection(). @since 3.0.0

\ingroup Enum The Hand chirality types. Used in the LEAP_HAND struct. @since 3.0.0

\ingroup Enum Image formats. @since 3.0.0

\ingroup Enum Functional image types (not data formats).

\ingroup Enum System message severity types. @since 3.0.0

\ingroup Enum Camera perspective types. @since 3.0.0

\ingroup Enum Enumerates flags for the service policies.

\ingroup Enum Defines the codes returned by all LeapC functions. @since 3.0.0

\ingroup Enum Defines the recording mode provided to the LeapRecordingOpen() function. Also used in members of LEAP_RECORDING_PARAMETERS and LEAP_RECORDING_STATUS. @since 3.2.0

\ingroup Enum Enumerates values for the tracking mode.

\ingroup Enum Identifies the operative data type of a LEAP_VARIANT struct instance. @since 3.0.0

\ingroup Enum Defines the parameters used to access version information. @since 5.2.x

\ingroup Enum Flags enumerating Leap device capabilities. @since 3.0.0

Unions

A pointer to the event data for the current type of message. @since 3.0.0

The fingers of this hand. @since 3.0.0

You can access the vector members as either an array or individual float values.