private void UpdateDualAxisData(MixedRealityInteractionMapping interactionMapping) { Debug.Assert(interactionMapping.AxisType == AxisType.DualAxis); OculusApi.RawAxis2D interactionAxis2D = OculusApi.RawAxis2D.None; Enum.TryParse <OculusApi.RawAxis2D>(interactionMapping.InputName, out interactionAxis2D); if (interactionAxis2D != OculusApi.RawAxis2D.None) { switch (interactionAxis2D) { case OculusApi.RawAxis2D.LThumbstick: dualAxisPosition.x = currentState.LThumbstick.x; dualAxisPosition.y = currentState.LThumbstick.y; dualAxisPosition = OculusApi.CalculateAbsMax(Vector2.zero, dualAxisPosition); break; case OculusApi.RawAxis2D.LTouchpad: dualAxisPosition.x = currentState.LTouchpad.x; dualAxisPosition.y = currentState.LTouchpad.y; dualAxisPosition = OculusApi.CalculateAbsMax(Vector2.zero, dualAxisPosition); break; case OculusApi.RawAxis2D.RThumbstick: dualAxisPosition.x = currentState.RThumbstick.x; dualAxisPosition.y = currentState.RThumbstick.y; dualAxisPosition = OculusApi.CalculateAbsMax(Vector2.zero, dualAxisPosition); break; case OculusApi.RawAxis2D.RTouchpad: dualAxisPosition.x = currentState.RTouchpad.x; dualAxisPosition.y = currentState.RTouchpad.y; dualAxisPosition = OculusApi.CalculateAbsMax(Vector2.zero, dualAxisPosition); break; } } // Update the interaction data source interactionMapping.Vector2Data = dualAxisPosition; interactionMapping.UpdateInteractionMappingVector2(InputSource, ControllerHandedness); }
public static bool TryParseRawAxis2D(MixedRealityInteractionMapping mapping, out OculusApi.RawAxis2D axis) { axis = OculusApi.RawAxis2D.None; if (mapping.AxisType != AxisType.DualAxis) { return(false); } if (mapping.InputType == DeviceInputType.ThumbStick) { if (mapping.AxisCodeX == ControllerMappingLibrary.AXIS_1 || mapping.AxisCodeX == ControllerMappingLibrary.AXIS_2) { axis = OculusApi.RawAxis2D.LThumbstick; return(true); } if (mapping.AxisCodeX == ControllerMappingLibrary.AXIS_4 || mapping.AxisCodeX == ControllerMappingLibrary.AXIS_5) { axis = OculusApi.RawAxis2D.RThumbstick; return(true); } } return(false); }
private void UpdateDualAxisData(MixedRealityInteractionMapping interactionMapping) { Debug.Assert(interactionMapping.AxisType == AxisType.DualAxis); OculusApi.RawAxis2D interactionAxis2D = OculusApi.RawAxis2D.None; OculusInteractionMapping.TryParseRawAxis2D(interactionMapping, out interactionAxis2D); //Enum.TryParse<OculusApi.RawAxis2D>(interactionMapping.InputName, out interactionAxis2D); if (interactionAxis2D != OculusApi.RawAxis2D.None) { switch (interactionAxis2D) { case OculusApi.RawAxis2D.LThumbstick: dualAxisPosition.x = currentState.LThumbstick.x; dualAxisPosition.y = currentState.LThumbstick.y; //if (shouldApplyDeadzone) // dualAxisPosition = OculusApi.CalculateDeadzone(dualAxisPosition, OculusApi.AXIS_DEADZONE_THRESHOLD); dualAxisPosition = OculusApi.CalculateAbsMax(Vector2.zero, dualAxisPosition); break; case OculusApi.RawAxis2D.LTouchpad: dualAxisPosition.x = currentState.LTouchpad.x; dualAxisPosition.y = currentState.LTouchpad.y; //if (shouldApplyDeadzone) // dualAxisPosition = OculusApi.CalculateDeadzone(dualAxisPosition, OculusApi.AXIS_DEADZONE_THRESHOLD); dualAxisPosition = OculusApi.CalculateAbsMax(Vector2.zero, dualAxisPosition); break; case OculusApi.RawAxis2D.RThumbstick: dualAxisPosition.x = currentState.RThumbstick.x; dualAxisPosition.y = currentState.RThumbstick.y; //if (shouldApplyDeadzone) // dualAxisPosition = OculusApi.CalculateDeadzone(dualAxisPosition, OculusApi.AXIS_DEADZONE_THRESHOLD); dualAxisPosition = OculusApi.CalculateAbsMax(Vector2.zero, dualAxisPosition); break; case OculusApi.RawAxis2D.RTouchpad: dualAxisPosition.x = currentState.RTouchpad.x; dualAxisPosition.y = currentState.RTouchpad.y; //if (shouldApplyDeadzone) // dualAxisPosition = OculusApi.CalculateDeadzone(dualAxisPosition, OculusApi.AXIS_DEADZONE_THRESHOLD); dualAxisPosition = OculusApi.CalculateAbsMax(Vector2.zero, dualAxisPosition); break; } } // Update the interaction data source interactionMapping.Vector2Data = dualAxisPosition; //interactionMapping.UpdateInteractionMappingVector2(InputSource, ControllerHandedness); if (interactionMapping.Changed) { InputSystem?.RaisePositionInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, interactionMapping.Vector2Data); } }