SpatialPointerPose SpatialPointerPose SpatialPointerPose SpatialPointerPose Class

Definition

Represents the available spatial pointer poses, such as the user's head gaze and each motion controller's pointer pose, for use in targeting hand gestures, motion controller presses, and voice interactions.

public : sealed class SpatialPointerPose : ISpatialPointerPose, ISpatialPointerPose2
public sealed class SpatialPointerPose : ISpatialPointerPose, ISpatialPointerPose2
Public NotInheritable Class SpatialPointerPose Implements ISpatialPointerPose, ISpatialPointerPose2
// This class does not provide a public constructor.
Attributes
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10586.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (introduced v2)

Remarks

The SpatialPointingPose provides the set of pointing rays available at the time represented by the Timestamp property.

When targeting a spatial interaction, such as a hand gesture, motion controller press or voice interaction, apps should choose a pointing ray available from the interaction's SpatialPointerPose, based on the nature of the interaction's SpatialInteractionSource:

  • If the interaction source does not support pointing (IsPointingSupported is false), the app should target based on the user's gaze, available through the Head property.
  • If the interaction source does support pointing (IsPointingSupported is true), the app may instead target based on the source's pointer pose, available through the TryGetInteractionSourcePose method.

The app should then intersect the chosen pointing ray with its own holograms or with the spatial mapping mesh to render cursors and determine what the user is intending to interact with.

Once an interaction has started, relative motions of the hand or controller may be used to control the gesture, as with the Manipulation or Navigation gesture.

Properties

Head Head Head Head

Gets the user's head gaze for this timestamp.

public : HeadPose Head { get; }
public HeadPose Head { get; }
Public ReadOnly Property Head As HeadPose
var headPose = spatialPointerPose.head;
Value
HeadPose HeadPose HeadPose HeadPose

The head gaze.

Timestamp Timestamp Timestamp Timestamp

Gets the timestamp at which the pointing rays have been determined.

public : PerceptionTimestamp Timestamp { get; }
public PerceptionTimestamp Timestamp { get; }
Public ReadOnly Property Timestamp As PerceptionTimestamp
var perceptionTimestamp = spatialPointerPose.timestamp;

Methods

TryGetAtTimestamp(SpatialCoordinateSystem, PerceptionTimestamp) TryGetAtTimestamp(SpatialCoordinateSystem, PerceptionTimestamp) TryGetAtTimestamp(SpatialCoordinateSystem, PerceptionTimestamp) TryGetAtTimestamp(SpatialCoordinateSystem, PerceptionTimestamp)

Gets the head gaze and motion controller pointer poses for the specified timestamp.

public : static SpatialPointerPose TryGetAtTimestamp(SpatialCoordinateSystem coordinateSystem, PerceptionTimestamp timestamp)
public static SpatialPointerPose TryGetAtTimestamp(SpatialCoordinateSystem coordinateSystem, PerceptionTimestamp timestamp)
Public Static Function TryGetAtTimestamp(coordinateSystem As SpatialCoordinateSystem, timestamp As PerceptionTimestamp) As SpatialPointerPose
var spatialPointerPose = Windows.UI.Input.Spatial.SpatialPointerPose.tryGetAtTimestamp(coordinateSystem, timestamp);
Parameters
coordinateSystem
SpatialCoordinateSystem SpatialCoordinateSystem SpatialCoordinateSystem SpatialCoordinateSystem

The coordinate system in which to express the pointer poses.

Returns

Remarks

This will either be a timestamp from the past (when correlating with input events) or a timestamp from the future (when rendering a cursor along the user's predicted gaze for a HolographicFramePrediction).

This method will return null if the specified coordinate system cannot be located at the moment.

TryGetInteractionSourcePose(SpatialInteractionSource) TryGetInteractionSourcePose(SpatialInteractionSource) TryGetInteractionSourcePose(SpatialInteractionSource) TryGetInteractionSourcePose(SpatialInteractionSource)

Gets the pointer pose for a particular spatial interaction source, such as a motion controller, at a given timestamp.

public : SpatialPointerInteractionSourcePose TryGetInteractionSourcePose(SpatialInteractionSource source)
public SpatialPointerInteractionSourcePose TryGetInteractionSourcePose(SpatialInteractionSource source)
Public Function TryGetInteractionSourcePose(source As SpatialInteractionSource) As SpatialPointerInteractionSourcePose
var spatialPointerInteractionSourcePose = spatialPointerPose.tryGetInteractionSourcePose(source);
Parameters
source
SpatialInteractionSource SpatialInteractionSource SpatialInteractionSource SpatialInteractionSource

The spatial interaction source for which a pointer pose should be determined.

Returns
Additional features and requirements
Device family
Windows 10 Creators Update (introduced v10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v4)

Remarks

The pointer pose represents the tip of a motion controller pointing forward. This pose is best used to raycast when pointing at UI when you are rendering the controller model itself.

To examine the grip pose of a motion controller, examine the Position and Orientation properties directly on a SpatialInteractionSourceLocation instance, available from SpatialInteractionSourceState.Properties.@Windows.UI.Input.Spatial.SpatialInteractionSourceProperties.TryGetLocation(Windows.Perception.Spatial.SpatialCoordinateSystem)?text=TryGetLocation.

This method will return null if the specified spatial interaction source does not support pointing (IsPointingSupported is false) or if the source did not have positional tracking at that moment.