Exemplo n.º 1
0
        // Token: 0x060012FA RID: 4858 RVA: 0x0006ABF4 File Offset: 0x00068DF4
        public override bool GetControllerButtonState(SDK_BaseController.ButtonTypes buttonType, SDK_BaseController.ButtonPressTypes pressType, VRTK_ControllerReference controllerReference)
        {
            uint realIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);

            switch (buttonType)
            {
            case SDK_BaseController.ButtonTypes.ButtonOne:
                return(this.GetControllerButtonState(realIndex, "ButtonOne", pressType));

            case SDK_BaseController.ButtonTypes.ButtonTwo:
                return(this.GetControllerButtonState(realIndex, "ButtonTwo", pressType));

            case SDK_BaseController.ButtonTypes.Grip:
            case SDK_BaseController.ButtonTypes.GripHairline:
                return(this.GetControllerButtonState(realIndex, "Grip", pressType));

            case SDK_BaseController.ButtonTypes.StartMenu:
                return(this.GetControllerButtonState(realIndex, "StartMenu", pressType));

            case SDK_BaseController.ButtonTypes.Trigger:
            case SDK_BaseController.ButtonTypes.TriggerHairline:
                return(this.GetControllerButtonState(realIndex, "Trigger", pressType));

            case SDK_BaseController.ButtonTypes.Touchpad:
                return(this.GetControllerButtonState(realIndex, "TouchpadPress", pressType));

            default:
                return(false);
            }
        }
Exemplo n.º 2
0
        protected virtual void DetectController()
        {
            controllerType = VRTK_DeviceFinder.GetCurrentControllerType(controllerReference);
            if (controllerType != SDK_BaseController.ControllerType.Undefined)
            {
                if (setFingersForControllerType)
                {
                    switch (controllerType)
                    {
                    case SDK_BaseController.ControllerType.SteamVR_ViveWand:
                    case SDK_BaseController.ControllerType.SteamVR_WindowsMRController:
                    case SDK_BaseController.ControllerType.WindowsMR_MotionController:
                        thumbState       = VRTK_ControllerEvents.AxisType.Digital;
                        indexState       = VRTK_ControllerEvents.AxisType.Axis;
                        middleState      = VRTK_ControllerEvents.AxisType.Digital;
                        ringState        = VRTK_ControllerEvents.AxisType.Digital;
                        pinkyState       = VRTK_ControllerEvents.AxisType.Digital;
                        threeFingerState = VRTK_ControllerEvents.AxisType.Digital;
                        break;

                    case SDK_BaseController.ControllerType.Oculus_OculusTouch:
                    case SDK_BaseController.ControllerType.SteamVR_OculusTouch:
                        thumbState       = VRTK_ControllerEvents.AxisType.Digital;
                        indexState       = VRTK_ControllerEvents.AxisType.Axis;
                        middleState      = VRTK_ControllerEvents.AxisType.Digital;
                        ringState        = VRTK_ControllerEvents.AxisType.Digital;
                        pinkyState       = VRTK_ControllerEvents.AxisType.Digital;
                        threeFingerState = VRTK_ControllerEvents.AxisType.Axis;
                        break;

                    case SDK_BaseController.ControllerType.SteamVR_ValveKnuckles:
                        thumbState            = VRTK_ControllerEvents.AxisType.Digital;
                        indexState            = VRTK_ControllerEvents.AxisType.SenseAxis;
                        middleState           = VRTK_ControllerEvents.AxisType.SenseAxis;
                        ringState             = VRTK_ControllerEvents.AxisType.SenseAxis;
                        pinkyState            = VRTK_ControllerEvents.AxisType.SenseAxis;
                        threeFingerState      = VRTK_ControllerEvents.AxisType.SenseAxis;
                        threeFingerAxisButton = SDK_BaseController.ButtonTypes.StartMenu;
                        break;

                    default:
                        thumbState       = VRTK_ControllerEvents.AxisType.Digital;
                        indexState       = VRTK_ControllerEvents.AxisType.Digital;
                        middleState      = VRTK_ControllerEvents.AxisType.Digital;
                        ringState        = VRTK_ControllerEvents.AxisType.Digital;
                        pinkyState       = VRTK_ControllerEvents.AxisType.Digital;
                        threeFingerState = VRTK_ControllerEvents.AxisType.Digital;
                        break;
                    }
                }
                UnsubscribeEvents();
                SubscribeEvents();
                if (mirrorModel)
                {
                    mirrorModel = false;
                    MirrorHand();
                }
            }
        }
        //>

        #endregion Properties

        #region Input Methods

        /// <summary>
        /// Get Axis Delta
        /// </summary>
        /// <param name="buttonType"></param>
        /// <returns></returns>
        public float GetAxisDelta(SDK_BaseController.ButtonTypes buttonType)
        {
            switch (buttonType)
            {
            case SDK_BaseController.ButtonTypes.Trigger:
            case SDK_BaseController.ButtonTypes.TriggerHairline:
                return(Trigger[HandType].delta);
            }

            return(0f);
        }
        //-->

        /// <summary>
        /// Get Button Sense Axis
        /// </summary>
        /// <param name="buttonType"></param>
        /// <returns></returns>
        public float GetButtonSenseAxis(SDK_BaseController.ButtonTypes buttonType)
        {
            switch (buttonType)
            {
            case SDK_BaseController.ButtonTypes.Grip:
                return(Grip[HandType].axis);

            case SDK_BaseController.ButtonTypes.Trigger:
                return(Trigger[HandType].axis);
            }

            return(0f);
        }
        //-->

        /// <summary>
        /// Get Touch Pad Axis
        /// </summary>
        /// <param name="buttonType"></param>
        /// <returns></returns>
        public Vector2 GetTouchPadAxis(SDK_BaseController.ButtonTypes buttonType)
        {
            switch (buttonType)
            {
            case SDK_BaseController.ButtonTypes.Touchpad:
                return(TouchpadPosition != null ? TouchpadPosition[HandType].axis : Vector2.zero);

            case SDK_BaseController.ButtonTypes.TouchpadTwo:
                return(TouchpadTwoPosition != null ? TouchpadTwoPosition[HandType].axis : Vector2.zero);

            default:
                return(Vector2.zero);
            }
        }
