Helios Engine
A modular ECS based data-oriented C++23 game engine framework
Loading...
Searching...
No Matches
query.hpp File Reference
#include <helios/assert.hpp>
#include <helios/ecs/component/archetype.hpp>
#include <helios/ecs/component/component.hpp>
#include <helios/ecs/component/manager.hpp>
#include <helios/ecs/entity/entity.hpp>
#include <helios/ecs/query/details/query_args.hpp>
#include <helios/ecs/query/details/traits.hpp>
#include <helios/ecs/query/iterator.hpp>
#include <helios/utils/common_traits.hpp>
#include <helios/utils/functional_adapters.hpp>
#include <algorithm>
#include <cstddef>
#include <functional>
#include <memory>
#include <memory_resource>
#include <optional>
#include <span>
#include <tuple>
#include <type_traits>
#include <unordered_map>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

class  helios::ecs::BasicQueryWithEntity< WorldT, Allocator, Args >
 Wrapper that provides entity-aware iteration over query results. More...
class  helios::ecs::BasicQuery< WorldT, Allocator, Args >
 Query result object for iterating over matching entities and components. More...

Namespaces

namespace  helios
namespace  helios::ecs
namespace  helios::ecs::details

Typedefs

template<typename Alloc, QueryArg... Args>
using helios::ecs::MutBasicQuery = BasicQuery<World, Alloc, Args...>
template<typename Alloc, QueryArg... Args>
using helios::ecs::ReadOnlyBasicQuery = BasicQuery<const World, Alloc, Args...>
template<typename Alloc, QueryArg... Args>
using helios::ecs::MutBasicQueryWithEntity = BasicQueryWithEntity<World, Alloc, Args...>
template<typename Alloc, QueryArg... Args>
using helios::ecs::ReadOnlyBasicQueryWithEntity
template<QueryArg... Args>
using helios::ecs::PmrBasicQuery
template<QueryArg... Args>
using helios::ecs::PmrReadOnlyBasicQuery
template<QueryArg... Args>
using helios::ecs::PmrBasicQueryWithEntity
template<QueryArg... Args>
using helios::ecs::PmrReadOnlyBasicQueryWithEntity
template<QueryArg... Args>
using helios::ecs::Query = BasicQuery<World, std::pmr::polymorphic_allocator<>, Args...>
 Alias for BasicQuery bound to World with a PMR allocator.

Functions

template<typename... Cs>
bool helios::ecs::details::EntityHasComponentsCheck (const ComponentManager &manager, Entity entity, std::tuple< Cs... > *)
template<typename... Cs>
auto helios::ecs::details::FetchComponentsMutable (const Archetype &archetype, Entity entity, ComponentManager &manager, std::tuple< Cs... > *) -> std::tuple< ComponentAccessType_t< Cs >... >
template<typename... Cs>
auto helios::ecs::details::FetchComponentsConst (const Archetype &archetype, Entity entity, const ComponentManager &manager, std::tuple< Cs... > *) -> std::tuple< ComponentAccessType_t< Cs >... >