diff options
Diffstat (limited to 'collision.c')
| -rw-r--r-- | collision.c | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/collision.c b/collision.c deleted file mode 100644 index 17889a4..0000000 --- a/collision.c +++ /dev/null @@ -1,34 +0,0 @@ -#include "balls.h" - -static double clamp(double v, double lo, double hi); -static double min(double a, double b); -static double max(double a, double b); - -void -collideWall(Ball *b, Rectangle wall) { - wall = insetRect(wall, b->r); - - if (b->p.x < wall.min.x || b->p.x > wall.max.x) { - b->p.x = clamp(b->p.x, wall.min.x, wall.max.x); - b->v.x = -b->v.x; - } - if (b->p.y < wall.min.y || b->p.y > wall.max.y) { - b->p.y = clamp(b->p.y, wall.min.y, wall.max.y); - b->v.y = -b->v.y; - } -} - -static double -clamp(double v, double lo, double hi) { - return min(hi, max(v, lo)); -} - -static double -min(double a, double b) { - return (a < b) ? a : b; -} - -static double -max(double a, double b) { - return (a > b) ? a : b; -} |