Esempio n. 1
0
    /*****************************************************
    * 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]);
 }