Exemplo n.º 6
0
        // Token: 0x06001338 RID: 4920 RVA: 0x0006B8CC File Offset: 0x00069ACC
        public override float GetButtonHairlineDelta(SDK_BaseController.ButtonTypes buttonType, VRTK_ControllerReference controllerReference)
        {
            uint realIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);

            if (realIndex >= 4294967295U)
            {
                return(0f);
            }
            SteamVR_Controller.Device device = SteamVR_Controller.Input((int)realIndex);
            if (buttonType != SDK_BaseController.ButtonTypes.Trigger && buttonType != SDK_BaseController.ButtonTypes.TriggerHairline)
            {
                return(0f);
            }
            return(device.hairTriggerDelta);
        }
        //-->

        /// <summary>
        /// Get Finger Curl
        /// </summary>
        /// <param name="buttonType"></param>
        /// <returns></returns>
        public float GetFingerCurl(SDK_BaseController.ButtonTypes buttonType)
        {
            switch (buttonType)
            {
            case SDK_BaseController.ButtonTypes.MiddleFinger:
                return(Skeleton.middleCurl);

            case SDK_BaseController.ButtonTypes.RingFinger:
                return(Skeleton.ringCurl);

            case SDK_BaseController.ButtonTypes.PinkyFinger:
                return(Skeleton.pinkyCurl);
            }

            return(0f);
        }
