Unigine.Plugins.LeapMotion.Bone Struct
LeapMotion plugin must be loaded.
This structure represents a bone of a finger. All coordinates are relative to the origin of the Leap Motion coordinate system.
The Bone structure is declared as follows:
public struct Bone
{
public int type;
public float length;
public float width;
public int is_valid;
public vec3 prev_joint;
public vec3 next_joint;
public vec3 center;
public vec3 direction;
public mat4 basis;
};
LeapMotionBone Class
Enums
TYPE#
Name | Description |
---|---|
METACARPAL = 0 | Metacarpal bone. A bone connected to the wrist inside the palm. |
PROXIMAL = 1 | Proximal bone. A bone connecting to the palm. |
INTERMEDIATE = 2 | Intermediate bone. A bone between the tip and the base. |
DISTAL = 3 | Distal bone. A bone at the tip of the finger. |
NUM_TYPES = | Total number of bone types. |
Properties
int type#
Returns the type of the bone, one of the TYPE values.
float length#
Returns the length of the bone.
float width#
Returns the width of the bone, in meters.
vec3 prev_joint#
Returns the coordinates of the end of the bone, closest to the wrist (proximal).
All coordinates are relative to the origin of the Leap Motion coordinate system.
vec3 next_joint#
Returns the coordinates of the end of the bone, closest to the finger tip (distal).
All coordinates are relative to the origin of the Leap Motion coordinate system.
vec3 center#
Returns the coordinates of the center of the bone.
All coordinates are relative to the origin of the Leap Motion coordinate system.
vec3 direction#
Returns the normalized direction of the bone from wrist to tip.
All coordinates are relative to the origin of the Leap Motion coordinate system.
mat4 basis#
Returns the orthonormal basis vectors for this Bone as a Matrix.
Basis vectors specify the orientation of a bone:
- X - Perpendicular to the longitudinal axis of the bone; exits the sides of the finger.
- Y (or up vector) - Perpendicular to the longitudinal axis of the bone; exits the top and bottom of the finger. Increases in the upward direction.
- Z - Aligned with the longitudinal axis of the bone. Increases toward the base of the finger.
The bases provided for the right hand use the right-hand rule; those for the left hand use the left-hand rule. Thus, the positive direction of the x-basis is to the right for the right hand and to the left for the left hand. You can change from right-hand to left-hand rule by multiplying the z basis vector by -1.
You can use the basis vectors for such purposes as measuring complex finger poses and skeletal animation.
Converting the basis vectors directly into a quaternion representation is not mathematically valid. If you use quaternions, create them from the derived rotation matrix not directly from the bases.
int is_valid#
Returns 1 if the bone contains valid tracking data; otherwise, 0.
Members
Last update:
2020-04-10
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)