middleware/Tracking/Postures/CrossDetector.cs
changeset 23 7372c4f249c7
parent 17 fda26bfcabef
child 27 6c08d4d7219e
equal deleted inserted replaced
22:dc552dbfe4dc 23:7372c4f249c7
    43             List<Joint> localState = new List<Joint>(currentState);
    43             List<Joint> localState = new List<Joint>(currentState);
    44 
    44 
    45             //La distance de référence est ici la distance entre le milieu du dos et le milieu des épaules.
    45             //La distance de référence est ici la distance entre le milieu du dos et le milieu des épaules.
    46             refDistance = Math.Abs(localState[(int)JointType.Spine].Position.Y - localState[(int)JointType.ShoulderCenter].Position.Y);
    46             refDistance = Math.Abs(localState[(int)JointType.Spine].Position.Y - localState[(int)JointType.ShoulderCenter].Position.Y);
    47 
    47 
    48             if (localState[(int)JointType.HandLeft].Position.Y < localState[(int)JointType.ElbowLeft].Position.Y - refDistance / 2)
    48             /*if (localState[(int)JointType.HandLeft].Position.Y < localState[(int)JointType.ElbowLeft].Position.Y - refDistance / 2)
    49                 debug.onR0(true);
    49                 debug.onR0(true);
    50             else
    50             else
    51                 debug.onR0(false);
    51                 debug.onR0(false);
    52             if (localState[(int)JointType.HandRight].Position.Y < localState[(int)JointType.ElbowRight].Position.Y - refDistance / 2)
    52             if (localState[(int)JointType.HandRight].Position.Y < localState[(int)JointType.ElbowRight].Position.Y - refDistance / 2)
    53                 debug.onR1(true);
    53                 debug.onR1(true);
    58             else
    58             else
    59                 debug.onR2(false);
    59                 debug.onR2(false);
    60             if (localState[(int)JointType.HandLeft].Position.X + refDistance / 2 > localState[(int)JointType.HandRight].Position.X)
    60             if (localState[(int)JointType.HandLeft].Position.X + refDistance / 2 > localState[(int)JointType.HandRight].Position.X)
    61                 debug.onR3(true);
    61                 debug.onR3(true);
    62             else
    62             else
    63                 debug.onR3(false);
    63                 debug.onR3(false);*/
    64             //Si la position Y de la main gauche n'est pas plus haute de la distance de référence que le coude gauche
    64             //Si la position Y de la main gauche n'est pas plus haute de la distance de référence que le coude gauche
    65             //OU si la position Y de la main droite n'est pas plus haute de la distance de référence que le coude droit
    65             //OU si la position Y de la main droite n'est pas plus haute de la distance de référence que le coude droit
    66             //OU si la position X du coude gauche n'est pas plus à gauche de la distance de référence/2 que le coude droit
    66             //OU si la position X du coude gauche n'est pas plus à gauche de la distance de référence/2 que le coude droit
    67             //OU si la position X de la main gauche n'est pas plus à droite de la distance de référence/4 que la main gauche.
    67             //OU si la position X de la main gauche n'est pas plus à droite de la distance de référence/4 que la main gauche.
    68             //Alors l'utilisateur ne croise pas les bras.
    68             //Alors l'utilisateur ne croise pas les bras.