#pragma once #include #include #include "mesh.h" #include "render_group.h" struct Entity { glm::mat4 world_transform; glm::vec3 scale; glm::vec3 translation; glm::vec4 rotation; meMeshGroup mesh_group; render_group* ren_group; char model_filename[256]; }; inline void entTranslate(Entity& e, glm::vec3 v) { e.world_transform = glm::translate(e.world_transform, v); } inline void entScale(Entity& e, glm::vec3 v) { e.world_transform = glm::scale(e.world_transform, v); } bool entInit(Entity& e, const char* model_path, rg_shader_program& shader); void entFree(Entity& e); void entSetWorldPosition(Entity& e, float x, float y, float z);