Example #1
0
 public void resetPositionsSpineBase()
 {
     if (bodyPointsCollection != null)
     {
         positionSpineBase_init = bodyPointsCollection [BodyParts.SpineBase].getCurrentPosition();
     }
 }
Example #2
0
    void Update()
    {
        for (int i = 0; i < (int)BodyParts.ThumbRight; i++)
        {
            BodyPointPosition position = adapter.ReturnPosition((BodyParts)i);
            bodyPointsCollection[(BodyParts)i].setPosition(position);
        }
        bodyMovements.setBodyPointsCollection(bodyPointsCollection);

        if (manager.hasStart == true)
        {
//			administrarTurno ();
            if (manager.derecho == true && manager.rodilla == true)
            {
                ////print ("sensando rodilla derecha");
                sensarRodillaDer();
            }
            if (manager.izquierdo == true && manager.rodilla == true)
            {
                ////print ("sensando rodilla izquierda");
                sensarRodillaIzq();
            }
            if (manager.derecho == true && manager.pie == true)
            {
                ////print ("sensando pie derecho");
                sensarPieDerecho();
            }
            if (manager.izquierdo == true && manager.pie == true)
            {
                ////print ("sensando pie izquierdo");
                sensarPieIzquierdo();
            }
        }
    }
 public Vector3 BodyPointPositionToVector3(BodyPointPosition bp)
 {
     return(new Vector3(bp.x, bp.y, bp.z));
 }
Example #4
0
    // Update is called once per frame
    void Update()
    {
        if (FullBodyObject != null && GameObject.Find("KinectTAdapter").GetComponent <KinectTwoAdapter>().currentBody != null)
        {
            BodyPointPosition SpineBase = FullBodyObject.ReturnPointPosition(BodyParts.SpineBase);
            Vector3           sb        = new Vector3(SpineBase.x, SpineBase.y, SpineBase.z);
            GameObject.Find("SpineBase").transform.position = sb;

            BodyPointPosition SpineMid = FullBodyObject.ReturnPointPosition(BodyParts.SpineMid);
            Vector3           sm       = new Vector3(SpineMid.x, SpineMid.y, SpineMid.z);
            GameObject.Find("SpineMid").transform.position = sm;

            BodyPointPosition SpineShoulder = FullBodyObject.ReturnPointPosition(BodyParts.SpineShoulder);
            Vector3           ss            = new Vector3(SpineShoulder.x, SpineShoulder.y, SpineShoulder.z);
            GameObject.Find("SpineShoulder").transform.position = ss;

            //---------------------

            BodyPointPosition Neck = FullBodyObject.ReturnPointPosition(BodyParts.Neck);
            Vector3           n    = new Vector3(Neck.x, Neck.y, Neck.z);
            GameObject.Find("Neck").transform.position = n;

            BodyPointPosition Head = FullBodyObject.ReturnPointPosition(BodyParts.Head);
            Vector3           h    = new Vector3(Head.x, Head.y, Head.z);
            GameObject.Find("Head").transform.position = h;

            //-----------------

            BodyPointPosition ShoulderLeft = FullBodyObject.ReturnPointPosition(BodyParts.ShoulderLeft);
            Vector3           sl           = new Vector3(ShoulderLeft.x, ShoulderLeft.y, ShoulderLeft.z);
            GameObject.Find("ShoulderLeft").transform.position = sl;

            BodyPointPosition ElbowLeft = FullBodyObject.ReturnPointPosition(BodyParts.ElbowLeft);
            Vector3           el        = new Vector3(ElbowLeft.x, ElbowLeft.y, ElbowLeft.z);
            GameObject.Find("ElbowLeft").transform.position = el;

            BodyPointPosition WristLeft = FullBodyObject.ReturnPointPosition(BodyParts.WristLeft);
            Vector3           wl        = new Vector3(WristLeft.x, WristLeft.y, WristLeft.z);
            GameObject.Find("WristLeft").transform.position = wl;

            //---------------------

            BodyPointPosition ShoulderRight = FullBodyObject.ReturnPointPosition(BodyParts.ShoulderRight);
            Vector3           sr            = new Vector3(ShoulderRight.x, ShoulderRight.y, ShoulderRight.z);
            GameObject.Find("ShoulderRight").transform.position = sr;

            BodyPointPosition ElbowRight = FullBodyObject.ReturnPointPosition(BodyParts.ElbowRight);
            Vector3           er         = new Vector3(ElbowRight.x, ElbowRight.y, ElbowRight.z);
            GameObject.Find("ElbowRight").transform.position = er;

            BodyPointPosition WristRight = FullBodyObject.ReturnPointPosition(BodyParts.WristRight);
            Vector3           wr         = new Vector3(WristRight.x, WristRight.y, WristRight.z);
            GameObject.Find("WristRight").transform.position = wr;

            //-----------------------

            BodyPointPosition HipLeft = FullBodyObject.ReturnPointPosition(BodyParts.HipLeft);
            Vector3           hl      = new Vector3(HipLeft.x, HipLeft.y, HipLeft.z);
            GameObject.Find("HipLeft").transform.position = hl;

            BodyPointPosition KneeLeft = FullBodyObject.ReturnPointPosition(BodyParts.KneeLeft);
            Vector3           kl       = new Vector3(KneeLeft.x, KneeLeft.y, KneeLeft.z);
            GameObject.Find("KneeLeft").transform.position = kl;

            BodyPointPosition AnkleLeft = FullBodyObject.ReturnPointPosition(BodyParts.AnkleLeft);
            Vector3           al        = new Vector3(AnkleLeft.x, AnkleLeft.y, AnkleLeft.z);
            GameObject.Find("AnkleLeft").transform.position = al;

            //----------------------

            BodyPointPosition HipRight = FullBodyObject.ReturnPointPosition(BodyParts.HipRight);
            Vector3           hr       = new Vector3(HipRight.x, HipRight.y, HipRight.z);
            GameObject.Find("HipRight").transform.position = hr;

            BodyPointPosition KneeRight = FullBodyObject.ReturnPointPosition(BodyParts.KneeRight);
            Vector3           kr        = new Vector3(KneeRight.x, KneeRight.y, KneeRight.z);
            GameObject.Find("KneeRight").transform.position = kr;

            BodyPointPosition AnkreRight = FullBodyObject.ReturnPointPosition(BodyParts.AnkleRight);
            Vector3           ar         = new Vector3(AnkreRight.x, AnkreRight.y, AnkreRight.z);
            GameObject.Find("AnkleRight").transform.position = ar;
        }
    }
