#ifndef DRAWING_H #define DRAWING_H #include "aliases/aliases.h" #include #include #include #define DEFAULT_ARROWS_CAPACITY 1024 #define init_arrows_default(arrows) \ init_arrows_arr(arrows, DEFAULT_ARROWS_CAPACITY) #define init_arrows_with_capacity(arrows, capacity) \ init_arrows_arr(arrows, capacity) typedef struct colour colour_t; struct colour { union { u32 abgr; SDL_Color colour; }; }; typedef struct point point_t; struct point { i32 x; i32 y; }; typedef struct vec2 vec2_t; struct vec2 { i32 x; i32 y; }; typedef struct arrow arrow_t; struct arrow { point_t origin; vec2_t direction; }; typedef struct arrows arrows_t; struct arrows { arrow_t *lines; u64 count; u64 capacity; }; bool init_arrows_arr(arrows_t *lines, u64 capacity); void add_arrow(arrows_t *lines, arrow_t ln); void draw_arrows(SDL_Renderer *renderer, const arrows_t *arrows, colour_t colour); void draw_arrow(SDL_Renderer *renderer, const arrow_t *arrow, colour_t colour); #endif // !DRAWING_H