private void RunJarvis()
        {
            calculatedPoints = new List <Point>();
            Point originalPoint = GetLeftPoint();
            Point selectedPoint = null;

            Vector3 vectorSource = Vector3.up;
            Vector3 vectorTest   = Vector3.zero;

            int maxIteration = 10000;
            int currentIndex = 0;

            while (originalPoint != selectedPoint && ++currentIndex < maxIteration)
            {
                if (selectedPoint == null)
                {
                    selectedPoint = originalPoint;
                }

                if (calculatedPoints.Contains(selectedPoint))
                {
                    Debug.Log("Already exist");
                }
                else
                {
                    calculatedPoints.Add(selectedPoint);
                }

                selectedPoint = points.OrderBy(calculatedPoint =>
                {
                    if (calculatedPoint == selectedPoint)
                    {
                        return(360);
                    }

                    vectorTest = calculatedPoint.GetPosition() - selectedPoint.GetPosition();
                    return(MathUtils.AngleClockwise(vectorSource, vectorTest));
                }).First();

                vectorSource = vectorTest;
            }
        }