From aedd626997abe949126b92db7d4536933319c461 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Thu, 31 Oct 2024 19:56:31 -0400 Subject: move noOverlapPositions to geo --- balls.c | 31 +------------------------------ 1 file changed, 1 insertion(+), 30 deletions(-) (limited to 'balls.c') diff --git a/balls.c b/balls.c index c342b40..20d4ff2 100644 --- a/balls.c +++ b/balls.c @@ -59,7 +59,6 @@ void freeGL(void); void initShaders(void); char *readFile(const char *filename, size_t *size); void compileShader(GLint shader); -Vector *noOverlapPositions(int n); void frameCount(void); void drawString(const char *str); @@ -219,7 +218,7 @@ setPositions(void) { int err; /* Generate initial ball positions. */ - hostPositions = noOverlapPositions(nBalls); + hostPositions = noOverlapPositions(nBalls, bounds, RMAX); hostPositionBuf = flatten(hostPositions); free(hostPositions); @@ -590,34 +589,6 @@ compileShader(GLint shader) { } } -/* - * Generate n circle coordinates such that none overlap even if all circles - * have the maximum radius. - */ -Vector * -noOverlapPositions(int n) { - Vector *ps; - Rectangle r; - int i, j; - - if ((ps = malloc(n*sizeof(Vector))) == NULL) - sysfatal("Failed to allocate position array.\n"); - - r = insetRect(bounds, RMAX); - for (i = 0; i < n; i++) { - ps[i] = randPtInRect(r); - for (j = 0; j < i; j++) - if (isCollision(ps[j], RMAX, ps[i], RMAX)) - break; - if (j < i) { /* Overlapping. */ - i--; - continue; - } - } - - return ps; -} - void frameCount(void) { static int fps = 0; -- cgit v1.2.3