HandPose Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Represents the pose of a user's hand at a given moment. The HandPose contains a detailed description of the state of the hand's palm and fingers.
[System.Windows.Markup.ContentProperty("PoseConstraints")]
public class HandPose : Microsoft.Gestures.GestureSegment
- Inheritance
- Derived
- Attributes
Remarks
A HandPose describes a momentary snapshot of the user's hand, including details regarding the state of the palm and the fingers. Unlike a Gesture, whose detection requires the user to execute a certain sequence of HandPoses and HandMotions over a period of time, detecting a HandPose requires the user to obtain the appropriate hand posture for a brief moment.
A HandPose describes the state of all hand parts from the wrist up. The states of the different hand parts are represented by classes deriving from PoseConstraint as detailed below.
- The palm state (represented by instances of PalmPose):
- The palm direction - the direction (see PoseDirection for directions enumeration) perpendicular to the palm plane.
- The palm orientation - the direction (see PoseDirection for directions enumeration) of the middle finger, had it been stretched out.
- The state of the fingers (represented by instances of FingerPose):
- The finger flexion - describes to what degrees is the finger folded or stretched (see FingerFlexion for flexion states enumeration).
- The finger direction - the direction (see PoseDirection for directions enumeration) at which the finger is pointing.
- The relations between fingers (represented by FingertipDistanceRelation and FingertipPlacementRelation):
- Distance between fingers - the degree to which fingers are touching or not touching (see RelativeDistance for relative-distance states enumeration).
- Relative placement of fingers - how fingers are positioned relatively to each other (see RelativePlacement for relative-placement states enumeration).
Note that it is mandatory for a given HandPose to contain at least one type of PoseConstraint. A meaningful HandPose instance will usually contain a single PalmPose constraint and at least a single PoseConstraint concerning the fingers.
A HandPose instance is mutable until the Gesture object containing it is registered with the gestures runtime, at which point the HandPose becomes frozen and cannot be modified any longer.
Note that currently only right hand PalmPose constraints are detected in run-time. Use either AnyHandContext or SingleHandContext created with a RightHand when specifying the PalmPose.
Constructors
HandPose() |
Creates a blank HandPose instance. In order to obtain a meaningful HandPose, PoseConstraint objects would have to be added manually to the PoseConstraints list. |
HandPose(String, PoseConstraint[]) |
Creates a HandPose instance whose name is |
Properties
ContainingGesture | (Inherited from GestureSegment) |
FingerPoses |
A collection of FingerPoses describing the state of the fingers, namely - their flexion and direction. |
FingertipDistanceRelations |
A collection of FingertipDistanceRelations describing the relative distance between pairs of fingers, namely - are they touching or not. |
FingertipPlacementRelations |
A collection of FingertipPlacementRelations describing the relative placement between pairs of fingers, namely - is one finger below\behind\etc. the other finger. |
IsFrozen | (Inherited from GesturesFrameworkObject) |
Name | (Inherited from GestureSegment) |
NestingPath | (Inherited from GestureSegment) |
NextSegments | (Inherited from GestureSegment) |
PalmPose |
A collection of PalmPoses describing the palm pose, namely - its direction and orientation. |
PoseConstraints |
A list of all the PoseConstraint objects which are associated with this HandPose instance. Concrete types of PoseConstraint: , , , . |
Methods
CalculateHashCode() | (Inherited from GestureSegment) |
Clone(String) | (Inherited from GestureSegment) |
DeepFreeze() | |
Equals(Object) | (Inherited from GesturesFrameworkObject) |
EqualsInternal(Object) | (Inherited from GestureSegment) |
Equivalent(GestureSegment) |
Executes a deep comparison of this HandPose instance with |
Equivalent(HandPose) |
Executes a deep comparison of this HandPose instance with |
Freeze() | (Inherited from GesturesFrameworkObject) |
GetHashCode() | (Inherited from GesturesFrameworkObject) |
InitializeCore() | (Inherited from Xamlizable) |
ToString() | (Inherited from GestureSegment) |
ToXaml() | (Inherited from Xamlizable) |
TriggerEvent() | (Inherited from GestureSegment) |
TriggerEventAsync(Int32) | (Inherited from GestureSegment) |
ValidateCore() | |
VerifyNotFrozen(String) | (Inherited from GesturesFrameworkObject) |
Events
Triggered | (Inherited from GestureSegment) |
Explicit Interface Implementations
ISupportInitialize.BeginInit() | (Inherited from Xamlizable) |
ISupportInitialize.EndInit() | (Inherited from Xamlizable) |
IUriContext.BaseUri | (Inherited from Xamlizable) |
IValidatable.Validate() | (Inherited from GesturesFrameworkObject) |