Exemple #1
0
 void MLControllerTriggerUp(byte controllerId, float triggerValue)
 {
     if (controllerId == this.mlController.Id)
     {
         IMixedRealityInputSystem inputSystem = CoreServices.InputSystem;
         Interactions[1].BoolData = false;
         inputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, Interactions[1].MixedRealityInputAction);
     }
 }
Exemple #2
0
        void MLControllerButtonUp(byte controllerId, MLInput.Controller.Button button)
        {
            //Implement bumper and home buttons up
            if (controllerId == this.mlController.Id)
            {
                IMixedRealityInputSystem inputSystem = CoreServices.InputSystem;
                switch (button)
                {
                case MLInput.Controller.Button.Bumper:
                    Interactions[2].BoolData = false;
                    inputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, Interactions[2].MixedRealityInputAction);
                    break;

                case MLInput.Controller.Button.HomeTap:
                    Interactions[3].BoolData = false;
                    inputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, Interactions[3].MixedRealityInputAction);
                    break;
                }
            }
        }
Exemple #3
0
        public void UpdatePoses()
        {
            MixedRealityPose pointerPose = new MixedRealityPose(mlController.Position, mlController.Orientation);;

            Interactions[0].PoseData = pointerPose;

            CoreServices.InputSystem?.RaiseSourcePoseChanged(InputSource, this, pointerPose);
            CoreServices.InputSystem?.RaisePoseInputChanged(InputSource, ControllerHandedness, Interactions[0].MixedRealityInputAction, pointerPose);

            //This is also a good time to implement the Touchpad if you want to update that source type
            if (Interactions.Length > 4)
            {
                IMixedRealityInputSystem inputSystem = CoreServices.InputSystem;

                // Test out touch
                Interactions[4].BoolData = mlController.Touch1Active;
                if (mlController.Touch1Active)
                {
                    lastTouchVector = mlController.Touch1PosAndForce;
                    lastPressure    = mlController.Touch1PosAndForce.z;
                }

                if (Interactions[4].Changed)
                {
                    if (mlController.Touch1Active)
                    {
                        inputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, Interactions[4].MixedRealityInputAction);
                    }
                    else
                    {
                        inputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, Interactions[4].MixedRealityInputAction);
                    }
                }

                if (mlController.Touch1Active)
                {
                    Interactions[5].Vector2Data = lastTouchVector;
                    if (Interactions[5].Changed)
                    {
                        inputSystem?.RaisePositionInputChanged(InputSource, ControllerHandedness, Interactions[5].MixedRealityInputAction, Interactions[5].Vector2Data);
                    }

                    if (Interactions[6].BoolData) // Pressure was last down
                    {
                        if (lastPressure < 0.25f)
                        {
                            Interactions[6].BoolData = false;
                            inputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, Interactions[6].MixedRealityInputAction);
                        }
                    }
                    else // Pressure was last off
                    {
                        if (lastPressure > 0.5f)
                        {
                            Interactions[6].BoolData = true;
                            inputSystem?.RaiseOnInputDown(InputSource, ControllerHandedness, Interactions[6].MixedRealityInputAction);
                        }
                    }
                }
                else if (Interactions[6].BoolData)
                {
                    Interactions[6].BoolData = false;
                    inputSystem?.RaiseOnInputUp(InputSource, ControllerHandedness, Interactions[6].MixedRealityInputAction);
                    lastPressure = 0;
                }
            }
        }