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) {
|
if (intersection == NULL) {
|
||||||
t_frect temp;
|
t_frect temp;
|
||||||
is_intersecting = intersect_frect(&rect, &tile_frect, &temp);
|
is_intersecting = overlap_frect(&rect, &tile_frect, &temp);
|
||||||
} else {
|
} else {
|
||||||
is_intersecting = intersect_frect(&rect, &tile_frect, intersection);
|
is_intersecting = overlap_frect(&rect, &tile_frect, intersection);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_intersecting)
|
if (is_intersecting)
|
||||||
@ -155,9 +155,9 @@ bool world_find_intersect_rect(struct world *world, t_rect rect, t_rect *interse
|
|||||||
|
|
||||||
if (intersection == NULL) {
|
if (intersection == NULL) {
|
||||||
t_rect temp;
|
t_rect temp;
|
||||||
is_intersecting = intersect_rect(&rect, tile_rect, &temp);
|
is_intersecting = overlap_rect(&rect, tile_rect, &temp);
|
||||||
} else {
|
} else {
|
||||||
is_intersecting = intersect_rect(&rect, tile_rect, intersection);
|
is_intersecting = overlap_rect(&rect, tile_rect, intersection);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_intersecting)
|
if (is_intersecting)
|
||||||
|
@ -109,9 +109,14 @@ _Alignas(16)
|
|||||||
} t_frect;
|
} 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)*/
|
/* TODO: generics and specials (see m_to_fvec2() for an example)*/
|
||||||
TWN_API t_frect to_frect(t_rect rect);
|
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 a_sdl = { a->x, a->y, a->w, a->h };
|
||||||
SDL_Rect b_sdl = { b->x, b->y, b->w, b->h };
|
SDL_Rect b_sdl = { b->x, b->y, b->w, b->h };
|
||||||
SDL_Rect result_sdl = { 0 };
|
SDL_Rect result_sdl = { 0 };
|
||||||
|
|
||||||
bool intersection = SDL_IntersectRect(&a_sdl, &b_sdl, &result_sdl);
|
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 };
|
*result = (t_rect){ result_sdl.x, result_sdl.y, result_sdl.w, result_sdl.h };
|
||||||
|
|
||||||
return intersection;
|
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 a_sdl = { a->x, a->y, a->w, a->h };
|
||||||
SDL_FRect b_sdl = { b->x, b->y, b->w, b->h };
|
SDL_FRect b_sdl = { b->x, b->y, b->w, b->h };
|
||||||
SDL_FRect result_sdl = { 0 };
|
SDL_FRect result_sdl = { 0 };
|
||||||
|
|
||||||
bool intersection = SDL_IntersectFRect(&a_sdl, &b_sdl, &result_sdl);
|
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 };
|
*result = (t_frect){ result_sdl.x, result_sdl.y, result_sdl.w, result_sdl.h };
|
||||||
|
|
||||||
return intersection;
|
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) {
|
t_frect to_frect(t_rect rect) {
|
||||||
return (t_frect) {
|
return (t_frect) {
|
||||||
.h = (float)rect.h,
|
.h = (float)rect.h,
|
||||||
|
Loading…
Reference in New Issue
Block a user