Skip to main content
Version: 0.9.0 (next)

AppVolumeGestureEvent struct

One mapped gesture on an app volume, copied out of the native callback.

Namespace: Quaternar.Qaros · Assembly: Quaternar.Qaros.dll

public readonly struct AppVolumeGestureEvent

Constructors​

AppVolumeGestureEvent(PeerId, AppVolumeId, GestureKind, GesturePhase, TimePoint, bool, Vector3, bool, Vector3, Vector3, Quaternion, bool, Handedness, ulong, uint)​

public AppVolumeGestureEvent(PeerId sourcePeerId, AppVolumeId targetAppVolumeId, GestureKind gestureKind, GesturePhase state, TimePoint timestamp, bool hasStartPoint, Vector3 startPoint, bool hasActionPoint, Vector3 actionPoint, Vector3 translationDelta, Quaternion rotationDelta, bool wasMappedToAppTransform, Handedness handedness, ulong gestureId, uint modeId)

Parameters

NameTypeDescription
sourcePeerIdPeerId
targetAppVolumeIdAppVolumeId
gestureKindGestureKind
stateGesturePhase
timestampTimePoint
hasStartPointbool
startPointVector3
hasActionPointbool
actionPointVector3
translationDeltaVector3
rotationDeltaQuaternion
wasMappedToAppTransformbool
handednessHandedness
gestureIdulong
modeIduint

Properties​

MemberDescription
SourcePeerIdThe peer whose hand or controller produced the gesture, not the peer that recognised it.
TargetAppVolumeId
GestureKind
StateWhere in its lifecycle the gesture sits.
TimestampWhen the recogniser emitted it, as UTC wall-clock time on its host; comparable only within one source peer.
HasStartPoint
StartPointWhere the hand was when the gesture began, in app content space, in app units. Zero when AppVolumeGestureEvent.HasStartPoint is false.
HasActionPoint
ActionPointThe intersection the gesture acts on (or the start point), in app content space, in app units. Zero when AppVolumeGestureEvent.HasActionPoint is false.
TranslationDeltaAccumulated translation since the gesture started, in the target volume's app volume space (not app content space), shaped by the mapping rule.
RotationDeltaAccumulated rotation since the gesture started, in the target volume's app volume space.
WasMappedToAppTransformTrue when the library already folded the delta into the volume's app pose or app scale; applying it again moves the content twice.
HandednessThe hand that made the gesture; Handedness.Unspecified for two-hand gestures, which have no single hand.
GestureIdLifecycle id, unique within the source peer; 0 for an instant gesture.
ModeIdThe gesture mode whose rule mapped the gesture, fixed for the gesture's whole lifecycle.

SourcePeerId​

The peer whose hand or controller produced the gesture, not the peer that recognised it.

public PeerId SourcePeerId { get; }

Value: PeerId

TargetAppVolumeId​

public AppVolumeId TargetAppVolumeId { get; }

Value: AppVolumeId

GestureKind​

public GestureKind GestureKind { get; }

Value: GestureKind

State​

Where in its lifecycle the gesture sits.

public GesturePhase State { get; }

Value: GesturePhase

Timestamp​

When the recogniser emitted it, as UTC wall-clock time on its host; comparable only within one source peer.

public TimePoint Timestamp { get; }

Value: TimePoint

HasStartPoint​

public bool HasStartPoint { get; }

Value: bool

StartPoint​

Where the hand was when the gesture began, in app content space, in app units. Zero when AppVolumeGestureEvent.HasStartPoint is false.

public Vector3 StartPoint { get; }

Value: Vector3

HasActionPoint​

public bool HasActionPoint { get; }

Value: bool

ActionPoint​

The intersection the gesture acts on (or the start point), in app content space, in app units. Zero when AppVolumeGestureEvent.HasActionPoint is false.

public Vector3 ActionPoint { get; }

Value: Vector3

TranslationDelta​

Accumulated translation since the gesture started, in the target volume's app volume space (not app content space), shaped by the mapping rule.

public Vector3 TranslationDelta { get; }

Value: Vector3

RotationDelta​

Accumulated rotation since the gesture started, in the target volume's app volume space.

public Quaternion RotationDelta { get; }

Value: Quaternion

WasMappedToAppTransform​

True when the library already folded the delta into the volume's app pose or app scale; applying it again moves the content twice.

public bool WasMappedToAppTransform { get; }

Value: bool

Handedness​

The hand that made the gesture; Handedness.Unspecified for two-hand gestures, which have no single hand.

public Handedness Handedness { get; }

Value: Handedness

GestureId​

Lifecycle id, unique within the source peer; 0 for an instant gesture.

public ulong GestureId { get; }

Value: ulong

ModeId​

The gesture mode whose rule mapped the gesture, fixed for the gesture's whole lifecycle.

public uint ModeId { get; }

Value: uint