public override Vector2 NextPoint()
        {
            if (sampleCount >= newPointsCount)
            {
                if (processList.Empty())
                {
                    return(Vector2.positiveInfinity);
                }

                NextSourcePoint();
            }
            for (; sampleCount < newPointsCount; sampleCount++)
            {
                Vector2 newPoint = GenerateRandomPointAround(sourcePoint, minDistance);
                if (bounds.Contains(newPoint) && !IsInNeighborhood(newPoint))
                {
                    AddPoint(newPoint);
                    return(newPoint);
                }
            }
            return(NextPoint());
        }