public static bool TryParseRawAxis1D(MixedRealityInteractionMapping mapping, out OculusApi.RawAxis1D axis) { axis = OculusApi.RawAxis1D.None; if (mapping.AxisType != AxisType.SingleAxis) { return(false); } if (mapping.InputType == DeviceInputType.Trigger) { if (mapping.AxisCodeX == ControllerMappingLibrary.AXIS_9) { axis = OculusApi.RawAxis1D.LIndexTrigger; return(true); } if (mapping.AxisCodeX == ControllerMappingLibrary.AXIS_10) { axis = OculusApi.RawAxis1D.RIndexTrigger; return(true); } if (mapping.AxisCodeX == ControllerMappingLibrary.AXIS_11) { axis = OculusApi.RawAxis1D.LHandTrigger; return(true); } if (mapping.AxisCodeX == ControllerMappingLibrary.AXIS_12) { axis = OculusApi.RawAxis1D.RHandTrigger; return(true); } } return(false); }
private void UpdateSingleAxisData(MixedRealityInteractionMapping interactionMapping) { Debug.Assert(interactionMapping.AxisType == AxisType.SingleAxis); OculusApi.RawAxis1D interactionAxis1D = OculusApi.RawAxis1D.None; OculusInteractionMapping.TryParseRawAxis1D(interactionMapping, out interactionAxis1D); //Enum.TryParse<OculusApi.RawAxis1D>(interactionMapping.InputName, out interactionAxis1D); if (interactionAxis1D != OculusApi.RawAxis1D.None) { switch (interactionAxis1D) { case OculusApi.RawAxis1D.LIndexTrigger: singleAxisValue = currentState.LIndexTrigger; //if (shouldApplyDeadzone) // singleAxisValue = OculusApi.CalculateDeadzone(singleAxisValue, OculusApi.AXIS_DEADZONE_THRESHOLD); singleAxisValue = OculusApi.CalculateAbsMax(0, singleAxisValue); break; case OculusApi.RawAxis1D.LHandTrigger: singleAxisValue = currentState.LHandTrigger; //if (shouldApplyDeadzone) // singleAxisValue = OculusApi.CalculateDeadzone(singleAxisValue, OculusApi.AXIS_DEADZONE_THRESHOLD); singleAxisValue = OculusApi.CalculateAbsMax(0, singleAxisValue); break; case OculusApi.RawAxis1D.RIndexTrigger: singleAxisValue = currentState.RIndexTrigger; //if (shouldApplyDeadzone) // singleAxisValue = OculusApi.CalculateDeadzone(singleAxisValue, OculusApi.AXIS_DEADZONE_THRESHOLD); singleAxisValue = OculusApi.CalculateAbsMax(0, singleAxisValue); break; case OculusApi.RawAxis1D.RHandTrigger: singleAxisValue = currentState.RHandTrigger; //if (shouldApplyDeadzone) // singleAxisValue = OculusApi.CalculateDeadzone(singleAxisValue, OculusApi.AXIS_DEADZONE_THRESHOLD); singleAxisValue = OculusApi.CalculateAbsMax(0, singleAxisValue); break; } } // Update the interaction data source interactionMapping.FloatData = singleAxisValue; //interactionMapping.UpdateInteractionMappingFloat(InputSource, ControllerHandedness); if (interactionMapping.Changed) { InputSystem?.RaiseFloatInputChanged(InputSource, ControllerHandedness, interactionMapping.MixedRealityInputAction, interactionMapping.FloatData); } }
private void UpdateSingleAxisData(MixedRealityInteractionMapping interactionMapping) { Debug.Assert(interactionMapping.AxisType == AxisType.SingleAxis); OculusApi.RawAxis1D interactionAxis1D = OculusApi.RawAxis1D.None; Enum.TryParse <OculusApi.RawAxis1D>(interactionMapping.InputName, out interactionAxis1D); if (interactionAxis1D != OculusApi.RawAxis1D.None) { switch (interactionAxis1D) { case OculusApi.RawAxis1D.LIndexTrigger: singleAxisValue = currentState.LIndexTrigger; singleAxisValue = OculusApi.CalculateAbsMax(0, singleAxisValue); break; case OculusApi.RawAxis1D.LHandTrigger: singleAxisValue = currentState.LHandTrigger; singleAxisValue = OculusApi.CalculateAbsMax(0, singleAxisValue); break; case OculusApi.RawAxis1D.RIndexTrigger: singleAxisValue = currentState.RIndexTrigger; singleAxisValue = OculusApi.CalculateAbsMax(0, singleAxisValue); break; case OculusApi.RawAxis1D.RHandTrigger: singleAxisValue = currentState.RHandTrigger; singleAxisValue = OculusApi.CalculateAbsMax(0, singleAxisValue); break; } } // Update the interaction data source interactionMapping.FloatData = singleAxisValue; interactionMapping.UpdateInteractionMappingFloat(InputSource, ControllerHandedness); }