public void SetMirrorServo(RoboticServoMirror mirrorServo) { this.mirrorServo = mirrorServo; this.mirrorServo.IKservo = this; this.invert = mirrorServo.invert; this.limbController = mirrorServo.limbController; servoBase = transform.parent; memoryBridge = mirrorServo.memoryBridge; // this.groundPoint = mirrorServo.groundPoint; setAngle = 0; //if (limbControllerPart == RoboticLimb.LimbPart.Wrist) //{ // // limbLength = Vector3.Distance(transform.position, memoryBridge.GetVector3(mirrorServo.servoName + "CollisionPoint")); // var limbOffset = limb.trueLimbEnd.localPosition; //transform.InverseTransformPoint(memoryBridge.GetVector3(mirrorServo.servoName + "CollisionPoint")); // targetOffset = (float)(Math.Atan2(limbOffset.z, limbOffset.y)); // targetOffset *= (float)(180 / Math.PI); // // Debug.Log("limb offset " + targetOffset); //} if (hostPart.name.ToLower().Contains("down")) { targetAngle = Vector3.down; } }
public void SetMirrorServo(RoboticServoMirror mirrorServo) { this.mirrorServo = mirrorServo; this.mirrorServo.IKservo = this; this.invert = mirrorServo.invert; this.limbController = mirrorServo.limbController; servoBase = transform.parent; memoryBridge = mirrorServo.memoryBridge; this.groundPoint = mirrorServo.groundPoint; setAngle = 0; if (limbControllerPart == RoboticLimb.LimbPart.Wrist) { limbLength = Vector3.Distance(transform.position, groundPoint.position); var limbOffset = transform.InverseTransformPoint(groundPoint.position); targetOffset = (float)(Math.Atan2(limbOffset.z, limbOffset.y)); targetOffset *= (float)(180 / Math.PI); // Debug.Log("limb offset " + targetOffset); } if (hostPart.name.ToLower().Contains("down")) { targetAngle = Vector3.down; } }