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;
        }
    }