HandPose Class

Definition

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 name and adds all the constraints to its PoseConstraints list.

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 other.

Equivalent(HandPose)

Executes a deep comparison of this HandPose instance with other.

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)

Applies to