Exemplo n.º 8
0
        // Token: 0x06001339 RID: 4921 RVA: 0x0006B908 File Offset: 0x00069B08
        public override bool GetControllerButtonState(SDK_BaseController.ButtonTypes buttonType, SDK_BaseController.ButtonPressTypes pressType, VRTK_ControllerReference controllerReference)
        {
            uint realIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);

            if (realIndex >= 4294967295U)
            {
                return(false);
            }
            switch (buttonType)
            {
            case SDK_BaseController.ButtonTypes.ButtonOne:
                return(this.IsButtonPressed(realIndex, pressType, 128UL));

            case SDK_BaseController.ButtonTypes.ButtonTwo:
                return(this.IsButtonPressed(realIndex, pressType, 2UL));

            case SDK_BaseController.ButtonTypes.Grip:
                return(this.IsButtonPressed(realIndex, pressType, 4UL));

            case SDK_BaseController.ButtonTypes.StartMenu:
                return(this.IsButtonPressed(realIndex, pressType, 1UL));

            case SDK_BaseController.ButtonTypes.Trigger:
                return(this.IsButtonPressed(realIndex, pressType, 8589934592UL));

            case SDK_BaseController.ButtonTypes.TriggerHairline:
                if (pressType == SDK_BaseController.ButtonPressTypes.PressDown)
                {
                    return(SteamVR_Controller.Input((int)realIndex).GetHairTriggerDown());
                }
                if (pressType == SDK_BaseController.ButtonPressTypes.PressUp)
                {
                    return(SteamVR_Controller.Input((int)realIndex).GetHairTriggerUp());
                }
                break;

            case SDK_BaseController.ButtonTypes.Touchpad:
                return(this.IsButtonPressed(realIndex, pressType, 4294967296UL));
            }
            return(false);
        }
Exemplo n.º 9
0
        // Token: 0x06001337 RID: 4919 RVA: 0x0006B878 File Offset: 0x00069A78
        public override Vector2 GetButtonAxis(SDK_BaseController.ButtonTypes buttonType, VRTK_ControllerReference controllerReference)
        {
            uint realIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);

            if (realIndex >= 4294967295U)
            {
                return(Vector2.zero);
            }
            SteamVR_Controller.Device device = SteamVR_Controller.Input((int)realIndex);
            if (buttonType == SDK_BaseController.ButtonTypes.Grip)
            {
                return(device.GetAxis(EVRButtonId.k_EButton_Axis2));
            }
            if (buttonType == SDK_BaseController.ButtonTypes.Trigger)
            {
                return(device.GetAxis(EVRButtonId.k_EButton_Axis1));
            }
            if (buttonType == SDK_BaseController.ButtonTypes.Touchpad)
            {
                return(device.GetAxis(EVRButtonId.k_EButton_Axis0));
            }
            return(Vector2.zero);
        }
Exemplo n.º 10
0
 // Token: 0x060012A7 RID: 4775 RVA: 0x000694A8 File Offset: 0x000676A8
 public override bool GetControllerButtonState(SDK_BaseController.ButtonTypes buttonType, SDK_BaseController.ButtonPressTypes pressType, VRTK_ControllerReference controllerReference)
 {
     return(false);
 }
