#pragma once #include #include #include "mesh.h" #include "render_group.h" struct render_group; struct Entity { glm::mat4 world_transform; glm::vec3 scale; glm::vec3 translation; glm::vec4 rotation; // maybe use quaternion for this one meMeshGroup mesh_group; render_group* ren_group; //TODO: more entity properties: sound, gameplay info }; inline void entityTranslate(Entity* e, int x, int y, int z) { e->world_transform = glm::translate(e->world_transform, glm::vec3(x, y, z)); } inline void entityScale(Entity* e, float sx, float sy, float sz) { //mi->model_transform = glm::scale(glm::mat4(1), glm::vec3(100, 100, 100)); }