#ifndef __UTILS_H__ #define __UTILS_H__ #include #include #include using namespace std; using namespace glm; void seedRandomNums(); float getRandomNum(float low, float high); void printVec(string label, const vec2& v); void printVec(string label, const vec3& v); void printVec(string label, const vec4& v); void printMat(string label, const mat4& m); // Code for offset_of function from https://gist.github.com/graphitemaster/494f21190bb2c63c5516 template struct offset_of_impl { static T2 object; static constexpr size_t offset(T1 T2::*member) { return size_t(&(offset_of_impl::object.*member)) - size_t(&offset_of_impl::object); } }; template T2 offset_of_impl::object; template inline constexpr size_t offset_of(T1 T2::*member) { return offset_of_impl::offset(member); } #endif