add entities.get_all(...), .get_all_in_box(...), .get_all_in_radius(...)

This commit is contained in:
MihailRis
2024-07-17 14:51:55 +03:00
parent b499714d4b
commit 1eac343619
7 changed files with 100 additions and 0 deletions
+17
View File
@@ -503,3 +503,20 @@ std::vector<Entity> Entities::getAllInside(AABB aabb) {
}
return collected;
}
std::vector<Entity> Entities::getAllInRadius(glm::vec3 center, float radius) {
std::vector<Entity> collected;
auto view = registry.view<Transform>();
for (auto [entity, transform] : view.each()) {
if (glm::distance2(transform.pos, center) <= radius*radius) {
const auto& found = uids.find(entity);
if (found == uids.end()) {
continue;
}
if (auto wrapper = get(found->second)) {
collected.push_back(*wrapper);
}
}
}
return collected;
}