Move line_from_origin and aabb functions to the window code
This commit is contained in:
parent
4610561eff
commit
b847f87ee5
@ -80,5 +80,7 @@ void draw_rect(const window *wnd, rect rec, colour colour);
|
|||||||
void fill_triangle(const window *wnd, triangle triangle, colour colour);
|
void fill_triangle(const window *wnd, triangle triangle, colour colour);
|
||||||
void fill_quad(const window *wnd, quad qd, colour colour);
|
void fill_quad(const window *wnd, quad qd, colour colour);
|
||||||
void fill_rect(const window *wnd, rect rec, colour colour);
|
void fill_rect(const window *wnd, rect rec, colour colour);
|
||||||
|
line line_from_origin(point origin, f64 angle, i32 line_length);
|
||||||
|
bool aabb(rect rec, i32 x, i32 y);
|
||||||
|
|
||||||
#endif // !WINDOW_H
|
#endif // !WINDOW_H
|
||||||
|
18
src/window.c
18
src/window.c
@ -162,6 +162,24 @@ void fill_quad(const window *wnd, quad qd, colour colour) {
|
|||||||
fill_triangle(wnd, t1, colour);
|
fill_triangle(wnd, t1, colour);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
line line_from_origin(point origin, f64 angle, i32 line_length) {
|
||||||
|
f64 rad = radians(angle);
|
||||||
|
f64 direction = angle / absolute(angle) * -1;
|
||||||
|
|
||||||
|
i32 adjacent = line_length * cos(rad) * direction; // dx
|
||||||
|
i32 opposite = line_length * sin(rad) * direction; // dy
|
||||||
|
|
||||||
|
return (line){
|
||||||
|
(point){origin.x + adjacent, origin.y + opposite},
|
||||||
|
origin,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
bool aabb(rect rec, i32 x, i32 y) {
|
||||||
|
return x > rec.topleft.x && x <= rec.topleft.x + rec.w && y > rec.topleft.y &&
|
||||||
|
y <= rec.topleft.y + rec.h;
|
||||||
|
}
|
||||||
|
|
||||||
internal inline bool inside_triangle(triangle tri, point p) {
|
internal inline bool inside_triangle(triangle tri, point p) {
|
||||||
// Based on the following video:
|
// Based on the following video:
|
||||||
// https://www.youtube.com/watch?v=HYAgJN3x4GA
|
// https://www.youtube.com/watch?v=HYAgJN3x4GA
|
||||||
|
Loading…
Reference in New Issue
Block a user