Entities¶
Manager¶
struct PositionComponent
{
Vec3 position;
};
Holder<EntityManager> manager = newEntityManager();
manager->defineComponent(PositionComponent());
Operating on entities¶
Entity *e = manager->createUnique();
e->value<PositionComponent>().position = Vec3(10, 20, 30); // implicitly adds the component to the entity
e->remove<PositionComponent>();
Visiting entities¶
Vec3 sum;
uint32 count = 0;
entitiesVisitor([&](Entity *e, const PositionComponent &pos){
sum += pos.position;
count++;
}, manager, false);
const Vec3 avg = sum / count;