private void OnDrawGizmos()
    {
        if (brain == null)
        {
            brain = new SplineCore();
        }

        brain.Positions       = getPos();
        brain.SubDivisionType = DivisionType.DistanceBased;
        //brain.IsLoop = true;
        brain.DistanceOffset = 20;
        brain.Resolution     = 0.1f;
        var points = brain.Compute();

        for (int i = 0; i < points.Length; i++)
        {
            Gizmos.color = Color.red;
            //if (i == points.Length - 1)
            //    Gizmos.DrawLine(points[i].Position, points[0].Position);
            if (i != points.Length - 1)
            {
                Gizmos.DrawLine(points[i].Position, points[i + 1].Position);
            }
            Gizmos.color = Color.green;
            Vector3 vec = Vector3.Cross(points[i].Position, Vector3.up + points[i].Position);
            vec = vec.normalized;
            //if (vec.y < points[i].Position.y)
            //   vec = -1 * vec;
            //vec = Quaternion.AngleAxis(-90, Vector3.up) * vec;

            //Gizmos.DrawLine(points[i].GetTangent(10), points[i].Position);
            //Gizmos.color = Color.blue;
            Gizmos.DrawLine(points[i].GetLeft(20), points[i].Position);
            Gizmos.DrawLine(points[i].GetRight(20), points[i].Position);
            if (i != 0)
            {
                Gizmos.color = Color.blue;
                Gizmos.DrawLine(points[i].GetRight(20), points[i - 1].GetRight(20));
                Gizmos.DrawLine(points[i].GetLeft(20), points[i - 1].GetLeft(20));
            }
            Gizmos.color = Color.yellow;
            //Gizmos.DrawLine(points[i].Position,points[i].Normal);


            //if(i!=points.Length-1)
            //Debug.Log(Vector3.Distance(points[i].Position, points[i + 1].Position));
        }
    }
 void Start()
 {
     brain = new SplineCore();
 }