/// <summary> /// Indicates whether hand is pinching /// </summary> /// <param name="activeController"></param> /// <param name="finger"></param> /// <returns></returns> public static bool IsFingerPinching(OVRInput.Controller activeController, OVRHand.HandFinger finger) { bool isLeftHand = (activeController & OVRInput.Controller.LHand) == OVRInput.Controller.LHand; var curPinch = isLeftHand ? HandsManager.Instance.GetLeftPinchMode(finger) : HandsManager.Instance.GetRightPinchMode(finger); return(curPinch == HandsManager.PinchMode.Pinched); }
public IObservable <bool> OnPinch(OVRHand.HandFinger finger) { if (!_onPinches.ContainsKey(finger)) { _onPinches.Add(finger, CreateOnPinch(finger)); } return(_onPinches[finger]); }
public IObservable <float> OnPinchEnded(OVRHand.HandFinger finger) { if (!_onPinchesEnded.ContainsKey(finger)) { _onPinchesEnded.Add(finger, CreateOnPinch(finger).Where(p => !p).Select(_ => Time.time)); } return(_onPinchesEnded[finger]); }
public IObservable <Unit> CreateOnDoublePinch(OVRHand.HandFinger finger) { var lastPinchStream = Observable.EveryUpdate().Select(_ => IsPinching(finger)); var currentPinchStream = Observable.EveryUpdate() .Select(_ => IsPinching(finger)).Skip(1); var pinchStartedStream = Observable.Zip(currentPinchStream, lastPinchStream).Where(p => p[0] && !p[1]); return(pinchStartedStream.Buffer(TimeSpan.FromSeconds(1), 2).Where(pinches => pinches.Count >= 2).Select(x => Unit.Default)); }
public IObservable <bool> CreateOnPinch(OVRHand.HandFinger finger) { var lastPinchStream = Observable.EveryUpdate().Select(_ => IsPinching(finger)); var currentPinchStream = Observable.EveryUpdate() .Select(_ => IsPinching(finger)).Skip(1); return(Observable.Zip(lastPinchStream, currentPinchStream) .Where(p => p[0] != p[1]) .Select(p => !p[0] && p[1])); }
static private bool IsFingerPinched(OVRHand hand, OVRHand.HandFinger finger) { return(hand.GetFingerConfidence(finger) == OVRHand.TrackingConfidence.High && hand.GetFingerIsPinching(finger) && hand.GetFingerPinchStrength(finger) >= PinchMaxStrength); }
public PinchMode GetLastRightPinchMode(OVRHand.HandFinger finger) { return(_lastPinchModeRight[(int)finger]); }
public PinchMode GetLastLeftPinchMode(OVRHand.HandFinger finger) { return(_lastPinchModeLeft[(int)finger]); }
public float GetFingerStrength(FingerType fingerType) { OVRHand.HandFinger finger = ConvertFingerType(fingerType); return(_hand.GetFingerPinchStrength(finger)); }
public bool GetFingerIsPinching(FingerType fingerType) { OVRHand.HandFinger finger = ConvertFingerType(fingerType); return(_hand.GetFingerIsPinching(finger)); }
public bool IsPinching(OVRHand.HandFinger finger) { return(_ovrHand.GetFingerIsPinching(finger)); }