private void CheckForGestures()

in Assets/MRTK/Providers/OpenXR/Scripts/OpenXRDeviceManager.cs [349:490]


        private void CheckForGestures()
        {
            if (gestureRecognizer != null)
            {
                while (gestureRecognizer.TryGetNextEvent(ref eventData))
                {
                    switch (eventData.EventType)
                    {
                        case GestureEventType.Tapped:
                            if (selectAction != MixedRealityInputAction.None)
                            {
                                GenericXRSDKController controller = FindMatchingController(eventData.Handedness);
                                if (controller != null)
                                {
                                    Service?.RaiseGestureCompleted(controller, selectAction);
                                }
                            }
                            break;
                        case GestureEventType.HoldStarted:
                            if (holdAction != MixedRealityInputAction.None)
                            {
                                GenericXRSDKController controller = FindMatchingController(eventData.Handedness);
                                if (controller != null)
                                {
                                    Service?.RaiseGestureStarted(controller, holdAction);
                                }
                            }
                            break;
                        case GestureEventType.HoldCompleted:
                            if (holdAction != MixedRealityInputAction.None)
                            {
                                GenericXRSDKController controller = FindMatchingController(eventData.Handedness);
                                if (controller != null)
                                {
                                    Service?.RaiseGestureCompleted(controller, holdAction);
                                }
                            }
                            break;
                        case GestureEventType.HoldCanceled:
                            if (holdAction != MixedRealityInputAction.None)
                            {
                                GenericXRSDKController controller = FindMatchingController(eventData.Handedness);
                                if (controller != null)
                                {
                                    Service?.RaiseGestureCanceled(controller, holdAction);
                                }
                            }
                            break;
                        case GestureEventType.ManipulationStarted:
                            if (manipulationAction != MixedRealityInputAction.None)
                            {
                                GenericXRSDKController controller = FindMatchingController(eventData.Handedness);
                                if (controller != null)
                                {
                                    Service?.RaiseGestureStarted(controller, manipulationAction);
                                }
                            }
                            break;
                        case GestureEventType.ManipulationUpdated:
                            if (manipulationAction != MixedRealityInputAction.None)
                            {
                                GenericXRSDKController controller = FindMatchingController(eventData.Handedness);
                                if (controller != null)
                                {
                                    Service?.RaiseGestureUpdated(controller, manipulationAction, eventData.ManipulationData.GetValueOrDefault().CumulativeTranslation);
                                }
                            }
                            break;
                        case GestureEventType.ManipulationCompleted:
                            if (manipulationAction != MixedRealityInputAction.None)
                            {
                                GenericXRSDKController controller = FindMatchingController(eventData.Handedness);
                                if (controller != null)
                                {
                                    Service?.RaiseGestureCompleted(controller, manipulationAction, eventData.ManipulationData.GetValueOrDefault().CumulativeTranslation);
                                }
                            }
                            break;
                        case GestureEventType.ManipulationCanceled:
                            if (manipulationAction != MixedRealityInputAction.None)
                            {
                                GenericXRSDKController controller = FindMatchingController(eventData.Handedness);
                                if (controller != null)
                                {
                                    Service?.RaiseGestureCanceled(controller, manipulationAction);
                                }
                            }
                            break;
                    }
                }
            }

            if (navigationGestureRecognizer != null)
            {
                while (navigationGestureRecognizer.TryGetNextEvent(ref eventData))
                {
                    switch (eventData.EventType)
                    {
                        case GestureEventType.NavigationStarted:
                            if (navigationAction != MixedRealityInputAction.None)
                            {
                                GenericXRSDKController controller = FindMatchingController(eventData.Handedness);
                                if (controller != null)
                                {
                                    Service?.RaiseGestureStarted(controller, navigationAction);
                                }
                            }
                            break;
                        case GestureEventType.NavigationUpdated:
                            if (navigationAction != MixedRealityInputAction.None)
                            {
                                GenericXRSDKController controller = FindMatchingController(eventData.Handedness);
                                if (controller != null)
                                {
                                    Service?.RaiseGestureUpdated(controller, navigationAction, eventData.NavigationData.GetValueOrDefault().NormalizedOffset);
                                }
                            }
                            break;
                        case GestureEventType.NavigationCompleted:
                            if (navigationAction != MixedRealityInputAction.None)
                            {
                                GenericXRSDKController controller = FindMatchingController(eventData.Handedness);
                                if (controller != null)
                                {
                                    Service?.RaiseGestureCompleted(controller, navigationAction, eventData.NavigationData.GetValueOrDefault().NormalizedOffset);
                                }
                            }
                            break;
                        case GestureEventType.NavigationCanceled:
                            if (navigationAction != MixedRealityInputAction.None)
                            {
                                GenericXRSDKController controller = FindMatchingController(eventData.Handedness);
                                if (controller != null)
                                {
                                    Service?.RaiseGestureCanceled(controller, navigationAction);
                                }
                            }
                            break;
                    }
                }
            }
        }