rename intersect_(f)rect to overlap_(f)rect and add simplified functions with the old names
This commit is contained in:
parent
5cc36ab46c
commit
999cb78358
@ -130,9 +130,9 @@ bool world_find_intersect_frect(struct world *world, t_frect rect, t_frect *inte
|
||||
|
||||
if (intersection == NULL) {
|
||||
t_frect temp;
|
||||
is_intersecting = intersect_frect(&rect, &tile_frect, &temp);
|
||||
is_intersecting = overlap_frect(&rect, &tile_frect, &temp);
|
||||
} else {
|
||||
is_intersecting = intersect_frect(&rect, &tile_frect, intersection);
|
||||
is_intersecting = overlap_frect(&rect, &tile_frect, intersection);
|
||||
}
|
||||
|
||||
if (is_intersecting)
|
||||
@ -155,9 +155,9 @@ bool world_find_intersect_rect(struct world *world, t_rect rect, t_rect *interse
|
||||
|
||||
if (intersection == NULL) {
|
||||
t_rect temp;
|
||||
is_intersecting = intersect_rect(&rect, tile_rect, &temp);
|
||||
is_intersecting = overlap_rect(&rect, tile_rect, &temp);
|
||||
} else {
|
||||
is_intersecting = intersect_rect(&rect, tile_rect, intersection);
|
||||
is_intersecting = overlap_rect(&rect, tile_rect, intersection);
|
||||
}
|
||||
|
||||
if (is_intersecting)
|
||||
|
@ -109,9 +109,14 @@ _Alignas(16)
|
||||
} t_frect;
|
||||
|
||||
|
||||
TWN_API bool intersect_rect(const t_rect *a, const t_rect *b, t_rect *result);
|
||||
/* calculates the overlap of two rectangles and places it in result. */
|
||||
/* returns true if the rectangles are indeed intersecting. */
|
||||
TWN_API bool overlap_rect(const t_rect *a, const t_rect *b, t_rect *result);
|
||||
TWN_API bool overlap_frect(const t_frect *a, const t_frect *b, t_frect *result);
|
||||
|
||||
TWN_API bool intersect_frect(const t_frect *a, const t_frect *b, t_frect *result);
|
||||
/* returns true if two triangles are intersecting */
|
||||
TWN_API bool intersect_rect(const t_rect *a, const t_rect *b);
|
||||
TWN_API bool intersect_frect(const t_frect *a, const t_frect *b);
|
||||
|
||||
/* TODO: generics and specials (see m_to_fvec2() for an example)*/
|
||||
TWN_API t_frect to_frect(t_rect rect);
|
||||
|
@ -171,30 +171,50 @@ bool strends(const char *str, const char *suffix) {
|
||||
}
|
||||
|
||||
|
||||
bool intersect_rect(const t_rect *a, const t_rect *b, t_rect *result) {
|
||||
bool overlap_rect(const t_rect *a, const t_rect *b, t_rect *result) {
|
||||
SDL_Rect a_sdl = { a->x, a->y, a->w, a->h };
|
||||
SDL_Rect b_sdl = { b->x, b->y, b->w, b->h };
|
||||
SDL_Rect result_sdl = { 0 };
|
||||
|
||||
bool intersection = SDL_IntersectRect(&a_sdl, &b_sdl, &result_sdl);
|
||||
|
||||
if (result != NULL)
|
||||
*result = (t_rect){ result_sdl.x, result_sdl.y, result_sdl.w, result_sdl.h };
|
||||
|
||||
return intersection;
|
||||
}
|
||||
|
||||
|
||||
bool intersect_frect(const t_frect *a, const t_frect *b, t_frect *result) {
|
||||
bool overlap_frect(const t_frect *a, const t_frect *b, t_frect *result) {
|
||||
SDL_FRect a_sdl = { a->x, a->y, a->w, a->h };
|
||||
SDL_FRect b_sdl = { b->x, b->y, b->w, b->h };
|
||||
SDL_FRect result_sdl = { 0 };
|
||||
|
||||
bool intersection = SDL_IntersectFRect(&a_sdl, &b_sdl, &result_sdl);
|
||||
|
||||
if (result != NULL)
|
||||
*result = (t_frect){ result_sdl.x, result_sdl.y, result_sdl.w, result_sdl.h };
|
||||
|
||||
return intersection;
|
||||
}
|
||||
|
||||
|
||||
bool intersect_rect(const t_rect *a, const t_rect *b) {
|
||||
SDL_Rect a_sdl = { a->x, a->y, a->w, a->h };
|
||||
SDL_Rect b_sdl = { b->x, b->y, b->w, b->h };
|
||||
SDL_Rect result_sdl = { 0 };
|
||||
return SDL_IntersectRect(&a_sdl, &b_sdl, &result_sdl);
|
||||
}
|
||||
|
||||
|
||||
bool intersect_frect(const t_frect *a, const t_frect *b) {
|
||||
SDL_FRect a_sdl = { a->x, a->y, a->w, a->h };
|
||||
SDL_FRect b_sdl = { b->x, b->y, b->w, b->h };
|
||||
SDL_FRect result_sdl = { 0 };
|
||||
return SDL_IntersectFRect(&a_sdl, &b_sdl, &result_sdl);
|
||||
}
|
||||
|
||||
|
||||
t_frect to_frect(t_rect rect) {
|
||||
return (t_frect) {
|
||||
.h = (float)rect.h,
|
||||
|
Loading…
Reference in New Issue
Block a user