8#include <glm/detail/type_vec.hpp>
9#include <glm/detail/type_vec3.hpp>
11#include "hellfire/graphics/material/Material.h"
22 using EntityID = uint32_t;
35 static EntityID
create(
Scene *scene,
const std::string &name,
const Config &config);
37 static std::shared_ptr<
Mesh>
create_mesh(
int rings = 32,
int sectors = 32);
40 std::vector<
unsigned int> &indices,
41 float radius,
int rings = 32,
int sectors = 32);
46 const glm::vec3 &v1,
const glm::vec3 &v2,
const glm::vec3 &v3,
TransformComponent * transform()
Manages a collection of entities and their hierarchical relationships.
Entity * get_entity(EntityID id)
Retrieves an entity by its ID.
EntityID create_entity(const std::string &name="GameObject")
Creates a new entity in the scene.
static void get_sphere_data(std::vector< Vertex > &vertices, std::vector< unsigned int > &indices, float radius, int rings=32, int sectors=32)
static void subdivide_triangle(std::vector< glm::vec3 > &vertices, const glm::vec3 &v1, const glm::vec3 &v2, const glm::vec3 &v3, int depth)
static std::shared_ptr< Mesh > create_mesh(int rings=32, int sectors=32)
static EntityID create(Scene *scene, const std::string &name, const Config &config)
std::shared_ptr< Material > material