Example #5
0
    MovementAxis moveWithKinect(double hAxis, double vAxis)
    {
        // se actualiza cada parte del cuerpo
        for (int i = 0; i < (int)BodyParts.ThumbRight; i++)
        {
            BodyPointPosition position = adapter.ReturnPosition((BodyParts)i);
            bodyPointsCollection[(BodyParts)i].setPosition(position);
        }
        bodyMovements.setBodyPointsCollection(bodyPointsCollection);

        double angleMovementX = 0;
        double angleMovementY = 0;

        //transform.position += transform.forward * Time.deltaTime * speedForward;
        // print("select movimiento: "+ HoldParametersGreatJourney.select_movimiento);
        switch (HoldParametersGreatJourney.select_movimiento)
        {
        case HoldParametersGreatJourney.MOVIMIENTO_MIEMBROS_INFERIORES:
            hAxis = 0;



            angleMovementX = bodyMovements.hipLeftAbMovement();

            if (angleMovementX >= minAngle)
            {
                //print ("movio a la izquierda" + angleMovement);
                hAxis = -(float)((angleMovementX - minAngle) / (maxAngle - minAngle));
            }
            else
            {
                hAxis          = 0;
                angleMovementX = bodyMovements.hipRigthAbMovement();
                if (angleMovementX >= minAngle)
                {
                    //print("movio a la derecha" + angleMovement);
                    hAxis = (float)((angleMovementX - minAngle) / (maxAngle - minAngle));
                }
                // falta hacia abajo (probar)
            }

            if (HoldParametersGreatJourney.lados_involucrados == HoldParametersGreatJourney.LADO_TODOS || HoldParametersGreatJourney.lados_involucrados == HoldParametersGreatJourney.LADO_ABAJO)
            {
                vAxis = 0;
                // make a squat to move down;
                BodyPointPosition currentSpineBasePos = bodyPointsCollection [BodyParts.SpineBase].getCurrentPosition();

                if (currentSpineBasePos.y < positionSpineBase_init.y && positionSpineBase_init.y - currentSpineBasePos.y > 0.07)
                {
                    vAxis = -Mathf.Abs((float)(positionSpineBase_init.y - currentSpineBasePos.y));
                }
            }


            break;

        case HoldParametersGreatJourney.MOVIMIENTO_TRONCO:


            hAxis = 0;
            float sign;

            angleMovementX = bodyMovements.spineLatMovement();
            minAngle       = (double)HoldParametersGreatJourney.select_angle_min;


            if (Mathf.Abs((float)angleMovementX) > minAngle)
            {
                sign  = -Mathf.Sign((float)angleMovementX);
                hAxis = (float)(sign * (Mathf.Abs((float)(angleMovementX)) - minAngle) / (maxAngle - minAngle));
                if (Mathf.Abs((float)hAxis) > 1)
                {
                    hAxis = sign * 1;
                }
            }



            if (HoldParametersGreatJourney.lados_involucrados == HoldParametersGreatJourney.LADO_TODOS || HoldParametersGreatJourney.lados_involucrados == HoldParametersGreatJourney.LADO_ABAJO)
            {
                vAxis    = 0;
                minAngle = (double)HoldParametersGreatJourney.select_angle_min_frontal;
                // make a an anterior spine flexion to move down;
                angleMovementY = bodyMovements.spineIncMovement();
                //print ("trunck angleY:"+angleMovementY);
                ////if (angleMovementY> minAngle && angleMovementY-minAngle>14) {
                if (angleMovementY > minAngle + (maxAngle - minAngle) * 0.8)
                {
                    vAxis = -(float)((angleMovementY - minAngle) / (maxAngle - minAngle));

                    sign = Mathf.Sign((float)vAxis);
                    if (Mathf.Abs((float)vAxis) > 1)
                    {
                        vAxis = sign * 1;
                    }
                }
            }


            break;

//			case HoldParametersGreatJourney.MOVI:
//				angleMovementX = bodyMovements.spineIncMovement ();
//				break;
        default:
            break;
        }



        //txt_prueba.text = "angleX: " +Mathf.RoundToInt((float)angleMovementX)+"º"+ " , angleY:"+Mathf.RoundToInt((float)angleMovementY)+"º"+ ", VAxis:"+vAxis;

        switch (HoldParametersGreatJourney.select_movimiento)
        {
        case HoldParametersGreatJourney.MOVIMIENTO_MIEMBROS_INFERIORES:
            if (angleMovementX > HoldParametersGreatJourney.best_angle_left)
            {
                HoldParametersGreatJourney.best_angle_left = angleMovementX;
            }
            break;
        }


        return(new MovementAxis(hAxis, vAxis));
    }