Exemplo n.º 11
0
 // Token: 0x060012F9 RID: 4857 RVA: 0x000694A1 File Offset: 0x000676A1
 public override float GetButtonHairlineDelta(SDK_BaseController.ButtonTypes buttonType, VRTK_ControllerReference controllerReference)
 {
     return(0f);
 }
 public static bool GetControllerButtonState(SDK_BaseController.ButtonTypes buttonType, SDK_BaseController.ButtonPressTypes pressType, VRTK_ControllerReference controllerReference)
 {
     return(GetControllerSDK().GetControllerButtonState(buttonType, pressType, controllerReference));
 }
 public static float GetControllerSenseAxis(SDK_BaseController.ButtonTypes buttonType, VRTK_ControllerReference controllerReference)
 {
     return(GetControllerSDK().GetButtonSenseAxis(buttonType, controllerReference));
 }
 public static float GetControllerHairlineDelta(SDK_BaseController.ButtonTypes buttonType, VRTK_ControllerReference controllerReference)
 {
     return(GetControllerSDK().GetButtonHairlineDelta(buttonType, controllerReference));
 }
        //-->

        /// <summary>
        /// Get Button State
        /// </summary>
        /// <param name="buttonType"></param>
        /// <param name="pressType"></param>
        /// <returns></returns>
        public bool GetButtonState(SDK_BaseController.ButtonTypes buttonType, SDK_BaseController.ButtonPressTypes pressType)
        {
            SteamVR_Action_Boolean buttonAction = null;

            if (!IsButtonActionTouch(pressType))
            {
                // Button Press, Press Down, Press Up
                switch (buttonType)
                {
                case SDK_BaseController.ButtonTypes.Trigger:
                    buttonAction = TriggerButton;
                    break;

                case SDK_BaseController.ButtonTypes.Grip:
                    buttonAction = GripButton;
                    break;

                case SDK_BaseController.ButtonTypes.Touchpad:
                    buttonAction = TouchpadButton;
                    break;

                case SDK_BaseController.ButtonTypes.ButtonOne:
                    buttonAction = ButtonOneClick;
                    break;

                case SDK_BaseController.ButtonTypes.ButtonTwo:
                    buttonAction = ButtonTwoClick;
                    break;

                case SDK_BaseController.ButtonTypes.StartMenu:
                    buttonAction = ButtonStartMenuClick;
                    break;

                case SDK_BaseController.ButtonTypes.TouchpadTwo:
                    buttonAction = TouchpadTwoButton;
                    break;
                }
            }
            else
            {
                // Button Touch, Touch Down, Touch Up
                switch (buttonType)
                {
                case SDK_BaseController.ButtonTypes.Trigger:
                    buttonAction = TriggerTouch;
                    break;

                case SDK_BaseController.ButtonTypes.Grip:
                    buttonAction = GripTouch;
                    break;

                case SDK_BaseController.ButtonTypes.Touchpad:
                    buttonAction = TouchpadTouch;
                    break;

                case SDK_BaseController.ButtonTypes.ButtonOne:
                    buttonAction = ButtonOneTouch;
                    break;

                case SDK_BaseController.ButtonTypes.ButtonTwo:
                    buttonAction = ButtonTwoTouch;
                    break;

                case SDK_BaseController.ButtonTypes.TouchpadTwo:
                    buttonAction = TouchpadTwoTouch;
                    break;
                }
            }

            return(buttonAction != null && GetBooleanButtonState(pressType, buttonAction));
        }
 public static Vector2 GetControllerAxis(SDK_BaseController.ButtonTypes buttonType, VRTK_ControllerReference controllerReference)
 {
     return(GetControllerSDK().GetButtonAxis(buttonType, controllerReference));
 }
Exemplo n.º 17
0
 // Token: 0x06001258 RID: 4696
 public abstract Vector2 GetButtonAxis(SDK_BaseController.ButtonTypes buttonType, VRTK_ControllerReference controllerReference);
Exemplo n.º 18
0
 // Token: 0x06001259 RID: 4697
 public abstract float GetButtonHairlineDelta(SDK_BaseController.ButtonTypes buttonType, VRTK_ControllerReference controllerReference);
Exemplo n.º 19
0
 // Token: 0x060012F8 RID: 4856 RVA: 0x000694D7 File Offset: 0x000676D7
 public override Vector2 GetButtonAxis(SDK_BaseController.ButtonTypes buttonType, VRTK_ControllerReference controllerReference)
 {
     return(Vector2.zero);
 }
Exemplo n.º 20
0
 // Token: 0x0600125A RID: 4698
 public abstract bool GetControllerButtonState(SDK_BaseController.ButtonTypes buttonType, SDK_BaseController.ButtonPressTypes pressType, VRTK_ControllerReference controllerReference);
Exemplo n.º 21
0
 protected virtual void UnsubscribeButtonAxisEvent(SDK_BaseController.ButtonTypes buttonType, VRTK_ControllerEvents.AxisType axisType, ControllerInteractionEventHandler eventHandler)
 {
     controllerEvents.UnsubscribeToAxisAliasEvent(buttonType, axisType, eventHandler);
 }