public void resetPositionsSpineBase() { if (bodyPointsCollection != null) { positionSpineBase_init = bodyPointsCollection [BodyParts.SpineBase].getCurrentPosition(); } }
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)); }
// 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; } }
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)); }
// 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; } }