/***************************************************** * DETECTED ONLY INDEX GESTURE * * INFO: Retourne vrai si seulement ce doigt est ouvert. * *****************************************************/ public override bool IsDetectedGesture() { //Si la main du geste n'est pas détectée. if (!DetectionController.GetInstance().IsHandDetected(hand)) { return(false); } DetectionController.HandController handController = DetectionController.GetInstance().GetHand(hand); onlyThisFingerOpened = false; //Pour tous les doigts de la main, partant de l'auriculaire for (int i = 0; i < (int)FingersE.auriculaire; i++) { FingersE _finger = FingersE.pouce + i; if (handController.GetFinger(_finger).IsFingerOpen()) { //Verifie si seulement le doigt est ouvert et que les autres sont fermés if (_finger == finger) { onlyThisFingerOpened = true; } else { return(false); } } } DisplayDectedGesture(onlyThisFingerOpened); return(onlyThisFingerOpened); }
/***************************************************** * UPDATE FINGER STATE * * INFO: Met a jour l'état des 5 doigts de la main * et de son controleur. * *****************************************************/ private void UpdateFingerState(HandController _handController) { for (int i = 0; i < 5; i++) { FingersE fingersE = FingersE.pouce + i; if (leftFingerCollisions.ContainsKey(fingersE)) { leftFingerCollisions[fingersE].transform.position = _handController.GetFinger(fingersE).GetFingertipPosition(); leftFingerCollisions[fingersE].SetActive(true); } if (numberOfHands == 1) { if (rightFingerCollisions.ContainsKey(fingersE)) { rightFingerCollisions[fingersE].SetActive(false); } } } }
/***************************************************** * GET FINGER * * INFO: Valide et retourne un des doigts de la main. * *****************************************************/ public FingerController GetFinger(FingersE _fingerType) { return(fingers[(int)_fingerType]); }