protected override void LoadPreset(PresetScriptableObject preset) { ForceCalibrationPresetScriptableObject forceCalibrationPreset = preset as ForceCalibrationPresetScriptableObject; HandData leftHandData = new HandData(); leftHandData.SetFingerMaxForce(Finger.Thumb, forceCalibrationPreset.leftThumbMaxForce); leftHandData.SetFingerMaxForce(Finger.Index, forceCalibrationPreset.leftIndexFingerMaxForce); leftHandData.SetFingerMaxForce(Finger.Middle, forceCalibrationPreset.leftMiddleFingerMaxForce); leftHandData.SetFingerMaxForce(Finger.Ring, forceCalibrationPreset.leftRingFingerMaxForce); leftHandData.SetFingerMaxForce(Finger.Pinky, forceCalibrationPreset.leftPinkyMaxForce); leftHandData.SetFingerBaseForce(Finger.Thumb, m_appState.LeftHandData.GetFingerBaseForce(Finger.Thumb)); leftHandData.SetFingerBaseForce(Finger.Index, m_appState.LeftHandData.GetFingerBaseForce(Finger.Index)); leftHandData.SetFingerBaseForce(Finger.Middle, m_appState.LeftHandData.GetFingerBaseForce(Finger.Middle)); leftHandData.SetFingerBaseForce(Finger.Ring, m_appState.LeftHandData.GetFingerBaseForce(Finger.Ring)); leftHandData.SetFingerBaseForce(Finger.Pinky, m_appState.LeftHandData.GetFingerBaseForce(Finger.Pinky)); HandData rightHandData = new HandData(); rightHandData.SetFingerMaxForce(Finger.Thumb, forceCalibrationPreset.rightThumbMaxForce); rightHandData.SetFingerMaxForce(Finger.Index, forceCalibrationPreset.rightIndexFingerMaxForce); rightHandData.SetFingerMaxForce(Finger.Middle, forceCalibrationPreset.rightMiddleFingerMaxForce); rightHandData.SetFingerMaxForce(Finger.Ring, forceCalibrationPreset.rightRingFingerMaxForce); rightHandData.SetFingerMaxForce(Finger.Pinky, forceCalibrationPreset.rightPinkyMaxForce); rightHandData.SetFingerBaseForce(Finger.Thumb, m_appState.RightHandData.GetFingerBaseForce(Finger.Thumb)); rightHandData.SetFingerBaseForce(Finger.Index, m_appState.RightHandData.GetFingerBaseForce(Finger.Index)); rightHandData.SetFingerBaseForce(Finger.Middle, m_appState.RightHandData.GetFingerBaseForce(Finger.Middle)); rightHandData.SetFingerBaseForce(Finger.Ring, m_appState.RightHandData.GetFingerBaseForce(Finger.Ring)); rightHandData.SetFingerBaseForce(Finger.Pinky, m_appState.RightHandData.GetFingerBaseForce(Finger.Pinky)); m_appState.SetHandData(leftHandData, rightHandData); }
private void FingerForceDataReceivedHandler(Dictionary <Finger, double> fingerData) { if (m_isCalibrating || m_isCalibratingPETS) { foreach (Finger finger in fingerData.Keys) { double value = fingerData[finger]; if (m_isCalibrating) { if (finger == m_calibratingFinger) { HandData handData = m_isCalibratingLeftHand ? m_appState.LeftHandData : m_appState.RightHandData; value -= handData.GetFingerBaseForce(finger); double currentMax = handData.GetFingerMaxForce(finger); handData.SetFingerMaxForce(finger, double.IsNaN(currentMax) ? value : MathUtils.Max(value, currentMax)); } } else if (m_isCalibratingPETS) { m_petsCalibrationTask.FeedSample(finger, value); } } if (m_isCalibratingPETS) { if (m_petsCalibrationTask.IsDone()) { m_isCalibratingPETS = false; OnPETSCalibrationFinished(); Dictionary <Finger, double> calibrationResult = m_petsCalibrationTask.GetCalibrationResult(); if (calibrationResult != null) { foreach (Finger finger in calibrationResult.Keys) { m_appState.LeftHandData.SetFingerBaseForce(finger, calibrationResult[finger]); m_appState.RightHandData.SetFingerBaseForce(finger, calibrationResult[finger]); } } else { Debug.LogError("Failed to calibrate PETS!"); } } } } }
private void Awake() { LeftHandData = new HandData(); RightHandData = new HandData(); IsLeftHand = new ObservableValue <bool>(true); ForceTrackMVCRatio = 1.0; Mode = AppMode.Dynamic; StaticPhaseDuration = 5.0f; IncreasingPhaseDuration = 5.0f; PlateauPhaseDuration = 5.0f; DecreasingPhaseDuration = 5.0f; StaticEndPhaseDuration = 5.0f; HololensIP = ""; }
public void SetHandData(HandData leftHand, HandData rightHand) { LeftHandData = leftHand; RightHandData = rightHand; }