#pragma once #define GLM_SWIZZLE #define GLM_ENABLE_EXPERIMENTAL #include #include #include #include "ADrawable.h" class CheckeredFloor : public ADrawable { private : GLuint _vaoHandle; GLuint _vbo_vertices, _vbo_colors; void genVertices(std::vector &vertices, std::vector &colors); void setup(); glm::vec3 _light_color = {.7f, .7f, .7f}; glm::vec3 _dark_color = {.3f, .3f, .3f}; int _size; int _squares; public : CheckeredFloor(int size, int squares); ~CheckeredFloor(); void draw(ShaderProgram *shader, glm::mat4x4 proj_matrix, glm::mat4x4 view_matrix) override; DrawableType getType() override; };