#pragma once #include #include #include #include #include #define min(a, b) ((a < b) ? a : b) #define max(a, b) ((a > b) ? a : b) typedef unsigned int uint; template struct Array { T* data; size_t len; size_t cap; inline T& operator[](int i) { return data[i]; } }; template void append(Array& a, T el); template T pop(Array& a); template void resize(Array& a, size_t new_cap); template void clear(Array& a); bool read_file(Array* out, const char* filepath); Array split_str(const char* s, char delimiter); Array split_str(const char* s); glm::mat4 quat_to_mat4(glm::quat q);