Unigine::LeapMotion::Hand Struct
Header: | #include <LeapMotionInterface.h> |
LeapMotion plugin must be loaded.
Hands are the main entity tracked by the Leap Motion controller. The controller maintains an inner model of the human hand and validates the data from its sensors against this model. This allows the controller to track finger positions even when a finger is not completely visible.
It is possible for movement or changes in position to be lost when a finger is behind or directly in front of the hand (from the point of view of the controller).
This structure represents a physical hand detected by the Leap and provides access to its attributes describing the hand position, orientation, and movement.
The structure has the following set of properties:
ID | ID of the hand. |
type | Hand type: 0 - for the left, 0 - for the right one. |
witdh | Width of the palm when the hand is in a flat position, in meters. |
is_valid | Indicates whether the hand contains valid tracking data (1). |
palm_position | Coordinates of the position of the palm. |
stabilized_palm_position | Coordinates of the modified palm position with some additional smoothing and stabilization applied. |
wrist_position | Coordinates of the position of the wrist. |
palm_velocity | Instantaneous velocity of the finger tip, in m/s. |
palm_normal | Coordinates of the normal vector to the palm. If a hand is flat, this vector will point downward, or “out” of the front surface of your palm. |
direction | Normalized direction from the palm position toward the fingers. |
basis |
The orientation of the hand as a basis matrix. The basis is defined as follows:
Since the left hand is a mirror of the right hand, the basis matrix will be left-handed for left hands. You can change from right-hand to left-hand rule by multiplying the z basis vector by -1. |
arm | Arm of the hand. |
fingers | List of all fingers of the hand. |
All coordinates are relative to the origin of the Leap Motion coordinate system.
struct Hand
{
int id;
int type;
int is_valid;
float palm_width;
Unigine::Math::vec3 palm_position;
Unigine::Math::vec3 palm_stabilized_position;
Unigine::Math::vec3 wrist_position;
Unigine::Math::vec3 palm_velocity;
Unigine::Math::vec3 palm_normal;
Unigine::Math::vec3 direction;
Unigine::Math::mat4 basis;
Arm arm;
Unigine::Map<int, Finger> fingers;
};
Last update:
2019-08-16
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)