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