Example #6
0
    // Update is called once per frame
    void Update()
    {
        if (FullBodyObject != null && GameObject.Find("KinectTAdapter").GetComponent <KinectTwoAdapter>().currentBody != null)
        {
            BodyPointPosition SpineBase = FullBodyObject.ReturnPointPosition(BodyParts.SpineBase);
            Vector3           sb        = new Vector3(SpineBase.x, SpineBase.y, SpineBase.z);
            float             factor    = SpineBaseStart.magnitude / sb.magnitude;
            sb.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("SpineBase").transform.position = sb;

            BodyPointPosition SpineMid = FullBodyObject.ReturnPointPosition(BodyParts.SpineMid);
            Vector3           sm       = new Vector3(SpineMid.x, SpineMid.y, SpineMid.z);
            factor = SpineMidStart.magnitude / sm.magnitude;
            sm.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("SpineMid").transform.position = sm;

            BodyPointPosition SpineShoulder = FullBodyObject.ReturnPointPosition(BodyParts.SpineShoulder);
            Vector3           ss            = new Vector3(SpineShoulder.x, SpineShoulder.y, SpineShoulder.z);
            factor = SpineShoulderStart.magnitude / ss.magnitude;
            ss.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("SpineShoulder").transform.position = ss;

            //---------------------

            BodyPointPosition Neck = FullBodyObject.ReturnPointPosition(BodyParts.Neck);
            Vector3           n    = new Vector3(Neck.x, Neck.y, Neck.z);
            factor = NeckStart.magnitude / n.magnitude;
            n.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("Neck").transform.position = n;

            BodyPointPosition Head = FullBodyObject.ReturnPointPosition(BodyParts.Head);
            Vector3           h    = new Vector3(Head.x, Head.y, Head.z);
            factor = HeadStart.magnitude / h.magnitude;
            h.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("Head").transform.position = h;

            //-----------------

            BodyPointPosition ShoulderLeft = FullBodyObject.ReturnPointPosition(BodyParts.ShoulderLeft);
            Vector3           sl           = new Vector3(ShoulderLeft.x, ShoulderLeft.y, ShoulderLeft.z);
            factor = ShoulderLeftStart.magnitude / sl.magnitude;
            sl.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("ShoulderLeft").transform.position = sl;

            BodyPointPosition ElbowLeft = FullBodyObject.ReturnPointPosition(BodyParts.ElbowLeft);
            Vector3           el        = new Vector3(ElbowLeft.x, ElbowLeft.y, ElbowLeft.z);
            factor = ElbowLeftStart.magnitude / el.magnitude;
            el.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("ElbowLeft").transform.position = el;

            BodyPointPosition WristLeft = FullBodyObject.ReturnPointPosition(BodyParts.WristLeft);
            Vector3           wl        = new Vector3(WristLeft.x, WristLeft.y, WristLeft.z);
            factor = WristLeftStart.magnitude / wl.magnitude;
            wl.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("WristLeft").transform.position = wl;

            //---------------------

            BodyPointPosition ShoulderRight = FullBodyObject.ReturnPointPosition(BodyParts.ShoulderRight);
            Vector3           sr            = new Vector3(ShoulderRight.x, ShoulderRight.y, ShoulderRight.z);
            factor = ShoulderRightStart.magnitude / sr.magnitude;
            sr.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("ShoulderRight").transform.position = sr;

            BodyPointPosition ElbowRight = FullBodyObject.ReturnPointPosition(BodyParts.ElbowRight);
            Vector3           er         = new Vector3(ElbowRight.x, ElbowRight.y, ElbowRight.z);
            factor = ElbowRightStart.magnitude / er.magnitude;
            er.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("ElbowRight").transform.position = er;

            BodyPointPosition WristRight = FullBodyObject.ReturnPointPosition(BodyParts.WristRight);
            Vector3           wr         = new Vector3(WristRight.x, WristRight.y, WristRight.z);
            factor = WristRightStart.magnitude / wr.magnitude;
            wr.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("WristRight").transform.position = wr;

            //-----------------------

            BodyPointPosition HipLeft = FullBodyObject.ReturnPointPosition(BodyParts.HipLeft);
            Vector3           hl      = new Vector3(HipLeft.x, HipLeft.y, HipLeft.z);
            factor = HipLeftStart.magnitude / hl.magnitude;
            hl.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("HipLeft").transform.position = hl;

            BodyPointPosition KneeLeft = FullBodyObject.ReturnPointPosition(BodyParts.KneeLeft);
            Vector3           kl       = new Vector3(KneeLeft.x, KneeLeft.y, KneeLeft.z);
            factor = KneeLeftStart.magnitude / kl.magnitude;
            kl.Scale(KneeLeftStart);
            GameObject.Find("KneeLeft").transform.position = kl;

            BodyPointPosition AnkleLeft = FullBodyObject.ReturnPointPosition(BodyParts.AnkleLeft);
            Vector3           al        = new Vector3(AnkleLeft.x, AnkleLeft.y, AnkleLeft.z);
            factor = AnkleLeftStart.magnitude / al.magnitude;
            al.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("AnkleLeft").transform.position = al;

            //----------------------

            BodyPointPosition HipRight = FullBodyObject.ReturnPointPosition(BodyParts.HipRight);
            Vector3           hr       = new Vector3(HipRight.x, HipRight.y, HipRight.z);
            factor = HipRightStart.magnitude / hr.magnitude;
            hr.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("HipRight").transform.position = hr;

            BodyPointPosition KneeRight = FullBodyObject.ReturnPointPosition(BodyParts.KneeRight);
            Vector3           kr        = new Vector3(KneeRight.x, KneeRight.y, KneeRight.z);
            factor = KneeRightStart.magnitude / kr.magnitude;
            kr.Scale(KneeRightStart);
            GameObject.Find("KneeRight").transform.position = kr;

            BodyPointPosition AnkreRight = FullBodyObject.ReturnPointPosition(BodyParts.AnkleRight);
            Vector3           ar         = new Vector3(AnkreRight.x, AnkreRight.y, AnkreRight.z);
            factor = AnkleRightStart.magnitude / ar.magnitude;
            ar.Scale(new Vector3(factor, factor, factor));
            GameObject.Find("AnkleRight").transform.position = ar;
        }
    }