function* pointGenerator(origin, sigma, minDistance, amount, maxDistanceFromOrigin) {
let points = [];
nextPoint: while (points.length < amount) {
let point = generatePoint(origin, sigma)
if (shouldRemoveFromCircle(point, origin, coreRadius, maxDistanceFromOrigin)) {
continue nextPoint;
}
for (let otherPoint of points) {
if (distance(point, otherPoint) < minDistance) {
continue nextPoint
}
}
points.push(point)
yield point
}
}