CurrentDataVersion
: int
[Get] |
Indicator which is incremented every time new tracked hand data becomes available.
Signature
int Oculus.Interaction.Input.IHand.CurrentDataVersion |
Handedness
: Handedness
[Get] |
Indicates whether the tracked hand is Handedness.Left- or Handedness.Right-handed.
Signature
Handedness Oculus.Interaction.Input.IHand.Handedness |
IsConnected
: bool
[Get] |
Indicates whether hand tracking is available and has valid data.
Note that, because this reflects both the general availability and present validity of hand tracking data, this value can vary from frame to frame depending on whether the system is currently able to track the hand. This is a valid API to check in order to determine whether up-to-date hand tracking is available at a given moment.
Signature
bool Oculus.Interaction.Input.IHand.IsConnected |
IsDominantHand
: bool
[Get] |
Indicates whether the current hand is the dominant hand.
The availability of this feature depends on whether or not the platform provides a way to determine whether the user is left- or right-handed.
Signature
bool Oculus.Interaction.Input.IHand.IsDominantHand |
IsHighConfidence
: bool
[Get] |
Indicates whether the system has high confidence in the validity of its most recent hand tracking data.
In order for this value to be true, IsConnected and IsTrackedDataValid must also be true.
Signature
bool Oculus.Interaction.Input.IHand.IsHighConfidence |
IsPointerPoseValid
: bool
[Get] |
Checks whether a valid "pointer pose" is currently available.
See GetPointerPose(out Pose) for details on what a pointer pose is.
Signature
bool Oculus.Interaction.Input.IHand.IsPointerPoseValid |
IsTrackedDataValid
: bool
[Get] |
Indicates whether the hand is currently tracked such that tracking poses are available for the hand root and finger joints.
Note that this property being true does not necessarily mean that a valid pointer pose is available; IsPointerPoseValid may be false while valid tracking data is available.
Signature
bool Oculus.Interaction.Input.IHand.IsTrackedDataValid |
Scale
: float
[Get] |
Indicates the detected scale of the tracked hand relative to the default tracked hand size.
Signature
float Oculus.Interaction.Input.IHand.Scale |
WhenHandUpdated
: Action |
Event indicating that CurrentDataVersion has been incremented and thus the hand can be queried for potentially new data.
Signature
Action Oculus.Interaction.Input.IHand.WhenHandUpdated |
GetFingerIsHighConfidence
(
finger
)
|
Queries whether the tracking data for a particular finger is high- or low-confidence.
Signature
bool Oculus.Interaction.Input.IHand.GetFingerIsHighConfidence(HandFinger finger) Parameters finger: HandFinger
The finger to be checked for high-confidence tracking data
Returns bool
True if the system is confident in its tracking data for the requested finger, false otherwise
|
GetFingerIsPinching
(
finger
)
|
Checks whether a particular finger is considered to be pinching.
How a given finger is determined to be pinching is an implementation detail which can vary by finger/platform and is not part of the contract of this method, which merely provides a unified way to query for the semantic concept of a "pinch".
Signature
bool Oculus.Interaction.Input.IHand.GetFingerIsPinching(HandFinger finger) Parameters finger: HandFinger
The finger to check for pinching behavior
Returns bool
Whether or not the requested finger is considered to be pinching
|
GetFingerPinchStrength
(
finger
)
|
Queries the strength with which a particular finger is considered to be pinching.
"Strength" in this case is an indication of how similar or different the finger's pose is to what could be considered a pinch; a finger with its tip far from the thumb will likely have a pinch strength at or near 0, while a finger with its tip touching the thumb will likely have a pinch strength at or near 1.
Signature
float Oculus.Interaction.Input.IHand.GetFingerPinchStrength(HandFinger finger) Parameters finger: HandFinger
The finger to be checked for pinch strength
Returns float
A number from 0 to 1 indicating how far or close, respectively, the finger is from pinching
|
GetIndexFingerIsPinching
()
|
A convenience method to check for the most commonly-desired pinching behavior.
Calling this method is equivalent to calling GetFingerIsPinching(HandFinger) with the argument HandFinger.Index.
Signature
bool Oculus.Interaction.Input.IHand.GetIndexFingerIsPinching() Returns bool
Whether or not the index finger is considered to be pinching
|
GetJointPose
(
handJointId
, pose
)
|
Attempts to return the world-space pose of the requested hand joint.
Signature
bool Oculus.Interaction.Input.IHand.GetJointPose(HandJointId handJointId, out Pose pose) Parameters handJointId: HandJointId
The joint for which the pose is being requested
pose: out Pose
A valid world-space joint pose if one is available, identity otherwise
Returns bool
True if the pose argument was populated with a valid joint pose, false otherwise
|
GetJointPoseFromWrist
(
handJointId
, pose
)
|
Attempts to return the pose of the requested hand joint in wrist space.
Wrist space is strongly defined as a transform space located and oriented according to HandJointId.HandWristRoot. This space is of uniform scale across hand sizes, meaning all tracked hands are the same size in wrist space, and wrist space itself must be multipled by Scale in order to correctly reflect the observed size of the tracked hands in world space.
Signature
bool Oculus.Interaction.Input.IHand.GetJointPoseFromWrist(HandJointId handJointId, out Pose pose) Parameters handJointId: HandJointId
The joint for which the pose is being requested
pose: out Pose
A valid wrist space joint pose if available, false otherwise
Returns bool
True if the pose argument was populated with a valid joint pose, false otherwise
|
GetJointPoseLocal
(
handJointId
, pose
)
|
Attempts to return the pose of the requested hand joint in "local" space.
This "local" space is loosely defined and can vary by platform (in some implementations, each joint is relative to a given parent joint), so the exact nature of what is returned by this method is not guaranteed. In general, it is recommended to use GetJointPose(HandJointId, out Pose) or GetJointPoseFromWrist(HandJointId, out Pose) instead where possible.
Signature
bool Oculus.Interaction.Input.IHand.GetJointPoseLocal(HandJointId handJointId, out Pose pose) Parameters handJointId: HandJointId
The joint for which the pose is being requested
pose: out Pose
A valid "local" space joint pose if one is available, identity otherwise
Returns bool
True if the pose argument was populated with a valid joint pose, false otherwise
|
GetJointPosesFromWrist
(
jointPosesFromWrist
)
|
Retrieves all wrist space joint poses for this hand.
The values returned by this method are the same as those returned by calling GetJointPoseFromWrist(HandJointId, out Pose) repeatedly, but as a batched query this method can be more efficient if many joint poses are needed.
Signature
bool Oculus.Interaction.Input.IHand.GetJointPosesFromWrist(out ReadOnlyHandJointPoses jointPosesFromWrist) Parameters jointPosesFromWrist: out ReadOnlyHandJointPoses
The array of all wrist space joint poses if available, or an empty array otherwise
Returns bool
True if the poses collection was correctly populated, false otherwise
|
GetJointPosesLocal
(
localJointPoses
)
|
Retrieves all "local" space joint poses for this hand.
The values returned by this method are the same as those returned by calling GetJointPoseLocal(HandJointId, out Pose) repeatedly, but as a batched query this method can be more efficient if many joint poses are needed.
Signature
bool Oculus.Interaction.Input.IHand.GetJointPosesLocal(out ReadOnlyHandJointPoses localJointPoses) Parameters localJointPoses: out ReadOnlyHandJointPoses
The array of all "local" joint poses if available, or an empty array otherwise
Returns bool
True if the poses collection was correctly populated, false otherwise
|
GetPalmPoseLocal
(
pose
)
|
Attempts to return the pose of the palm in "local" space.
This "local" space is loosely defined and can vary by platform; in some implementations, it can be considered for this method in particular to be synonymous with wrist space.
Signature
bool Oculus.Interaction.Input.IHand.GetPalmPoseLocal(out Pose pose) Parameters pose: out Pose
The "local" palm position and orientation if available, identity otherwise
Returns bool
True if the pose argument was populated with a valid palm pose, false otherwise
|
GetPointerPose
(
pose
)
|
Attempts to return a valid "pointer pose" for the hand.
A "pointer pose" is a world-space pose (position and orientation) intended to be used as a directional input, conceptually comparable to "pointing at something." However, the nature of this pose and its relationship to the hand are not part of the contract of this method; it may or may not correspond to a "direction of pointing," and in many implementations it corresponds more closely to a "direction of reaching out." These details can vary, but in all cases this method provides a unified way to query for the semantic concept of a "pointer."
Signature
bool Oculus.Interaction.Input.IHand.GetPointerPose(out Pose pose) Parameters pose: out Pose
A valid world-space pointer pose if one could be calculated, identity otherwise
Returns bool
True if the pose argument was populated with a valid pointer pose, false otherwise
|
GetRootPose
(
pose
)
|
Attempts to retrieve the pose of the wrist joint in world space.
This is a convenience method and is identical to calling GetJointPose(HandJointId, out Pose) with the argument HandJointId.HandWristRoot.
Signature
bool Oculus.Interaction.Input.IHand.GetRootPose(out Pose pose) Parameters pose: out Pose
A void world space pose for the wrist joint if available, identity otherwise
Returns bool
True if the pose argument was populated with a valid joint pose, false otherwise
|