#ifndef COMET_UTIL_H #define COMET_UTIL_H #include #include #include struct timespec timespec_diff(struct timespec a, struct timespec b); bool timespec_greater(struct timespec a, struct timespec b); // Check if point (px, py) is inside a rectangle in (x, y), (x+w, y), (x, y+h) and (w+h, y+h) static inline bool in_rect(int px, int py, int x, int y, int w, int h) { return px >= x && px <= x + w && py >= y && py <= y + h; } // Check if point (px, py) is inside a circle of radius r and center (x, y) static inline bool in_circle(int px, int py, int x, int y, int r) { int dx = x - px; int dy = y - py; return (dx * dx + dy * dy) <= r * r; } // Check if point (px, py) is inside a capsule in (x, y), (x+w, y), (x, y+h) and (w+h, y+h) bool in_capsule(int px, int py, int x, int y, int w, int h); #endif